Zápisník pojídačky koláčů pro Xoops - Textová Captcha a zkratky pro Xoops 2.5.9
Úprava úprav systému pro nejnovější verzi.
Před časem jsem napsala článek o úpravě funkce Captcha tak, aby tato funkce nechtěla jako odpověď číslo, ale slovo. S příchodem nové verze redakčního systému došlo k různým změnám uvnitř systému a tak tento systém přestal fungovat. Funkci bylo potřeba trošku upravit, ale nakonec se ukázalo, že to nebylo tak složité, jak to původně vypadalo. Ze stejného důvodu bylo potřeba změnit i dodělaný xoopscode pro zobrazení zkratek, čili [acr].
Nejprve se tedy podíváme na tu captchu. V adresáři XOOPSROOT/CLASS/CAPTCHA najdeme soubor text.php a v něm tuto část:
Kterou je potřeba změna takto:
Zbytek zůstává stejný a všechno bude dále fungovat tak, jako doposavad.
Znovu zprovoznění xoops kódu [acr] se provede změnou v souboru acr.php v adresáři XOOPSROOT/CLASS/TEXTSANITIZER/ACR.
Změní se téměř celý, ale to jen proto, že je velmi krátký. Původní obsah:
Změňte na:
A všechno bude opět fungovat tak, jako ve verzi staré. Při nahrávání nové verze si člověk velmi často, a velmi snadno, přepíše původní konfigurační soubory. Pokud k tomu dojde, je potřeba si je upravit tak, jak je popisováno v původních článcích. Ať již ve článku o Zkratkách nebo o Captche.
No a to je pro dnešek všechno. Jsem zvědavá, jestli narazím ještě na nějaké další podobné změny, které mi momentálně unikají, ale myslím si, že by snad být neměly. A také jsem zvědavá, kdy se zase změní XOOPS tak, aby podobný článek musel opět vzniknout. Nechme se překvapit
Nejprve se tedy podíváme na tu captchu. V adresáři XOOPSROOT/CLASS/CAPTCHA najdeme soubor text.php a v něm tuto část:
/**
* XoopsCaptchaText::loadText()
*
* @return string
*/
public function loadText()
{
return '<span style="font-style: normal; font-weight: bold; font-size: 100%; color: #333; border: 1px solid #333; padding: 1px 5px;">' . $this->outputText . '</span>';
}
protected function buildQuestion()
{
$val_a = mt_rand(0, 9);
$val_b = mt_rand(0, 9);
if ($val_a > $val_b) {
$expression = "{$val_a} - {$val_b} = ?";
$this->code = $val_a - $val_b;
} else {
$expression = "{$val_a} + {$val_b} = ?";
$this->code = $val_a + $val_b;
}
$this->outputText = $expression;
}
Kterou je potřeba změna takto:
/**
* XoopsCaptchaText::loadText()
*
* @return string
*/
public function loadText()
{
return '<span style="font-style: normal; font-weight: bold; font-size: 100%; color: #333; border: 1px solid #333; padding: 1px 5px;">' . $this->outputText . '</span>';
}
protected function buildQuestion()
{
$capt_result=array("nula", "jedna", "dva", "tři", "čtyři", "pět", "šest", "sedm", "osm", "devět", "deset", "jedenáct", "dvanáct", "třináct", "čtrnáct", "patnáct", "šestnáct", "sedmnáct", "osmnáct");
$val_a = mt_rand(0, 9);
$val_b = mt_rand(0, 9);
if ($val_a > $val_b) {
$expression = "{$val_a} - {$val_b} = ? (slovem)";
$this->code = $capt_result[($val_a - $val_b)];
} else {
$expression = "{$val_a} + {$val_b} = ? (slovem)";
$this->code = $capt_result[($val_a + $val_b)];
}
$this->outputText = $expression;
}
Zbytek zůstává stejný a všechno bude dále fungovat tak, jako doposavad.
Znovu zprovoznění xoops kódu [acr] se provede změnou v souboru acr.php v adresáři XOOPSROOT/CLASS/TEXTSANITIZER/ACR.
Změní se téměř celý, ale to jen proto, že je velmi krátký. Původní obsah:
defined('XOOPS_ROOT_PATH') or die('Restricted access');
class MytsAcr extends MyTextSanitizerExtension
{
function load(&$ts)
{
$ts->patterns[] = "/[acr](.*)[/acr]/sU";
$ts->replacements[] = '<acronym title="Zkratka bez zadaného významu">\1</acronym>';
$ts->patterns[] = "/[acr=(.*)](.*)[/acr]/sU";
$ts->replacements[] = '<acronym title="\1">\2</acronym>';
return true;
}
}
Změňte na:
defined('XOOPS_ROOT_PATH') || exit('Restricted access');
/**
* Class MytsACR
*/
class MytsAcr extends MyTextSanitizerExtension
{
/**
* @param $ts
*
* @return bool
*/
public function load($ts)
{
$ts->patterns[] = "/[acr](.*)[/acr]/sU";
$ts->replacements[] = '<acronym title="Zkratka bez zadaného významu">\1</acronym>';
$ts->patterns[] = "/[acr=(.*)](.*)[/acr]/sU";
$ts->replacements[] = '<acronym title="\1">\2</acronym>';
return true;
}
}
A všechno bude opět fungovat tak, jako ve verzi staré. Při nahrávání nové verze si člověk velmi často, a velmi snadno, přepíše původní konfigurační soubory. Pokud k tomu dojde, je potřeba si je upravit tak, jak je popisováno v původních článcích. Ať již ve článku o Zkratkách nebo o Captche.
No a to je pro dnešek všechno. Jsem zvědavá, jestli narazím ještě na nějaké další podobné změny, které mi momentálně unikají, ale myslím si, že by snad být neměly. A také jsem zvědavá, kdy se zase změní XOOPS tak, aby podobný článek musel opět vzniknout. Nechme se překvapit
Hodnocení: 0,00 (0 hlasů) - Ohodnotit -
Komentář je vlastnictvím svého autora. Vyjadřuje jeho názory, ne názory redakce nebo provozovatele webu či serveru.
Napsal/a | Vlákno |
---|---|
Žirafka |
Publikováno dne: 7.7.2018. 10:15
Aktualizováno dne:7.7.2018. 10:17
|
Administrátorka
Datum registrace: 04.05.2008
Bydliště: Ústecký kraj
Počet komentářů: 1258
|
Acronym a ABBR
Všimla jsem si, že některé tagy jsou v nové verzi HTML už nepodporované, takže jsem tag ACRONYM změnila na ABBR, což má stejný význam, jen je to podle nové verze HTML. Upřímně řečeno tuto změnu moc nechápu. Ale možná ty ušetřené tři a tři znaky zachrání planetu :-)
|