Autor Subiect: accesarea contentului din pagina curenta in extensie  (Citit de 409 ori)

tiberiu

  • Novice
  • *
  • Mesaje postate: 212
    • http://www.arobs.com
accesarea contentului din pagina curenta in extensie
« : Februarie 12, 2011, 09:19:07 pm »
Salut,

am avut recent o problema in care a trebuit sa fac un meniu custom, cu ceva logica mai complicata si a trebuit sa-l fac in extensie... nu era suficient typoscript-ul HMENU si TMENU.

In typoscript aveam o linie de genul acesta:

subparts.PAGE_SUBMENU < plugin.tx_contentmanagement_pi1
subparts.PAGE_SUBMENU.cmd = SUBMENU

Toate bune si frumoase, pana cand specificatiile s-au schimbat si clientul a vrut ca daca intr-o pagina nu exista subpagini din care sa se genereze submeniul, atunci sa apara un content pus de el in sectiunea BORDER (ceea ce in typoscript facem simplu cu styles.content.getBorder). Provocarea? Cum sa fac ca daca nu exista submeniu (simplu de verificat, desigur) sa-mi apara ce e in sectiunea BORDER... (relativ dificil as zice eu) ?

Se putea face tot din cu selecturi in tabela tt_content si cu parsari ale content-ului... etc. etc. ... dar am gasit o metoda mai simpla.

Iata codul typoscript:

  subparts.PAGE_SUBMENU < plugin.tx_contentmanagement_pi1
    subparts.PAGE_SUBMENU.cmd = SUBMENU
    subparts.PAGE_SUBMENU.content.cObject < styles.content.getBorder
    subparts.PAGE_SUBMENU.content.cObject.slide = -1
    subparts.PAGE_SUBMENU.content.cObject.wrap = <div id="benefits" class="nobborder">|</div>

Iata codul php:

// if subpages exists... create the menu;
if ($GLOBALS['TYPO3_DB']->sql_num_rows($res) > 0) {
// aici se creaza submeniul... sar peste sectiunea asta.
} else {
                                 // aici e partea interesanta prin care transmit la o functie core typoscriptul pus in 'content'
$content= $this->cObj->stdWrap($conf['content'],$conf['content.']);
}


Rezultatul este generarea contentului html exact asa cum s-ar genera daca ar fi pus direct, in felul acesta:  subparts.PAGE_SUBMENU < styles.content.getBorder

Sper ca-i vor fi de folos cuiva codul de mai sus...

« Ultima Modificare: Aprilie 23, 2011, 06:26:06 pm de tiberiu »
Tiberiu Contiu
PHP System Architect
AROBS Transilvania Software
str. Minerilor, nr. 63, Cluj-Napoca

www.arobs.ro , www.arobs.com

E-mail: tiberiu.contiu(at)arobs.com , tiberiu.contiu(at)yahoo.com
Skype:  tiberiu.contiu