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.
A node.tpl.php
releváns része a címhez így néz ki nálam:
Nálad?
Üdv!
Dudás József
Pfff, igazad van!
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:
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
Talán így?
Üdv!
Dudás József
Nincs siker! :-(
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?
page.tpl.php
a page.tpl.php-ban minden le van írva, hogy mi micsoda :) csak ki van kommentezve
*----*----*
$node ? 'alma' : 'bor'
*----*----*
Próbáld ezzel:
http://api.drupal.org/api/function/drupal_is_front_page
És néha töröld a cache-t is.
Üdv!
Dudás József
OK
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! :-)
Javaslat
Tedd ezt a kódot a template.php fájlba (ha nincs benne), csak a
<?php
és?>
közötti részt: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.
-- http://boj.hu --
szerintem ez felesleges
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.
-
clear: both;
Próbáld ki
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.
-- http://boj.hu --
Frissítetted a theme
Frissítetted a theme registry-t és úgyse?
---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.
jogos, tényleg nem akarja...
ezzel kevertem: page-node-1.tpl.php
amúgy "be zen!" és akkor nincs ilyen "probléma" hogy kézzel kell hozzáadni ezt. :)
-
clear: both;
Tied a pont! :-)
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! :-)
Van lehetőség nodeID alapján
Van lehetőség nodeID alapján személyre szabni a megjelenést. Nézd meg ezt, vagy ezt az oldalt.
-- http://boj.hu --
page-front.tpl.php
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.
Kérdés
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. :)
Amennyire én kivettem ezek
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:
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.
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:
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.
-- http://boj.hu --
Jelenleg 1 tartalom van, de
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! :-))
Ha nincs benne, akkor bele
Ha nincs benne, akkor bele kell tenni és kész.
-- http://boj.hu --
Nálam, mint írtam korábban
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!
A Drupal alap sminkfájljaiból
A Drupal alap sminkfájljaiból szedtem a kódokat.
-- http://boj.hu --