Tartalom megjelenítése cím nélkül

berci20 képe

Sziasztok!

Már több napja próbálok rájönni a megoldásra, sajna sikertelenül.
Hogyan lehet azt megoldani, hogy egy beküldött tartalomnak ne jelenjen meg a címe?
Azzal tisztában vagyok, hogy valamilyen címének lennie kell minden tartalomnak, de azt nem akarom elhinni, hogy arra nincs semmi egyszerű megoldás, hogy ne jelenjen meg az oldalon.
Konkrétan 1 tartalom lenne a címlapon, ami egy bevezető szöveg.
A címlap forrásában már megtaláltam Firebuggal, hogy melyik részt kellene kivenni, de mivel a Node Title is adatbázisban van tárolva, nem igazán tudok vele mit kezdeni ill. az adatbázisba főleg nem merek belenyúlni, mert ezen rész elején valami hash szám szerűség is szerepel, így feltételezem, ha innen törölnék ki valamit, pórul járnák! :-(
Próbálkoztam a sminkemben találni valami lehetőséget, de sajnos egy speciális programmal lett generálva, s sok PHP fájlból áll, s elég bonyolultnak tűnik számomra. Bár a node.tpl.php-ben megtaláltam azt a részt, ahol többek közt a title is "beillesztődik", de ahogy én láttam, a cím a tartalommal együtt illesztődik be az adatbázisból, így nem tudtam innen se kivenni.
Az egyik topikban meg volt említve az Automatic Nodetitles modult, de ez se jó, mert ez csak a beküldési formról tűnteti el a címet.

Ismertek valami modult a probléma megoldására?
Esetleg létezik olyan modul, amellyel tudnám az adott oldal (pl. a főoldal) teljes forráskódját szerkeszteni? (Olyasmire gondolok, hogy a legenerált kódból ha pl. kitörlök egy részt, azt a modul az adatbázisból törli ki!) Mert ez is megoldást jelentene számomra.

Segítségetek előre is köszönöm,

Jani

Ui.: Leginkább olyan megoldás érdekelne, ahol nem csak háttérszínűre van festve a Text, hanem egyáltalán nem is generálja bele a Drupal a végső HTML-be.

Drupal verzió: 
Fórum: 
dj képe

releváns része a címhez így néz ki nálam:

<?php if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>

Nálad?

0
0

Üdv!
Dudás József

berci20 képe

Pfff, igazad van! Kicsit felületesen néztem át a node.tpl.php-t, inkább a page-front.tpl.php-val törődtem. Viszont az a baj, hogyha jól gondolom és itt "tisztítok" a kódból, akkor az az összes tartalmamra hatással lesz, nem? Nekem meg csak a címlapról kellene kivennem. Bálint megoldása se jó alapból, mert nálam a page-front.tpl 5x akkora méretű, mint a node.tpl, mert itt vannak definiálva többek közt a box-ok, menü, lábléc, stb. Viszont pont az a rész, amit ki kellene vennem, csak a node.tpl-ben van! :-(
Hirtelen 2 megoldás jut eszembe, bár egyiket se tudom segítség nélkül megoldani, mert PHP-ban sajnos nem vagyok túlságosan otthon! :-(

1. A törlendő részt bele kellene importálni még 5, a page-front.tpl-el majdnem megegyező tartalmú PHP-ban. (pl. page-node.tpl, page-blog.tpl + van még nálam 3 db) Ez biztos nem jó, mert azon kívül, h nem túl szép és egyszerű megoldás, ha a sminket a későbbiekben változtatnám (tervezem), s újra legenerálnám azzal a progival, amivel csináltam, akkor újból 5 helyen át kellene dolgoznom a sminket.

2. Talán valami olyan (lehetőleg rövid) kód jó lehetne a node.tpl-be, ami megvizsgálná, hogy a címlapról van-e szó, s ha nem, csak akkor rakná be a title-t. Pontosabban érdemes lenne a címlap helyett inkább egy speciális nevű title-t vizsgálni, mert ha később rakok ki 1 másik tartalmat a címlapra, akkor ha a kódban csak címplapot vizsgálnék, akkor a címlapon egyik tartalomnak se lenne címe.

3. Más ötletem sajnos nincs - bár a legszebb megoldás az lenne, ha létezne egy olyan modul, ami megjelenít a tartalom beküldése formon egy jelölőnégyzetet, amit ha kipipálok, akkor nem jelenik meg a tartalom címe. :-) De talán ennek a problémának a megoldása sokak számára hasznos lehetne a későbbiekben! :-) Sőt, ha pl. a 2. pont beli kód nem a teljes title-t, hanem csak pl. az első X karakterét vizsgálná, akkor arra is nyílna lehetőség, hogy több tartalomnak is "elhagyhassuk" a cím megjelenítését!

A kód, amit töröltem a node.tpl-ből:

<div class="art-PostMetadataHeader">
<h2 class="art-PostHeaderIcon-wrapper"><img src="<?php echo get_full_path_to_theme(); ?>/images/PostHeaderIcon.png" width="26" height="25" alt=""/> <span class="art-PostHeader"><a href="<?php echo $node_url; ?>" title="<?php echo $title; ?>"><?php echo $title; ?></a></span>
</h2>
 
</div>
<?php if ($submitted): ?>
<div class="art-PostHeaderIcons art-metadata-icons">
<?php echo art_submitted_worker($submitted, $date, $name); ?>
 
</div>
<?php endif; ?>

A teljes node.tpl.php, még a fenti kód törlése nélkül:
http://addat.hu/251082d8/node.tpl.php.html
A page-front.tpl.php:
http://addat.hu/5395e5f4/page-front.tpl.php.html

Köszönöm mindannyiótok segítségét,

Jani

0
0
dj képe

<?php if (!$page && !$is_front): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
0
0

Üdv!
Dudás József

berci20 képe

Hm! Betettem az első sort (if-es részt) a "kitörlendő" kód fölé, az utolsót (if vége) a kódrész alá, de a tartalom ha a címlapra kerül, ha nem, a címe mindig megjelenik! Amúgy ezt a két változót ($page, $is_front) a Drupal definiálja? És a $page mit takar? Esetleg azt, hogy a tartalom oldal típusú? Közben kiötlöttem 1 olyat, hogy ha esetleg változtatnám a későbbiekben a címlapon a szöveget, akkor azt az 1 tartalmat úgy küldöm be, hogy kitörlöm előtte a szóban forgó kódrészt, utána pedig újból felülírom a node.tpl-t az eredetivel! :-)
Persze ha valaki tud valami jó megoldást a problémára, annak még mindig nagyon örülnék! :-)
Tényleg nem tudtok olyan modulról, amivel a cím megjelenését a beküldéskor lehetne szabályozni egy jelölőnégyzettel?

0
0
Lavjaman képe

a page.tpl.php-ban minden le van írva, hogy mi micsoda :) csak ki van kommentezve

0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

dj képe

http://api.drupal.org/api/function/drupal_is_front_page

<?php if (!$page && !drupal_is_front_page()): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>

És néha töröld a cache-t is.

0
0

Üdv!
Dudás József

berci20 képe

OK! Köcce. Már csak este fele lesz rá időm kipróbálni! :-(
De ha jól gondolom, ez a script még mindig az összes címlapra érkező tartalmat érinti, s nem kizárólag azt az egyet, amit kellene! :-)

0
0
Jenő képe

Tedd ezt a kódot a template.php fájlba (ha nincs benne), csak a <?php és ?> közötti részt:

function SMINKEDNEVE_preprocess_node(&$vars, $hook) {
  switch ($hook) {
    case 'node':
      if ($vars['page']) {
        $vars['template_files'] = array('node-default-page', 'node-'. $vars['node']->type .'-page', 'node-'. $vars['node']->nid .'-page');
      }
      else {
        $vars['template_files'] = array('node-'. $vars['node']->nid);
      }
    break;
  }
}

A SMINKEDNEVE részt módosítsd a sminked nevére :).
Hozz létre egy node-[nodeID].tpl.php fájlt a sminked könyvtárába. A nodeID a node azonosítója, amit a tartalom listázásánál meg tudsz nézni úgy, hogy az adott tartalom fölé viszed az egeret, a node/ utáni szám a nodeID.

A node-[nodeID].tpl.php fájlba másold át a node.tpl.php fájl tartalmát, utána töröld ki a címre hivatkozó részt és ürítsd a caches-t.

Ha minden igaz, akkor a cím eltűnik az adott tartalom elejéről a kezdőoldalon.

0
0
aboros képe

a node-[nid].tpl.php sablon alapból elérhető, nem kell a preprocessben template_suggestion -ként felvenned, magától észreveszi a phptemplate ha van ilyen sablonod.

0
0

-
clear: both;

Jenő képe

Azt tudom, hogy nekem nem működött nélküle. Hogy írtad ezt a bejegyzést, ki is próbáltam több sminken, egyik sem akart engedelmeskedni a node-[ID].tpl.php-nek a fenti kód nélkül.

0
0
gergely képe

Frissítetted a theme registry-t és úgyse?

0
0

---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.

aboros képe

ezzel kevertem: page-node-1.tpl.php
amúgy "be zen!" és akkor nincs ilyen "probléma" hogy kézzel kell hozzáadni ezt. :)

0
0

-
clear: both;

berci20 képe

Köszönöm a tippet! Bár picit nehézkes, mert ha változtatok a sminken, s újrafordítom a kódjait, ezeket újra meg kell csinálnom (talán csak a template.php nem fog változni), plusz ez minden tartalomnál pici beavatkozást igényel, de ettől függetlenül működik, s viszonylag gyorsan megoldható, úgyhogy mégegyszer nagyon köszönöm a segítséged!

Nagyon ügyes megoldás! :-)

0
0
Jenő képe

Van lehetőség nodeID alapján személyre szabni a megjelenést. Nézd meg ezt, vagy ezt az oldalt.

0
0
Bálint képe

Készíts egy másolatot a page.tpl.php-ról, és nevezd el page-front.tpl.php-nek!
Amit ebben a fájlban módosítasz, csak a főoldalra lesz hatással, itt nyugodtan kiveheted a címet is.

0
0
Bálint képe

Ha jól értelmezek mindent, akkor preprocess-szel adtatok hozzá új suggestion-t, majd a főoldalra kerülő node id-ját felhasználva template fájllal valósítottátok meg azt a template-et, ami leírja a főoldalt.

Valaki magyarázza meg nekem, hogy mitől jobb ez mint, hogy a page.tpl.php tartalmát másolom le egy page-front.tpl.php nevű fájlba, ami ugye egy alapból létező suggestion? A $title ugyanúgy megvan ebben is, és szépen el lehet tüntetni. Nem kell template.php-ba írkálni, és nem kell arra figyelni, melyik node lesz a címlap.

Természetesen nem kötekedni szeretnék, hanem tanulni. :)

0
0
Jenő képe

Amennyire én kivettem ezek működését. A node.tpl.php-ban azt mondjuk hogy a $title csak akkor legyen kiírva, ha az nem $page (nem teljes nézet). pl:

<?php if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>

Ezért van az, hogy amikor teljes nézetben van egy tartalom, akkor pl. a címre vonatkozó részt page-node-id.tpl.php-ban tudjuk variálni és nem a node.tpl.php-ban

A page.tpl.php-ban meg akkor íratjuk a $title-t, ha az nem üres.

<?php if (!empty($title)): ?>
   <h1 class="title" id="page-title"><?php print $title; ?></h1>
<?php endif; ?>

Alapesetben a kezdőoldal /node linken érhető el, aminek meg nincs $title értéke, ezért hiába babrálod benne a $title dolgait a kezdőoldalon nem használ semmit.

Most, hogy írom e sorokat jutott eszembe egy másik megoldás is erre, a template.php babrálása nélkül. Bercinek csak egyetlen tartalma van a kezdőoldalon:

Konkrétan 1 tartalom lenne a címlapon, ami egy bevezető szöveg.

Namármost, ha alapértelmezett címlapnak megadja a node/25 linket (tegyük fel, hogy ez az a tartalom, ami a bevezető szöveget tartalmazza), akkor egy page-node-25.tpl.php szerkesztésével megoldható a cím eltüntetése.

0
0
berci20 képe

Jelenleg 1 tartalom van, de mint írtam, a későbbiekben valószínű, hogy lesz több is! :-)
Egyébként ha page-node-25.tpl-t a page-node.tpl-ből kellene előállítani, akkor ez esetemben nem megoldás, mert a page-node.tpl-ben sincs hivatkozás a címre! (Egyébként a page-node.tpl nálam teljesen megegyezik a page-front.tpl-el, így a korábban megadott linken le tudod tölteni és bele tudsz sasolni, ha érdekel a tartalma! :-))

0
0
Jenő képe

Ha nincs benne, akkor bele kell tenni és kész.

0
0
berci20 képe

Nálam, mint írtam korábban csak a node.tpl.php-ban van benne a címre való hivatkozás, a page-front.tpl.php-ban pedig egyáltalán nincs! :-(
Ha gondolod, nézz rá a 2 fájlra, aminek a linkjét korábban megadtam!

0
0
Jenő képe

A Drupal alap sminkfájljaiból szedtem a kódokat.

0
0