Tak jsem zase jednou bloumala hlubinami systému a napadla mne jedna střeštěnost. Systém používá tzv. XoopsCode, což je něco podobného, jako jsou HTML značky, ale tyto kódy mají trošku jiný zápis a také jiné vlastnosti. Princip je ale stejný a další podrobnosti najdete buď v dokumentaci k systému nebo zde na Žirafovinách, stačí trochu zapátrat.
No a mne stále chyběla možnost zadat vysvětlení nějaké zkratky, čili použití HTML tagu < ACRONYM >. To do dneška v systému chybělo. Zjistila jsem však, že není vlastně problém si ji tam doplnit. A jak, na to se dneska podíváme.
Nejprve je potřeba vytvořit v adresáři CLASS/TEXTSANITIZER nový adresář a nazvat jej "acr". V něm budou dva soubory:
Prvním je "index.html" který slouží jako taková základní ochrana proti neoprávněnému vniknutí. Najdete jej prakticky ve všech ostatních adresářích a stačí jej pouze překopírovat do nového adresáře.
Druhý se bude jmenovat "acr.php" a bude mít takovýto obsah:
<?php
/*
You may not change or alter any portion of this comment or credits
of supporting developers from this source code or any supporting source code
which is considered copyrighted (c) material of the original comment or credit authors.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
/**
* TextSanitizer extension
*
* @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
* @license http://www.fsf.org/copyleft/gpl.html& ... public license
* @package class
* @subpackage textsanitizer
* @since 2.3.0
* @author Wishcraft <simon@xoops.org>
* @version $Id: li.php 3575 2009-09-05 19:35:11Z trabis $
*/
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;
}
}
?>
V něm se odehrává vlastní rozpoznání nového Xoopskódu a jeho zpracování, čili převedení na HTML značky. Můžete si všimnout, že obsahuje dvě možnosti:
[acr]Nějaká zkratka[/acr]
Tento kód vytvoří z textu, který uzavírá zkratku, ale nemá přiřazený žádný význam, proto to také napíše do popisku.
[acr=Text popisku]Nějaká zkratka[/acr]
Tento kód opět vytvoří zkratku ve smysl jazyka HTML, ale má zadaný i význam této zkratky, a proto ji předá.
V reálu to vypadá takto Xoops a druhá možnost Xoops.
Aby všechno dobře fungovalo, je potřeba upravit ještě jeden soubor, a tím je soubor "config.php" který se nachází v adresáři CLASS/TEXTSANITIZER. Je potřeba najít tuto část:
return $config = array(
"extensions" => array(
"iframe" => 0,
"image" => 1,
"flash" => 1,
"youtube" => 1,
"mp3" => 0,
"wmp" => 0,
// If other module is used, please modify the following detection and 'link' in /wiki/config.php
"wiki" => is_dir(XOOPS_ROOT_PATH . '/modules/mediawiki/'),
"mms" => 0,
"rtsp" => 0,
"ul" => 1,
"li" => 1),
a doplnit jeden řádek:
return $config = array(
"extensions" => array(
"iframe" => 0,
"image" => 1,
"flash" => 1,
"youtube" => 1,
"mp3" => 0,
"wmp" => 0,
// If other module is used, please modify the following detection and 'link' in /wiki/config.php
"wiki" => is_dir(XOOPS_ROOT_PATH . '/modules/mediawiki/'),
"mms" => 0,
"rtsp" => 0,
"ul" => 1,
"li" => 1,
"acr" => 1),
A tím je vlastně celá úprava systému hotová a můžete se kochat vlastní úpravou a také tím, že Xoops umí zase o něco více.
|