passing vars to widgets in Comanche - !this breaks existing widget declarations!
See the wiki for updated syntax but basically it's now [widget=name][var=varname]varvalue[/var]...[/widget]
This commit is contained in:
parent
cb84485f7c
commit
d51aa653e2
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
require_once('include/menu.php');
|
require_once('include/menu.php');
|
||||||
|
|
||||||
// When editing a webpage - a dropdown is needed to select a page layout
|
// When editing a webpage - a dropdown is needed to select a page layout
|
||||||
// On submit, the pdl_select value (which is the mid of an item with item_restrict = ITEM_PDL) is stored in
|
// On submit, the pdl_select value (which is the mid of an item with item_restrict = ITEM_PDL) is stored in
|
||||||
// the webpage's resource_id, with resource_type 'pdl'.
|
// the webpage's resource_id, with resource_type 'pdl'.
|
||||||
@ -126,11 +127,19 @@ function comanche_webpage(&$a,$s) {
|
|||||||
// the global app environment, or config storage until we implement argument passing
|
// the global app environment, or config storage until we implement argument passing
|
||||||
|
|
||||||
|
|
||||||
function comanche_widget($name,$args = null) {
|
function comanche_widget($name,$text) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
$vars = array();
|
||||||
|
$cnt = preg_match_all("/\[var=(.*?)\](.*?)\[\/var\]/ism", $text, $matches, PREG_SET_ORDER);
|
||||||
|
if($cnt) {
|
||||||
|
foreach($matches as $mtch) {
|
||||||
|
$vars[$mtch[1]] = $mtch[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$func = 'widget_' . trim($name);
|
$func = 'widget_' . trim($name);
|
||||||
if(function_exists($func))
|
if(function_exists($func))
|
||||||
return $func($args);
|
return $func($vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -152,10 +161,10 @@ function comanche_region(&$a,$s) {
|
|||||||
|
|
||||||
// need to modify this to accept parameters
|
// need to modify this to accept parameters
|
||||||
|
|
||||||
$cnt = preg_match_all("/\[widget\](.*?)\[\/widget\]/ism", $s, $matches, PREG_SET_ORDER);
|
$cnt = preg_match_all("/\[widget=(.*?)\](.*?)\[\/widget\]/ism", $s, $matches, PREG_SET_ORDER);
|
||||||
if($cnt) {
|
if($cnt) {
|
||||||
foreach($matches as $mtch) {
|
foreach($matches as $mtch) {
|
||||||
$s = str_replace($mtch[0],comanche_widget(trim($mtch[1])),$s);
|
$s = str_replace($mtch[0],comanche_widget(trim($mtch[1]),$mtch[2]),$s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user