Joomla 5.2.2 Security & Bugfix Release
Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.
Načtení joomla 5
17. lis 2024 20:17 - 17. lis 2024 20:18 #149881
V joomla 3 jsem si často dělal vlastní php, do kterých jsem načetl joomlu a používal její funkce.
V joomla 5 se mi to vůbec nedaří skončím na chybě nepodařilo se načíst aplikaci.
Nemáte někdo prosím funkční vzor jak to napsat?
Děkuji předem
V joomla 5 se mi to vůbec nedaří skončím na chybě nepodařilo se načíst aplikaci.
Nemáte někdo prosím funkční vzor jak to napsat?
Děkuji předem
18. lis 2024 14:09 #149883
Odpověď od Cony
Moderátor
IMHO nejjednodušší způsob je
- pokud se má jednat o něco volatelného na webu (s vlastní adresou), vytvořit si template override na komponentu com_wrapper a vše řešit v něm
- pokud se má jednat o něco s výstupem na web, tak to samé pro modul mod_custom
- pokud něco pro nějaké větší zpracování dat, použít příkazový řádek, napsat si plugin pro Console
- pokud se má jednat o něco volatelného na webu (s vlastní adresou), vytvořit si template override na komponentu com_wrapper a vše řešit v něm
- pokud se má jednat o něco s výstupem na web, tak to samé pro modul mod_custom
- pokud něco pro nějaké větší zpracování dat, použít příkazový řádek, napsat si plugin pro Console
Poděkovali: Ernst
18. lis 2024 16:05 #149884
Odpověď od Ernst
Joomla Expert
díky, nejčastěji používám přepis mod custom, ale prostě by mě zajímalo zda to jde, když to jde v joomle 3 a pokud ne, proč?
Chápu, že příčinou může být nějaké bezpečnostní opatření, ale jde to nebo ne?
Ps někdy používám i vlastní komponentu, ale prostě čisté php s nahráním joomly bývalo nejjednodušší.
Chápu, že příčinou může být nějaké bezpečnostní opatření, ale jde to nebo ne?
Ps někdy používám i vlastní komponentu, ale prostě čisté php s nahráním joomly bývalo nejjednodušší.
18. lis 2024 17:29 #149885
Odpověď od Cony
Moderátor
Nejjednodušší, ale nejméně bezpečné, přehledné apod...
Každopádně stačí tohle:
Takže např.
Každopádně stačí tohle:
Code:
<?php
define('_JEXEC', 1);
include_once __DIR__ . '/includes/defines.php';
include_once __DIR__ . '/includes/framework.php';
Code:
<?php
define('_JEXEC', 1);
include_once __DIR__ . '/includes/defines.php';
include_once __DIR__ . '/includes/framework.php';
$container = \Joomla\CMS\Factory::getContainer();
/** @var \Joomla\Database\DatabaseInterface $db */
$db = $container->get('db');
$query = $db->getQuery(true);
$query->select('*')
->from($db->quoteName('#__extensions'));
$db->setQuery($query);
$extensions = $db->loadObjectList();
foreach ($extensions as $extension) {
echo $extension->name . "\n";
}
Poděkovali: Ernst
18. lis 2024 19:45 #149886
Odpověď od Ernst
Joomla Expert
hele, díky moc, tohle se nedá vygooglit. Ještě se zeptám jak se načte $app. tohle mi nefunguje -
$app = Factory::getApplication();
$app = Factory::getApplication();
19. lis 2024 11:00 #149887
Odpověď od Cony
Moderátor
Stačí se mrknout do /includes/app.php
Pokud je to tedy ve frontendu.
Pokud dál pracuješ s kódem, který je závislý na tom Factory::getApplication(), měl bys ještě udělat
Code:
$app = $container->get(\Joomla\CMS\Application\SiteApplication::class);
Pokud dál pracuješ s kódem, který je závislý na tom Factory::getApplication(), měl bys ještě udělat
Code:
Factory::$application = $app;
Poděkovali: Ernst