Přihlásit se

Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)

Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.

Přepis výstupu

09. lis 2015 10:13 #124429
Odpověď od Cony
Moderátor
Psal jste modul. Moduly jsou ve složce modules, ne components. Modul ve složce tmpl nebude mít žádnou podsložku, ale přímo soubory.

Pro jednodušší hledání správného View si zkuste vypnout SEF odkazy. V URL pak vždy uvidíte něco jako task=.... nebo view=... a ztoho odvodíte správné view.

Template override - popsáno např. zde .

09. lis 2015 10:50 #124430
Odpověď od Ernst
Joomla Expert
díky, tak Template override již chápu, vcelku šikovná věc.

To love factory je komponenta, a kódy jsou umístěny v \www\components\com_lovefactory
Asi jsem to napsal nesrozumitelně, ale myslel jsem, že složka www\components\com_lovefactory\views má 62 podsložek a každá má svoje tmpl.
URL mi u toho přehledu (ať zapnu či vypnu SEF) dá http://localhost/index.php?option=com_lovefactory&view=search&Itemid=447&lang=cs

Takže bych mel hledat v \www\components\com_lovefactory\views\search\tmpl
Tam je jen default.tpl
Code:
{extends "layout.tpl"} {block "toolbar"} {toolbar toolbar="search" active=$viewName} {/block} {block "heading"}{/block} {block "content"} {jhtml _='LoveFactory.BeginForm' url={jroute view=$viewName}|cat:$jumpToResults} {* <div class="lovefactory-search-form" style="display: {($request) ? 'none' : 'block'}">*} <div class="lovefactory-search-form" style="display: {($request) ? 'none' : ''}"> {$renderer->render($page)} <div class="actions"> <button type="submit" class="btn btn-small btn-primary"> <span class="fa fa-fw fa-search"></span>{text text=$viewName|cat:'_submit_button'} </button> <button class="form-reset btn btn-small btn-link"> <span class="fa fa-fw fa-times"></span>{text text='search_reset_form'} </button> </div> </div> {if $request} <a href="#" class="toggle-form btn btn-small btn-link"> <span class="fa fa-fw fa-chevron-down"></span>{text text='search_toggle_form'} </a> {/if} {$viewResults} </form> {/block}

a v tom je čert se vyznat.
v layout.tpl je jen
Code:
<div class="lovefactory-view view-{$viewName}"> {block "toolbar"}{/block} <h2 class="heading">{block "heading"}{text text="page_heading_title_"|cat:$viewName}{/block}</h2> {block "content"}{/block} </div>

Developer tools vypíše:
Code:
<div style="background-image: url('http://localhost/media/com_lovefactory/storage/photos/9/thumb_30f6df41ab7aae396f33e5f28215fde6.jpg');" class="lovefactory-thumbnail"> <a href="/index.php/cs/lide-hledat-2/photos?user_id=9" style="display: block; height: 100%;"></a> </div> <a href="/index.php/cs/lide-hledat-2/photos?user_id=9" style="display: block; height: 100%;"></a>
a to kde se generuje to href potřebuji najít a přepsat ho na:
Code:
<a href="/index.php/cs/lide-hledat-2/profile/9"><i class="factory-icon icon-user"></i>u1</a>

Pro mně se to najít nezdá být tak jednoduché

09. lis 2015 11:02 #124431
Odpověď od Cony
Moderátor
Znovu - psal jste modul, to NENÍ komponenta, a zdroje modulu NEJSOU v adresáři compnents ale modules. Pokud je to opravdu modul (tedy spravovaný v administraci přes menu Rozšíření - Správce modulů) - hledejte ho v adresáři modules.

Pokud chcete upravovat výstup komponenty a ne modulu, pak to bude opravdu v tom adresáři search, ale nejspíš bude vše "skryto" v řádku
Code:
{$viewResults}

09. lis 2015 11:24 - 09. lis 2015 11:28 #124432
Odpověď od Ernst
Joomla Expert
možná špatně používám názvosloví, ale všechny úpravy komponenty dělám v \www\components\com_lovefactory.
S tím $viewResults asi máte pravdu, ale kde se načítá?
na text "viewResults" mi to nic nenajde.

09. lis 2015 11:35 #124433
Odpověď od Cony
Moderátor
Ale špatným názvoslovím dost komplikujete jakoukoliv radu.
Komponenta je rozšíření Joomly, která má valstní URL adresu a (obvykle) umí cosi zobrazit v hlavní části stránek.
Modul je rozšíření Joomly spravovaný přes správce modulů. Nemá vlastní stránku, lze jej zobrazit v postranních sloupcích (např.) na stránkách jiných komponent apod. Obvykle se modul používá k zobrazení různých podružných informací, nebo navigací (menu)
Plugin je rozšíření Joomly které primárně obvykle nikde nic nezobrazuje, rozšiřuje obvykle (nebo upravuje) nějakou funkčnost nějaké komponenty. Spravovatelný je v adminisraci ve správci pluginů.

Dobře napsané komponenty v Joomle používají MVC (Model View Controller). Controller je obvykle v adresáři controllers dané komponenty. Zde by jste měl začít pátrání, pokud hledáte co se děje při určité akci. Controller sbírá vstupy od klienta (řekněme uživatele) a na jejich základě volá funkce modelu (v adresáři models, obvykle bude mít model stejné jméno jako controller) a výsledky zobrazuje pomocí View (adresář views, podadresář opět obvyke se stejným jménem jako controller), nebo provede přesměrování na jinou stránku. View si již jen načítá hodnoty z modelu a zobrtazí je pomocí šablony (standardně php soubor v podadresáři tmpl, u Vás je to ještě "rozšířené" o speciální template systém).

Takže ano, pravděpodobně se budete muset podívat do modelu, kde se tam bere viewResults, jak vzniká, zda nevolá nějakou jinou šablonu atd...

09. lis 2015 11:52 - 09. lis 2015 12:03 #124436
Odpověď od Ernst
Joomla Expert
Love factory - extensions.joomla.org/extensions/extensi...onships/love-factory
je komponenta, která má i moduly a pluginy, ty pluginy momentálně nepoužívám.
A ty moduly jsou tam zjevně jen proto, abych mohl zavolat určitou část nebo zobrazení love factory přímo z vlastního menu tedy přesněji z modulu
to rozdělení (komponenta,modul,plugin), co píšete chápu a vím, co zhruba každá dělá kde ji najít.
do controlleru jsem se díval jako první a nic jsem tam nenašel (již jsem v něm některé části upravoval)
tam je search.php
Code:
defined('_JEXEC') or die; class FrontendControllerSearch extends FrontendController { function search() { $model = $this->getModel('search', 'FrontendModel'); if ('POST' == JFactory::getApplication()->input->getMethod()) { $model->updateSearchQuery(); } $type = JFactory::getApplication()->input->getString('type', 'quicksearch'); $settings = new LovefactorySettings(); $jump = $settings->jump_to_results ? '#lovefactory-results' : ''; // Reset limitstart $limitstart = JFactory::getApplication()->input->cookie->getInt('lovefactory_search_limitstart', 0); if ($limitstart) { setcookie('lovefactory_search_limitstart', 0, null, '/'); } $Itemid = JFactory::getApplication()->input->getInt('Itemid', 0); $this->setRedirect(JRoute::_('index.php?option=com_lovefactory&view=' . $type . '&show=1&Itemid=' . $Itemid . $jump, false)); } function changesort() { $lovefactory_search_limitstart = JFactory::getApplication()->input->cookie->getInt('lovefactory_search_limitstart', 0); JFactory::getApplication()->input->set('limitstart', $lovefactory_search_limitstart); $model = $this->getModel('search', 'FrontendModel'); $model->updateSortQuery(); $type = JFactory::getApplication()->input->getString('type', 'quicksearch'); $view = $this->getView($type, 'raw', 'FrontendView'); $view->display(); // $type = JRequest::getVar('type', 'quicksearch', 'REQUEST', 'string'); // // $Itemid = JRequest::getVar('Itemid', 0, 'REQUEST', 'integer'); // $this->setRedirect('index.php?option=com_lovefactory&view='.$type.'&format=raw&show=1&limitstart='.$lovefactory_search_limitstart); } }

prohledal jsem celý adresář lovefactory na text "viewResults" a nic
Nehledám samozřejmě hledáním windows, ale používám phpDesigner

Powered by Fórum