Joomla - vkládání článků
1)Vložení článků uživatele s úrovní AUTOR, příp. vyšší.
Aby mohli uživatelé vkládat články je nutno, aby byly na úrovni AUTOR místo REGISTROVANÍ. To se docílí buď ručním přiřazením v administraci ke konkrétnímu registrovanému nicku, nebo defaultně pro všechny nově registrované tím, že v administraci - globální nastavení - systém zvolíte: Typ registrace nového uživatele - Autor, nikoliv jen registrovaný.
2)Autopublikování bez nutnosti schválení administrátorem:
nutná úprava kódu + podmínka bodu 1, tedy registrovat nebo být přidělen jako Autor.
Pozor: pro testování je nutno se někdy odhlásit a přihlásit
najdi soubor: /libraries/joomla/user/authorization.php
řádek cca.: 200 a přidej pro každý typ uživatele potřebný řádek, pro autora tedy:
$this->addACL( 'com_content', 'publish', 'users', 'author', 'content', 'all' );//own nefunguje
Zatím to s tímto funguje, komplikace jsem nezaznamenal, ale netvrdím, že nebudou. V podstatě se autorovi přiřadila stejná práva jako publisher. S těmito právy by teoreticky mohl publikovat všechny i cizí články, ale zase jak, když se nedostane do administrace? nevím přesně jak to funguje, takže zatím testuji.
-------------
Skrýt některá pole ve formuláři pro vložení článku, tak, aby byla funkční - s výchozí volbou.
Šablona formu
templates/vase_sablona/html/com_content/article/form.php
Do patřičného divu stačí vložit
style="display: none"
např. takto:
<!-- pridano style="display: none"-->
<div style="display: none" class="radio">
<label for="frontpage">
<span><?php echo JText::_( 'Show on Front Page' ); ?>:</span>
</label>
<?php echo $this->lists['frontpage']; ?>
</div>
Pozor: je to jen skrytí, teoreticky si uživatel může povypínat styly a zobrazí se mu to, ale pro běžné použití, aby to uživatele nemátlo to stačí.
Je také možné přesunout submit buttony na konec formu, tak jak to obvykle bývá u formulářů. Horní umístění je sice vidět, ale hodně uživatelů to přehlédne a zbytečně zmate.
----------------------------
Sobi2 - úprava dle mého názoru nešťastně řešeného vypisování dat z roletového select inputu.
Běžně ve výchozích uživatelsky definovaných položkách se nachází typ pole select listm resp. roletové výběrové menu.
Zadávají se do něj mimo běžných parametrů proměnné: value a name. Už toto mi připadne, že je obráceno.
Popis:
Název volby - pozor ve skutečnosti je to to, co se odesilá do databáze tzn. value, ovšem ne to co se pak zobrazuje jako hodnota např. v detailu. To se opět použije nelogicky to co se zobrazí v roletě, což znemožňuje jakékoliv formátování textu v roletě.
Hodnota volby - pozor ve skutečnosti je to to, co se zobrazuje v roletě, ale současně i to co se zobrazuje v detailu.
Další problém vzniká, pokud si v detailu chcete vytáhnout to co se opravdu ukládá k položce (odkazu). Buď se spokojíte s tím, že obě hodnoty vyplníte stejně a pak Vám to leze ven OK, ovšem pokud chcete v roletovém menu použít nějaké formátování, tak pak Vám to leze i s tímto formátováním a to pak může vypadat hrozně.
Pozn.: možná to má nějaký důvod, např. při změně hodnot se to pak změní ve všech odkazech, ale osobně dám přednost tomu, že u každé položky - odkazu bude přesně to co si tam konkrétní inzerent vložil a ikdyž v budoucnu změním proměnné a hodnoty, tak tam bude mít to co si tam uložil on.
Proto jsem provedl malou úpravu v souboru: components/com_sobi2/field.class.php
a to zhruba na řádku 336.
//testování typu pole
if($this->fieldType == 5) { $this->sortValues = $this->wysiwyg; $this->selectLabel = $this->fieldChars; $this->wysiwyg = null; $this->fieldChars = null; $this->selected = $this->data;
//zacatek upravy if($this->fieldname!="field_region")
//pokud nechcete upravu jen na konkretni pole, odstraňte if
podmínku, v opačném případě místo field_region zadejte název
svého konkrétního pole
{ $this->data = isset($this->definedValues[$this->data]) ? $this->definedValues[$this->data] : null; } else{ //pouzije se vychozi $this->data, ktere je nekde nahore jiz prirazeno }
//pridano opraveno - zakomentovano z duvodu, ze se v datech z rolety misto value zobrazovalo to co je v popisu rolety }
POZOR: jen na vlastní nebezpečí pro ty co chtějí experimentovat.
Možné problémy: netestováno na hledání v tomto poli. Možná nechtěná neznámá nekompatibilita v nějakých dalších modulech.
Prosím hlaste chyby na info@a-pool.cz díky.