Nos, egy átmeneti megoldást találtam. Olyan átmeneti, mint az átmeneti kabát: átmenet a megoldás meg a gányolás között. Na, szóval a kövi van:
Létre kell hozni egy új template-t, block--system--main.tpl.php néven, majd:
<?php if(strstr($content, '<div id="first-time">')) : ?>
<!-- ide jön a formázás. Ez egy blokk, aminek nincs címe,
így adok neki egyet, mert a HTML oldalszerkezet ezt itt megköveteli -->
<div id="node-first-time" class="node">
<div class="nodehead autoheight">
<h2><?php print drupal_get_title(); ?></h2>
</div>
<div class="nodebody">
<?php print $content; ?>
</div>
</div>
<!-- No, akkor ez nem az volt, megyünk tovább, mintha semmi nem lenne itt -->
<?php else : print $content; endif; ?>
Kis magyarázat: az if-et nem mondom el, az nyilvánvaló, viszont mivel ez a blokk rendereli le az összes többi cuccost is, tehát például a föoldalon a cikklistát is, így mindenképpen le kell kezelni azt az esetet, amikor az oldal már normálisan müködik.
Ha valakinek van ennél még kevésbé gányolás szagú megoldása, ne tartsa magában. Alapvetően ezt a strstr() hívást kellene körbedolgozni, de nem tudom ennél atomibb szintre lebontani ezt a blokkot.
Update:
Megtaláltam az ideális megoldást.
template.php:
function TEMANEVE_preprocess_page(&$vars) {
// Ez itt csak akkor igaz, ha van listazando / kiirando node.
$vars['has_nodes'] = isset($vars['page']['content']['system_main']['nodes']);
}
page.tpl.php
<?php if($has_nodes) : ?>
<?php print $content ?>
<?php else : ?>
<!-- ide jön a formázás. Ez egy olyan oldal, aminek nincsenek node-jai,
így kiírom a címet, mert a HTML oldalszerkezet ezt itt megköveteli -->
<div iclass="node">
<div class="nodehead autoheight">
<h2><?php print $title ?></h2>
</div>
<div class="nodebody">
<?php print $content; ?>
</div>
</div>
<?php endif; ?>
Ez utobbi kicsit szofisztikaltabb, es le lehet vele kezelni az olyan oldalakat is, amin pl. űrlapok vannak.
- hrgy84 blogja
- A hozzászóláshoz be kell jelentkezni
- 1184 megtekintés
Hozzászólások
Kerdeztem a #drupal.hu -n is, es azt mondtak, hogy akkor rakjam bele a page.tpl.php -be a cimet, es szedjem ki, ahol nem kell megjeleniteni. A gond alapvetoen az, hogy meg mindig nem ismerem a drupalt annyira, hogy tudjam, mely helyek (mar nem merek oldalt mondani) lesznek azok, ahol nekem erre nem lesz szuksegem.
A 2. megoldas azert tud mukodni, mert nekem alapvetoen az kellett, hogy ahol egy vagy tobb node van, oda nekem nem kell cim, mert azt reszben elintezi a node.tpl.php, reszben pedig oda ugyis tok mas markup jon.
Viszont, mivel nekem a page.tpl.php -ban nincs olyan pont, ahol ki tudnam iratni a $title valtozot, igy azok az oldalak, melyek nem mennek at a node.tpl.php-n, cim es mindenfele stilusozas nelkul nyersben jottek volna ki, ami nem jo, mert igy nem lesz szep az oldal.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni