Как сделать простейший плагин
<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=sample
Part=main
File=sample
Hooks=standalone
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */
defined('SED_CODE') or die("Wrong URL.");
?>
<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=sample
Name=Пример
Description=Пример плагина
Version=0.0.1
Date=2010-jan-12
Author=Vasily Pupkin
Copyright=Copyright (c) 2010 Vasily Pupkin
Notes=BSD License
Auth_guests=R
Lock_guests=A
Auth_members=R
Lock_members=A
[END_SED_EXTPLUGIN]
==================== */
defined('SED_CODE') or die("Wrong URL.");
?>
$plugin_title = 'Пример плагина'; //Заголовок плагина
$plugin_subtitle = 'Мы все чему нибудь учились ...'; //Подзаголовок плагина
$plugin_body .= <<<EOT
<form name="form1" method="post" action="">
Введите первое число: <input type="text" name="formtext1"><br><br>
Введите второе число: <input type="text" name="formtext2"><br><br>
<input type="submit" name="formbutton1"><br><br>
</form>
EOT;
$plugin_body .= '<b>Произведение ваших чисел = '.$_POST[formtext1]*$_POST[formtext2].'</b>';
<?php
/**
* Russian language file
* @author Agir
*/
$L['title'] = "Пример плагина";
$L['subtitle'] = "Мы все чему нибудь учились ...";
$L['int_1'] = "Введите первое число: ";
$L['int_2'] = "Введите второе число: ";
$L['resultat'] = "Произведение ваших чисел = ";
?>
<!-- BEGIN: MAIN -->
<div id="title">
<a href="plug.php?e=sample">{ME_TITLE}</a>
</div>
<div id="subtitle">
{ME_SUBTITLE}
</div>
<form name="form1" method="post" action="">
{INT_1}<input type="text" name="formtext1"><br><br>
{INT_2}<input type="text" name="formtext2"><br><br>
<input type="submit" name="formbutton1"><br><br>
</form>
<b>{OTVET_TXT} {OTVET}</b>
<!-- END: MAIN -->
<div id="title">
<a href="plug.php?e=sample">{ME_TITLE}</a>
</div>
<div id="subtitle">
{ME_SUBTITLE}
</div>
<!-- BEGIN: MAIN -->
.... Основной блок плагина
<!-- END: MAIN -->
[quote]
[quote]
{_ПЕРЕМЕННАЯ_ИЗ_PHP_СКРИПТА_(произвольная)_}
<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=sample
Part=main
File=sample
Hooks=standalone
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */
defined('SED_CODE') or die("Wrong URL.");
$d_2 = sed_import('formtext1','P','INT');//Эти две строчки как раз отфильтровывают входящие данные
$d_1 = sed_import('formtext2','P','INT');//в нашем случае это числа (INT), а метод POST (P)
$proizved = $d_1*$d_2; // Основная "работа" плагина :)
$t->assign(array( //$t - это объект с нашим шаблоном, а так мы задаем массив переменных для файла .tpl
"ME_TITLE" => $L['title'], //берем из языкового файла
"ME_SUBTITLE" => $L['subtitle'],
"INT_1" => $L['int_1'],
"INT_2" => $L['int_2'],
"OTVET" => $proizved, //берем результат работы плагина
"OTVET_TXT" => $L['resultat']
));
?>
Thanked: 263 mal
Thanked: 76 mal
if (!defined('SED_CODE') || !defined('SED_PLUG')) { die('Wrong URL.'); }
Thanked: 3 mal
Thanked: 2 mal
вариант 1 - производительность теоретически выше.
Но! CMS по-любому парсит свое содержимое, поэтому использование встроенных функций крайне незначительно понизит производительность, этими потерями можно пренебречь, естественно сайт сделаный на статичных html-страничках будет "пошустрее" сайта на скриптах, но тем не менее большинство сайтов использует именно наборы скриптов (CMS), для удобства наполнения и выдачи содержимого, здесь уже встает вопрос об оптимизации встроенных функции движка в этом плане Cotonti на высоте. Кроме того вариант 2 безопаснее и удобнее как для разработчика плагина так и для конечного пользователя, разница в коде небольшая, кстати сейчас практически все движки отказались от использования хтмл в теле скрипта. Вынос-же языкового пакета это большой плюс, т.к. многие скрипты пишутся не русскоязычными программистами, и перевести один ланг-пак нааамного проще чем копаться в чужом коде, и с другой стороны если вы пишите плагины, допустим платно, вы наверняка заинтересованы в покупателях, а они могу и не говорить на вашем языке.
Только начал изучать данную CMF так что извините за глупые вопросы. Сделал все по варианту 2, а гдк можно просмотреть результат? И возможно ли этот результат вывести на любую страницу и как? Спасибо!