Мар 17
Как я уже , мой любимый визуальній редактор - .
А вот пример того, как можно написать плагин для Smarty для быстрой вставки редактора в тело страницы. Думаю, что комментировать код нет необходимости - тут и так все понятно. Кроме того, модифицировав всего пару строк, можно исключить Zend Framework, если ваш проект не использует его.
И еще: этот плагин писался под конкретный проект, поэтому в нем реализовано лишь то, что было необходимо мне. Вполне вероятно, что вам окажется недостаточно такой функциональности.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | <?php /** * Smarty plugin * @package Smarty * @subpackage plugins */ /** * Smarty {spaw} function plugin * * Type: function * Name: spaw * Date: Nov 11, 2007 * Purpose: automate creation Spaw Editor * Input: * - name = name of textarea, default - 'Text' * - value = default value * - lang = * - toolbarset * - theme * - width * - height * - stylesheet * - page_caption * Examples: * <pre> * {spaw} * {spaw name='Description' lang='en'} * * @version 1.0 * @author Kirill Pavliukov <kirill></kirill> * @param array * @param Smarty * @return string * @todo Spaw Pages */ function smarty_function_spaw($params, &$smarty) { if (!defined('WWW_DIR')) define('WWW_DIR',$_SERVER['DOCUMENT_ROOT']); $name = ((isset($params['name'])) ? $params['name'] : null); $value = ((isset($params['name'])) ? $params['value'] : ''); $lang = ((isset($params['lang'])) ? $params['lang'] : null); $toolbarset = ((isset($params['toolbarset'])) ? $params['toolbarset'] : ''); $theme = ((isset($params['theme'])) ? $params['theme'] : ''); $width = ((isset($params['width'])) ? $params['width'] : ''); $height = ((isset($params['height'])) ? $params['height'] : ''); $stylesheet = ((isset($params['stylesheet'])) ? $params['stylesheet'] : ''); $page_caption= ((isset($params['page_caption'])) ? $params['page_caption'] : ''); if ($name == null) $smarty->trigger_error('(SPAW) Parameter `Name` must be specified'); if ($lang == null) { $front = Zend_Controller_Front::getInstance(); $lang = $front->getRequest()->getParam('language'); } $pages = ((isset($params['pages'])) ? $params['pages'] : null); if ($name == '') $name = 'Text'; require_once(WWW_DIR . 'spaw2/spaw.inc.php'); $spaw = new SpawEditor($name, $value, $lang, $toolbarset, $theme, $width, $height, $stylesheet, $page_caption); if ($pages) { $pages = split(';',$pages); foreach ($pages as &$page) { $page = split('::',$page); if (!isset($page[0]) or empty($page[0])) $smarty->trigger_error('(SPAW) Page name myst be specified!'); if (!isset($page[1]) or empty($page[1])) $smarty->trigger_error('(SPAW) Page caption myst be specified!'); if (!isset($page[2])) $page[2] = ''; if (!isset($page[3])) $page[3] = 'ltr'; $spawPage = new SpawEditorPage($page[0],$page[1],$page[2],$page[3]); $spaw->addPage($spawPage); } } $spaw->show(); } ?> |

Комментарии