0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
3.2.0-5
/
standard
/
htdocs
/
lib
/
wiki-plugins
/
[
Home
]
File: wikiplugin_module.php
<?php /* $Id: wikiplugin_module.php,v 1.33 2007-10-12 07:55:48 nyloth Exp $ Displays a module inlined in page Parameters module name : module=>lambda float : float=>(left|none|right) max : max=>20 np : np=>(0|1) # (for non-parsed content) flip : flip=>(n|y) decorations : decorations=>(y|n) module args : arg=>value (depends on module) Example: {MODULE(module=>last_modified_pages,float=>left,max=>3,maxlen=>22)} {MODULE} about module params : all params are passed in $module_params so if you need to use params just add them in MODULE() */ /** * \warning zaufi: using cached module template is break the idea of * having different (than system default) parameters for modules... * so cache checking and maintaining currently commented out * 'till another solution will be implemented :) */ function wikiplugin_module_help() { return tra("Displays a module inlined in page").":<br />~np~{MODULE(module=>,float=>left|right|none,decorations=>y|n,flip=>y|n,max=>,np=>0|1,notitle=y|n,args...)}{MODULE}~/np~"; } function wikiplugin_module_info() { return array( 'name' => tra('Insert Module'), 'documentation' => 'PluginModule', 'description' => tra("Displays a module inlined in page. More parameters can be added, not supported by UI."), 'prefs' => array( 'wikiplugin_module' ), 'validate' => 'all', 'extraparams' =>true, 'params' => array( 'module' => array( 'required' => true, 'name' => tra('Module Name'), 'description' => tra('Module name as known in Tikiwiki.'), ), 'float' => array( 'required' => false, 'name' => tra('Float'), 'description' => 'left|right|none', ), 'decoration' => array( 'required' => false, 'name' => tra('Decoration'), 'description' => 'y|n', ), 'flip' => array( 'required' => false, 'name' => tra('Flip'), 'description' => 'y|n', ), 'max' => array( 'required' => false, 'name' => tra('Max'), 'description' => 'y|n', ), 'np' => array( 'required' => false, 'name' => tra('np'), 'description' => '0|1', ), 'notitle' =>array( 'required' => false, 'name' => tra('notitle'), 'description' => 'y|n', ), ), ); } function wikiplugin_module($data, $params) { global $tikilib, $cache_time, $smarty, $dbTiki, $prefs, $ranklib, $tikidomain, $user, $tiki_p_tasks, $tiki_p_create_bookmarks, $imagegallib; $out = ''; extract ($params,EXTR_SKIP); if (!isset($float)) { $float = 'nofloat'; } if (!isset($max)) { if (!isset($rows)) { $max = 10; // default value } else $max=$rows; // rows=> used instead of max=> ? } if (!isset($np)) { $np = '1'; } if (!isset($module) or !$module) { $out = '<form class="box" id="modulebox">'; $out .= '<br /><select name="choose">'; $out .= '<option value="">' . tra('Please choose a module'). '</option>'; $out .= '<option value="" style="background-color:#bebebe;">' . tra('to be used as argument'). '</option>'; $out .= '<option value="" style="background-color:#bebebe;">{MODULE(module=>name_of_module)}</option>'; $handle = opendir('modules'); while ($file = readdir($handle)) { if ((substr($file, 0, 4) == "mod-") and (substr($file, -4, 4) == ".php")) { $mod = substr(substr(basename($file), 4), 0, -4); $out .= "<option value=\"$mod\">$mod</option>"; } } $out .= '</select></form>'; } else { if (!isset($args)) { $args = ''; } $phpfile = 'modules/mod-' . $module . '.php'; $template = 'modules/mod-' . $module . '.tpl'; $module_rows = $max; $module_params = $params; if (!isset($module_params['decorations'])) $module_params['decorations'] = 'n'; if (!isset($module_params['flip']) && isset($prefs['user_flip_modules']) && $prefs['user_flip_modules'] != 'module') $module_params['flip'] = $prefs['user_flip_modules']; elseif (!isset($module_params['flip'])) $module_params['flip'] = 'n'; if (isset($module_params['title'])) { $smarty->assign('tpl_module_title',tra($module_params['title'])); } else { $smarty->clear_assign('tpl_module_title'); } $smarty->assign_by_ref('module_rows',$module_rows); $smarty->assign_by_ref('module_params', $module_params); // module code can unassign this if it wants to hide params if (file_exists($phpfile)) { include ($phpfile); } $template_file = 'templates/' . $template; if (file_exists($template_file)) { $out = $smarty->fetch($template); } else { if ($tikilib->is_user_module($module)) { $info = $tikilib->get_user_module($module); $smarty->assign_by_ref('user_title', $info["title"]); $smarty->assign_by_ref('user_data', $info["data"]); $out = $smarty->fetch('modules/user_module.tpl'); } } $smarty->clear_assign('module_params'); // ensure params not available outside current module // if (!file_exists($nocache)) { // $fp = fopen($cachefile, "w+"); // fwrite($fp, $data, strlen($data)); // fclose ($fp); // } // } else { // $fp = fopen($cachefile, "r"); // $out = fread($fp, filesize($cachefile)); // fclose ($fp); // } // $out = eregi_replace("\n", "", $out); } if ($out) { if ($float != 'nofloat') { $data = "<div style='float: $float;'>"; } else { $data = "<div>"; } if ($np) { $data.= "~np~$out~/np~</div>"; } else { $data.= "$out</div>"; } } else { // Display error message $data = "<div class=\"highlight\">" . tra("Sorry no such module"). "<br /><b>$module</b></div>" . $data; } return $data; } ?>