Kérdés components/com_content/router.php felülbírálásának létrehozása - hogyan?

Több
2016 júl. 25 13:50 - 2016 júl. 25 13:51 #1 Írta: Zotius
Zotius létrehozta a témát: components/com_content/router.php felülbírálásának létrehozása - hogyan?
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:
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;
}
A "Notice: ..." üzenetet végül két utasítás beillesztésével sikerült megoldani:
/* 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?

Ha hasznos volt a hozzászólásom számodra, nyugodtan megnyomhatod lent a „Köszönet” gombot :)
Skype: zotius
Utolsó szerkesztés: 2016 júl. 25 13:51 Írta: Zotius.

Jelentkezz be, hogy te is részt vehess beszélgetésben!

Több
2016 júl. 25 14:24 #2 Írta: Balázs
Balázs válaszolt a témára: 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.

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!

Több
2016 júl. 25 14:34 - 2016 júl. 25 14:36 #3 Írta: Zotius
Zotius válaszolt a témára: 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.

Ha hasznos volt a hozzászólásom számodra, nyugodtan megnyomhatod lent a „Köszönet” gombot :)
Skype: zotius
Utolsó szerkesztés: 2016 júl. 25 14:36 Írta: Zotius. Indoklás: kiegészítés

Jelentkezz be, hogy te is részt vehess beszélgetésben!