Přihlásit se

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.

Skrytí modulu vyhledávání při nižším rozlišení

21. lis 2018 14:30 - 21. lis 2018 14:53 #137948
Odpověď od Radek Malík
Nováček
Ano, začalo se mi to zobrazovat trošku rozhozeně, ale nakonec jsem vzal z adresy:

components\com_search\views\search\tmpl\

soubor default_results.php a zkopíroval ho do

templates\as002046free\html\com_search\search\

a funguje to se stávajícím vzhledem.

Možná by stačilo postavit si vedle sebe oba dva soubory v textové podobě a najít rozdíly, které způsobují tu chybu. Ale zatím to vypadá, že to takhle funguje bez změny vzhledu a se správným zobrazením výsledků.

21. lis 2018 15:49 #137954
Odpověď od Cony
Moderátor
Soubor z /components brát nemusíte, pokud smažete ten ze šablony, použije se právě ten z /components.
Chyba v původním souboru bude pravděpodobně volání nějaké funkce escape nebo tak nějak, musel by jste sem dát ten kus kódu.

21. lis 2018 16:04 #137956
Odpověď od Ernst
Joomla Expert

Radek Malík napsal: Ano, začalo se mi to zobrazovat trošku rozhozeně, ale nakonec jsem vzal z adresy:

components\com_search\views\search\tmpl\

soubor default_results.php a zkopíroval ho do

templates\as002046free\html\com_search\search\

a funguje to se stávajícím vzhledem.

Možná by stačilo postavit si vedle sebe oba dva soubory v textové podobě a najít rozdíly, které způsobují tu chybu. Ale zatím to vypadá, že to takhle funguje bez změny vzhledu a se správným zobrazením výsledků.


Ale to je podobné jako to, co jsem psal.

21. lis 2018 18:16 #137958
Odpověď od Rudolf
Joomla Expert
1. Chyba Highlight v titulku po vyhledání:

Bylo reportováno taky jako bug v jedné verzi Joomla.
Je třeba upravit php kód v souboru:

components/com_search/views/search/tmpl/default_results.php
Code:
<a href="<?php echo JRoute::_($result->href); ?>"<?php if ($result->browsernav == 1) : ?> target="_blank"<?php endif; ?>> <?php echo $this->escape($result->title); ?> </a> <?php else : ?> <?php echo $this->escape($result->title); ?> <?php endif; ?>

na
Code:
<a href="<?php echo JRoute::_($result->href); ?>"<?php if ($result->browsernav == 1) : ?> target="_blank"<?php endif; ?>> <?php echo $result->title; ?> </a> <?php else : ?> <?php echo $result->title; ?> <?php endif; ?>

U vás se chyba stala proto, že výrobce šablony nezareagoval na upgrade v Joomla z Oct 17, 2017 a nechal override původní..

Pomůže tento override zakomentovat nebo překopírovat originální soubor z komponenty do override šablony:

templates/xxxxxxxxxxx/html/com_search/search/default_results.php

Bohužel u šablon zdarma se tyto problémy dají předpokládat.


2. Skrytí modulu

Ano, popsaný způsob od Conyho je vyčerpávající a fungoval mi donedávna.

Nyní raději používám metodu zjištění mobilního zobrazení pomocí knihovny a funkce v php (spousty mobilů a tabletů nejsou vlastně

hidden-phone
hidden-tablet

protože mají jiné rozlišení).

Lepší a správnější je použít stejnou metodu jako používáme například my v pluginu Heuréka (popup co vyjíždí z boku) nebo regularlabs.com.

Využívá se free knihovna mobile_detect a následně v php funkce
isMobile
IsTablet

Více info zde:
mobiledetect.net

MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Poděkovali: zpetr, Ernst

21. lis 2018 19:08 - 21. lis 2018 19:19 #137961
Odpověď od Ernst
Joomla Expert
to by bylo na dva kratinký články, zde to časem zapadne :)

snad ještě doplním, že pokud někdo používá framework YJSG, tak naopak musí udělat přepis souboru default_results.php z komponety v šabloně nebo to musí opravit v /plugins/system/yjsg/includes/html/com_search/search/default_results.php a raději i v /plugins/system/yjsg/legacy/html/com_search/search/default_results.php.

Tady je problém, že to aktualizace frameworku přepíše zase chybou (ve verzi 2.3.4 to stále není opraveno).

21. lis 2018 21:46 #137973
Odpověď od Cony
Moderátor

Rudolf Baláš napsal: Nyní raději používám metodu zjištění mobilního zobrazení pomocí knihovny a funkce v php (spousty mobilů a tabletů nejsou vlastně

hidden-phone
hidden-tablet

protože mají jiné rozlišení).

Jasně, tohle je specifikum Bootstrap 2, neznačí to přímo telefon nebo tablet, ale rozlišení (šířku displeje). Názvosloví řekněme nevhodně zvolené, v Bootsrap 3 a 4 už také nepoužívané. Na druhou stranu na některých tabletech je zase dnes škoda schovávat něco, co by se na ně v klidu vešlo, nebo naopak zobrazovat něco na počítači, když má uživatel stažený prohlížeč na půl obrazovky, nebo otočený na výšku. Je to otázka vždy konkrétního případu. Popsaný způsob je nejjednodušší na nasazení (v podstatě není co nasazovat) a využívá interních tříd Bootstrap, tedy i filozofii Bootsrapu jako takového.

Powered by Fórum