Smarty プラグイン設定

Smarty 拡張プラグインの設定

クラス

smarty.phpを拡張。
Smarty-3.1.11/libs/pluginsと同列の位置に拡張プラグイン置き場を設置。

PHP

require_once('Smarty.class.php'); class view_smarty extends Smarty { public function __construct() { parent::__construct(); $this->template_dir = 'C:/appli/var/templates/'; $this->compile_dir = 'C:/appli/var/templates_c/'; $this->config_dir = 'C:/appli/var/configs/'; $this->cache_dir = 'C:/appli/var/cache/'; // マイプラグイン置き場 $this->addPluginsDir('C:/appli/lib/Smarty-3.1.11/libs/myplugins/'); } }

プラグイン

デフォルトのプラグインに合わせた命名規約(smarty_modifier_php_manual.php、smarty_modifier_php_manual())で、ファイルとメソッドをmypluginsに作成。

PHP

<?php /** * Smarty plugin * @package Smarty * @subpackage PluginsModifier */ /** * * PHP Manualへのリンクを設定 * * @param string $string * @return string */ function smarty_modifier_php_manual($string) { preg_match_all('/<pm>(.*?)<\/pm>/', $string, $matches, PREG_SET_ORDER); if (! empty($matches)) { foreach($matches as $matchkey => $matchVal) { $function_str = str_replace('_', '-', $matchVal[1]); $search_str[] = $matchVal[0]; $replace_str[] = "<a href=\"http://php.net/manual/ja/function." . $function_str . ".php\" target=\"_blank\" class=\"blank\">" . $matchVal[1] . "</a>"; } return str_replace($search_str, $replace_str, $string); } return $string; }

Smarty

{$str|php_manual}

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について