azec.me
azec.me

Reputation: 5078

IF condition TypoScript for cObject

I have HMENU and TMENU inside. For TMENU.NO.after property I need to dinamically assign cObject based on current page uid?

Code:

#Privatni podmeni
lib.meni= HMENU
lib.meni.special = list
lib.meni.special.value = 5395, 5396, 5397, 5398
lib.meni.wrap = <ul id="menu" style="display:none;">|</ul>
lib.meni.1 = TMENU

    lib.meni.1{
      expAll = 1
      NO {

       allWrap = <li>|</li>
       ATagParams.insertData = 1
       ATagParams = class="drop _{field:uid}"
       after.cObject < temp.meni5
      }
    }

I need this in pseudo-code:

IF field:uid = 5240
   after.cObject < temp.meni5
IF field:uid = 5241
   after.cObject < temp.meni6
IF field:uid = 5342
   after.cObject < temp.meni7

How can I do this?

Upvotes: 0

Views: 2493

Answers (2)

azec.me
azec.me

Reputation: 5078

I was able to get this done by using CASE object in TS. Here is example code:

temp.meni0= HMENU
temp.meni0.special = list
temp.meni0.special.value = 5417, 5418, 5419, 5420, 5421
temp.meni0.wrap = <div class="dropdown_5columns"><div class="col_1"><ul>|</ul></div></div>
temp.meni0.1 = TMENU

temp.meni0.1{
  expAll = 1
  NO {
   allWrap = <li>|</li>
   #ATagParams.insertData = 1
   #ATagParams = class="drop"

  }
}


temp.meni6= HMENU
temp.meni6 < temp.meni0
temp.meni6.special.value = 5431, 5432, 5433, 5434, 5435
temp.meni6.wrap = <div class="dropdown_5columns m-144"><div class="col_1"><ul>|</ul></div></div>


temp.meni7= HMENU
temp.meni7 < temp.meni0
temp.meni7.special.value = 5456, 5457, 5458, 5459, 5460
temp.meni7.wrap = <div class="dropdown_5columns m-288"><div class="col_1"><ul>|</ul></div></div>



temp.meni8= HMENU
temp.meni8 < temp.meni0
temp.meni8.special.value = 5466, 5467, 5470, 5471, 5472
temp.meni8.wrap = <div class="dropdown_5columns m-432"><div class="col_1"><ul>|</ul></div></div>

lib.meni= HMENU
lib.meni.special = list
lib.meni.special.value = 5395, 5396, 5397, 5398
lib.meni.wrap = <ul id="menu" style="display:none;">|</ul>
lib.meni.1 = TMENU
lib.meni.1{
  expAll = 1
  NO {

   allWrap = <li>|</li>
   ATagParams.insertData = 1
   ATagParams = class="drop _{field:uid}"

    #after.cObject < temp.meni5
    after.cObject = CASE
    after.cObject {
      key.field = uid
      default = TEXT
      default.value = <span>NIJE OK!</span>

      5395 < temp.meni0
      5396 < temp.meni6
      5397 < temp.meni7
      5398 < temp.meni8
    }

  }
}

With this, I am able to insert very specific submenus for each menu item (page) of lib.menu

Upvotes: 1

Viktor Livakivskyi
Viktor Livakivskyi

Reputation: 3228

You can use COA cObject and set it partially:

lib.meni.1.NO.after.cObject = COA
lib.meni.1.NO.after.cObject {
  10 < temp.meni5
  10.if.equals.field = uid
  10.if.value = 5240

  20 < temp.meni6
  20.if.equals.field = uid
  20.if.value = 5241

  30 < temp.meni7
  30.if.equals.field = uid
  30.if.value = 5342
}

But this will work in case your objects in temp.meni5, temp.meni6, temp.meni7 support stdWrap. Check TSref for details.

Upvotes: 1

Related Questions