components/com_content/router.php felülbírálásának létrehozása - hogyan?
- Zotius
- Témaindító
- Nem elérhető
- Platina fokozatú fórumozó
Kevesebb
Több
components/com_content/router.php felülbírálásának létrehozása - hogyan? téma létrehozva Zotius által
Adott egy oldal, ahol a menüpont egy BreezingForms űrlap megjelenítését végzi.
Az űrlapot megjelenítő oldalon a következő hibaüzenet jelenik meg:
„Notice: Undefined index: view in /home/tulajneve/domains/domainneve/public_html/components/com_content/router.php on line 74”
Először a php.ini-ben a figyelmeztetések elnyomásával próbálkoztam, sikertelenül.
Vagyis a hiba jelentése: a 'view' indexnek nincs definiált értéke, amikor az űrlapot behozó menüpont működésbe lép. Tudni kell még ehhez, hogy a BreezingForms-nak is van saját router.php-je a com_content/com_breezingforms mappában, de a hiba az eredeti, joomlás router.php-t használatakor keletkezik.
Ezután belenéztem a router.php-be, ahol ezek a sorok okozzák a problémát:
A "Notice: ..." üzenetet végül két utasítás beillesztésével sikerült megoldani:
Félő, hogy egy legközelebbi Joomla frissítésnél az általam megbuherált router.php felülírásakor a hiba ismét visszajön.
Kérdés: Hogyan lehet/kell elkülöníteni a megbuherált router.php-t a későbbi felülírások elleni védelem érdekében?
Az űrlapot megjelenítő oldalon a következő hibaüzenet jelenik meg:
„Notice: Undefined index: view in /home/tulajneve/domains/domainneve/public_html/components/com_content/router.php on line 74”
Először a php.ini-ben a figyelmeztetések elnyomásával próbálkoztam, sikertelenül.
Vagyis a hiba jelentése: a 'view' indexnek nincs definiált értéke, amikor az űrlapot behozó menüpont működésbe lép. Tudni kell még ehhez, hogy a BreezingForms-nak is van saját router.php-je a com_content/com_breezingforms mappában, de a hiba az eredeti, joomlás router.php-t használatakor keletkezik.
Ezután belenéztem a router.php-be, ahol ezek a sorok okozzák a problémát:
Code:
if (($menuItem instanceof stdClass)
&& isset($query['id'])
&& $menuItem->query['view'] == $query['view'] /* <------------ ez a sor! */
&& $menuItem->query['id'] == (int) $query['id'] )
{
unset($query['view']);
if (isset($query['catid'])) { unset($query['catid']); }
if (isset($query['layout'])) { unset($query['layout']); }
unset($query['id']);
return $segments;
}
Code:
/* javítás/kiegészítés itt: */
$menuItem->query['view'] = $query['view']; /* értékadás 1. */
$menuItem->query['id'] = 0 ; /* értékadás 2. */
[code]if (($menuItem instanceof stdClass)
&& isset($query['id'])
&& $menuItem->query['view'] == $query['view'] /* <------------ ez a sor! */
&& $menuItem->query['id'] == (int) $query['id'] )
Félő, hogy egy legközelebbi Joomla frissítésnél az általam megbuherált router.php felülírásakor a hiba ismét visszajön.
Kérdés: Hogyan lehet/kell elkülöníteni a megbuherált router.php-t a későbbi felülírások elleni védelem érdekében?
Utolsó szerkesztés: 7 éve 8 hónapja Zotius által.
Jelentkezz be, hogy te is részt vehess beszélgetésben!
- Balázs
- Nem elérhető
- Adminisztrátor
Balázs válaszolt a következő témában: components/com_content/router.php felülbírálásának létrehozása - hogyan?
Szerintem egy sima notice blokkolható a Globális konfiguráció -> Kiszolgáló -> Kiszolgáló beállításai -> Hibajelentés -> Nincs értékkel.
Másrészről, mivel ez az értesítés tudomásom szerint nem egy globális probléma, így a véleményem szerint a "hiba" BreezingFormsban keresendő.
A globális felülírás tervezve volt de, ha jól tudom még mindig nem került be a rendszerbe, így egy frissítés biztos, hogy gyalulja a módosításaidat.
Másrészről, mivel ez az értesítés tudomásom szerint nem egy globális probléma, így a véleményem szerint a "hiba" BreezingFormsban keresendő.
A globális felülírás tervezve volt de, ha jól tudom még mindig nem került be a rendszerbe, így egy frissítés biztos, hogy gyalulja a módosításaidat.
Ha bizalmas információt szeretnél közölni az adminokkal, akkor tedd az üzeneted tartalmát a [ confidential ][ /confidential ] címkék közé (szóközök nélkül).
Joomla! tanácsadás, oktatás, fejlesztés - joomlabs.hu
Jelentkezz be, hogy te is részt vehess beszélgetésben!
- Zotius
- Témaindító
- Nem elérhető
- Platina fokozatú fórumozó
Zotius válaszolt a következő témában: components/com_content/router.php felülbírálásának létrehozása - hogyan?
A "Globális konfiguráció -> Kiszolgáló -> Kiszolgáló beállításai -> Hibajelentés -> Nincs" így van van beállítva. Ez a megoldás nem nyert
Ugyanakkor jelzem, hogy egy másik oldalnál pedig ehhez kísértetiesen hasonlító, vagy pontosabban ugyanilyen figyelmeztető üzenet jön elő, ha a menüben egy SobiPro katalógusra mutató menüpont is van. Az eltérés csupán annyi, hogy egy másik router.php-ben lévő "hibát" mutat a "Notice: ..." figyelmeztető üzenet.
A két eset között annyi az azonosság, hogy a másik oldalnál ugyancsak egy breezinforms űrlapra mutató menüpont esetén jelenik meg.
A Joomla dokumentációban olvastam ehhez hasonló igényekkel - override lehetőséggel - kapcsolatos irományokat.
A gyökérben, illetve a sablon mappában létrehozott "code" alkönyvtárba helyezett fájllal történő megoldás sikertelen volt.
Ugyanakkor jelzem, hogy egy másik oldalnál pedig ehhez kísértetiesen hasonlító, vagy pontosabban ugyanilyen figyelmeztető üzenet jön elő, ha a menüben egy SobiPro katalógusra mutató menüpont is van. Az eltérés csupán annyi, hogy egy másik router.php-ben lévő "hibát" mutat a "Notice: ..." figyelmeztető üzenet.
A két eset között annyi az azonosság, hogy a másik oldalnál ugyancsak egy breezinforms űrlapra mutató menüpont esetén jelenik meg.
A Joomla dokumentációban olvastam ehhez hasonló igényekkel - override lehetőséggel - kapcsolatos irományokat.
A gyökérben, illetve a sablon mappában létrehozott "code" alkönyvtárba helyezett fájllal történő megoldás sikertelen volt.
Utolsó szerkesztés: 7 éve 8 hónapja Zotius által. Indoklás: kiegészítés
Jelentkezz be, hogy te is részt vehess beszélgetésben!
Az oldal semmilyen kapcsolatban nem áll a Joomla!© Projecttel, sem az Open Source Matters-zel. A Joomla!© logót korlátolt licenc alatt használjuk, melyet az Open Source Matters védjegytulajdonos biztosít az Egyesült Államokban és más országokban. Minden jog fenntartva © 2011-2023 Joomla! Magyarország.
Az oldal tárhelyét a Tárhelypark biztosítja. Ha támogatni szeretnéd az oldal működését, akkor kérjük, hogy az alábbi hivatkozáson keresztül vásárolj tárhelyet.