Ha egy létező oldalt akarsz ellenőrizni, akkor több megoldás is létezik,
ez legfőképp a telepített moduloktól függ. Talán legegyszerübb a drupal url() fuggvényével képzett cimet lekérdezni a standard http_get() php függvénnyel,
valami ilyesmi kóddal:
<?php$address=url("node/".$node->nid);//ezzel megkapod a drupal által használt cimet if(http_get($address,array("timeout"=>1),$info)){// az oldal létezik// print_r($info); // visszakapott fejléc}else{// hiba, ide amit akarsz csinálni hiba esetén }?>
Ha jól sejtem, akkor a 404-es oldalakat akarod kiszűrni. Javaslom keresd meg a drupal.org-on a Search 404 modult: http://drupal.org/project/search404
Nem egy konkrét oldalnál szeretném, hanem általánosságban, ha page == 404, akkor a sminken nem jelenik meg a bizonyos rész.
Nézegettem már azt a search404 modult, meg a function drupal_not_found() függvényt is, de ehhez a részhez pont nem értek annyira.
Hátha valaki ebbe megtalálja a megoldást:
function drupal_not_found(){
drupal_set_header('HTTP/1.1 404 Not Found');
watchdog('page not found', check_plain($_GET['q']),NULL, WATCHDOG_WARNING);// Keep old path for reference.if(!isset($_REQUEST['destination'])){$_REQUEST['destination']=$_GET['q'];}$path= drupal_get_normal_path(variable_get('site_404',''));if($path&&$path!=$_GET['q']){// Set the active item in case there are tabs to display, or other// dependencies on the path.
menu_set_active_item($path);$return= menu_execute_active_handler($path);}if(empty($return)||$return== MENU_NOT_FOUND ||$return== MENU_ACCESS_DENIED){
drupal_set_title(t('Page not found'));$return= t('The requested page could not be found.');}// To conserve CPU and bandwidth, omit the blocks.print theme('page',$return,FALSE);}
az adminisztrációs felületen megadhatod, hogy melyik node jelenjen meg 404 esetén. beküldesz egyet és beállítod, hogy az legyen. szerintem mivel ez ugyan olyan node, mint bármelyik másik, simán sminkelheted is ugyanúgy, mint bármelyik másik nodeot, például az idje alapján saját tpl.php használatával.
Minden node-nak van egy egyedi útvonala node/$nid (ahol a $nid a node egyedi azonosítója) és minden útvonalhoz tudsz egyedi page.tpl.php-t gyártani. Tehát a node.tpl.php-hez nem kell nyúlnod, hanem a megfelelő page-node-$nid.tpl.php fájlt kell módosítanod.
Arra kell ilyenkor vigyázni, hogy a 404-es oldalakon nem jelennek meg a blokkok sem. Én pont ma vettem észre, hogy ha rámegyek a /404 oldalra, akkor ott vannak, de ha egy nem létező url-t írok be, akkor nincsenek.
Ebben az esetben én a smink page.tpl.php-t buherálnám és a $title változó értékét figyelném.
Az általam használt sminkben ez a $head_title de lehet, hogy más sminkben másként hivják.
<?phpif($title=t('Page not found')){//amit változtatni akarsz}...?>
Én ezt a kérdést nem értem.
Én ezt a kérdést nem értem. Mit szeretnél?
Nagy Gusztáv
Arról lenne szó, hogy a
Arról lenne szó, hogy a sminkben van egy olyan rész, amit nem szeretném ha megjelenne a 404-es oldalakon.
Ezért gondoltam arra, hogy egyszerű if-el ellenőrizhető lenne.
Talán erre gondolsz?
Ha egy létező oldalt akarsz ellenőrizni, akkor több megoldás is létezik,
ez legfőképp a telepített moduloktól függ. Talán legegyszerübb a drupal url() fuggvényével képzett cimet lekérdezni a standard http_get() php függvénnyel,
valami ilyesmi kóddal:
Ha jól sejtem, akkor a 404-es oldalakat akarod kiszűrni. Javaslom keresd meg a drupal.org-on a Search 404 modult: http://drupal.org/project/search404
www.tundus.hu
Nem egy konkrét oldalnál
Nem egy konkrét oldalnál szeretném, hanem általánosságban, ha page == 404, akkor a sminken nem jelenik meg a bizonyos rész.
Nézegettem már azt a search404 modult, meg a function drupal_not_found() függvényt is, de ehhez a részhez pont nem értek annyira.
Hátha valaki ebbe megtalálja a megoldást:
ugyanúgy sminkelheted, mint akármelyik nodeot
az adminisztrációs felületen megadhatod, hogy melyik node jelenjen meg 404 esetén. beküldesz egyet és beállítod, hogy az legyen. szerintem mivel ez ugyan olyan node, mint bármelyik másik, simán sminkelheted is ugyanúgy, mint bármelyik másik nodeot, például az idje alapján saját tpl.php használatával.
-
clear: both;
De én nem egyedi 404 oldalt
De én nem egyedi 404 oldalt szertnék, hanem akkor mondok egy példát, azt, hogy a 404 oldalon ne jelenjen meg a LOGO.
Ezt pl. hogy lehet megcsinálni ?
úgy ahogy írtam.
csinálsz egy nodeot, ami a 404 oldalad lesz, annak létrehozol saját tpl.php -t a page.tpl.php alapján és kiszeded belőle a logot. így.
-
clear: both;
Hmmm, azt hittem, hogy a
Hmmm, azt hittem, hogy a node-x.tpl.php fájlban csak a node megjelenését lehet módosítani, nem az egész page-t, de majd akkor próbálkozom.
félreérted
Minden node-nak van egy egyedi útvonala node/$nid (ahol a $nid a node egyedi azonosítója) és minden útvonalhoz tudsz egyedi page.tpl.php-t gyártani. Tehát a node.tpl.php-hez nem kell nyúlnod, hanem a megfelelő page-node-$nid.tpl.php fájlt kell módosítanod.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Így már értem, ezt a
Így már értem, ezt a lehetőséget nem ismertem. Köszönöm szépen, működik és tetszik is ez a megoldás :)
arra kell vigyázni...
Arra kell ilyenkor vigyázni, hogy a 404-es oldalakon nem jelennek meg a blokkok sem. Én pont ma vettem észre, hogy ha rámegyek a /404 oldalra, akkor ott vannak, de ha egy nem létező url-t írok be, akkor nincsenek.
Ha szeretnél blokkokat a 404 oldaladon, arra itt a megoldás:
http://drupal.org/node/129762#comment-232868
--
Csonka Gergely
http://cheppers.com
Ez esetben
Ebben az esetben én a smink page.tpl.php-t buherálnám és a $title változó értékét figyelném.
Az általam használt sminkben ez a $head_title de lehet, hogy más sminkben másként hivják.
www.tundus.hu
Igazából ilyenre gondoltam,
Igazából ilyenre gondoltam, meg kisebb pontosítás után működik is, csak eléggé buherált dolog... :S