custom module

Ernst
17. úno 2021 00:00 - 17. úno 2021 00:00 #143724
Nevíte někdo, jak modulu custom module zakázat použití editoru?
Mluvím o backendu.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
17. úno 2021 08:26 - 17. úno 2021 08:28 #143725
Vymazat v xml řádek se zpětným lomítkem

<customContent />

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
17. úno 2021 12:09 #143726
Díky, ale to jsem si také vygooglil, ale pak nemám možnost vůbec zadat vlastní obsah.
Zmizí nejenom editor, ale i textarea na zadávání.

Má někdo další nápad?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Houbák
17. úno 2021 13:09 #143727
V souboru administrator/com_modules/views/module/tmpl/edit.php upravit kód (řádek 226)
if ($hasContent)
{
echo $this->form->getInput($hasContentFieldName);
}
na
if ($hasContent)
{
   if($this->item->module == 'mod_custom') {
      $this->form->setFieldAttribute($hasContentFieldName, 'type', 'textarea');
   }
   echo $this->form->getInput($hasContentFieldName);
}

Je možné udělat i override, takže úprava zůstane i updatu Joomly.
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
17. úno 2021 13:54 #143728
ano, je to přesně ono, co jsem potřeboval. A ještě je možné v přepisu modulu custom změnit větu "Modul umožňuje vytvořit vlastní modul pomocí WYSIWYG editoru."

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Bong
17. úno 2021 18:00 #143731
Ono tu větu by možná nebylo od věci změnit přímo v překladu Joomly. Ne každý uživatel používá stejný editor a zrovna WYSIWYG může být trochu zavádějící. Navíc díky filtrům je potřeba ve většině případů (pokud je potřeba vložit nějaký kód) zrovna WYSIWYG editor vypnout...

I'm sorry, my responses are limited...you must ask the right questions.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
17. úno 2021 18:32 - 17. úno 2021 18:37 #143735
Bongu, klidně můžeš, já spíš myslel přidat tam novou jazykovou proměnnou.

Ale není pravda, že to jde v textových filtrech vypnout. Prostě nejde, nefunguje to a speciálně to nefunguje pro jce. Strávil jsem nad tím hafo času a prostě nejde vložit nějaký kód (například iframe), aniž by to editor buď zcela smazal nebo upravil. Jestli je to chyba v joomle nebo je to kvůli bezpečnosti teď zcela zakázaný netuším.

Všechny návody na to nefungují, věřte mi, že bych raději zvolil nějaké takové řešení než sahat do kódu.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
17. úno 2021 19:14 - 17. úno 2021 19:16 #143737
Při použití JCE dochází k dvojímu filtrování, o jedno se stará přímo JCE - to lze nastavit v rámci profilu JCE, o druhé Joomla, tam pak záleží jaká má práva přihlášený uživatel (v globálním nastavení filtrování textu).

Jinak pro vložení vlastního kódu jsem vždy radši šel cestou vytvoření template override custom modulu, kam jsem si ten kód dal natvrdo. Není pak třeba řešit editory, různá práva uživatelů apod...

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
17. úno 2021 20:40 #143741

Při použití JCE dochází k dvojímu filtrování, o jedno se stará přímo JCE - to lze nastavit v rámci profilu JCE, o druhé Joomla, tam pak záleží jaká má práva přihlášený uživatel (v globálním nastavení filtrování textu).


Ano to vím, ale nelze to nastavit, tak že to nezmění nebo nesmaže třeba iframe. Pokud mi někdo takové nastavení předvede je borec, ale fakt to myslím nejde. Takovéto nastavení je mnohokrát popsáno, ale na aktuální joomle a JCE to nefunguje.

Jinak pro vložení vlastního kódu jsem vždy radši šel cestou vytvoření template override custom modulu, kam jsem si ten kód dal natvrdo.


Pro určitá řešení je to vhodné, ale ne vždy. Když je takovýchto modulů na webu více, tak by vznikal dost zmatek. A pokud tam budu mít třeba vloženou google mapu a nad ní bude v <h2> hlavička, tak si to zkušenější uživatel dokáže sám změnit v kódu. Pokud mu tam povolím editor, je vše nenávratně ztraceno.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Bong
18. úno 2021 10:21 - 18. úno 2021 10:22 #143747
Většinou jde upravit skoro všechno, pokud si uživatel přepne editor na: Žádný editor. Ale je to otravné.

Konkrétně pro iframe je velice vhodné a jednoduché použít modul Obálka. Tento pak lze využít buď jako samostatný modul nebo třeba pomocí loadmodule zobrazit kdekoli v obsahu Joomly (článek, modul vlastní obsah,...). Je to bez starostí.

I'm sorry, my responses are limited...you must ask the right questions.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
18. úno 2021 10:38 - 18. úno 2021 10:40 #143749
jasně, je mnoho možností.

Ale úplně vypnout editor v globální konfiguraci zase znepříjemní uživatelům psaní článků. Kdyby byla tato volba jen na vlastní moduly, bylo by to super. Možná by byl dobrý nápad přidat to do joomly.
A vypnout jce při editaci toho modulu znamená to že když tam někdo znovu vleze a uloží to, tak ten obsah zcela zmizí. A to je dost šílený.

A modul obálka jen vytvoří iframe, aniž bych ho mohl ovlivnit parametry, například lazy load.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
18. úno 2021 18:02 - 18. úno 2021 18:03 #143754
Tak konkrétně iframe povolení v rámci JCE profilu buď
- buď na záložce Funkce & Rozvržení si přetáhnout ikonku pro Iframe do použitých ikon
- nebo na záložce Plugin Parameters sekce Podpora médií hodnota Povolit IFrame na Ano.

Oboje jsem zkusil, oboje mi funguje i po uložení. V příloze jsem hodil profil který používám (je tedy pro JCE PRO). Předpoklad tedy je být přihlášen jako uživatel bez nastaveného filtrování v rámci glob. nastavení Joomly.

Soubor přílohy:

Název: jce_editor...2_18.txt
Velikost:7 kB


Osobně to ale takto nepoužívám, riziko toho, že něco pak otevře uživatel s nižším oprávněním a tím to smaže je velké.

Pro podobné případy používám, jak jsem psal, přepis modulu Vlastní HTML a k tomu plugin n3t Fields - ten umožní v rámci šablony definovat doplňující pole téměř k čemukoliv, tedy i modulům. Takže si pak můžu vytvořit přepis modulu třeba iframe.php a k němu mít v Custom HTML modulu speciální záložku s parametry. Uživatelé pak zadávají atomické hodnoty a nemusím řešit co kdo jak zadá do editoru...
(stejně to používám třeba i u článků / kontaktů / bannerů)
Přílohy:
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
18. úno 2021 19:20 #143755
OK, dík za rady
Ono to opravdu vypadá, že to lze použít jen pro JCE pro, v neplaceném to prostě povolit nejde.

A právě riziko, že když do toho někdo vleze, tak to smaže je prostě průšvih.

To už si raději napíšu vlastní modul pro vlastní obsah, který nebude používat editor.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
19. úno 2021 01:24 - 19. úno 2021 01:40 #143759

To už si raději napíšu vlastní modul pro vlastní obsah, který nebude používat editor.


A jsme zpět u první rady, kterou jsem Vám dal :D
U mě navíc bez ztráty času a nervů.

Napsal Cony: Pro podobné případy používám, jak jsem psal, přepis modulu Vlastní HTML a k tomu plugin n3t Fields


Zajímavá varianta :)
To já zase používám ACM modul, kde si jednotlivé typy polí nadefinuji v XML a view si udělám takové jak potřebuji.
Ve výsledku si tímto připravím například různé typy prvků na web (podobné jako když si v page builderu nasázím předdefinované typy modulů.
A také to ve výsledku má asi stejný efekt - admin zadává jen to co má a nemá kam uhnout a udělat chyby.

Ale jestli je to odobné jako u core fields u článků, tak pak si dokážu představit, že tam kde do modulu potřebuji vložit JS, který nikdo nemá editovat než já, tak prostě dám poli nastavení že je jen pro superadmina, a admin tyto pole neuvidí == nemůže je zkonit.
Otázkou je, proč bych to dělal, když potřebuji k JS nastavit jeho chování (defer, umístění...).
Zde je opravdu na místě to nahrát natvrdo přímo do modulu.

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
20. úno 2021 09:58 - 20. úno 2021 09:59 #143765
rudolf napsal:

Vymazat v xml řádek se zpětným lomítkem

<customContent />


Rudolfe, fakt, hodně mi vadí, když někdo ze sebe dělá chytrého.
Tohle je jediné, co jsi k tomu napsal. Kde je tam ta rada o vlastním modulu?
Vytvořit nebo upravit si pro to nějaký modul, je možná to nejjednodušší, ale není to vhodné pro weby, které jsou již hotovy. Měnit custom moduly na jiné moduly (a možná i s nutností stylovat) není zrovna dobrý nápad.

Dobrá rada je ta Houbákova a taky jsem ji využil. Je možné, že se vynoří ještě něco lepšího, pokud ano, napíšu to sem.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.