Updated FP-specific Smarty plugins to v4 OOP style. Moved list_categories plugin to the Smarty plugin folder in order to have it loaded properly.
This commit is contained in:
parent
52bf429a01
commit
fb43fe3ea9
@ -1,157 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Smarty plugin
|
|
||||||
* -------------------------------------------------------------
|
|
||||||
* File: function.list_categories.php
|
|
||||||
* Type: function
|
|
||||||
* Name: list_categories
|
|
||||||
* Purpose: print out the comment form
|
|
||||||
*
|
|
||||||
* @param string after
|
|
||||||
* @param string before
|
|
||||||
* -------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
function smarty_function_list_categories($params) //, &$smarty)
|
|
||||||
{
|
|
||||||
$cat_params = array(
|
|
||||||
'ild'=>'<li>','ird'=>"</li>\n",
|
|
||||||
'old'=>"<ul>\n",'ord'=>"</ul>\n",
|
|
||||||
'name' => isset($params['name'])? $params['name'] : '',
|
|
||||||
'selected' => array()
|
|
||||||
);
|
|
||||||
|
|
||||||
$cat_params = array_merge($cat_params, $params);
|
|
||||||
|
|
||||||
// makese 'selected' an arr
|
|
||||||
$cat_params['selected'] = (array)$params['selected'];
|
|
||||||
|
|
||||||
//echo "<pre>" . print_r(entry_categories_get()) . "</pre>";
|
|
||||||
|
|
||||||
if (file_exists(CONTENT_DIR . 'categories.txt')) {
|
|
||||||
$cats = trim(io_load_file(CONTENT_DIR . 'categories.txt'));
|
|
||||||
$stack=array(0);
|
|
||||||
$arr=array();
|
|
||||||
|
|
||||||
$line36error = explode("\n", $cats);
|
|
||||||
$line35error = '<ul>'.do_print_categories_list($line36error, $stack, $arr, $cat_params).'</ul>';
|
|
||||||
|
|
||||||
return $line35error;
|
|
||||||
} else {
|
|
||||||
global $lang;
|
|
||||||
|
|
||||||
$content = '<a href="'.BLOG_BASEURL.'">Unfiled</a>';
|
|
||||||
if (isset($lang['admin']['entry']['publish']['nocategories']))
|
|
||||||
$content = $lang['admin']['entry']['publish']['nocategories'];
|
|
||||||
return '<ul><li>' . $content .'</li></ul>' ;
|
|
||||||
}
|
|
||||||
|
|
||||||
//<label><input name="cats[{$catId}]"
|
|
||||||
//{if (bool)array_intersect(array($catId),$categories) }
|
|
||||||
//checked="checked"{/if} type="checkbox" /> {$cat} </label><br />
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function do_print_categories_list(&$lines, &$indentstack, &$result, $params) {
|
|
||||||
|
|
||||||
global $smarty, $fpdb;
|
|
||||||
|
|
||||||
extract($params);
|
|
||||||
|
|
||||||
if (empty($lines)) {
|
|
||||||
$l = count($indentstack)-1;
|
|
||||||
if ($l > 0)
|
|
||||||
$arr = array_fill(0, $l, $ord.$ird);
|
|
||||||
else
|
|
||||||
$arr = array();
|
|
||||||
|
|
||||||
$result = array_merge($result, $arr);
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$str = '';
|
|
||||||
$v = reset($lines);
|
|
||||||
$vt = ltrim($v);
|
|
||||||
|
|
||||||
$indent = utils_countdashes($vt, $text);
|
|
||||||
$indent_old = end($indentstack);
|
|
||||||
|
|
||||||
$val = explode(':', $text);
|
|
||||||
$vt = $val[0];
|
|
||||||
$vid = trim($val[1]);
|
|
||||||
|
|
||||||
$catname = $params['name'];
|
|
||||||
|
|
||||||
if ($indent > $indent_old) {
|
|
||||||
array_push($indentstack, $indent);
|
|
||||||
|
|
||||||
array_pop($result);
|
|
||||||
array_push($result, $old);
|
|
||||||
//array_push($result, $ild);
|
|
||||||
do_print_categories_list($lines, $indentstack, $result, $params);
|
|
||||||
}elseif($indent < $indent_old) {
|
|
||||||
array_pop($indentstack);
|
|
||||||
|
|
||||||
array_push($result, $ord);
|
|
||||||
array_push($result, $ird);
|
|
||||||
|
|
||||||
do_print_categories_list($lines, $indentstack, $result, $params);
|
|
||||||
}else{
|
|
||||||
array_push($result, $ild);
|
|
||||||
|
|
||||||
|
|
||||||
$cat_entry = $params['selected'];
|
|
||||||
|
|
||||||
if (isset($params['type']) && ($params['type']=='form' || $params['type']=='check')) {
|
|
||||||
$string = '<label><input name="'.$catname.'cats['.$vid.']" ';
|
|
||||||
|
|
||||||
if ((bool) array_intersect(array($vid), $cat_entry))
|
|
||||||
$string .= 'checked="checked" ';
|
|
||||||
|
|
||||||
$string .= 'type="checkbox" />';
|
|
||||||
$before = $string;
|
|
||||||
}elseif (isset($params['type']) && $params['type']=='radio') {
|
|
||||||
$string = '<label><input name="'.$catname.'cats" type="radio" value="'.$vid.'"';
|
|
||||||
if ((bool) array_intersect(array($vid), $cat_entry))
|
|
||||||
$string .= 'checked="checked" ';
|
|
||||||
|
|
||||||
$string .= ' />';
|
|
||||||
$before = $string;
|
|
||||||
|
|
||||||
|
|
||||||
}elseif(isset($params['type']) && $params['type']=='linked'){
|
|
||||||
$before = '<a href="'.get_category_link($vid).'">';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
array_push($result, $before);
|
|
||||||
|
|
||||||
|
|
||||||
array_push($result, $vt);
|
|
||||||
|
|
||||||
if (isset($params['type']) && ($params['type']=='form' || $params['type']=='check' || $params['type']=='radio')) {
|
|
||||||
$string = '</label>';
|
|
||||||
$after = $string;
|
|
||||||
}elseif(isset($params['type']) && $params['type']=='linked'){
|
|
||||||
$after='</a>';
|
|
||||||
if (isset($params['count']) && $params['count']) {
|
|
||||||
$index =& $fpdb->get_index($vid);
|
|
||||||
$count = ($index)? $index->length() : 0;
|
|
||||||
$after = " ($count) ". $after;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
array_push($result, $after);
|
|
||||||
|
|
||||||
array_push($result, $ird);
|
|
||||||
array_shift($lines);
|
|
||||||
do_print_categories_list($lines, $indentstack, $result, $params);
|
|
||||||
}
|
|
||||||
|
|
||||||
return implode($result);
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,155 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Smarty plugin
|
||||||
|
* -------------------------------------------------------------
|
||||||
|
* File: function.list_categories.php
|
||||||
|
* Type: function
|
||||||
|
* Name: list_categories
|
||||||
|
* Purpose: print out the comment form
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* string after
|
||||||
|
* @param
|
||||||
|
* string before
|
||||||
|
* -------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
function smarty_function_list_categories($params) // , &$smarty)
|
||||||
|
{
|
||||||
|
$cat_params = array(
|
||||||
|
'ild' => '<li>',
|
||||||
|
'ird' => "</li>\n",
|
||||||
|
'old' => "<ul>\n",
|
||||||
|
'ord' => "</ul>\n",
|
||||||
|
'name' => isset($params ['name']) ? $params ['name'] : '',
|
||||||
|
'selected' => array()
|
||||||
|
);
|
||||||
|
|
||||||
|
$cat_params = array_merge($cat_params, $params);
|
||||||
|
|
||||||
|
// makese 'selected' an arr
|
||||||
|
$cat_params ['selected'] = array_key_exists('selected', $params) ? (array) $params ['selected'] : false;
|
||||||
|
|
||||||
|
// echo "<pre>" . print_r(entry_categories_get()) . "</pre>";
|
||||||
|
|
||||||
|
if (file_exists(CONTENT_DIR . 'categories.txt')) {
|
||||||
|
$cats = trim(io_load_file(CONTENT_DIR . 'categories.txt'));
|
||||||
|
$stack = array(
|
||||||
|
0
|
||||||
|
);
|
||||||
|
$arr = array();
|
||||||
|
|
||||||
|
$line36error = explode("\n", $cats);
|
||||||
|
$line35error = '<ul>' . do_print_categories_list($line36error, $stack, $arr, $cat_params) . '</ul>';
|
||||||
|
|
||||||
|
return $line35error;
|
||||||
|
} else {
|
||||||
|
global $lang;
|
||||||
|
|
||||||
|
$content = '<a href="' . BLOG_BASEURL . '">Unfiled</a>';
|
||||||
|
if (isset($lang ['admin'] ['entry'] ['publish'] ['nocategories']))
|
||||||
|
$content = $lang ['admin'] ['entry'] ['publish'] ['nocategories'];
|
||||||
|
return '<ul><li>' . $content . '</li></ul>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// <label><input name="cats[{$catId}]"
|
||||||
|
// {if (bool)array_intersect(array($catId),$categories) }
|
||||||
|
// checked="checked"{/if} type="checkbox" /> {$cat} </label><br />
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_print_categories_list(&$lines, &$indentstack, &$result, $params) {
|
||||||
|
global $smarty, $fpdb;
|
||||||
|
|
||||||
|
extract($params);
|
||||||
|
|
||||||
|
if (empty($lines)) {
|
||||||
|
$l = count($indentstack) - 1;
|
||||||
|
if ($l > 0)
|
||||||
|
$arr = array_fill(0, $l, $ord . $ird);
|
||||||
|
else
|
||||||
|
$arr = array();
|
||||||
|
|
||||||
|
$result = array_merge($result, $arr);
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$str = '';
|
||||||
|
$v = reset($lines);
|
||||||
|
$vt = ltrim($v);
|
||||||
|
|
||||||
|
$indent = utils_countdashes($vt, $text);
|
||||||
|
$indent_old = end($indentstack);
|
||||||
|
|
||||||
|
$val = explode(':', $text);
|
||||||
|
$vt = $val [0];
|
||||||
|
$vid = trim($val [1]);
|
||||||
|
|
||||||
|
$catname = $params ['name'];
|
||||||
|
|
||||||
|
if ($indent > $indent_old) {
|
||||||
|
array_push($indentstack, $indent);
|
||||||
|
|
||||||
|
array_pop($result);
|
||||||
|
array_push($result, $old);
|
||||||
|
// array_push($result, $ild);
|
||||||
|
do_print_categories_list($lines, $indentstack, $result, $params);
|
||||||
|
} elseif ($indent < $indent_old) {
|
||||||
|
array_pop($indentstack);
|
||||||
|
|
||||||
|
array_push($result, $ord);
|
||||||
|
array_push($result, $ird);
|
||||||
|
|
||||||
|
do_print_categories_list($lines, $indentstack, $result, $params);
|
||||||
|
} else {
|
||||||
|
array_push($result, $ild);
|
||||||
|
|
||||||
|
$cat_entry = $params ['selected'];
|
||||||
|
|
||||||
|
if (isset($params ['type']) && ($params ['type'] == 'form' || $params ['type'] == 'check')) {
|
||||||
|
$string = '<label><input name="' . $catname . 'cats[' . $vid . ']" ';
|
||||||
|
|
||||||
|
if ((bool) array_intersect(array(
|
||||||
|
$vid
|
||||||
|
), $cat_entry))
|
||||||
|
$string .= 'checked="checked" ';
|
||||||
|
|
||||||
|
$string .= 'type="checkbox" />';
|
||||||
|
$before = $string;
|
||||||
|
} elseif (isset($params ['type']) && $params ['type'] == 'radio') {
|
||||||
|
$string = '<label><input name="' . $catname . 'cats" type="radio" value="' . $vid . '"';
|
||||||
|
if ((bool) array_intersect(array(
|
||||||
|
$vid
|
||||||
|
), $cat_entry))
|
||||||
|
$string .= 'checked="checked" ';
|
||||||
|
|
||||||
|
$string .= ' />';
|
||||||
|
$before = $string;
|
||||||
|
} elseif (isset($params ['type']) && $params ['type'] == 'linked') {
|
||||||
|
$before = '<a href="' . get_category_link($vid) . '">';
|
||||||
|
}
|
||||||
|
|
||||||
|
array_push($result, $before);
|
||||||
|
|
||||||
|
array_push($result, $vt);
|
||||||
|
|
||||||
|
if (isset($params ['type']) && ($params ['type'] == 'form' || $params ['type'] == 'check' || $params ['type'] == 'radio')) {
|
||||||
|
$string = '</label>';
|
||||||
|
$after = $string;
|
||||||
|
} elseif (isset($params ['type']) && $params ['type'] == 'linked') {
|
||||||
|
$after = '</a>';
|
||||||
|
if (isset($params ['count']) && $params ['count']) {
|
||||||
|
$index = & $fpdb->get_index($vid);
|
||||||
|
$count = ($index) ? $index->length() : 0;
|
||||||
|
$after = " ($count) " . $after;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
array_push($result, $after);
|
||||||
|
|
||||||
|
array_push($result, $ird);
|
||||||
|
array_shift($lines);
|
||||||
|
do_print_categories_list($lines, $indentstack, $result, $params);
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode($result);
|
||||||
|
}
|
@ -1,54 +1,74 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
|
||||||
* Smarty plugin
|
/**
|
||||||
* -------------------------------------------------------------
|
* Resoure plugin that conveniently allows to include templates from the plugin templates folder via {include file="plugin:example.tpl"}
|
||||||
* File: resource.plugin.php
|
*
|
||||||
* Type: plugin tpls
|
* @author FlatPress
|
||||||
* Name: plugin
|
* @see https://www.smarty.net/docs/en/plugins.resources.tpl
|
||||||
* Purpose: convenient way to call stored tpls in PLUGINS_DIR
|
|
||||||
* Use: plugin:PLUGINNAME/PLUGINFILE realpath=> PLUGINS_DIR/plugin.PLUGINNAME/PLUGINFILE
|
|
||||||
* -------------------------------------------------------------
|
|
||||||
*/
|
*/
|
||||||
|
class Smarty_Resource_Plugin extends Smarty_Resource_Custom {
|
||||||
|
|
||||||
function smarty_resource_plugin_parsename($tpl_name) {
|
/**
|
||||||
$path = null;
|
*
|
||||||
|
* {@inheritdoc}
|
||||||
$f=explode('/',$tpl_name);
|
* @see Smarty_Resource_Custom::fetch()
|
||||||
$path = ABS_PATH . PLUGINS_DIR . "{$f[0]}/tpls/{$f[1]}.tpl";
|
*/
|
||||||
|
protected function fetch($name, &$source, &$mtime) {
|
||||||
return $path;
|
$filePath = $this->getFilePath($name);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function smarty_resource_plugin_source($tpl_name, &$tpl_source, &$smarty)
|
if ($source = io_load_file($filePath)) {
|
||||||
{
|
$mtime = filemtime($filePath);
|
||||||
$fname = smarty_resource_plugin_parsename($tpl_name);
|
} else {
|
||||||
if ($tpl_source = io_load_file($fname)) {
|
$source = null;
|
||||||
return true;
|
$mtime = null;
|
||||||
} else {
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getFilePath($templateName) {
|
||||||
|
$path = null;
|
||||||
|
|
||||||
|
$f = explode('/', $templateName);
|
||||||
|
$path = ABS_PATH . PLUGINS_DIR . "{$f[0]}/tpls/{$f[1]}.tpl";
|
||||||
|
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function smarty_resource_plugin_timestamp($tpl_name, &$tpl_timestamp, &$smarty)
|
// /*
|
||||||
{
|
// * Smarty plugin
|
||||||
$fname = smarty_resource_plugin_parsename($tpl_name);
|
// * -------------------------------------------------------------
|
||||||
if (file_exists($fname)) {
|
// * File: resource.plugin.php
|
||||||
$tpl_timestamp = filemtime($fname);
|
// * Type: plugin tpls
|
||||||
return true;
|
// * Name: plugin
|
||||||
} else {
|
// * Purpose: convenient way to call stored tpls in PLUGINS_DIR
|
||||||
return false;
|
// * Use: plugin:PLUGINNAME/PLUGINFILE realpath=> PLUGINS_DIR/plugin.PLUGINNAME/PLUGINFILE
|
||||||
}
|
// * -------------------------------------------------------------
|
||||||
}
|
// */
|
||||||
|
// function smarty_resource_plugin_parsename($tpl_name) {
|
||||||
|
// $path = null;
|
||||||
|
|
||||||
function smarty_resource_plugin_secure($tpl_name, &$smarty)
|
// $f = explode('/', $tpl_name);
|
||||||
{
|
// $path = ABS_PATH . PLUGINS_DIR . "{$f[0]}/tpls/{$f[1]}.tpl";
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function smarty_resource_plugin_trusted($tpl_name, &$smarty)
|
// return $path;
|
||||||
{
|
// }
|
||||||
|
|
||||||
}
|
// function smarty_resource_plugin_source($tpl_name, &$tpl_source, &$smarty) {
|
||||||
?>
|
// $fname = smarty_resource_plugin_parsename($tpl_name);
|
||||||
|
// if ($tpl_source = io_load_file($fname)) {
|
||||||
|
// return true;
|
||||||
|
// } else {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// function smarty_resource_plugin_timestamp($tpl_name, &$tpl_timestamp, &$smarty) {
|
||||||
|
// $fname = smarty_resource_plugin_parsename($tpl_name);
|
||||||
|
// if (file_exists($fname)) {
|
||||||
|
// $tpl_timestamp = filemtime($fname);
|
||||||
|
// return true;
|
||||||
|
// } else {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
@ -1,39 +1,25 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
|
||||||
* Smarty plugin
|
/**
|
||||||
* -------------------------------------------------------------
|
* Resoure plugin that conveniently allows to include templates from the shared templates folder via {include file="shared:example.tpl"}
|
||||||
* File: resource.shared.php
|
*
|
||||||
* Type: shared tpls
|
* @author FlatPress
|
||||||
* Name: shared
|
* @see https://www.smarty.net/docs/en/plugins.resources.tpl
|
||||||
* Purpose: convenient way to call stored tpls in SHARED_TPLS
|
|
||||||
* -------------------------------------------------------------
|
|
||||||
*/
|
*/
|
||||||
function smarty_resource_shared_source($tpl_name, &$tpl_source, &$smarty)
|
class Smarty_Resource_Shared extends Smarty_Resource_Custom {
|
||||||
{
|
|
||||||
if ($tpl_source = io_load_file(SHARED_TPLS . $tpl_name)) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function smarty_resource_shared_timestamp($tpl_name, &$tpl_timestamp, &$smarty)
|
/**
|
||||||
{
|
*
|
||||||
if (file_exists(SHARED_TPLS . $tpl_name)) {
|
* {@inheritdoc}
|
||||||
$tpl_timestamp = filemtime(SHARED_TPLS . $tpl_name);
|
* @see Smarty_Resource_Custom::fetch()
|
||||||
return true;
|
*/
|
||||||
} else {
|
protected function fetch($name, &$source, &$mtime) {
|
||||||
return false;
|
if ($source = io_load_file(SHARED_TPLS . $name)) {
|
||||||
}
|
$mtime = filemtime(SHARED_TPLS . $name);
|
||||||
}
|
} else {
|
||||||
|
$source = null;
|
||||||
|
$mtime = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function smarty_resource_shared_secure($tpl_name, &$smarty)
|
}
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function smarty_resource_shared_trusted($tpl_name, &$smarty)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
?>
|
|
Loading…
x
Reference in New Issue
Block a user