- X Online Joomla bar xunil ·
-
Phoca Cart - pluginy dopravy
H13 ·
-
Nový joomlaportal.cz
Linelabcz ·
-
Amanus - nová šablona Astroid frameworku podporující Phoca Cart
H13 ·
-
Migrace z Joomla 1.5, 2.5 a 3.x do nové Joomla 6
Bong ·
- X Claude Code a VS Code - kompromitace xunil ·
-
Phoca Download - verze 6.1.6 vydána
H13 ·
-
Phoca Cart - Booking
H13 ·
load joomla 4
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
11. čvn 2024 21:40 #149490
od Ernst
load joomla 4 od Ernst
Mám samostatný php soubor, do kterého chci načíst joomlu 4 a používat její prostředky. V joomle 3 to bylo poměrně jednoduché, např.
ale nevím, jak to udělat v joomle 4 tam tohle nefunguje. Našel jsem řešení přes container
ale nevím jak v tomto případě použít USE, např
protože se mu nějak nenačtou a nemohu použít např. $link = new Uri(Route::_('index.php?.......
podotýákám, že to php je v rootu webu. nedaří se mi k tomu dohledat žádný návod
Code:
<?php
define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__));
define('DS', DIRECTORY_SEPARATOR);
require_once JPATH_BASE.DS.'includes'.DS.'defines.php';
require_once JPATH_BASE.DS.'includes'.DS.'framework.php';
$app = JFactory::getApplication('site');
$doc = JFactory::getDocument();
$session = JFactory::getSession();
$user = JFactory::getUser();
ale nevím, jak to udělat v joomle 4 tam tohle nefunguje. Našel jsem řešení přes container
Code:
<?php
define('_JEXEC', 1);
use Joomla\CMS\Factory;
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once JPATH_BASE . '/includes/defines.php';
require_once JPATH_BASE . '/includes/framework.php';
$container = \Joomla\CMS\Factory::getContainer();
$container->alias('session.web', 'session.web.site')
->alias('session', 'session.web.site')
->alias('JSession', 'session.web.site')
->alias(\Joomla\CMS\Session\Session::class, 'session.web.site')
->alias(\Joomla\Session\Session::class, 'session.web.site')
->alias(\Joomla\Session\SessionInterface::class, 'session.web.site');
$app = $container->get(\Joomla\CMS\Application\SiteApplication::class);
ale nevím jak v tomto případě použít USE, např
Code:
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;
podotýákám, že to php je v rootu webu. nedaří se mi k tomu dohledat žádný návod
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
12. čvn 2024 01:13 #149491
od Cony
Odpověď od Cony v tématu load joomla 4
Chybí ti tam na konci ještě:
Každopádně tohle je ale dost nešťastný způsob, jak s Joomlou pracovat. Raději bych doporučil nějakou přímou integraci do Joomly, podle toho, co má být výstupem:
- pokud by to měl být skript pro spouštění z příkazového řádku, napsat console plugin
- pokud výstup webu napsat buď vlastní komponentu (není to až tak složité), nebo pro jednodušší výstupy s úspěchem používám template override na komponentě com_wrapper - funkční kód je pak sice v šabloně, což také není úplně košér, ale pro jednoduché výstupy to bohatě stačí
Je pak jistota, že Joomla je zavedená správně jak má, spouští se všechny pluginy jak mají, kontrolují se přístupy, session, apod.
Code:
\Joomla\CMS\Factory::$application = $app;
Každopádně tohle je ale dost nešťastný způsob, jak s Joomlou pracovat. Raději bych doporučil nějakou přímou integraci do Joomly, podle toho, co má být výstupem:
- pokud by to měl být skript pro spouštění z příkazového řádku, napsat console plugin
- pokud výstup webu napsat buď vlastní komponentu (není to až tak složité), nebo pro jednodušší výstupy s úspěchem používám template override na komponentě com_wrapper - funkční kód je pak sice v šabloně, což také není úplně košér, ale pro jednoduché výstupy to bohatě stačí
Je pak jistota, že Joomla je zavedená správně jak má, spouští se všechny pluginy jak mají, kontrolují se přístupy, session, apod.
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
12. čvn 2024 08:30 #149492
od Ernst
Odpověď od Ernst v tématu load joomla 4
za mě to byl v joomle 3 nejjednodušší způsob, jak napsat nějaké dávkové zpracování nebo kód pro ajax dotaz. v joomle 4 to však zjevně pracuje dost jinak.
Vlastní komponenty si dělám a používám, ale nechtěl jsem zde jimi zaplácávat joomlu.
volání v rámci joomly je také nějaké jiné, nedaří se mi příliš,´.
Příklad: budu mít v šabloně test v /templates/test/html/com_content/category/test.php a nedaří se mi ho volat prostředky joomly - /index.php?option=com_content&view=category&layout=test:test.... mi nefunguje a volá tu pořád blog.php
Vlastní komponenty si dělám a používám, ale nechtěl jsem zde jimi zaplácávat joomlu.
volání v rámci joomly je také nějaké jiné, nedaří se mi příliš,´.
Příklad: budu mít v šabloně test v /templates/test/html/com_content/category/test.php a nedaří se mi ho volat prostředky joomly - /index.php?option=com_content&view=category&layout=test:test.... mi nefunguje a volá tu pořád blog.php
- Ernst
- Autor
- OFFLINE
- Joomla Expert
-
Méně
Více
- Příspěvky: 2380
12. čvn 2024 10:11 - 12. čvn 2024 10:12 #149494
od Ernst
Odpověď od Ernst v tématu load joomla 4
tak ten layout v komponentě se mi podařilo vytvořit správně, tak to budu volat v rámci komponenty.
měl jsem tam asi nějakou chybku, vytvořil jsem ho znovu a už jde volat, jak jsem psal výše.
ale stejně by mě zajímalo, jak vytvořit samostatné php třeba v rootu, které by fungovalo obdobně jako v j3
ps, možná mi k tomu layoutu chyběla položka menu
měl jsem tam asi nějakou chybku, vytvořil jsem ho znovu a už jde volat, jak jsem psal výše.
ale stejně by mě zajímalo, jak vytvořit samostatné php třeba v rootu, které by fungovalo obdobně jako v j3
ps, možná mi k tomu layoutu chyběla položka menu
- Cony
-
- Pryč
- Moderátor
-
Méně
Více
- Příspěvky: 5174
13. čvn 2024 00:54 #149497
od Cony
Odpověď od Cony v tématu load joomla 4
Na AJAX nejlíp plugin typu AJAX
url je pak /index.php?option=com_ajax&plugin=mujplugin
Další variantou v Joomla 5 by byl plugin do API.
Pro přepis v rámci šablony je nejrozumnější com_wrapper - nebude volat řádný další SQL dotazy jako třeba com_content.
A nejjednoduší je vytvořit si na nový layout položku v menu, a tu si pak nastavit. Dokonce lze pak přidat i parametry, takže můžu mít víc položek menu a rozdělit si jejich funkčnost pomocí parametrů...
url je pak /index.php?option=com_ajax&plugin=mujplugin
Další variantou v Joomla 5 by byl plugin do API.
Pro přepis v rámci šablony je nejrozumnější com_wrapper - nebude volat řádný další SQL dotazy jako třeba com_content.
A nejjednoduší je vytvořit si na nový layout položku v menu, a tu si pak nastavit. Dokonce lze pak přidat i parametry, takže můžu mít víc položek menu a rozdělit si jejich funkčnost pomocí parametrů...
Poděkovali: Ernst
Vygenerováno za 0.068 sekund