# Configuration for the plugin "mediaplaner_pi" plugin.tx_mediaplaner_pi { debug = # Define the pid where to store the session sesPid = 0 # expiration time in seconds (e.g 2 months: 2 * 30 days: 2 * 30 * 24 * 60 * 60 = 5184000) cacheExpires = 5184000 # Define default formular actions formular { type.typolink.parameter.data = TSFE:id type.typolink.additionalParams.data = GP:redirectUrl type.typolink.additionalParams.if.isTrue.data = GP:redirectUrl type.typolink.additionalParams.rawUrlEncode = 1 type.typolink.additionalParams.wrap = &redirectUrl=| type.typolink.returnLast = url } # Define the modes to display mode = advice,expert mode { advice.label.lang.de = Beratungsmodus advice.desc.lang.de = In 6 Schritten durchs Planungstool zur fertigen Außenwerbekampagne expert.label.lang.de = Expertenmodus expert.desc.lang.de = Mit Eingrffsmöglichkeiten in Planungsvorgaben } # Define the media for expert mode media = GF,GV,SP,PF,GZ,VI media { GF.label { lang.de = Großflächen } GV.label { lang.de = Mega-Light Netz } PF.label { lang.de = BigSeven 36/1 } SP.label { lang.de = Superposter 40/1 } GZ.label { lang.de = Ganzsäulen } VI.label { lang.de = City-Light-Poster Netz } } # Define the quote for expert mode quote = GF quote { GF { 1.expert.dataWrap = ###LL_planingQuote### 1:2000 1.value = 2000 2.expert.dataWrap = ###LL_planingQuote### 1:3000 2.value = 3000 2.default = 1 3.expert.dataWrap = ###LL_planingQuote### 1:4000 3.value = 4000 4.expert.dataWrap = ###LL_planingQuote### 1:5000 4.value = 5000 } PF { 1.expert.dataWrap = ###LL_planingQuote### 1:2000 1.value = 2000 2.expert.dataWrap = ###LL_planingQuote### 1:3000 2.value = 3000 2.default = 1 3.expert.dataWrap = ###LL_planingQuote### 1:4000 3.value = 4000 4.expert.dataWrap = ###LL_planingQuote### 1:5000 4.value = 5000 } GZ { 1.expert.dataWrap = ###LL_planingQuote### 1:8000 1.value = 8000 2.expert.dataWrap = ###LL_planingQuote### 1:10000 2.value = 10000 2.default = 1 3.expert.dataWrap = ###LL_planingQuote### 1:12000 3.value = 12000 } } # Define campaigns for advice mode # Configuration of campaigns ###### # 1 { # name = name or locallang marker # desc = description or locallang marker # typ = "normal" or "netz" # exklusive = 0 oder 1 (exklusive campaigns could not be combined with other campaigns) # qualifaktor = qualityfactor (only if typ=normal) # netzfaktor = qualityfactor (only if typ=netz) # quote = e.g. 2000 (=1:2000, one billboard for each 2000 citizens) # bild = # netztyp = citylight and/or megalight (comma separated) # } kampagne { 1 { name = ###LL_quote3000### label.lang.de = Werbepaket Basis High desc = ###LL_quote3000desc### desc.lang.de = Image-Werbung:
wiederholt und mit starkem Werbedruck das Image stärken exklusive = 1 media = GF|3500|1.11 image = Reminder Werbung:
Einzel- und Zwischenaktionen mit gutem Werbedruck ("Grundrauschen"), um in Erinnerung zu bleiben exklusive = 1 media = GF|5000|1.13 image = Neueinführungen:
schnell und mit maximalem Werbedruck bekannt werden exklusive = 1 media = GF|2000|1.1 image = Aktions-Werbung:
schnell und mit sehr starkem Werbedruck bekannt werden exklusive = 1 media = GF|2750|1.05 image = {field:desc} } data { mode.data = register:tx_mediaplaner_pi[mode] } stdWrap_EXT { split { token.char = 10 cObjNum = 1 1 = TEXT 1.current = 1 1.trim = 1 } preCObject = COA preCObject.10 = TEXT preCObject.10 { data = LLL:EXT:mediaplaner/pi1/locallang.xml:save if.isFalse.data = TSFE:page|layout typolink.parameter.data = TSFE:id typolink.parameter.noTrimWrap = || - csc-mailform-submit| typolink.ATagParams = tx_mediaplaner_pi1.submit(); typolink.ATagParams.noTrimWrap = |onclick="| return false;"| wrap =
|
} preCObject.20 =< tt_content.header.20 preCObject.30 =< tt_content.text.20 postCObject < .preCObject.10 postCObject.wrap =
|
} _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi1-item { float: left; margin-right: 34px; width: 170px; } .tx-mediaplaner-pi1-item img { cursor: pointer; } ) } # Configuration for the plugin "mediaplaner_pi2" plugin.tx_mediaplaner_pi2 { templateFile = EXT:mediaplaner/res/pi2/template.htm javascriptFile = EXT:mediaplaner/res/pi2/javascript.js prevPage = 3 nextPage = 5 marks { AJAX_URL = TEXT AJAX_URL.typolink.parameter.data = TSFE:id AJAX_URL.typolink.parameter.wrap = |,456 AJAX_URL.typolink.returnLast = url } formular { error { stdWrap.wrap = | parseFunc = | desc.lang.de = Suche nach Städte- und Gemeindenamen desc.wrap =

|

count = 0 placeholder.lang.de = PLZ oder Ort eingeben ajax = ajax ajax.noTrimWrap = | class="|"| extra = 3 extra.noTrimWrap = | min="|"| DB { __preventParser = 1 SELECT = OrtNr as value,CONCAT_WS(' ', PLZ, Ortname) AS name FROM = 123_Ort WHERE = 1 WHERE.override = Ortname LIKE '{current:1}%' OR PLZ LIKE '{current:1}%' WHERE.override { setCurrent.data = GP:tx_mediaplaner_pi2|city setCurrent.trim = 1 if.isTrue.current = 1 if.value = 456 if.equals.data = GP:type insertData = 1 } WHERE_SAVED = OrtNr IN({register:tx_mediaplaner_pi[region][city]}) WHERE_SAVED { if.isTrue.data = register:tx_mediaplaner_pi[region][city] insertData = 1 } GROUPBY = ORDERBY = Ortname ASC LIMIT = } results { __preventParser = 1 #value.csConv = iso-8859-1 #name.csConv = iso-8859-1 checked = checked checked.if.isTrue.data = register:tx_mediaplaner_pi[region][city] checked.if.value.data = register:tx_mediaplaner_pi[region][city] checked.if.isInList.field = value checked.noTrimWrap = | checked="|"| } } state { mode.substring = 0,-1 header.lang.de = Bundesländer header.wrap =

|

desc.lang.de = Suche nach Bundesländern desc.wrap =

|

count = 0 placeholder.lang.de = Bundesland eingeben DB { __preventParser = 1 SELECT = Land as value,Landname AS name FROM = 123_Bula WHERE = 1 WHERE.override = Landname LIKE '{current:1}%' WHERE.override { setCurrent.data = GP:tx_mediaplaner_pi2|state setCurrent.trim = 1 if.isTrue.current = 1 if.value = 456 if.equals.data = GP:type insertData = 1 } WHERE_SAVED = Land IN({register:tx_mediaplaner_pi[region][state]}) WHERE_SAVED { if.isTrue.data = register:tx_mediaplaner_pi[region][state] insertData = 1 } GROUPBY = ORDERBY = Landname ASC LIMIT = } results { __preventParser = 1 #value.csConv = iso-8859-1 #name.csConv = iso-8859-1 name.split { token = - cObjNum = 1 |*| 1 |*| 2 1 = TEXT 1.cObject = COA 1.cObject.10 = TEXT 1.cObject.10.current = 1 1.cObject.10.substring = 0,1 1.cObject.10.case = upper 1.cObject.20 = TEXT 1.cObject.20.current = 1 1.cObject.20.substring = 1, 1.cObject.20.case = lower 1.wrap = |- 2 < .1 2.wrap > } checked = checked checked.if.isTrue.data = register:tx_mediaplaner_pi[region][state] checked.if.value.data = register:tx_mediaplaner_pi[region][state] checked.if.isInList.field = value checked.noTrimWrap = | checked="|"| } } district { mode.substring = 0,-1 header.lang.de = Kreise & kreisfreie Städte header.wrap =

|

desc.lang.de = Suche nach Kreisen oder kreisfreien Städten desc.wrap =

|

count = 0 placeholder.lang.de = Kreis eingeben ajax = ajax ajax.noTrimWrap = | class="|"| extra = 2 extra.noTrimWrap = | min="|"| DB { __preventParser = 1 SELECT = KreisNr as value,Kreisname AS name FROM = 123_Kreis WHERE = 1 WHERE.override = Kreisname LIKE '{current:1}%' WHERE.override { setCurrent.data = GP:tx_mediaplaner_pi2|district setCurrent.trim = 1 if.isTrue.current = 1 if.value = 456 if.equals.data = GP:type insertData = 1 } WHERE_SAVED = KreisNr IN({register:tx_mediaplaner_pi[region][district]}) WHERE_SAVED { if.isTrue.data = register:tx_mediaplaner_pi[region][district] insertData = 1 } GROUPBY = ORDERBY = Kreisname ASC LIMIT = } results { __preventParser = 1 #value.csConv = iso-8859-1 #name.csConv = iso-8859-1 checked = checked checked.if.isTrue.data = register:tx_mediaplaner_pi[region][district] checked.if.value.data = register:tx_mediaplaner_pi[region][district] checked.if.isInList.field = value checked.noTrimWrap = | checked="|"| } } } citizens { state.wrap = LPAD(LPAD(OrtNr,8,'0'),2,'')=LPAD('|',2,'0') district.wrap = Kreis='|' } locallang { hint { setCurrent.cObject = CONTENT setCurrent.cObject { table = pages select { pidInList.data = fullRootline: 1,uid selectFields = uid,pid where = title LIKE 'kontakt%' OR title LIKE 'contact%' OR nav_title LIKE 'kontakt%' OR nav_title LIKE 'contact%' OR alias LIKE 'kontakt%' OR alias LIKE 'contact%' AND nav_hide='0' AND no_search='0' max = 1 } slide = 100 renderObj = TEXT renderObj.field = uid } stdWrap.insertData = 1 trim = 1 parseFunc = | } postCObject = COA postCObject.10 < .preCObject postCObject.10.data = LLL:EXT:mediaplaner/pi3/locallang.xml:back postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.3} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
|
postCObject.20 < .preCObject postCObject.20.wrap =
|
} _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi2 { min-height: 280px; padding-bottom: 65px; } .tx-mediaplaner-pi2-item { float: left; margin-right: 23px; min-height: 20px; position: relative; width: 180px; } .tx-mediaplaner-pi2-item input[type="text"] { background: #FFFFFF; border: 1px solid #DBDBDB; cursor: cell; position: absolute; width: 178px; z-index: 1; } .tx-mediaplaner-pi2-item input[type="text"][disabled] { background: #F0F0F0; } *:first-child+html .tx-mediaplaner-pi2-item input[type="text"][disabled] { cursor: default; } .tx-mediaplaner-pi2-item-results { background: #FFFFFF; border-color: #DBDBDB; border-right: 1px solid #DBDBDB; border-style: dotted solid solid solid; border-width: 1px; display: none; max-height: 256px; overflow: hidden; padding: 2px 1px 1px 1px; position: absolute; top: 16px; width: 176px; z-index: 3; } .tx-mediaplaner-pi2-item-results > div { width: 176px; } .tx-mediaplaner-pi2-item-saved { background: #FAF7F2; border: 1px solid #DBDBDB; cursor: cell; display: none; left: 0px; padding: 1px; position: relative; top: 17px; width: 176px; z-index: 2; } .tx-mediaplaner-pi2-item-saved .toggle { cursor: default; width: 176px; } body.wide .csc-default .tx-mediaplaner-pi2-hint, body.wide-toggle .csc-default .tx-mediaplaner-pi2-hint { bottom: 18px; left: 12px; position: absolute; right: 15px; } ) } # Configuration for the page "mediaplaner_pi2->ajax" mediaplaner_pi2 = PAGE mediaplaner_pi2 { typeNum = 456 config { disableAllHeaderCode = 1 xhtml_cleaning = 0 no_cache = 1 } 10 = ajax } # Configuration for the plugin "mediaplaner_pi3" plugin.tx_mediaplaner_pi3 { templateFile = EXT:mediaplaner/res/pi3/template.htm javascriptFile = EXT:mediaplaner/res/pi3/javascript.js prevPage = 2 nextPage = 4 kampagneimage = IMAGE kampagneimage { file.width = 150m # params = name="###MOUSEOVER###" rel="kampagne|###VALUE###|###EXKLUSIV###" emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling} } planing = quote media { image = IMAGE image { file = EXT:mediaplaner/res/pi3/media###TYPE###off.gif file.width = 125m # params = name="###MOUSEOVER###" rel="media|###ITEM###|0" emptyTitleHandling = removeAttr } } formular { error { stdWrap.wrap = | parseFunc = | headerBudget < .header headerLegend < .header headerCampagne_exklusive < .header desc { stdWrap.required = 1 stdWrap.wrap =

|

required = 1 parseFunc = | } } stdWrap_EXT { split { token.char = 10 cObjNum = 1 1 = TEXT 1.current = 1 1.trim = 1 } preCObject = TEXT preCObject { data = LLL:EXT:mediaplaner/pi3/locallang.xml:save typolink.parameter.data = TSFE:id typolink.parameter.noTrimWrap = || - csc-mailform-submit| typolink.ATagParams = tx_mediaplaner_pi3.submit(); typolink.ATagParams.noTrimWrap = |onclick="| return false;"| wrap =
|
} postCObject = COA postCObject.10 < .preCObject postCObject.10.data = LLL:EXT:mediaplaner/pi3/locallang.xml:back postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.2} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
|
postCObject.20 < .preCObject postCObject.20.wrap =
|
} _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi3-header { font-weight: bold; } .tx-mediaplaner-pi3-item { float: left; margin: 0px 12px 14px 0px; width: 139px; } .tx-mediaplaner-pi3-item img { cursor: pointer; } .tx-mediaplaner-pi3-item.wide { margin-right: 14px; width: 200px; } .tx-mediaplaner-pi3-item.newline { clear: left; } .tx-mediaplaner-pi3-quote { height: 21px; } .tx-mediaplaner-pi3-quote select { width: 125px; } ) } # Configuration for the plugin "mediaplaner_pi4" plugin.tx_mediaplaner_pi4 { templateFile = EXT:mediaplaner/res/pi4/template.htm javascriptFile = EXT:mediaplaner/res/pi4/javascript.js prevPage = 1 nextPage = 3 locallang { header { noTrimWrap = |

» |

| } desc { stdWrap.required = 1 stdWrap.wrap =

|

required = 1 parseFunc = | parseFunc = | } postCObject = COA postCObject.10 < .preCObject postCObject.10.data = LLL:EXT:mediaplaner/pi4/locallang.xml:back postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.1} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
|
postCObject.20 < .preCObject postCObject.20.wrap =
|
} _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi4 .selectbox { float: left; position: relative; width: 425px; } .tx-mediaplaner-pi4 .select { float: left; line-height: 17px; max-height: 170px; min-height: 51px; position: relative; width: 425px; -ms-overflow-y: scroll; overflow-y: scroll; -ms-touch-action: pan-y; } .tx-mediaplaner-pi4 .select a.option { display: block; height: 17px; line-height: 17px; white-space: nowrap; width: 405px; } .tx-mediaplaner-pi4 .select a.option.selected { background: #EEEEEE; } .tx-mediaplaner-pi4 .select .year { float: right; margin: -17px 3px 0px 0px; text-align: right; width: 40px; } .tx-mediaplaner-pi4 .selector { background: #FFFFFF; height: 100%; min-height: 51px; position: absolute; right: 0px; top: 0px; width: 17px; } .tx-mediaplaner-pi4 .selector a { background:url(../typo3conf/ext/mediaplaner/res/pi4/scrollbars.gif) 30px 14px no-repeat; display: block; height: 14px; margin-left: 3px; width: 14px; } .tx-mediaplaner-pi4 .selector a.scrollbars-top { background-position: 0px 0px; } .tx-mediaplaner-pi4 .selector a.scrollbars-bottom { background-position: -16px 0px; bottom: 0px; left: 0px; position: absolute; } .tx-mediaplaner-pi4 .hint { background: url(../typo3conf/ext/mediaplaner/res/pi4/hint.png) no-repeat; bottom: -30px; left: 81px; padding: 5px 0px 8px 15px; position: absolute; } ) } # Configuration for the plugin "mediaplaner_pi5" plugin.tx_mediaplaner_pi5 { templateFile = EXT:mediaplaner/res/pi5/template.htm javascriptFile = EXT:mediaplaner/res/pi5/javascript.js prevPage = 5 nextPage = R print { 1 { label.lang.de = Ich möchte Plakatproduktion und -versand aus einer Hand. checked = checked checked.if.value.data = register:tx_mediaplaner_pi[print] checked.if.value.substring = 0,1 checked.if.equals = 1 checked.noTrimWrap = | checked="|"| display = block options { __preventParser = 1 1 { label.lang.de = Ich brauche Unterstützung bei der Erstellung der Druckdaten checked = checked checked.if.value.data = register:tx_mediaplaner_pi[print] checked.if.value.substring = 1,1 checked.if.equals = 1 checked.noTrimWrap = | checked="|"| display = none display.override = block display.override.if < .checked.if display.override.if.value.substring = 0,1 } 2 < .1 2 { label.lang.de = Druckdaten liefere ich nach label.append = TEXT label.append { lang.de = Vorgaben und Informationen zum Plakatdruck typolink.parameter = typo3conf/ext/mediaplaner/res/pi5/Vorgaben_Plakatdruck.pdf typolink.parameter.noTrimWrap = || _blank| noTrimWrap = | (|)| } checked.if.equals = 2 } 3 < .1 3 { label.lang.de = Druckdaten liegen mir vor checked.if.equals = 3 } } } 2 < .1 2 { label.lang.de = Ich werde Plakatproduktion und -versand auf eigene Kosten erledigen. checked.if.equals = 2 options > } } formular { error { stdWrap.wrap = | parseFunc = | desc { stdWrap.wrap =

|

parseFunc = | } postCObject = COA postCObject.10 < .preCObject postCObject.10.data = LLL:EXT:mediaplaner/pi5/locallang.xml:back postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.5} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
|
postCObject.20 < .preCObject postCObject.20.wrap =
|
} _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi5-item { padding: 3px 0px; } .tx-mediaplaner-pi5-item .tx-mediaplaner-pi5-item { margin-left: 20px; } ) } # Configuration for the plugin "mediaplaner_pi9" plugin.tx_mediaplaner_pi9 { templateFile = EXT:mediaplaner/res/pi9/template.htm javascriptFile = EXT:mediaplaner/res/pi9/javascript.js prevPage = 4 nextPage = 6 optimization { 1 { label.lang.de = Optimiert nach TOP Buchung checked = checked checked.if.value.data = register:tx_mediaplaner_pi[optimization] checked.if.isInList = 1 checked.noTrimWrap = | checked="|"| } 2 < .1 2 { label.lang.de = Optimiert nach Ein- und Ausfallstraßen checked.if.isInList = 2 } 3 < .1 3 { label.lang.de = Optimiert nach dem QSS® (Qualitäts-Selektions-System) checked.if.isInList = 3 } 4 < .1 4 { label.lang.de = Optimiert auf Verbrauchermärkte checked.if.isInList = 4 } 5 < .1 5 { label.lang.de = Optimiert auf Innenstädte checked.if.isInList = 5 } } data { optimization_own.data = register:tx_mediaplaner_pi[optimization_own] optimization_own.trim = 1 } formular { error { stdWrap.wrap = | parseFunc = | desc { stdWrap.wrap =

|

parseFunc = | } postCObject = COA postCObject.10 < .preCObject postCObject.10.data = LLL:EXT:mediaplaner/pi9/locallang.xml:back postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.4} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
|
postCObject.20 < .preCObject postCObject.20.wrap =
|
} _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi9-item { padding: 3px 10px 3px 0px; } ) } # Configuration for the plugin "mediaplaner_pi6" plugin.tx_mediaplaner_pi6 { templateFile = EXT:mediaplaner/res/pi6/template.htm javascriptFile = EXT:mediaplaner/res/pi6/javascript.js javascriptStdWrap { prepend = FILE prepend.file = EXT:mediaplaner/res/pi6/jquery.tmpl.min.js prepend.stdWrap.append = TEXT prepend.stdWrap.append.char = 10 } parse { dates { setContentToCurrent = 1 setCurrent { current = 1 stdWrap.substring = 0,-3 split.token = |*| split.wrap =
  • |
  • } lang.de = Werbezeiträume noTrimWrap = ||:
      {current:1}
    | insertData = 1 } planing < .dates planing { setCurrent > lang.de = Werbedruck noTrimWrap = ||:
      {current:1}
    | } region < .dates region { setCurrent > lang.de = Orte & Regionen noTrimWrap = ||:
      {current:1}
    | } citizen < .dates citizen { setCurrent > setCurrent { current = 1 numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } lang.de = Einwohner noTrimWrap = ||: {current:1}| } optimization < .region optimization { if.isTrue.current = 1 lang.de = Optimierungs-Parameter } optimization_own < .region optimization_own { lang.de = Eigene Optimierungswünsche if.isTrue.current = 1 noTrimWrap = ||:
    • {current:1}
    | } print < .citizen print { setCurrent > lang.de = Plakatproduktion noTrimWrap = ||:
    • {current:1}
    | } } kampagne { 1.label.wrap =
  • | 1.desc.trim = 1 1.desc.stripHtml = 1 1.desc.noTrimWrap = |
    (|)
  • | 2 < .1 3 < .1 4 < .1 } media { GF.label.wrap =
  • | GF.quote { setContentToCurrent = 1 stdWrap.preCObject = TEXT stdWrap.preCObject.lang.de = Quote stdWrap.preCObject.if.isTrue.current = 1 stdWrap.preCObject.noTrimWrap = || 1:| innerWrap = (|) innerWrap.if.isTrue.current = 1 noTrimWrap = | |
  • | } GV < .GF SP < .GF PF < .GF GZ < .GF VI < .GF } search < plugin.tx_mediaplaner_pi2.search search { city.results.name.wrap =
  • |
  • state.results.name.wrap = | state.results.name.prepend = TEXT state.results.name.prepend { lang.de = Bundesland noTrimWrap = ||: | } state.results.name.outerWrap =
  • |
  • district.results.name.wrap = | district.results.name.prepend < .state.results.name.prepend district.results.name.prepend { lang.de = Kreis } district.results.name.outerWrap =
  • |
  • } optimization < plugin.tx_mediaplaner_pi9.optimization optimization { 1.label.wrap =
  • |
  • 2.label.wrap =
  • |
  • 3.label.wrap =
  • |
  • 4.label.wrap =
  • |
  • 5.label.wrap =
  • |
  • } print < plugin.tx_mediaplaner_pi5.print print { 1.label.if.value.data = register:tx_mediaplaner_pi[print] 1.label.if.equals = 1 1.options.1.label.if < .1.label.if 1.options.1.label.if.equals = 11 1.options.2.label.if < .1.label.if 1.options.2.label.if.equals = 12 1.options.3.label.if < .1.label.if 1.options.3.label.if.equals = 13 2.label.if < .1.label.if 2.label.if.equals = 2 } calc { city { sql { SELECT = SQL_CALC_FOUND_ROWS DISTINCT OrtNr,EW,CONCAT_WS(' ', PLZ, Ortname) AS Stadt SELECT.wrap = |, '' AS Gruppe FROM = 123_Ort WHERE = OrtNr IN({register:tx_mediaplaner_pi[region][city]}) WHERE.insertData = 1 GROUPBY = ORDERBY = Ortname ASC LIMIT = # LIMIT.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_limit|city # LIMIT.ifEmpty = 0 # LIMIT.wrap = |,1000 uidIndexField = OrtNr } results { # Convert cityname to utf-8 #Stadt.csConv = iso-8859-1 } } state < .city state { sql { SELECT.wrap = |, (SELECT Landname FROM 123_Bula WHERE 123_Bula.Land=LPAD(LPAD(123_Ort.OrtNr,8,'0'),2,'')) AS Gruppe WHERE = LPAD(LPAD(OrtNr,8,'0'),2,'') IN({current:1}) WHERE.setCurrent { data = register:tx_mediaplaner_pi[region][state] split.token = , split.cObjNum = 1 |*| 1 |*| 2 split.1 = TEXT split.1 { current = 1 stdWrap.wrap = 00| substring = -2,2 wrap = '|', } split.2 < .split.1 split.2.wrap = '|' } ORDERBY = Gruppe ASC,Ortname ASC # LIMIT.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_limit|state } results { # Convert groupname to utf-8 #Gruppe.csConv = iso-8859-1 Gruppe.split { token = - cObjNum = 1 |*| 1 |*| 2 1 = COA 1.10 = TEXT 1.10.current = 1 1.10.substring = 0,1 1.10.case = upper 1.20 = TEXT 1.20.current = 1 1.20.substring = 1, 1.20.case = lower 1.stdWrap.wrap = |- 2 < .1 2.stdWrap.wrap > } Gruppe.prepend = TEXT Gruppe.prepend.lang.de = Bundesland Gruppe.prepend.noTrimWrap = ||: | } } district < .state district { sql { SELECT.wrap = |, (SELECT Kreisname FROM 123_Kreis WHERE 123_Kreis.KreisNr=LPAD(LPAD(123_Ort.OrtNr,8,'0'),5,'')) AS Gruppe WHERE = LPAD(LPAD(OrtNr,8,'0'),5,'') IN({current:1}) WHERE.setCurrent { data = register:tx_mediaplaner_pi[region][district] split.1.stdWrap.wrap = 00000| split.1.substring = -5,5 split.2 < .split.1 split.2.wrap = '|' } # LIMIT.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_limit|district } results { Gruppe.split > Gruppe.prepend.lang.de = Kreis } } media { # Medianame Name { cObject = CASE cObject { GF < plugin.tx_mediaplaner_pi.media.GF.label GF = TEXT GV < plugin.tx_mediaplaner_pi.media.GV.label GV = TEXT SP < plugin.tx_mediaplaner_pi.media.SP.label SP = TEXT PF < plugin.tx_mediaplaner_pi.media.PF.label PF = TEXT GZ < plugin.tx_mediaplaner_pi.media.GZ.label GZ = TEXT VI < plugin.tx_mediaplaner_pi.media.VI.label VI = TEXT key.field = Typ } ifEmpty.field = Typ if.value.data = register:tx_mediaplaner_pi[mode] if.equals = expert # Append Quote in Expert Mode append = TEXT append { lang.de = Quote fieldRequired = Quote noTrimWrap =| (| 1:{field:Quote})| insertData = 1 } } } pieces { GF { SELECT = OrtNr, COUNT(*) AS FlaechenGesamt, LEAST(CEIL(GREATEST(ROUND(EW/{register:tx_mediaplaner_pi6_quote}),1)*{register:tx_mediaplaner_pi6_factor}),COUNT(*)) AS Flaechen, ROUND(AVG(Preis), 2) AS PreisTag, ROUND(LEAST(CEIL(GREATEST(ROUND(EW/{register:tx_mediaplaner_pi6_quote}),1)*{register:tx_mediaplaner_pi6_factor}),COUNT(*))*ROUND(AVG(Preis), 2)*{register:tx_mediaplaner_pi6_days},2) AS PreisZeitraum SELECT { override.cObject = COA override.cObject { 10 = LOAD_REGISTER 10.tx_mediaplaner_pi6_quote.field = Quote 10.tx_mediaplaner_pi6_quote.ifEmpty = 1 10.tx_mediaplaner_pi6_quote.intval = 1 20 = LOAD_REGISTER 20.tx_mediaplaner_pi6_factor.field = Factor 20.tx_mediaplaner_pi6_factor.ifEmpty = 1 20.tx_mediaplaner_pi6_factor.intval = 1 30 = LOAD_REGISTER 30.tx_mediaplaner_pi6_days = {$plugin.tx_mediaplaner_pi.days.GF} 30.tx_mediaplaner_pi6_days.ifEmpty = 7 } insertData = 1 } FROM = 123_StoFZ WHERE = OrtNr IN({field:OrtNr}) AND GJ='{current:1}' AND Typ='{field:Medien}' AND US IN('ST','BF','BS','BU','BX','CI','CS','EK','ES','FH','HB','PH','PR','QA','SC','SE','WH') WHERE.setCurrent { data = register:tx_mediaplaner_pi[dates] iEmpty.date = Y listNum = last stdWrap.listNum = 0 stdWrap.listNum.splitChar = | } WHERE.insertData = 1 GROUPBY = OrtNr ORDERBY = LIMIT = uidIndexField = OrtNr } GV { SELECT = OrtNr, Netzgroesse AS FlaechenGesamt, Netzgroesse AS Flaechen, ROUND((Wochenpreis/{$plugin.tx_mediaplaner_pi.days.GV})/Netzgroesse,2) AS PreisTag, Wochenpreis AS PreisZeitraum, IF(Besonderheiten LIKE '%hauptnetz%' OR Besonderheiten='', 1, 0) AS Sortierung FROM = 123_Medien WHERE = OrtNr IN({field:OrtNr}) AND Typ='megalight' AND Netzgroesse > 0 AND Wochenpreis > 0 WHERE.insertData = 1 GROUPBY = ORDERBY = Sortierung ASC, Netzgroesse ASC LIMIT = uidIndexField = OrtNr } SP < .GF SP { SELECT.override.cObject.30.tx_mediaplaner_pi6_days = {$plugin.tx_mediaplaner_pi.days.SP} WHERE = OrtNr IN({field:OrtNr}) AND Typ='{field:Medien}' } PF < .GF PF { SELECT.override.cObject.30.tx_mediaplaner_pi6_days = {$plugin.tx_mediaplaner_pi.days.PF} WHERE = OrtNr IN({field:OrtNr}) AND Typ='{field:Medien}' } GZ < .GF GZ { SELECT.override.cObject.30.tx_mediaplaner_pi6_days = {$plugin.tx_mediaplaner_pi.days.GZ} WHERE = OrtNr IN({field:OrtNr}) AND Typ='{field:Medien}' } # VI < .GV # VI { # SELECT = OrtNr, Netzgroesse AS FlaechenGesamt, Netzgroesse AS Flaechen, ROUND((Wochenpreis/{$plugin.tx_mediaplaner_pi.days.VI})/Netzgroesse,2) AS PreisTag, Wochenpreis AS PreisZeitraum, IF(Besonderheiten LIKE '%hauptnetz%' OR Besonderheiten='', 1, 0) AS Sortierung # WHERE = OrtNr IN({field:OrtNr}) AND Typ='citylight' AND Netzgroesse > 0 AND Wochenpreis > 0 # } VI < .GF VI { SELECT = OrtNr, StellenOrt AS FlaechenGesamt, StellenOrt AS Flaechen, Preis AS PreisTag, ROUND(Preis*StellenOrt*{register:tx_mediaplaner_pi6_days},2) AS PreisZeitraum, IF(Standort LIKE '%hauptnetz%' OR Standort LIKE '%vollnetz%', 1, 0) AS Sortierung SELECT.override.cObject.30.tx_mediaplaner_pi6_days = {$plugin.tx_mediaplaner_pi.days.VI} WHERE = OrtNr IN({field:OrtNr}) AND HS='VI' AND US='NZ' AND Netz='-1' GROUPBY = Paechter, GJ, StoNr, OrtNr ORDERBY = Sortierung ASC,Flaechen ASC, PreisTag DESC } } # prices { # # First run # 1 { # # Calculate selected billboards # Flaechen { # } # # Calculate dayprice # PreisTag { # } # } # # Second run # 2 { # # Calculate selected billboards # Flaechen { # } # } # # Third run # 3 { # # Calculate price for one period # PreisZeitraum { # } # } # } sums = EW,FlaechenGesamt,Flaechen,PreisTag,PreisZeitraum,PreisGesamt sums { PreisTag { stdWrap.dataWrap = |*{field:Flaechen} prioriCalc = 1 } # Complete price PreisGesamt { setCurrent { data = register:tx_mediaplaner_pi[dates] split.token = | } data = register:SPLIT_COUNT ifEmpty = 1 stdWrap.dataWrap = {field:PreisZeitraum}*| prioriCalc = 1 } postProcess { PreisTag { stdWrap.dataWrap = |/{field:Flaechen} prioriCalc = 1 numberFormat.decimals = 2 } } } # Configuration of printcosts # { # GF { Typ of media, like database field # 1 { Digital costs # NUM = PRICE First count and price for it # x = PRICE Price for further items # } # 2 { Offset costs # NUM = PRICE First count and price for it # x = PRICE Price for further items # } # } # } print { if.value.data = register:tx_mediaplaner_pi[print] if.value.substring = 0,1 if.equals = 1 # Spare posters mount { GF.setContentToCurrent = 1 GF.setCurrent.current = 1 GF.setCurrent.stdWrap.innerWrap.cObject = LOAD_RESGISTER GF.setCurrent.stdWrap.innerWrap.cObject.countDates.data = register:tx_mediaplaner_pi[dates] GF.setCurrent.stdWrap.innerWrap.cObject.countDates.split.token = | GF.setCurrent.stdWrap.innerWrap.override.data = register:SPLIT_COUNT GF.setCurrent.stdWrap.innerWrap.ifEmpty = 1 GF.setCurrent.stdWrap.innerWrap.wrap = |* GF.setCurrent.stdWrap.wrap = (|*1.1) GF.setCurrent.stdWrap.outerWrap.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_print|GF GF.setCurrent.stdWrap.outerWrap.required = 1 GF.setCurrent.stdWrap.outerWrap.wrap = |+ GF.setCurrent.prioriCalc = 1 GF.current = 1 GF.override.current = 1 GF.override.if.value.current = 1 GF.override.if.value.intval = 1 GF.override.if.isGreaterThan.current = 1 GF.override.stdWrap.wrap = |+1 GF.override.prioriCalc = 1 GF.intval = 1 GV < .GF GV.stdWrap.outerWrap.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_print|GV SP < .GF SP.stdWrap.outerWrap.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_print|SP GZ < .GF GZ.stdWrap.outerWrap.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_print|GZ VI < .GF VI.stdWrap.outerWrap.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_print|VI PF < .GF PF.stdWrap.outerWrap.data = TSFE:fe_user|sesData|tx_mediaplaner_pi6_print|PF } } } results { Gruppe.Name { Gruppe.field = Stadt } Gruppe.Medien { Name { setContentToCurrent = 1 lang.de = Städte override.lang.de = Stadt override.if.value.current = 1 override.if.equals = 1 noTrimWrap = |{current:1} || insertData = 1 } PreisTag { stdWrap.dataWrap = |/{field:Flaechen} prioriCalc = 1 numberFormat.decimals = 2 } } } json { output { redo = boolean error = string results = array EW = integer FlaechenGesmat = integer FlaechenGesamt { override = __UNSET override.if.value.data = register:tx_mediaplaner_pi[mode] override.if.equals = expert override.if.negate = 1 } Flaechen = integer PreisTag = float PreisZeitraum = float PreisZeitraum { override = __UNSET override.if.isFalse.data = register:tx_mediaplaner_pi[dates] override.if.isFalse.listNum = 1 } PreisGesamt = float printMount = integer printMount { override = __UNSET override.if.value.data = register:tx_mediaplaner_pi[print] override.if.value.substring = 0,1 override.if.equals = 1 override.if.negate = 1 } printCosts = float printCosts.override < .printMount.override debug = array } city { EW = integer Stadt = string Gruppe = string } media { FlaechenGesamt = integer FlaechenGesamt { override = __UNSET override.if.value.data = register:tx_mediaplaner_pi[mode] override.if.equals = expert override.if.negate = 1 } Flaechen = integer PreisTag = float PreisZeitraum = float PreisZeitraum { override = __UNSET override.if.isFalse.data = register:tx_mediaplaner_pi[dates] override.if.isFalse.listNum = 1 } PreisGesamt = float Name = string } } marks { AJAX_URL = TEXT AJAX_URL.typolink.parameter.data = TSFE:id AJAX_URL.typolink.parameter.wrap = |,457 AJAX_URL.typolink.returnLast = url } locallang { descSelect.wrap =

    |

    descResult.wrap =

    |

    toggleAll { setContentToCurrent = 1 setCurrent { current = 1 split.token = | split.returnKey = 1 htmlSpecialChars = 1 } split.token = | split.returnKey = 0 dataWrap = | } decade.override = ###LL_decadeExpert### decade.override.if.value.data = register:tx_mediaplaner_pi[mode] decade.override.if.equals = expert headMountTotal.override = headMountTotal.override.if.value.data = register:tx_mediaplaner_pi[mode] headMountTotal.override.if.equals = expert headMountTotal.override.if.negate = 1 headPricePeriod.override = headPricePeriod.override.if.isTrue.data = register:tx_mediaplaner_pi[dates] headPricePeriod.override.if.isTrue.listNum = 1 headPricePeriod.override.if.negate = 1 printCosts.split { token = | cObjNum = 1 |*| 1 |*| 2 1 = TEXT 1.current = 1 1.wrap = | 2 = TEXT 2.current = 1 } hintQuote { if.value.data = register:tx_mediaplaner_pi[mode] if.equals = expert wrap =

    |

    } hintDays { if.value.data = register:tx_mediaplaner_pi[mode] if.equals = expert wrap =

    |

    } legalNote.wrap =

    |

    hintSource.parseFunc.constants = 1 hintSource.wrap =

    |

    hintSource.insertData = 1 downloadPDF { stdWrap.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.R} stdWrap.typolink.parameter.wrap = |,458 stdWrap.typolink.additionalParams = &tx_mediaplaner_pi6[hash]=###DATA_hash###&tx_mediaplaner_pi6[type]= stdWrap.typolink.additionalParams.wrap = |pdf #stdWrap.typolink.ATagParams = pdf #stdWrap.typolink.ATagParams.wrap = onclick="return tx_mediaplaner_pi6.download('load', '|', this);" split.token = %23%23%23DATA_hash%23%23%23 split.cObjNum = 1 |*| 1 |*| 2 split.1.current = 1 split.1.wrap = |###DATA_hash### split.2.current = 1 wrap = | } downloadXLS < .downloadPDF downloadXLS { stdWrap.typolink.additionalParams.wrap = |xlsx #stdWrap.typolink.ATagParams = xlsx } } stdWrap_EXT { split { token.char = 10 cObjNum = 1 1 = TEXT 1.current = 1 1.trim = 1 } preCObject = COA preCObject { 10 = TEXT 10.data = LLL:EXT:mediaplaner/pi6/locallang.xml:save 10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.8} 10.typolink.parameter.noTrimWrap = || - csc-mailform-submit| 10.typolink.ATagParams = onclick="tx_mediaplaner_pi6.displayLoader(true);" 20 < .10 20.data = LLL:EXT:mediaplaner/pi6/locallang.xml:order 20.typolink.parameter.noTrimWrap = || - "csc-mailform-submit second"| 20.typolink.additionalParams = &tx_mediaplaner_pi8[order]=1 wrap =
    |
    } postCObject = COA postCObject.10 < .preCObject.10 postCObject.10.data = LLL:EXT:mediaplaner/pi6/locallang.xml:back postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.6} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
    |
    postCObject.20 < .preCObject postCObject.20.wrap =
    |
    } _CSS_DEFAULT_STYLE ( #tx-mediaplaner-pi6-loader { background-color: #000000; height: 100%; left: 0px; position: fixed; top: 0px; width: 100%; z-index: 456; -khtml-opacity: 0.8; -moz-opacity: 0.8; -webkit-opacity: 0.8; opacity: 0.8; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=80)"; filter: alpha(opacity=80); } @media all and (min-width:0) { #tx-mediaplaner-pi6-loader { -ms-filter: none \0/; filter: none \0/; } } /* IE9-IE10pp4 */ #tx-mediaplaner-pi6-loader .MacFFBGHack { background: url(../typo3conf/ext/mediaplaner/res/pi6/macFFBgHack.png) repeat; } /* IE6 hack */ * html #tx-mediaplaner-pi6-loader { height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); position: absolute; } #tx-mediaplaner-pi6-loaderImage { height: 13px; left: 50%; margin: -6px 0px 0px -104px; /* -height/2 0 0 -width/2 */ position: fixed; top: 50%; width: 208px; z-index: 457; } /* IE6 hack */ * html #tx-mediaplaner-pi6-loaderImage { margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); position: absolute; } @media print { #tx-mediaplaner-pi6-loader, #tx-mediaplaner-pi6-loaderImage { display: none; } } #tx-mediaplaner-pi6-results { display: none; margin-top: 25px; } #tx-mediaplaner-pi6-results.visible { display: block; } .tx-mediaplaner-pi6-downloads { float: right; margin-top: -9px; } .tx-mediaplaner-pi6-downloads .csc-uploads-fileName { float: left; margin-left: 20px; } .tx-mediaplaner-pi6-downloads .csc-uploads-fileName a { padding-left: 20px; } .tx-mediaplaner-pi6-toggleAll { float: right; padding: 3px 0px 8px 0px; } .tx-mediaplaner-pi6-tableHeader, .tx-mediaplaner-pi6-tableFooter { background: url(../typo3conf/ext/mediaplaner/res/pi6/table-header.gif) repeat-x; color: #000000; margin: 0px -15px 0px -12px; padding: 5px 15px 0px 12px; } .tx-mediaplaner-pi6-tableFooter { margin-top: 5px; } .tx-mediaplaner-pi6-tableHeader.print { background: none; display: none; } .tx-mediaplaner-pi6-tableHeader .variable, .tx-mediaplaner-pi6-tableFooter .variable { color: #000000; } .tx-mediaplaner-pi6-tableHeader .variable { padding-bottom: 8px; } @media print { .tx-mediaplaner-pi6-toggleAll { display: none; } .tx-mediaplaner-pi6-tableHeader, .tx-mediaplaner-pi6-tableFooter { background: none; border-top: 1px dotted #000000; } .tx-mediaplaner-pi6-tableHeader { page-break-after: avoid; page-break-inside: avoid; } .tx-mediaplaner-pi6-tableHeader.print { border-top: none; } .tx-mediaplaner-pi6-tableFooter { page-break-before: avoid; page-break-inside: avoid; } } .tx-mediaplaner-pi6 .variable-n1 { margin-right: 390px; } .tx-mediaplaner-pi6 .variable-n2 { margin-right: 95px; } .tx-mediaplaner-pi6-tableHeader .fixed, .tx-mediaplaner-pi6-tableFooter .fixed { clear: both; color: #000000; float: right; } .tx-mediaplaner-pi6-tableHeader .fixed { padding-bottom: 8px; } .tx-mediaplaner-pi6 .fixed-n1 { width: 390px; } .tx-mediaplaner-pi6 .fixed-n2 { width: 95px; } .tx-mediaplaner-pi6-tableHeader .fixed dl, .tx-mediaplaner-pi6-tableFooter .fixed dl { color: #000000; display: inline; float: left; margin: 0px; min-height: 1px; padding: 0px; } .tx-mediaplaner-pi6-tableHeader .fixed dl dt, .tx-mediaplaner-pi6-tableFooter .fixed dl dt { float: none; display: inline; margin: 0px; padding: 0px; } #tx-mediaplaner-pi6-items { left: -12px; position: relative; width: 638px; } .tx-mediaplaner-pi6-cityItem { padding: 3px 15px 3px 12px; } *:first-child+html .tx-mediaplaner-pi6-cityItem { width: 100%; } .tx-mediaplaner-pi6-cityItem.highlight { background: #E9E9E9; } .tx-mediaplaner-pi6-cityItem .fixed { float: right; margin-left: 8px; } .tx-mediaplaner-pi6-cityItem .fixed:first-child { color: #000000; } .tx-mediaplaner-pi6-cityItem .fixed dl { display: inline; float: left; margin: 0px 0px 8px 0px; padding: 0px; } *:first-child+html .tx-mediaplaner-pi6-cityItem .fixed dl { margin-bottom: 0px; padding-bottom: 8px; } .tx-mediaplaner-pi6-cityItem .fixed dl dt { float: none; display: inline; margin: 0px; padding: 0px; } .tx-mediaplaner-pi6-cityItem .note.tooltip span { text-align: center; } @media print { #tx-mediaplaner-pi6-items { left: auto; position: static; width: auto; } .tx-mediaplaner-pi6-cityItem { margin: 0px -15px 0px -12px; page-break-inside: avoid; } } .tx-mediaplaner-pi6-cityName { padding-bottom: 8px; } ) } [globalVar = TSFE:id = {$plugin.tx_mediaplaner_pi.pages.R}] page.457 = COA page.457 { 10 = TEXT 10.value = 10.wrap =
    |
    20 = IMAGE 20.file = EXT:mediaplaner/res/pi6/loading.gif 20.wrap =
    |
    } [global] # Configuration for the page "mediaplaner_pi6->ajax" mediaplaner_pi6_json = PAGE mediaplaner_pi6_json { typeNum = 457 config { disableAllHeaderCode = 1 disableCharsetHeader = 1 xhtml_cleaning = 0 additionalHeaders = Content-Type: application/json; charset=utf-8 } 10 = ajax 10.templateFile = EXT:mediaplaner/res/pi6/ajax.htm } # Configuration for the page "mediaplaner_pi6->download" mediaplaner_pi6_save = PAGE mediaplaner_pi6_save { typeNum = 458 config { disableAllHeaderCode = 1 disableCharsetHeader = 1 tx_realurl_enable = 0 } 10 = download } [globalVar = TSFE:type = 458] && [globalVar = GP:tx_mediaplaner_pi6|type = pdf] mediaplaner_pi6_save.10 { templateFile = EXT:mediaplaner/res/pi6/pdf.htm results.city { highlight { cObject = LOAD_REGISTER cObject { tx_mediaplaner_pi6_highlight = 0 tx_mediaplaner_pi6_highlight.override = 1 tx_mediaplaner_pi6_highlight.override.if.isFalse.data = register:tx_mediaplaner_pi6_highlight } if.isTrue.data = register:tx_mediaplaner_pi6_highlight noTrimWrap = || class="highlight" } EW { numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } } results.Medien { FlaechenGesamt { setContentToCurrent = 1 setCurrent { current = 1 numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } current = 1 override =   override.if.value.data = register:tx_mediaplaner_pi[mode] override.if.equals = expert override.if.negate = 1 } Flaechen { numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } PreisTag { numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = || €| } PreisZeitraum { setContentToCurrent = 1 setCurrent { current = 1 numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = || €| } current = 1 override =   override.if.isTrue.data = register:tx_mediaplaner_pi[dates] override.if.isTrue.listNum = 1 override.if.negate = 1 } PreisGesamt { numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = || €| } } results.Gruppe.Name < .results.city results.Gruppe.Name.Stadt.wrap = | results.Gruppe.Medien < .results.Medien results.Gruppe.Medien { PreisTag { noTrimWrap = |ø | €| } } data { EW { numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } FlaechenGesamt { setContentToCurrent = 1 setCurrent { current = 1 numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } current = 1 override =   override.if.value.data = register:tx_mediaplaner_pi[mode] override.if.equals = expert override.if.negate = 1 } Flaechen { setContentToCurrent = 1 numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } PreisTag { numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = |ø | €| } PreisZeitraum { setContentToCurrent = 1 setCurrent { current = 1 numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = || €| } current = 1 override =   override.if.isTrue.data = register:tx_mediaplaner_pi[dates] override.if.isTrue.listNum = 1 override.if.negate = 1 } PreisGesamt { numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = || €| } printMount { numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } printCosts < .PreisTag printCosts { noTrimWrap = |ca. | €| } } locallang { descSelect.wrap = descResult.wrap = headMountTotal.override =   headPricePeriod.override =   printCosts.split.1.wrap = |###DATA_printMount### } } [global] [globalVar = TSFE:type = 458] && [globalVar = GP:tx_mediaplaner_pi6|type = xls, GP:tx_mediaplaner_pi6|type = xlsx] mediaplaner_pi6_save.10 { templateFile = EXT:mediaplaner/res/pi6/excel.htm parse { mode { htmlSpecialChars = 1 wrap = | } dates { setCurrent { current = 1 stdWrap.substring = 0,-3 split.token = |*| split.cObjNum = 1 |*| 2 |*| 2 split.1.current = 1 split.2.current = 1 split.2.outerWrap = | split.2.outerWrap.if.isTrue.data = register:SPLIT_COUNT split.wrap = } htmlSpecialChars = 1 noTrimWrap = ||:{current:1}| } planing.setCurrent < .dates.setCurrent planing { htmlSpecialChars = 1 noTrimWrap = ||:{current:1}| } region.setCurrent < .dates.setCurrent region { htmlSpecialChars = 1 noTrimWrap = ||:{current:1}| } citizen { setCurrent.numberFormat.thousands_sep = htmlSpecialChars = 1 noTrimWrap = ||:{current:1}| } optimization.setCurrent < .dates.setCurrent optimization { htmlSpecialChars = 1 noTrimWrap = ||:{current:1}| } optimization_own { noTrimWrap = ||:{current:1}| } print { htmlSpecialChars = 1 noTrimWrap = ||:{current:1}| } } kampagne { 1.label.wrap = | 1.desc.noTrimWrap = | (|)| 1.desc.append = TEXT 1.desc.append.value = |*| 2 < .1 3 < .1 4 < .1 } media { GF.label.wrap = | GF.quote { noTrimWrap = | || append = TEXT append.value = |*| } GV < .GF SP < .GF PF < .GF GZ < .GF VI < .GF } search < plugin.tx_mediaplaner_pi6.search search { city.results.name.wrap = | state.results.name.wrap = | state.results.name.prepend.noTrimWrap = ||: | state.results.name.outerWrap = | district.results.name.wrap = | district.results.name.prepend.noTrimWrap = ||: | district.results.name.outerWrap = | } optimization { 1.label.wrap = | 1.label.append = TEXT 1.label.append.value = |*| 2.label.wrap = | 2.label.append < .1.label.append 3.label.lang.de = Optimiert nach dem QSS® (Qualitäts-Selektions-System) 3.label.wrap = | 3.label.append < .1.label.append 4.label.wrap = | 4.label.append < .1.label.append 5.label.wrap = | 5.label.append < .1.label.append } print { 1.options.2.label.append { setCurrent.cObject = override.if.value.data = register:tx_mediaplaner_pi[mode] override.if.equals = expert override.if.negate = 1 outerWrap = | outerWrap.if < .override.if outerWrap.if.negate > } PreisZeitraum { override = override.if.isTrue.data = register:tx_mediaplaner_pi[dates] override.if.isTrue.listNum = 1 override.if.negate = 1 outerWrap = | outerWrap.if < .override.if outerWrap.if.negate > } } results.Gruppe.Name < .results.city results.Gruppe.Name { highlight { override = 5 override.override = 4 } } results.Gruppe.Medien < .results.Medien data { FlaechenGesamt { override = override.if.value.data = register:tx_mediaplaner_pi[mode] override.if.equals = expert override.if.negate = 1 outerWrap = | outerWrap.if < .override.if outerWrap.if.negate > } PreisTag { numberFormat.decimals = 2 numberFormat.dec_point = , numberFormat.thousands_sep = . noTrimWrap = |ø | €| } PreisZeitraum { override = override.if.isTrue.data = register:tx_mediaplaner_pi[dates] override.if.isTrue.listNum = 1 override.if.negate = 1 outerWrap = | outerWrap.if < .override.if outerWrap.if.negate > } printMount { numberFormat.decimals = 0 numberFormat.dec_point = numberFormat.thousands_sep = . } printCosts < .PreisTag printCosts { noTrimWrap = |ca. | €| } } locallang { descSelect.wrap = descResult.wrap = headCity { split.token =
    split.cObjNum = 1 |*| 1 |*| 2 split.1.current = 1 split.1.wrap = | split.2.current = 1 } headCitizen.split < .headCity.split headMountTotal.override = headMountTotal.split < .headCity.split headMount.split < .headCity.split headPriceDay.split < .headCity.split headPricePeriod.override = headPricePeriod.split < .headCity.split headPriceTotal.split < .headCity.split printCosts.split.1.wrap = |###DATA_printMount### legalNote.wrap = | hintQuote.wrap = | hintQuote.wrap2 = | hintDays.wrap = | hintDays.wrap2 = | hintSource.split < .headCity.split hintSource.wrap = | } marks { CREATED = TEXT CREATED.date = Y-m-d\TH:i:s\Z } } [global] # Configuration for the plugin "mediaplaner_pi8" plugin.tx_mediaplaner_pi8 { debug = 1 templateFile = EXT:mediaplaner/res/pi8/template.htm templateFile.override = EXT:mediaplaner/res/pi8/template_order.htm templateFile.override.if.isTrue.data = GP:tx_mediaplaner_pi8|order javascriptFile = EXT:mediaplaner/res/pi8/javascript.js prevPage = R nextPage = fileExt = fileExt.wrap < plugin.tx_mediaplaner_pi6.locallang.downloadXLS.stdWrap.typolink.additionalParams.wrap createFile < plugin.tx_mediaplaner_pi6.locallang.downloadXLS createFile { #stdWrap.typolink.forceAbsoluteUrl = 1 #stdWrap.typolink.forceAbsoluteUrl.scheme = http stdWrap.typolink.returnLast = url wrap = | } formular { type.typolink.additionalParams.data = GP:tx_mediaplaner_pi8|order type.typolink.additionalParams.if.isTrue.data = GP:tx_mediaplaner_pi8|order type.typolink.additionalParams.rawUrlEncode = 1 type.typolink.additionalParams.wrap = &tx_mediaplaner_pi8[order]=| } marks { AJAX_url = TEXT AJAX_url { typolink.parameter.data = TSFE:id typolink.parameter.wrap = |,459 typolink.returnLast = url } ORDER = TEXT ORDER { data = GP:tx_mediaplaner_pi8|order intval = 1 } TRACK_url = TEXT TRACK_url { value = --Planeranfrage-- override = --Planerbuchung-- override.if.isTrue.data = GP:tx_mediaplaner_pi8|order } } piVars { removeBadHTML = 1 htmlSpecialChars = 1 htmlSpecialChars.preserveEntities = 1 } data { firstname.data = register:tx_mediaplaner_pi8[firstname] name.data = register:tx_mediaplaner_pi8[name] company.data = register:tx_mediaplaner_pi8[company] address.data = register:tx_mediaplaner_pi8[address] zip.data = register:tx_mediaplaner_pi8[zip] city.data = register:tx_mediaplaner_pi8[city] telephone.data = register:tx_mediaplaner_pi8[telephone] fax.data = register:tx_mediaplaner_pi8[fax] email.data = register:tx_mediaplaner_pi8[email] comments.data = register:tx_mediaplaner_pi8[comments] } locallang { description { wrap =

    |

    } descriptionOrder < .description descriptionPay < .description title_fields { split.token = , split.cObjNum = 1 split.1 { current = 1 required = 1 split.token = = split.cObjNum = 1 |*| 1 |*| 2 split.1.current = 1 split.1.noTrimWrap = | value="|"| split.1.append = TEXT split.1.append { value = selected if.value.data = register:tx_mediaplaner_pi8[title] if.equals.current = 1 noTrimWrap = | selected="|"| } split.2.current = 1 split.2.wrap = >| wrap = } } country_fields < .title_fields country_fields { split.1 { split > override.setCurrent = selected override.setCurrent { if.value.data = register:tx_mediaplaner_pi8[country] if.value.ifEmpty.lang.de = Deutschland if.equals.current = 1 noTrimWrap = | selected="|"| } wrap > dataWrap = | } } confirmHeader.wrap =

    |

    confirmOrderHeader < .confirmHeader confirmText.brTag =
    confirmOrderText < .confirmText confirmButton { stdWrap.noTrimWrap = |» || typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.R} typolink.parameter.noTrimWrap = || - csc-mailform-button } closeButton < .confirmButton closeButton { typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.1} typolink.additionalParams = &clearQuery=1 wrap = |
    } descriptionOrder { parseFunc.constants = 1 } revocationDesc { parseFunc.constants = 1 } termsDesc { parseFunc.constants = 1 } } # Mail Constructor mail { subject { setCurrent { data = page:title override.lang.de = Bestellung override.if.isTrue.data = GP:tx_mediaplaner_pi8|order } data = TSFE:tmpl|sitetitle dataWrap = |: {current:1} } recipient { address.data = register:tx_mediaplaner_pi8[email] # name.data = register:tx_mediaplaner_pi8[name] # name.dataWrap = |, {register:tx_mediaplaner_pi8[firstname]} # name.prepend = TEXT # name.prepend { # data = register:tx_mediaplaner_pi8[company] # required = 1 # noTrimWrap = || - | # } } # cc.1 { # address = email@address.com # name = Recipient name # } bcc.1 { address = {$plugin.tx_mediaplaner_pi.mail.recipient} # name = Recipient name } } # HTML Template mailTemplate.html = TEMPLATE mailTemplate.html { template = FILE template.file = EXT:mediaplaner/res/pi8/mailTemplate.htm subparts.MENU = HMENU subparts.MENU { special = list special.value = includeNotInMenu = 1 1 = TMENU 1.NO.linkWrap = | |  |*| | |  |*| | 1.NO.ATagParams = style="color: #868686;" } subparts.LOGO = {$terms.tel} oder per E-Mail an {$terms.email}. Mit freundlichen Grüßen {$portal.salutation} ) override.lang.de ( Hallo ###USER_firstname### ###USER_name###, vielen Dank für Deine Bestellung. Die Plandaten mit Kosten, Standortliste und Deinen Kontaktdaten entnimm bitte dieser E-Mail bzw. den angehängten Dateien. Der Auftrag gilt als erteilt, jedoch noch nicht als bestätigt, da Deine Standort-Buchungen erst von den Eigentümern der Werbestandorte freigegeben werden müssen. Sobald die Freigaben vorliegen erhälst Du eine Auftragsbestätigung und Abrechnungsübersicht per E-Mail. Bei Rückfragen wende Dich bitte an unsere Hotline {$terms.tel} oder per E-Mail an {$terms.email}. Mit freundlichen Grüßen {$portal.salutation} ) override.if.isTrue.data = GP:tx_mediaplaner_pi8|order trim = 1 brTag =
    } marks.PERSONALDATA = TEXT marks.PERSONALDATA { lang.en = Personal information lang.de = Kontaktdaten } marks.PERSONALDATA_USER = COA marks.PERSONALDATA_USER { 10 = COA 10 { 10 = TEXT 10 { data = register:tx_mediaplaner_pi8[title] required = 1 noTrimWrap = |
    |
       | } stdWrap { required = 1 noTrimWrap = ||
    | } } 20 < .10 20 { 10.data = register:tx_mediaplaner_pi8[firstname] 20 < .10 20.data = register:tx_mediaplaner_pi8[name] } 30 < .10 30 { 10.data = register:tx_mediaplaner_pi8[address] } 40 < .20 40 { 10.data = register:tx_mediaplaner_pi8[zip] 20.data = register:tx_mediaplaner_pi8[city] } 50 < .10 50 { 10.data = register:tx_mediaplaner_pi8[country] } 60 < .20 60 { 10.override.lang.de = Telefon: 10.if.isTrue.data = register:tx_mediaplaner_pi8[telephone] 20.data = register:tx_mediaplaner_pi8[telephone] 30 < .10 30.override.lang.de = Fax: 30.if.isTrue.data = register:tx_mediaplaner_pi8[fax] 40 < .20 40.data = register:tx_mediaplaner_pi8[fax] } 70 < .20 70 { 10.override.lang.de = E-Mail Adresse: 10.if.isTrue.data = register:tx_mediaplaner_pi8[email] 20.data = register:tx_mediaplaner_pi8[email] 20.wrap = | 20.insertData = 1 } 80 < .20 80 { 10.override.lang.de = Bemerkungen: 10.if.isTrue.data = register:tx_mediaplaner_pi8[comments] 20.data = register:tx_mediaplaner_pi8[comments] } } subparts.HOTLINE = TEXT subparts.HOTLINE { lang.en ( Hotline: {$terms.tel} | E-Mail: {$terms.email} Monday to Fryday: 8:00 am - 05:00 pm ) lang.de ( Hotline: {$terms.tel} | E-Mail: {$terms.email} Montag bis Freitag: 8:00 - 17:00 Uhr ) trim = 1 brTag =
    } marks.ADDRESS = TEXT marks.ADDRESS { lang.en ( {$terms.company} {$terms.address} {$terms.zip} {$terms.city} Germany ) lang.de ( {$terms.company} {$terms.address} {$terms.zip} {$terms.city} Deutschland ) trim = 1 brTag =
    } marks.IMPRINT = TEXT marks.IMPRINT { lang.en ( {$imprint.legalinfo} Managing directors: {$imprint.directors} ) lang.de ( {$imprint.legalinfo} Geschäftsführer: {$imprint.directors} ) trim = 1 brTag =
    } stdWrap.split { token.char = 10 cObjNum = 1 1 = TEXT 1.current = 1 1.trim = 1 } } # Text template mailTemplate.text = TEMPLATE mailTemplate.text { template = FILE template.file = EXT:mediaplaner/res/pi8/mailTemplate.txt subparts.MENU = {current:1}| 10.insertData = ! 20 = TEXT 20.char = 10 } } 1.NO.linkWrap = | stdWrap.trim = 1 } marks.TITLE = } marks.ORDERTEXT = | } } stdWrap_EXT { split { token.char = 10 cObjNum = 1 1 = TEXT 1.current = 1 1.trim = 1 } preCObject = TEXT preCObject { data = LLL:EXT:mediaplaner/pi8/locallang.xml:save override.data = LLL:EXT:mediaplaner/pi8/locallang.xml:order override.if.isTrue.data = GP:tx_mediaplaner_pi8|order typolink.parameter.data = TSFE:id typolink.parameter.noTrimWrap = || - csc-mailform-submit| typolink.ATagParams = tx_mediaplaner_pi8.submit(); typolink.ATagParams.noTrimWrap = |onclick="| return false;"| wrap =
    |
    } postCObject = COA postCObject.10 < .preCObject postCObject.10.data = LLL:EXT:mediaplaner/pi8/locallang.xml:back postCObject.10.override > postCObject.10.typolink.parameter.data > postCObject.10.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.R} postCObject.10.typolink.ATagParams > postCObject.10.wrap =
    |
    postCObject.20 < .preCObject postCObject.20.wrap =
    |
    } _CSS_DEFAULT_STYLE ( .tx-mediaplaner-pi8-groups { margin: 0px -15px 0px -12px; padding: 3px 15px 3px 12px; } .tx-mediaplaner-pi8-groups.highlight { background: #F4F4F4; } .tx-mediaplaner-pi8-groupName { margin: 0px; padding: 0px 0px 12px 0px; } .tx-mediaplaner-pi8-positions { line-height: 16px; margin-left: 66px; } .tx-mediaplaner-pi8-positions a { color: #002046; } .tx-mediaplaner-pi8-require span { color: #CC3333; font-weight: bold; } .tx-mediaplaner-pi8 input.error-required, .tx-mediaplaner-pi8 select.error-required, .tx-mediaplaner-pi8 textarea.error-required, .tx-mediaplaner-pi8 input.error-pattern, .tx-mediaplaner-pi8 select.error-pattern, .tx-mediaplaner-pi8 textarea.error-pattern { border-color: #CC3333; } .tx-mediaplaner-pi8-window { padding: 30px 40px; } .tx-mediaplaner-pi8-window h2 { padding-bottom: 0px; } .tx-mediaplaner-pi8-window p { margin-right: 200px; padding-top: 3px !important; } .tx-mediaplaner-pi8-window p span label { display: block; } .tx-mediaplaner-pi8-window a.csc-mailform-button, #TB_window .tx-mediaplaner-pi8-window a.csc-mailform-button { color: #FFFFFF; float: right; } .tx-mediaplaner-pi8-window a.csc-mailform-button.left, #TB_window .tx-mediaplaner-pi8-window a.csc-mailform-button.left { float: left; } .tx-mediaplaner-pi8-window .line { border-bottom: 1px dashed #ACA89C; clear: both; font-size: 0px; height: 0px; line-height: 0px; margin: 20px 0px; } #txmediaplanerpi8-confirm { display: none; } ) } # Configuration for the page "mediaplaner_pi8->ajax" mediaplaner_pi8_json = PAGE mediaplaner_pi8_json { typeNum = 459 config { disableCharsetHeader = 1 disableAllHeaderCode = 1 disableImgBorderAttr = 0 no_cache = 1 doctype = 0 xhtmlDoctype = 0 xhtml_cleaning = 0 additionalHeaders = Content-Type: application/json; charset=utf-8 additionalHeaders = Content-Type: application/json; charset=utf-8|Access-Control-Allow-Origin: {$config.protocol.off}{$config.hostname} noPageTitle = 1 baseURL = 0 absRefPrefix = {$config.baseurl} #absRefPrefix := replaceString(https:|http:) intTarget = _blank extTarget = _blank } 10 < plugin.tx_mediaplaner_pi8 10.stdWrap > 10.userFunc = tx_mediaplaner_pi8->ajax } # Configuration for the plugin "mediaplaner_menu" plugin.tx_mediaplaner_menu { templateFile = EXT:mediaplaner/res/menu/template.htm javascriptFile = EXT:mediaplaner/res/menu/javascript.js data.menu.cObject = HMENU data.menu.cObject { special = list special.value = {$plugin.tx_mediaplaner_pi.pages.1},{$plugin.tx_mediaplaner_pi.pages.2},{$plugin.tx_mediaplaner_pi.pages.3},{$plugin.tx_mediaplaner_pi.pages.4},{$plugin.tx_mediaplaner_pi.pages.5},{$plugin.tx_mediaplaner_pi.pages.6},{$plugin.tx_mediaplaner_pi.pages.R},{$plugin.tx_mediaplaner_pi.pages.8} includeNotInMenu = 1 1 = TMENU 1.NO { additionalParams { if.isTrue.data = register:tx_mediaplaner_pi[print] if.isTrue.if { value = {$plugin.tx_mediaplaner_pi.pages.R},{$plugin.tx_mediaplaner_pi.pages.8},{$plugin.tx_mediaplaner_pi.pages.9} isInList.field = uid negate = 1 } if.value.data = TSFE:id if.equals = {$plugin.tx_mediaplaner_pi.pages.R} stdWrap.typolink.parameter = {$plugin.tx_mediaplaner_pi.pages.R} stdWrap.typolink.returnLast = url rawUrlEncode = 1 wrap = &redirectUrl=| } stdWrap2 { setCurrent = ready setCurrent.if.isTrue.data = register:count_MENUOBJ setCurrent.if.isTrue.wrap = {register:tx_mediaplaner_menu[step|]} setCurrent.if.isTrue.insertData = 1 innerWrap =

    |

    innerWrap.if.value.field = uid innerWrap.if.equals = {$plugin.tx_mediaplaner_pi.pages.R} innerWrap.if.negate = 1 outerWrap =

    |

    outerWrap.if < .innerWrap.if outerWrap.if.negate > insertData = 1 } } } locallang { errorHeader.wrap =

    |

    errorButton { stdWrap.noTrimWrap = |» || typolink.parameter.data = TSFE:id typolink.parameter.noTrimWrap = || - csc-mailform-button typolink.ATagParams = onclick="tx_mediaplaner_pi.errorWindow(false); return false;" wrap = |
    } } stdWrap { split { token.char = 10 cObjNum = 1 1 = TEXT 1.current = 1 1.trim = 1 } } _CSS_DEFAULT_STYLE ( .tx-mediaplaner-menu { margin-bottom: 16px; position: relative; } .tx-mediaplaner-menu .header { color: #B9B8B8; font-size: 11px; height: 20px; margin: 15px 0px 6px 0px; padding: 6px 0px 0px 19px; position: relative; width: 231px; } .tx-mediaplaner-menu .header.ready:after, .tx-mediaplaner-menu .header.ready .after { content: url(../typo3conf/ext/mediaplaner/res/menu/ready.gif); height: 20px; position: absolute; right: 30px; top: 3px; width: 20px; } *:first-child+html .tx-mediaplaner-menu .header.ready .after { background: url(../typo3conf/ext/mediaplaner/res/menu/ready.gif) no-repeat; } .tx-mediaplaner-menu .header.n1 { background: url(../typo3conf/ext/mediaplaner/res/menu/n1.gif) no-repeat; } .tx-mediaplaner-menu .header.n2 { background: url(../typo3conf/ext/mediaplaner/res/menu/n2.gif) no-repeat; } .tx-mediaplaner-menu .header.n3 { background: url(../typo3conf/ext/mediaplaner/res/menu/n3.gif) no-repeat; } .tx-mediaplaner-menu .header.n4 { background: url(../typo3conf/ext/mediaplaner/res/menu/n4.gif) no-repeat; } .tx-mediaplaner-menu .header.n5 { background: url(../typo3conf/ext/mediaplaner/res/menu/n5.gif) no-repeat; } .tx-mediaplaner-menu .header.n6 { background: url(../typo3conf/ext/mediaplaner/res/menu/n6.gif) no-repeat; } .tx-mediaplaner-menu .header.n7 { background: url(../typo3conf/ext/mediaplaner/res/menu/n7.gif) no-repeat; } .tx-mediaplaner-menu .header.n8 { background: url(../typo3conf/ext/mediaplaner/res/menu/n8.gif) no-repeat; } .tx-mediaplaner-menu .header.n9 { background: url(../typo3conf/ext/mediaplaner/res/menu/n9.gif) no-repeat; } .tx-mediaplaner-menu .header.nR { background: url(../typo3conf/ext/mediaplaner/res/menu/nR.gif) no-repeat; } .tx-mediaplaner-menu .header a {color: inherit;} .tx-mediaplaner-menu .subheader { color: #B9B8B8; font-size: 11px; font-weight: normal; margin: -12px 0px 6px 0px; padding: 0px 0px 0px 19px; width: 231px; } #tx-mediaplaner-menu-error { display: none; } .tx-mediaplaner-menu-window { padding: 30px 40px; } .tx-mediaplaner-menu-window h2 { padding-bottom: 0px; } .tx-mediaplaner-menu-window p { margin-right: 200px; padding-top: 3px !important; } .tx-mediaplaner-menu-window p span label { display: block; } .tx-mediaplaner-menu-window a.csc-mailform-button, #TB_window .tx-mediaplaner-menu-window a.csc-mailform-button { color: #FFFFFF; float: right; } .tx-mediaplaner-menu-window a.csc-mailform-button.left, #TB_window .tx-mediaplaner-menu-window a.csc-mailform-button.left { float: left; } .tx-mediaplaner-menu-window .line { border-bottom: 1px dashed #ACA89C; clear: both; font-size: 0px; height: 0px; line-height: 0px; margin: 20px 0px; } ) }