< návrat zpět

Diskuse


Téma: Kde se skládá tabulka pro přidání příspěvku rss

Zaslal/a 6.4.2020 16:55

Ahoj, netušíte prosím někdo, kde systém skládá tabulku pro přidání příspěvku pod článkem?

Našel jsem si v souboru function.php kolem řádku 1825 řádky, které můžou za input a textarea použité ve formuláři pro přidání příspěvku. Ale nedochází mi, kde z toho systém poskládá výslednou tabulku.

Pro mé účely bude totiž mnohem snažší, když inputy obalím jen divy s příslušnou třídou, namísto vypsání pomocí tabulky.

Děkuji

Zaslat odpověď >

#022085
To řeší funkce _uniForm(), a skládá to funkce _formOutput(). Dá se to ovlivnit napsáním pluginu s využitím události sys.form případně jiných událostí.

_extend('reg','sys.form', function($args){

if($args['id'] === 'postform'){
// vlastni zpracovani
}

});

Pokud by se ti jednalo jen a pouze o ovlivnění těch formulářových prvků, tak by se dala použit událost sys.form.postform
#022086
Na tohle jsem guma, tohle ani stránka v dokumentaci - extend pluginy mi nepomůže 1
Jednoduše to neumím použít. 7

Ale navedl jsi mě na funkci formOutput, tu už jsem si dokázal najít a odebrat z ní výpis do tabulky.. Teď to háže samotné inputy a textareu.. Kdo ví, co všechno jsem tím rozbil, ale pro potřeby mé budoucí stránky to stačí, takže opět děkuji. 1
#022087
Navedl bych tě i přesněji, ale nevím čeho konkrétně se snažíš docílit.
#022088
V pořádku, děkuju. Chtěl jsem to dostat pryč z tabulky a odtranit popisky před polem, které se vyřeší skrze placeholder="" ..

Když se teď podívám na zdrojový kód stránky už zpracované v prohlížeči, vidím toto..

<form action='./remote/post.php?_return=index.php%3Fa%3Dhlavnichody%2Fknedlo-zelo-vepro' method='post' name='postform' onsubmit="if (postform.text.value==''){_sysAlert(1); return false;}">

<input type='text' name='subject' class='form-control' maxlength='22' />

<textarea name='text' class='form-control' rows='5' cols='33'></textarea>

<input type='hidden' name='_posttype' value='2' /><input type='hidden' name='_posttarget' value='2' /><input type='hidden' name='_xhome' value='-1' />
<input type='submit' value='Odeslat' />

<span class='posts-form-buttons'><button onclick="_sysPostPreview(this, 'postform', 'text'); return false;">Ukázka</button> &nbsp;&nbsp;<a href="#" onclick="return _sysAddBBCode('postform','text','b', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/b.png" alt="b" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','i', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/i.png" alt="i" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','u', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/u.png" alt="u" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','s', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/s.png" alt="s" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','img', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/img.png" alt="img" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','code', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/code.png" alt="code" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','url', true);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/url.png" alt="url" /></a> <a href="#" onclick="return _sysAddBBCode('postform','text','hr', false);" class='bbcode-button'><img src="./plugins/templates/food/images/bbcode/hr.png" alt="hr" /></a> &nbsp;&nbsp;<a href="#" onclick="return _sysAddSmiley('postform','text',1);"><img src="./plugins/templates/food/images/smileys/1.gif" alt="1" title="1" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',2);"><img src="./plugins/templates/food/images/smileys/2.gif" alt="2" title="2" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',3);"><img src="./plugins/templates/food/images/smileys/3.gif" alt="3" title="3" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',4);"><img src="./plugins/templates/food/images/smileys/4.gif" alt="4" title="4" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',5);"><img src="./plugins/templates/food/images/smileys/5.gif" alt="5" title="5" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',6);"><img src="./plugins/templates/food/images/smileys/6.gif" alt="6" title="6" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',7);"><img src="./plugins/templates/food/images/smileys/7.gif" alt="7" title="7" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',8);"><img src="./plugins/templates/food/images/smileys/8.gif" alt="8" title="8" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',9);"><img src="./plugins/templates/food/images/smileys/9.gif" alt="9" title="9" /></a> <a href="#" onclick="return _sysAddSmiley('postform','text',10);"><img src="./plugins/templates/food/images/smileys/10.gif" alt="10" title="10" /></a></span>
<input type="hidden" name="_security_token" value="8a554d18409cd0f86b90598ea45e23ef" /></form>


Což je v podstatě to, co jsem chtěl. Ale nefunguje vkládání smajlíku, ani bbcode.. Zachoval jsem pojmenování polí, tj. postform i text a s javascriptem jsem nehýbal. jscript.php je tedy beze změny. Co může být špatně?

Jinak začíná mi být blbé se pořád jen ptát, kór když mi pořád odpovídáš jen Ty. Jsem tu jen krátce, a hádám, že jsi nějaký místní guru :) lze Ti Tvou snahu nějak oplatit?
#022089
pokud by to poukázalo na zdroj problému, tlačítko "Ukázka" neprovede ukázku, ale post rovnou odešle.. což nevadí, stejně jsem s tímto tlačítkem do budoucnosti nepočítal, takže jsem ho už odstranil.

Každopádně chápu, že z mých příspěvků začíná být patrné, že se rejpu kde v čem aniž bych tomu pořádně rozuměl. Beru to jako cestu, součást učení a porozumění tomuhle cms a pochopim, když pro to nebude mít každý pochopení 5
#022090
Zde máš popis kde a jak založit soubor pluginu. http://sunlight.shira.cz/dokumentace/pluginy/extend#a_struct
A já jsem ti sepsal takový lehký plugin, který ti upraví ty inputy. Tabulky se sice nezbavíš, ale bude to lepší než se vrtat v systémových souborech...

Takže ty potřebuješ spíše toto, než rozebírat systém zevnitř 5 3
<?php

// kontrola jadra a prostredi
if (!defined('_core')) {
return;
}

_extend('reg','sys.form.postform', function($args){

global $_lang;

if($args['call'][0] === 'postform') {

// vlastni definice poli
$inputs = array();
$captcha = _captchaInit();
if (_loginindicator == 0) $inputs[] = array(" ", "<input type='text' name='guest' maxlength='24' class='form-control'" . _restoreGetFdValue("guest") . " placeholder='" . $_lang['posts.guestname'] . "' />");
if ($args['vars']['xhome'] == -1) $inputs[] = array(" ", "<input type='text' name='subject' class='form-control' maxlength='" . (($args['vars']['posttype'] != 5) ? 22 : 48) . "'" . _restoreGetFdValue("subject") . " placeholder='" . $_lang[(($args['vars']['posttype'] != 5) ? 'posts.subject' : 'posts.topic')] . "' />");
$inputs[] = $captcha;
$inputs[] = array(" ", "<textarea name='text' class='form-control' rows='5' cols='33' placeholder='" . $_lang['posts.text'] . "'>" . _restoreGetFdValue("text", null, true) . "</textarea><input type='hidden' name='_posttype' value='" . $args['vars']['posttype'] . "' /><input type='hidden' name='_posttarget' value='" . $args['vars']['posttarget'] . "' /><input type='hidden' name='_xhome' value='" . $args['vars']['xhome'] . "' />" . (isset($args['vars']['pluginflag']) ? "<input type='hidden' name='_pluginflag' value='" . $args['vars']['pluginflag'] . "' />" : ''), true);

// nahrazeni poli ve formulari
$args['call'][2] = $inputs;
}

});
Samozřejmě to nechává funkční prvky jako Ukázka, BBCode a smajliky.

"Jinak začíná mi být blbé se pořád jen ptát, kór když mi pořád odpovídáš jen Ty. Jsem tu jen krátce, a hádám, že jsi nějaký místní guru :) lze Ti Tvou snahu nějak oplatit?"

Nestyď se a klidně se ptej, když se nezeptáš nic se nedozvíš... Dá se říci, že jsem hlavní vývojář pluginů a rozšíření pro tento redakční systém. Avšak pro aktuální verzi 7.5.5 již nic nevyvíjím, čekám na uvolnění nové verze 8.0.0 Jen se to trošku táhne. Odpovídá zde většinou ten, kdo dřív přijde nebo zná řešení.

"Každopádně chápu, že z mých příspěvků začíná být patrné, že se rejpu kde v čem aniž bych tomu pořádně rozuměl. Beru to jako cestu, součást učení a porozumění tomuhle cms a pochopim, když pro to nebude mít každý pochopení"

Každý z nás někdy někde začínal, já začínal na tomto systému. Mám pochopení pro začátečníky se snahou, ale občas se zde zjeví i naprosto neznalí lidé bez zájmu. Tam bohužel nejde nic moc dělat, tady není čas a možnost nikoho vodit za ruku a učit naprosté základy HTML a CSS nebo dělat domácí úkoly. Na to jsou jiné weby.
#022091
Ještě mě napadlo, zda by nebylo lepší to stylování dělat v SASSu, kde se dají podědit vlastnosti mezi prvky. Bylo by to jednodušší, než se snažit upravit každý formulář v Sunlightu. Jen tam zase nedostaneš placeholdery Ale asi to bude trochu mimo rozsah tvých znalostí.

V SASSu by to vypadalo nějak takto:
input[type=text] {
@extend .form-control;
}

input[type=submit] {
@extend .btn;
@extend .btn-primary;
}
#022092
Ahoj :) Děkuji za vstřícné odpovědi. Pravda, o SASSu jsem si nikdy nic nečetl.

Nainstaloval jsem si čistý SL a hle, Tvuj kód pochopitelně funguje :) Tedy odstraní to popisky, placeholder vidím, nevím, zda to mělo dělat ještě něco dalšího. V mé starší instalaci to sice také něco dělá, ale nic moc viditelného.. 5 což mě nepřekvapilo 5 a smajlíky to nespravilo..

začnu s novou instalací, Tvým kódem, své úpravy budu zanášet postupně a ohlídám si ty smajlíky, jelikož ty fakt chci 1

html, css tak nějak, rozpomínám se na to málo, co jsem dřív používal, na php jsem lopata.. to co jsi mi poslal, bych nesepsal ani za měsíc.. 1

ještě dotaz, ale bojím se, že mám smůlu.. dle funkce _parsePost tipuju, že číslo smajlíka mezi hvězdičkami jasně odpovídá čislu v názvu obrázku smajlíka..?? tedy kdybych chtěl, aby smajl č. 1, měl i další ekvivalenty jako ":)" ":-)" atd, musela by se sepsat zase nějaká taková funkce složitá, nejde jen o nahrazení textových polí v nějakém souboru, že? Děkuji
#022093
Nevím jestli to někomu pomůže, a nejsem si svím tvrzením 100% jistý, ale rejpu se v tom už několik hodin. I s čistým SL (a svojí šablonou ve složce templates) jsem totiž nebyl schopný přimět smajlíky ke vkládání.

Konflikt pravděpodobně vyvolává jQuery, kterou má šablona využívá. Přesněji soubor jquery-2.2.4.min.js v šabloně Delicious ..

Po tom co soubor s jQuery nechám prázdný, už smajlící i BBcode normálně funguje, bohužel se obávám, že přestane fungovat něco jiného..
#022094
Sunlight obsahuje jQuery, není potřeba linkovat další, takže není třeba se obávat.