3 * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
\r
4 * Copyright (C) 2002-2012 The Nucleus Group
\r
6 * This program is free software; you can redistribute it and/or
\r
7 * modify it under the terms of the GNU General Public License
\r
8 * as published by the Free Software Foundation; either version 2
\r
9 * of the License, or (at your option) any later version.
\r
10 * (see nucleus/documentation/index.html#license for more info)
\r
13 * This class contains the functions that get called by using
\r
14 * the special tags in the skins
\r
16 * The allowed tags for a type of skinpart are defined by the
\r
17 * Skin::getAllowedActionsForType($type) method
\r
19 * @license http://nucleuscms.org/license.txt GNU General Public License
\r
20 * @copyright Copyright (C) 2002-2012 The Nucleus Group
\r
21 * @version $Id: ACTIONS.php 1721 2012-03-31 10:18:25Z sakamocchi $
\r
24 class Actions extends BaseActions
\r
26 // part of the skin currently being parsed ('index', 'item', 'archive',
\r
27 // 'archivelist', 'member', 'search', 'error', 'imagepopup')
\r
30 // contains an assoc array with parameters that need to be included when
\r
31 // generating links to items/archives/... (e.g. catid)
\r
34 // reference to the skin object for which a part is being parsed
\r
37 // used when including templated forms from the include/ dir. The $formdata var
\r
38 // contains the values to fill out in there (assoc array name -> value)
\r
41 // filled out with the number of displayed items after calling one of the
\r
42 // (other)blog/(other)searchresults skinvars.
\r
46 * Actions::__construct()
\r
47 * Constructor for a new Actions object
\r
49 * @param string $type
\r
52 public function __construct($type)
\r
56 // call constructor of superclass first
\r
57 $this->BaseActions();
\r
58 $this->skintype = $type;
\r
62 $this->linkparams = array('catid' => $catid);
\r
68 * Actions::setSkin()
\r
70 * @param object $skin an instance of Skin class
\r
73 public function setSkin(&$skin)
\r
75 $this->skin =& $skin;
\r
80 * Actions::setParser()
\r
83 * @param object $parser an instance of Parser class
\r
86 public function setParser(&$parser)
\r
88 $this->parser =& $parser;
\r
94 * Forms get parsedincluded now, using an extra <formdata> skinvar
\r
96 * @param string $filename
\r
99 public function doForm($filename)
\r
101 global $DIR_NUCLEUS;
\r
102 array_push($this->parser->actions,'formdata','text','callback','errordiv','ticket');
\r
104 $oldIncludeMode = Parser::getProperty('IncludeMode');
\r
105 $oldIncludePrefix = Parser::getProperty('IncludePrefix');
\r
106 Parser::setProperty('IncludeMode','normal');
\r
107 Parser::setProperty('IncludePrefix','');
\r
109 $this->parse_parsedinclude($DIR_NUCLEUS . 'forms/' . $filename . '.template');
\r
110 Parser::setProperty('IncludeMode',$oldIncludeMode);
\r
111 Parser::setProperty('IncludePrefix',$oldIncludePrefix);
\r
113 array_pop($this->parser->actions); // errordiv
\r
114 array_pop($this->parser->actions); // callback
\r
115 array_pop($this->parser->actions); // text
\r
116 array_pop($this->parser->actions); // formdata
\r
117 array_pop($this->parser->actions); // ticket
\r
122 * Actions::checkCondition()
\r
123 * Checks conditions for if statements
\r
125 * @param string $field type of <%if%>
\r
126 * @param string $name property of field
\r
127 * @param string $value value of property
\r
128 * @return boolean condition
\r
130 public function checkCondition($field, $name='', $value = '')
\r
132 global $catid, $blog, $member, $itemidnext, $itemidprev, $manager, $archiveprevexists, $archivenextexists;
\r
138 $condition = ($blog && $this->ifCategory($name,$value));
\r
140 case 'blogsetting':
\r
141 $condition = ($blog && ($blog->getSetting($name) == $value));
\r
144 $condition = $member->isLoggedIn();
\r
147 $condition = $member->isLoggedIn() && $this->ifOnTeam($name);
\r
150 $condition = $member->isLoggedIn() && $this->ifAdmin($name);
\r
153 $condition = $member->isLoggedIn() && $member->isAdmin();
\r
155 case 'allowloginedit':
\r
156 $condition = $member->isLoggedIn() && ($CONF['AllowLoginEdit'] || $member->isAdmin());
\r
159 $condition = ($itemidnext != '');
\r
162 $condition = ($itemidprev != '');
\r
164 case 'archiveprevexists':
\r
165 $condition = ($archiveprevexists == true);
\r
167 case 'archivenextexists':
\r
168 $condition = ($archivenextexists == true);
\r
171 $condition = (($name == $this->skintype) || ($name == requestVar('action')));
\r
174 $condition = $this->ifHasPlugin($name, $value);
\r
176 case 'adminaction':
\r
177 $condition = ($this->objAdmin->action == $name);
\r
179 case 'adminoldaction':
\r
180 $condition = ($this->objAdmin->action == $name);
\r
182 case 'addresschange':
\r
183 $condition = ($this->_ifAddresscange());
\r
185 case 'bechangepass':
\r
186 $condition = ($this->_beChangePassword());
\r
188 case 'skincandidates':
\r
189 $condition = ($this->_ifSkincandidates());
\r
191 case 'nameclashes':
\r
192 $condition = requestVar('nameclashes');
\r
194 case 'existsnewplugin':
\r
195 $condition = ($this->_existsNewPlugin());
\r
198 $condition = $manager->pluginInstalled("NP_{$field}") && $this->ifPlugin($field, $name, $value);
\r
205 * Actions::_ifHasPlugin()
\r
206 * hasplugin,PlugName
\r
207 * -> checks if plugin exists
\r
208 * hasplugin,PlugName,OptionName
\r
209 * -> checks if the option OptionName from plugin PlugName is not set to 'no'
\r
210 * hasplugin,PlugName,OptionName=value
\r
211 * -> checks if the option OptionName from plugin PlugName is set to value
\r
213 * @param string $name name of plugin
\r
214 * @param string $value
\r
217 private function ifHasPlugin($name, $value)
\r
220 $condition = false;
\r
221 // (pluginInstalled method won't write a message in the actionlog on failure)
\r
222 if ( $manager->pluginInstalled("NP_{$name}") )
\r
224 $plugin =& $manager->getPlugin("NP_{$name}");
\r
225 if ( $plugin != NULL )
\r
227 if ( $value == "" )
\r
233 list($name2, $value2) = preg_split('#=#', $value, 2);
\r
234 if ( $value2 == "" && $plugin->getOption($name2) != 'no' )
\r
238 else if ( $plugin->getOption($name2) == $value2 )
\r
249 * Actions::beChangePassword()
\r
254 function beChangePassword()
\r
256 return intRequestVar('bNeedsPasswordChange');
\r
260 * Actions::ifSkincandidates()
\r
261 * Checks if a plugin exists and call its doIf function
\r
266 private function ifSkincandidates()
\r
269 $candidates = SKINIMPORT::searchForCandidates($DIR_SKINS);
\r
270 return (count($candidates) > 0);
\r
274 * Actions::ifPlugin()
\r
275 * Checks if a plugin exists and call its doIf function
\r
277 * @param string $name name of plugin
\r
278 * @param string $key name of plugin option
\r
279 * @param string $value value of plugin option
\r
282 private function ifPlugin($name, $key = '', $value = '')
\r
286 $plugin =& $manager->getPlugin("NP_{$name}");
\r
292 $params = func_get_args();
\r
293 array_shift($params);
\r
295 return call_user_func_array(array(&$plugin, 'doIf'), $params);
\r
299 * Actions::ifCategory()
\r
300 * Different checks for a category
\r
302 * @param string $name
\r
303 * @param string $value
\r
306 private function ifCategory($name = '', $value='')
\r
308 global $blog, $catid;
\r
310 // when no parameter is defined, just check if a category is selected
\r
311 if ( ($name != 'catname' && $name != 'catid') || ($value == '') )
\r
313 return $blog->isValidCategory($catid);
\r
316 // check category name
\r
317 if ( $name == 'catname' )
\r
319 $value = $blog->getCategoryIdFromName($value);
\r
320 if ( $value == $catid )
\r
322 return $blog->isValidCategory($catid);
\r
326 // check category id
\r
327 if ( ($name == 'catid') && ($value == $catid) )
\r
329 return $blog->isValidCategory($catid);
\r
335 * Actions::ifOnTeam()
\r
336 * Checks if a member is on the team of a blog and return his rights
\r
338 * @param string $blogName name of weblog
\r
341 private function ifOnTeam($blogName = '')
\r
343 global $blog, $member, $manager;
\r
345 // when no blog found
\r
346 if ( ($blogName == '') && !is_object($blog) )
\r
351 // explicit blog selection
\r
352 if ( $blogName != '' )
\r
354 $blogid = getBlogIDFromName($blogName);
\r
357 if ( ($blogName == '') || !$manager->existsBlogID($blogid) )
\r
359 // use current blog
\r
360 $blogid = $blog->getID();
\r
363 return $member->teamRights($blogid);
\r
367 * Actions::ifAdmin()
\r
368 * Checks if a member is admin of a blog
\r
370 * @param string $blogName name of weblog
\r
373 private function ifAdmin($blogName = '')
\r
375 global $blog, $member, $manager;
\r
377 // when no blog found
\r
378 if ( ($blogName == '') && (!is_object($blog)) )
\r
383 // explicit blog selection
\r
384 if ( $blogName != '' )
\r
386 $blogid = getBlogIDFromName($blogName);
\r
389 if ( ($blogName == '') || !$manager->existsBlogID($blogid) )
\r
391 // use current blog
\r
392 $blogid = $blog->getID();
\r
395 return $member->isBlogAdmin($blogid);
\r
399 * Actions::ifAddresscange()
\r
400 * Check e-Mail address is changed
\r
405 private function ifAddresscange()
\r
407 $key = $this->objAdmin->sessionVar("{$CONF['CookiePrefix']}ackey");
\r
412 $info = MEMBER::getActivationInfo($key);
\r
417 $mem = MEMBER::createFromId($info->vmember);
\r
422 if ( $info->vtype == 'addresschange' )
\r
432 * - a raw link (html/xml encoded) when no linktext is provided
\r
433 * - a (x)html <a href... link when a text is present (text htmlencoded)
\r
435 * @param string $url URL for href attribute of anchor element
\r
436 * @param string $linktext content of anchor element
\r
439 private function link($url, $linktext = '')
\r
441 $u = Entity::hsc($url);
\r
442 // fix URLs that already had encoded ampersands
\r
443 $u = preg_replace("#&amp;#", '&', $u);
\r
444 if ( $linktext != '' )
\r
446 $l = '<a href="' . $u .'">' . Entity::hsc($linktext) . '</a>';
\r
456 * Actions::searchlink()
\r
457 * Outputs a next/prev link
\r
459 * @param $maxresults
\r
460 * The maximum amount of items shown per page (e.g. 10)
\r
462 * Current start position (requestVar('startpos'))
\r
463 * @param $direction
\r
464 * either 'prev' or 'next'
\r
466 * When present, the output will be a full <a href...> link. When empty,
\r
467 * only a raw link will be outputted
\r
469 private function searchlink($maxresults, $startpos, $direction, $linktext = '', $recount = '')
\r
471 global $CONF, $blog, $query, $amount;
\r
472 // TODO: Move request uri to linkparams. this is ugly. sorry for that.
\r
473 $startpos = (integer) $startpos;
\r
474 $parsed = parse_url(serverVar('REQUEST_URI'));
\r
475 $path = $parsed['path'];
\r
476 $parsed = $parsed['query'];
\r
479 if ( $direction == 'prev' )
\r
481 if ( intval($startpos) - intval($maxresults) >= 0 )
\r
483 $startpos = intval($startpos) - intval($maxresults);
\r
485 if ( $this->skintype == 'index' )
\r
489 else if ( $this->skintype == 'search' )
\r
491 $url = $CONF['SearchURL'];
\r
493 $url .= '?' . alterQueryStr($parsed,'startpos',$startpos);
\r
496 else if ( $direction == 'next' )
\r
498 global $navigationItems;
\r
499 if ( !isset($navigationItems) )
\r
501 $navigationItems = 0;
\r
506 $iAmountOnPage = 0;
\r
510 $iAmountOnPage = $this->amountfound;
\r
513 if ( intval($navigationItems) > 0 )
\r
515 $iAmountOnPage = intval($navigationItems) - intval($startpos);
\r
517 elseif ( $iAmountOnPage == 0 )
\r
520 * [%nextlink%] or [%prevlink%] probably called before [%blog%] or [%searchresults%]
\r
521 * try a count query
\r
523 if ( $this->skintype == 'index' )
\r
525 $sqlquery = $blog->getSqlBlog('', 'count');
\r
528 else if ( $this->skintype == 'search' )
\r
530 $unused_highlight = '';
\r
531 $sqlquery = $blog->getSqlSearch($query, $amount, $unused_highlight, 'count');
\r
532 $url = $CONF['SearchURL'];
\r
536 $iAmountOnPage = intval(quickQuery($sqlquery)) - intval($startpos);
\r
541 if ( intval($iAmountOnPage) >= intval($maxresults) )
\r
543 $startpos = intval($startpos) + intval($maxresults);
\r
544 $url .= '?' . alterQueryStr($parsed, 'startpos', $startpos);
\r
550 echo $this->link($url, $linktext);
\r
556 * Actions::itemlink()
\r
557 * Creates an item link and if no id is given a todaylink
\r
559 * @param integer $id id for link
\r
560 * @param string $linktext text for link
\r
563 public function itemlink($id, $linktext = '')
\r
568 echo $this->link(Link::createitemlink($id, $this->linkparams), $linktext);
\r
572 $this->parse_todaylink($linktext);
\r
578 * Actions:setBlogCategory()
\r
579 * Helper function that sets the category that a blog will need to use
\r
581 * @param string $blog An object of the blog class, passed by reference (we want to make changes to it)
\r
582 * @param string $catname The name of the category to use
\r
585 private function setBlogCategory(&$blog, $catname)
\r
588 if ( $catname != '' )
\r
590 $blog->setSelectedCategoryByName($catname);
\r
594 $blog->setSelectedCategory($catid);
\r
600 * Actions::archivelink)
\r
601 * Creates an archive link and if no id is given a todaylink
\r
603 * @param integer $id id for link
\r
604 * @param string $linktext text for link
\r
607 public function archivelink($id, $linktext = '')
\r
609 global $CONF, $blog;
\r
612 echo $this->link(Link::createarchivelink($blog->getID(), $id, $this->linkparams), $linktext);
\r
616 $this->parse_todaylink($linktext);
\r
622 * Actions::preBlogContent()
\r
623 * Notifies the Manager that a PreBlogContent event occurs
\r
625 * @param string $type type of skin
\r
626 * @param object $blog an instance of Blog class
\r
629 private function preBlogContent($type, &$blog)
\r
632 $manager->notify('PreBlogContent',array('blog' => &$blog, 'type' => $type));
\r
637 * Actions::postBlogContent()
\r
638 * Notifies the Manager that a PostBlogContent event occurs
\r
640 * @param string $type type of skin
\r
641 * @param objecct $blog an instance of Blog class
\r
644 private function postBlogContent($type, &$blog)
\r
647 $manager->notify('PostBlogContent', array('blog' => &$blog, 'type' => $type));
\r
652 * Actions::parse_additemform()
\r
653 * Parse skinvar additemform
\r
658 public function parse_additemform()
\r
660 global $blog, $CONF;
\r
661 $this->formdata = array(
\r
662 'adminurl' => Entity::hsc($CONF['AdminURL']),
\r
663 'catid' => $blog->getDefaultCategory()
\r
665 $blog->InsertJavaScriptInfo();
\r
666 $this->doForm('additemform');
\r
671 * Actions::parse_addlink()
\r
672 * Parse skinvar addlink
\r
673 * A Link that allows to open a bookmarklet to add an item
\r
675 public function parse_addlink()
\r
677 global $CONF, $member, $blog;
\r
678 if ( $member->isLoggedIn() && $member->isTeamMember($blog->blogid) )
\r
680 echo $CONF['AdminURL'].'bookmarklet.php?blogid='.$blog->blogid;
\r
686 * Actions::parse_addpopupcode()
\r
687 * Parse skinvar addpopupcode
\r
688 * Code that opens a bookmarklet in an popup window
\r
693 public function parse_addpopupcode()
\r
695 echo "if (event && event.preventDefault) event.preventDefault();winbm=window.open(this.href,'nucleusbm','scrollbars=yes,width=600,height=500,left=10,top=10,status=yes,resizable=yes');winbm.focus();return false;";
\r
700 * Parse skinvar adminurl
\r
701 * (shortcut for admin url)
\r
706 public function parse_adminurl()
\r
708 $this->parse_sitevar('adminurl');
\r
713 * Actions::parse_archive()
\r
714 * Parse skinvar archive
\r
716 * @param string $template name of template
\r
717 * @param string $category name of category
\r
720 public function parse_archive($template, $category = '')
\r
722 global $blog, $archive;
\r
723 // can be used with either yyyy-mm or yyyy-mm-dd
\r
724 sscanf($archive,'%d-%d-%d', $y, $m, $d);
\r
725 $this->setBlogCategory($blog, $category);
\r
726 $this->preBlogContent('achive',$blog);
\r
727 $blog->showArchive($template, $y, $m, $d);
\r
728 $this->postBlogContent('achive',$blog);
\r
733 * Actions::parse_archivedate()
\r
734 * %archivedate(locale,date format)%
\r
736 * @param string $locale
\r
739 public function parse_archivedate($locale = '-def-')
\r
744 * TODO: these lines are no meaning because there is no $template.
\r
746 if ( $locale == '-def-' )
\r
748 setlocale(LC_TIME, $template['LOCALE']);
\r
752 setlocale(LC_TIME, $locale);
\r
755 // get archive date
\r
756 sscanf($archive,'%d-%d-%d',$y,$m,$d);
\r
759 $args = func_get_args();
\r
760 // format can be spread over multiple parameters
\r
761 if ( sizeof($args) > 1 )
\r
763 // take away locale
\r
764 array_shift($args);
\r
766 $format=implode(',',$args);
\r
768 elseif ( $d == 0 && $m !=0 )
\r
778 $format = '%d %B %Y';
\r
780 echo i18n::formatted_timedate($format, mktime(0,0,0,$m?$m:1,$d?$d:1,$y));
\r
785 * Actions::parse_archivedaylist()
\r
786 * Parse skinvar archivedaylist
\r
788 * @param string $template name of template
\r
789 * @param string $category name of category
\r
790 * @param integer $limit the number of items in a display
\r
793 public function parse_archivedaylist($template, $category = 'all', $limit = 0)
\r
796 if ( $category == 'all' )
\r
800 $this->preBlogContent('archivelist',$blog);
\r
801 $this->setBlogCategory($blog, $category);
\r
802 $blog->showArchiveList($template, 'day', $limit);
\r
803 $this->postBlogContent('archivelist',$blog);
\r
808 * Actions::parsearchivelink()
\r
809 * A link to the archives for the current blog (or for default blog)
\r
811 * @param string $linktext text for link
\r
814 public function parsearchivelink($linktext = '')
\r
816 global $blog, $CONF;
\r
819 echo $this->link(Link::create_archivelistlink($blog->getID(),$this->linkparams), $linktext);
\r
823 echo $this->link(Link::create_archivelistlink(), $linktext);
\r
829 * Actions::parse_archivelist()
\r
831 * @param string $template name of template
\r
832 * @param string $category name of category
\r
833 * @param integer $limit the number of items in a display
\r
836 public function parse_archivelist($template, $category = 'all', $limit = 0)
\r
839 if ( $category == 'all' )
\r
843 $this->preBlogContent('archivelist',$blog);
\r
844 $this->setBlogCategory($blog, $category);
\r
845 $blog->showArchiveList($template, 'month', $limit);
\r
846 $this->postBlogContent('archivelist',$blog);
\r
851 * Actions::parse_archiveyearlist()
\r
853 * @param string $template name of template
\r
854 * @param string $category name of category
\r
855 * @param integer $limit the number of items in a display
\r
857 public function parse_archiveyearlist($template, $category = 'all', $limit = 0)
\r
860 if ( $category == 'all' )
\r
864 $this->preBlogContent('archivelist',$blog);
\r
865 $this->setBlogCategory($blog, $category);
\r
866 $blog->showArchiveList($template, 'year', $limit);
\r
867 $this->postBlogContent('archivelist',$blog);
\r
872 * Actions::parse_archivetype()
\r
873 * Parse skinvar archivetype
\r
878 public function parse_archivetype()
\r
880 global $archivetype;
\r
886 * Actions::parse_blog()
\r
887 * Parse skinvar blog
\r
889 * @param string $template name of template
\r
890 * @param mixed $amount the number of items in a display, in case it includes the beginning
\r
891 * @param string $category name of category
\r
894 public function parse_blog($template, $amount = 10, $category = '')
\r
896 global $blog, $startpos;
\r
898 list($limit, $offset) = sscanf($amount, '%d(%d)');
\r
899 $this->setBlogCategory($blog, $category);
\r
900 $this->preBlogContent('blog',$blog);
\r
901 $this->amountfound = $blog->readLog($template, $limit, $offset, $startpos);
\r
902 $this->postBlogContent('blog',$blog);
\r
907 * Actions::parse_bloglist()
\r
908 * Parse skinvar bloglist
\r
909 * Shows a list of all blogs
\r
911 * @param string $template name of template
\r
912 * @param string $bnametype whether 'name' or 'shortname' is used for the link text
\r
913 * @param string $orderby order criteria
\r
914 * @param string $direction order ascending or descending
\r
917 public function parse_bloglist($template, $bnametype = '', $orderby='number', $direction='asc')
\r
919 Blog::showBlogList($template, $bnametype, $orderby, $direction);
\r
924 * Actions::parse_blogsetting()
\r
925 * Parse skinvar blogsetting
\r
927 * @param string $which key of weblog settings
\r
930 public function parse_blogsetting($which)
\r
936 echo Entity::hsc($blog->getID());
\r
939 echo Entity::hsc($blog->getURL());
\r
942 echo Entity::hsc($blog->getName());
\r
945 echo Entity::hsc($blog->getDescription());
\r
948 echo Entity::hsc($blog->getShortName());
\r
955 * Actions::parse_getblogsetting()
\r
956 * Parse skinvar getblogsetting
\r
958 function parse_getblogsetting($which)
\r
965 elseif ( $bid = intRequestVar('blogid') )
\r
968 $b = $manager->getBlog($bid);
\r
978 return Entity::hsc($b->getID());
\r
981 return Entity::hsc($b->getURL());
\r
984 return Entity::hsc($b->getName());
\r
987 return Entity::hsc($b->getDescription());
\r
990 return Entity::hsc($b->getShortName());
\r
992 case 'notifyaddress':
\r
993 return Entity::hsc($b->getNotifyAddress());
\r
995 case 'maxcomments':
\r
996 return Entity::hsc($b->getMaxComments());
\r
999 return Entity::hsc($b->getUpdateFile());
\r
1001 case 'timeoffset':
\r
1002 return Entity::hsc($b->getTimeOffset());
\r
1009 * Actions::parse_callback()
\r
1012 * @param string $eventName name of event
\r
1013 * @param string $type type of skin
\r
1016 public function parse_callback($eventName, $type)
\r
1019 $manager->notify($eventName, array('type' => $type));
\r
1024 * Actions::parse_category()
\r
1025 * Parse skinvar category
\r
1027 * @param string $type key of category settings
\r
1030 public function parse_category($type = 'name')
\r
1032 global $catid, $blog;
\r
1033 if ( !$blog->isValidCategory($catid) )
\r
1041 echo $blog->getCategoryName($catid);
\r
1044 echo $blog->getCategoryDesc($catid);
\r
1054 * Actions::parse_categorylist()
\r
1055 * Parse categorylist
\r
1057 * @param string $template name of template
\r
1058 * @param string $blogname name of weblog
\r
1061 public function parse_categorylist($template, $blogname = '')
\r
1063 global $blog, $manager;
\r
1065 // when no blog found
\r
1066 if ( ($blogname == '') && (!is_object($blog)) )
\r
1071 if ( $blogname == '' )
\r
1073 $this->preBlogContent('categorylist',$blog);
\r
1074 $blog->showCategoryList($template);
\r
1075 $this->postBlogContent('categorylist',$blog);
\r
1079 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1080 $this->preBlogContent('categorylist',$b);
\r
1081 $b->showCategoryList($template);
\r
1082 $this->postBlogContent('categorylist',$b);
\r
1088 * Actions::parse_charset()
\r
1089 * Parse skinvar charset
\r
1094 public function parse_charset()
\r
1096 echo i18n::get_current_charset();
\r
1101 * Actions::parse_commentform()
\r
1102 * Parse skinvar commentform
\r
1104 * @param string $destinationurl URI for redirection
\r
1107 public function parse_commentform($destinationurl = '')
\r
1109 global $blog, $itemid, $member, $CONF, $manager, $DIR_LIBS, $errormessage;
\r
1111 // warn when trying to provide a actionurl (used to be a parameter in Nucleus <2.0)
\r
1112 if ( stristr($destinationurl, 'action.php') )
\r
1114 $args = func_get_args();
\r
1115 $destinationurl = $args[1];
\r
1116 ActionLog::add(WARNING,_ACTIONURL_NOTLONGER_PARAMATER);
\r
1119 $actionurl = $CONF['ActionURL'];
\r
1121 // if item is closed, show message and do nothing
\r
1122 $item =& $manager->getItem($itemid,0,0);
\r
1123 if ( $item['closed'] || !$blog->commentsEnabled() )
\r
1125 $this->doForm('commentform-closed');
\r
1129 if ( !$blog->isPublic() && !$member->isLoggedIn() )
\r
1131 $this->doForm('commentform-closedtopublic');
\r
1135 if ( !$destinationurl )
\r
1137 // note: createLink returns an HTML encoded URL
\r
1138 $destinationurl = Link::createlink(
\r
1141 'itemid' => $itemid,
\r
1142 'title' => $item['title'],
\r
1143 'timestamp' => $item['timestamp'],
\r
1144 'extra' => $this->linkparams
\r
1150 // HTML encode URL
\r
1151 $destinationurl = Entity::hsc($destinationurl);
\r
1154 // values to prefill
\r
1155 $user = cookieVar($CONF['CookiePrefix'] .'comment_user');
\r
1158 $user = postVar('user');
\r
1161 $userid = cookieVar($CONF['CookiePrefix'] .'comment_userid');
\r
1164 $userid = postVar('userid');
\r
1167 $email = cookieVar($CONF['CookiePrefix'] .'comment_email');
\r
1170 $email = postVar('email');
\r
1173 $body = postVar('body');
\r
1175 $this->formdata = array(
\r
1176 'destinationurl' => $destinationurl, // url is already HTML encoded
\r
1177 'actionurl' => Entity::hsc($actionurl),
\r
1178 'itemid' => $itemid,
\r
1179 'user' => Entity::hsc($user),
\r
1180 'userid' => Entity::hsc($userid),
\r
1181 'email' => Entity::hsc($email),
\r
1182 'body' => Entity::hsc($body),
\r
1183 'membername' => $member->getDisplayName(),
\r
1184 'rememberchecked' => cookieVar($CONF['CookiePrefix'] .'comment_user')?'checked="checked"':''
\r
1187 if ( !$member->isLoggedIn() )
\r
1189 $this->doForm('commentform-notloggedin');
\r
1193 $this->doForm('commentform-loggedin');
\r
1199 * Actions::parse_comments()
\r
1200 * Parse skinvar comments
\r
1201 * include comments for one item
\r
1203 * @param string $template name of template
\r
1206 public function parse_comments($template)
\r
1208 global $itemid, $manager, $blog, $highlight;
\r
1209 $template =& $manager->getTemplate($template);
\r
1211 // create parser object & action handler
\r
1212 $actions = new ItemActions($blog);
\r
1213 $parser = new Parser($actions->getDefinedActions(),$actions);
\r
1214 $actions->setTemplate($template);
\r
1215 $actions->setParser($parser);
\r
1216 $item = Item::getitem($itemid, 0, 0);
\r
1217 $actions->setCurrentItem($item);
\r
1219 $comments = new Comments($itemid);
\r
1220 $comments->setItemActions($actions);
\r
1221 // shows ALL comments
\r
1222 $comments->showComments($template, -1, 1, $highlight);
\r
1227 * Actions::parse_errordiv()
\r
1233 public function parse_errordiv()
\r
1235 global $errormessage;
\r
1236 if ( $errormessage )
\r
1238 echo '<div class="error">' . Entity::hsc($errormessage) . "</div>\n";
\r
1244 * Actions::parse_errormessage()
\r
1245 * Parse skinvar errormessage
\r
1250 public function parse_errormessage()
\r
1252 global $errormessage;
\r
1253 echo $errormessage;
\r
1258 * Actions::parse_formdata()
\r
1261 * @param string $what key of format data
\r
1264 public function parse_formdata($what)
\r
1266 echo $this->formdata[$what];
\r
1271 * Actions::parse_ifcat()
\r
1274 * @param string $text
\r
1277 public function parse_ifcat($text = '')
\r
1279 if ( $text == '' )
\r
1282 $this->parse_if('category');
\r
1287 global $catid, $blog;
\r
1288 if ( $blog->isValidCategory($catid) )
\r
1297 * Actions::parse_image()
\r
1298 * Parse skinvar image
\r
1300 * @param string $what name of tag
\r
1303 public function parse_image($what = 'imgtag')
\r
1307 $imagetext = Entity::hsc(requestVar('imagetext'));
\r
1308 $imagepopup = requestVar('imagepopup');
\r
1309 $width = intRequestVar('width');
\r
1310 $height = intRequestVar('height');
\r
1311 $fullurl = Entity::hsc($CONF['MediaURL'] . $imagepopup);
\r
1330 echo "<img src=\"$fullurl\" width=\"$width\" height=\"$height\" alt=\"$imagetext\" title=\"$imagetext\" />";
\r
1337 * Actions::parse_skinfile()
\r
1338 * Inserts an url relative to the skindir (useful when doing import/export)
\r
1339 * e.g. <skinfile(default/myfile.sth)>
\r
1341 * @param string $filename name of file
\r
1344 public function parse_skinfile($filename)
\r
1346 $base = NP_SkinableAdmin::getAdminSkinURL();
\r
1347 $pref = PARSER::getProperty('IncludePrefix');
\r
1348 echo "{$base}{$pref}{$filename}";
\r
1353 * Actions::parse_imagetext()
\r
1354 * Parse skinvar imagetext
\r
1359 public function parse_imagetext()
\r
1361 $this->parse_image('imagetext');
\r
1366 * Actions::parse_itemlink()
\r
1367 * Parse skinvar itemlink
\r
1369 * @param string $linktext text for content of anchor element
\r
1372 function parse_itemlink($linktext = '')
\r
1375 $this->itemlink($itemid, $linktext);
\r
1380 * Actions::parse_item()
\r
1381 * Parse skinvar item
\r
1382 * include one item (no comments)
\r
1387 public function parse_item($template)
\r
1389 global $blog, $itemid, $highlight;
\r
1391 // need this to select default category
\r
1392 $this->setBlogCategory($blog, '');
\r
1393 $this->preBlogContent('item',$blog);
\r
1394 $r = $blog->showOneitem($itemid, $template, $highlight);
\r
1397 echo _ERROR_NOSUCHITEM;
\r
1399 $this->postBlogContent('item',$blog);
\r
1404 * Actions::parse_itemid()
\r
1405 * Parse skinvar itemid
\r
1410 public function parse_itemid()
\r
1418 * Actions::parseitemlink()
\r
1419 * Parse skinvar itemlink
\r
1424 public function parseitemlink($linktext = '')
\r
1427 $this->itemlink($itemid, $linktext);
\r
1432 * Actions::parse_itemtitle()
\r
1438 public function parse_itemtitle($format = '')
\r
1440 global $manager, $itemid;
\r
1441 $item =& $manager->getItem($itemid,0,0);
\r
1443 switch ( $format )
\r
1446 echo Entity::hen($item['title']);
\r
1449 echo $item['title'];
\r
1453 echo Entity::hsc(strip_tags($item['title']));
\r
1460 * Actions::parse_loginform()
\r
1461 * Parse skinvar loginform
\r
1466 public function parse_loginform()
\r
1468 global $member, $CONF;
\r
1469 if ( !$member->isLoggedIn() )
\r
1471 $filename = 'loginform-notloggedin';
\r
1472 $this->formdata = array();
\r
1476 $filename = 'loginform-loggedin';
\r
1477 $this->formdata = array(
\r
1478 'membername' => $member->getDisplayName(),
\r
1481 $this->doForm($filename);
\r
1486 * Actions::parse_member()
\r
1487 * Parse skinvar member
\r
1488 * (includes a member info thingie)
\r
1490 * @param string $what which memberdata is needed
\r
1493 public function parse_member($what)
\r
1495 global $memberinfo, $member, $CONF;
\r
1497 // 1. only allow the member-details-page specific variables on member pages
\r
1498 if ( $this->skintype == 'member' )
\r
1503 echo Entity::hsc($memberinfo->getDisplayName());
\r
1506 echo Entity::hsc($memberinfo->getRealName());
\r
1509 echo Entity::hsc($memberinfo->getNotes());
\r
1512 echo Entity::hsc($memberinfo->getURL());
\r
1515 echo Entity::hsc($memberinfo->getEmail());
\r
1518 echo Entity::hsc($memberinfo->getID());
\r
1523 // 2. the next bunch of options is available everywhere, as long as the user is logged in
\r
1524 if ( $member->isLoggedIn() )
\r
1529 echo $member->getDisplayName();
\r
1531 case 'yourrealname':
\r
1532 echo $member->getRealName();
\r
1535 echo $member->getNotes();
\r
1538 echo $member->getURL();
\r
1541 echo $member->getEmail();
\r
1544 echo $member->getID();
\r
1546 case 'yourprofileurl':
\r
1547 if ($CONF['URLMode'] == 'pathinfo')
\r
1548 echo Link::create_memberlink($member->getID());
\r
1550 echo $CONF['IndexURL'] . Link::create_memberlink($member->getID());
\r
1558 * Link::parse_membermailform()
\r
1559 * Parse skinvar membermailform
\r
1561 * @param integer $rows the height for textarea
\r
1562 * @param integer $cols the width for textarea
\r
1563 * @param string $desturl URI to redirect
\r
1566 public function parse_membermailform($rows = 10, $cols = 40, $desturl = '')
\r
1568 global $member, $CONF, $memberid;
\r
1570 if ( $desturl == '' )
\r
1572 if ( $CONF['URLMode'] == 'pathinfo' )
\r
1574 $desturl = Link::create_memberlink($memberid);
\r
1578 $desturl = $CONF['IndexURL'] . Link::create_memberlink($memberid);
\r
1582 $message = postVar('message');
\r
1583 $frommail = postVar('frommail');
\r
1585 $this->formdata = array(
\r
1586 'url' => Entity::hsc($desturl),
\r
1587 'actionurl' => Entity::hsc($CONF['ActionURL']),
\r
1588 'memberid' => $memberid,
\r
1591 'message' => Entity::hsc($message),
\r
1592 'frommail' => Entity::hsc($frommail)
\r
1595 if ( $member->isLoggedIn() )
\r
1597 $this->doForm('membermailform-loggedin');
\r
1599 else if ( $CONF['NonmemberMail'] )
\r
1601 $this->doForm('membermailform-notloggedin');
\r
1605 $this->doForm('membermailform-disallowed');
\r
1611 * Actions::parse_nextarchive()
\r
1612 * Parse skinvar nextarchive
\r
1617 public function parse_nextarchive()
\r
1619 global $archivenext;
\r
1620 echo $archivenext;
\r
1625 * Parse skinvar nextitem
\r
1626 * (include itemid of next item)
\r
1631 public function parse_nextitem()
\r
1633 global $itemidnext;
\r
1634 if ( isset($itemidnext) )
\r
1636 echo (int)$itemidnext;
\r
1642 * Actions::parse_nextitemtitle()
\r
1643 * Parse skinvar nextitemtitle
\r
1644 * (include itemtitle of next item)
\r
1646 * @param string $format format of text
\r
1649 public function parse_nextitemtitle($format = '')
\r
1651 global $itemtitlenext;
\r
1653 switch ( $format )
\r
1656 echo Entity::hen($itemtitlenext);
\r
1659 echo $itemtitlenext;
\r
1663 echo Entity::hsc($itemtitlenext);
\r
1670 * Actions::parse_nextlink()
\r
1671 * Parse skinvar nextlink
\r
1673 * @param string $linktext text for content of anchor element
\r
1674 * @param integer $amount the amount of items in a display
\r
1675 * @param integer $recount increment from this value
\r
1678 public function parse_nextlink($linktext = '', $amount = 10, $recount = '')
\r
1680 global $itemidnext, $archivenext, $startpos;
\r
1681 if ( $this->skintype == 'item' )
\r
1683 $this->itemlink($itemidnext, $linktext);
\r
1685 else if ( $this->skintype == 'search' || $this->skintype == 'index' )
\r
1687 $this->searchlink($amount, $startpos, 'next', $linktext, $recount);
\r
1691 $this->archivelink($archivenext, $linktext);
\r
1697 * Actions::parse_nucleusbutton()
\r
1698 * Parse skinvar nucleusbutton
\r
1700 * @param string $imgurl URL for image
\r
1701 * @param integer $imgwidth width of image
\r
1702 * @param integer $imgheidht height of image
\r
1704 public function parse_nucleusbutton($imgurl = '', $imgwidth = '85', $imgheight = '31')
\r
1707 if ( $imgurl == '' )
\r
1709 $imgurl = $CONF['AdminURL'] . 'nucleus.gif';
\r
1711 else if ( Parser::getProperty('IncludeMode') == 'skindir' )
\r
1713 // when skindit IncludeMode is used: start from skindir
\r
1714 $imgurl = $CONF['SkinsURL'] . Parser::getProperty('IncludePrefix') . $imgurl;
\r
1717 $this->formdata = array(
\r
1718 'imgurl' => $imgurl,
\r
1719 'imgwidth' => $imgwidth,
\r
1720 'imgheight' => $imgheight,
\r
1722 $this->doForm('nucleusbutton');
\r
1727 * Actions::parse_otherarchive()
\r
1728 * Parse skinvar otherarchive
\r
1730 * @param string $blogname name of weblog
\r
1731 * @param string $template name of template
\r
1732 * @param string $category name of category
\r
1735 public function parse_otherarchive($blogname, $template, $category = '')
\r
1737 global $archive, $manager;
\r
1738 sscanf($archive,'%d-%d-%d',$y,$m,$d);
\r
1739 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1740 $this->setBlogCategory($b, $category);
\r
1741 $this->preBlogContent('otherachive',$b);
\r
1742 $b->showArchive($template, $y, $m, $d);
\r
1743 $this->postBlogContent('otherachive',$b);
\r
1748 * Actions::parse_otherarchivedaylist()
\r
1749 * Parse skinvar otherarchivedaylist
\r
1751 * @param string $blogname name of weblog
\r
1752 * @param string $template name of template
\r
1753 * @param string $category name of category
\r
1754 * @param integer $limit the amount of items in a display
\r
1757 public function parse_otherarchivedaylist($blogname, $template, $category = 'all', $limit = 0)
\r
1760 if ( $category == 'all')
\r
1764 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1765 $this->setBlogCategory($b, $category);
\r
1766 $this->preBlogContent('otherarchivelist',$b);
\r
1767 $b->showArchiveList($template, 'day', $limit);
\r
1768 $this->postBlogContent('otherarchivelist',$b);
\r
1773 * Actions::parse_otherarchivelist()
\r
1774 * Parse skinvar otherarchivelist
\r
1776 * @param string $blogname name of weblog
\r
1777 * @param string $template name of template
\r
1778 * @param string $category name of category
\r
1779 * @param integer $limit the amount of items in a display
\r
1782 public function parse_otherarchivelist($blogname, $template, $category = 'all', $limit = 0)
\r
1785 if ( $category == 'all' )
\r
1789 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1790 $this->setBlogCategory($b, $category);
\r
1791 $this->preBlogContent('otherarchivelist',$b);
\r
1792 $b->showArchiveList($template, 'month', $limit);
\r
1793 $this->postBlogContent('otherarchivelist',$b);
\r
1798 * Actions::parse_otherarchiveyearlist()
\r
1799 * Parse skinvar otherarchiveyearlist
\r
1801 * @param string $blogname name of weblog
\r
1802 * @param string $template name of template
\r
1803 * @param string $category name of category
\r
1804 * @limit integer $limit the amount of items in a display
\r
1806 public function parse_otherarchiveyearlist($blogname, $template, $category = 'all', $limit = 0)
\r
1809 if ( $category == 'all' )
\r
1813 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1814 $this->setBlogCategory($b, $category);
\r
1815 $this->preBlogContent('otherarchivelist',$b);
\r
1816 $b->showArchiveList($template, 'year', $limit);
\r
1817 $this->postBlogContent('otherarchivelist',$b);
\r
1822 * Actions::parse_otherblog()
\r
1823 * Parse skinvar otherblog
\r
1825 * @param string $blogname name of weblog
\r
1826 * @param string $template name of template
\r
1827 * @param mixed $amount the amount of items, in case it includes the beginning
\r
1828 * @param string $category name of category
\r
1831 public function parse_otherblog($blogname, $template, $amount = 10, $category = '')
\r
1835 list($limit, $offset) = sscanf($amount, '%d(%d)');
\r
1837 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1838 $this->setBlogCategory($b, $category);
\r
1839 $this->preBlogContent('otherblog',$b);
\r
1840 $this->amountfound = $b->readLog($template, $limit, $offset);
\r
1841 $this->postBlogContent('otherblog',$b);
\r
1846 * Actions::parse_othersearchresults()
\r
1847 * Parse skinvar othersearchresults
\r
1849 * @param string $blogname name of weblog
\r
1850 * @param string $template name of template
\r
1851 * @param integer $maxresults the amount of results
\r
1854 public function parse_othersearchresults($blogname, $template, $maxresults = 50)
\r
1856 global $query, $amount, $manager, $startpos;
\r
1857 $b =& $manager->getBlog(getBlogIDFromName($blogname));
\r
1858 // need this to select default category
\r
1859 $this->setBlogCategory($b, '');
\r
1860 $this->preBlogContent('othersearchresults',$b);
\r
1861 $b->search($query, $template, $amount, $maxresults, $startpos);
\r
1862 $this->postBlogContent('othersearchresults',$b);
\r
1867 * Actions::parse_plugin()
\r
1868 * Executes a plugin skinvar
\r
1869 * extra parameters can be added
\r
1871 * @param string $pluginName name of plugin (without the NP_)
\r
1874 public function parse_plugin($pluginName)
\r
1878 $plugin =& $manager->getPlugin('NP_' . $pluginName);
\r
1885 $params = func_get_args();
\r
1887 // remove plugin name
\r
1888 array_shift($params);
\r
1890 // add skin type on front
\r
1891 array_unshift($params, $this->skintype);
\r
1893 call_user_func_array(array(&$plugin,'doSkinVar'), $params);
\r
1898 * Actions::parse_prevarchive()
\r
1899 * Parse skinvar prevarchive
\r
1904 public function parse_prevarchive()
\r
1906 global $archiveprev;
\r
1907 echo $archiveprev;
\r
1911 * Actions::parse_preview()
\r
1912 * Parse skinvar preview
\r
1914 * @param string $template name of tempalte
\r
1917 public function parse_preview($template)
\r
1919 global $blog, $CONF, $manager;
\r
1921 $template =& $manager->getTemplate($template);
\r
1923 $row['body'] = '<span id="prevbody"></span>';
\r
1924 $row['title'] = '<span id="prevtitle"></span>';
\r
1925 $row['more'] = '<span id="prevmore"></span>';
\r
1926 $row['itemlink'] = '';
\r
1927 $row['itemid'] = 0; $row['blogid'] = $blog->getID();
\r
1929 echo Template::fill($template['ITEM_HEADER'],$row);
\r
1930 echo Template::fill($template['ITEM'],$row);
\r
1931 echo Template::fill($template['ITEM_FOOTER'],$row);
\r
1936 * Actions::parse_previtem()
\r
1937 * Parse skinvar previtem
\r
1938 * (include itemid of prev item)
\r
1943 public function parse_previtem()
\r
1945 global $itemidprev;
\r
1946 if ( isset($itemidprev) )
\r
1948 echo (integer) $itemidprev;
\r
1954 * Actions::parse_previtemtitle()
\r
1955 * Parse skinvar previtemtitle
\r
1956 * (include itemtitle of prev item)
\r
1958 * @param String $format string format
\r
1959 * @return String formatted string
\r
1961 public function parse_previtemtitle($format = '')
\r
1963 global $itemtitleprev;
\r
1965 switch ( $format )
\r
1968 echo Entity::hen($itemtitleprev);
\r
1971 echo $itemtitleprev;
\r
1975 echo Entity::hsc($itemtitleprev);
\r
1982 * Actions::parse_prevlink()
\r
1983 * Parse skinvar prevlink
\r
1985 * @param string $linktext text as a content of anchor element
\r
1986 * @param integer the amount of links
\r
1989 public function parse_prevlink($linktext = '', $amount = 10)
\r
1991 global $itemidprev, $archiveprev, $startpos;
\r
1993 if ( $this->skintype == 'item' )
\r
1995 $this->itemlink($itemidprev, $linktext);
\r
1997 else if ( $this->skintype == 'search' || $this->skintype == 'index' )
\r
1999 $this->searchlink($amount, $startpos, 'prev', $linktext);
\r
2003 $this->archivelink($archiveprev, $linktext);
\r
2009 * Actions::parse_query()
\r
2010 * Parse skinvar query
\r
2011 * (includes the search query)
\r
2016 public function parse_query()
\r
2019 echo Entity::hsc($query);
\r
2024 * Actions::parse_referer()
\r
2025 * Parse skinvar referer
\r
2030 public function parse_referer()
\r
2032 echo Entity::hsc(serverVar('HTTP_REFERER'));
\r
2037 * Actions::parse_searchform()
\r
2038 * Parse skinvar searchform
\r
2040 * @param string $blogname name of weblog
\r
2043 public function parse_searchform($blogname = '')
\r
2045 global $CONF, $manager, $maxresults;
\r
2048 $blog =& $manager->getBlog(getBlogIDFromName($blogname));
\r
2054 // use default blog when no blog is selected
\r
2055 $this->formdata = array(
\r
2056 'id' => $blog?$blog->getID():$CONF['DefaultBlog'],
\r
2057 'query' => Entity::hsc(getVar('query')),
\r
2059 $this->doForm('searchform');
\r
2064 * Actions::parse_searchresults()
\r
2065 * Parse skinvar searchresults
\r
2067 * @param string $template name of tempalte
\r
2068 * @param integer $maxresults searched items in a display
\r
2071 public function parse_searchresults($template, $maxresults = 50 )
\r
2073 global $blog, $query, $amount, $startpos;
\r
2075 $this->setBlogCategory($blog, ''); // need this to select default category
\r
2076 $this->preBlogContent('searchresults',$blog);
\r
2077 $this->amountfound = $blog->search($query, $template, $amount, $maxresults, $startpos);
\r
2078 $this->postBlogContent('searchresults',$blog);
\r
2083 * Actions::parse_self()
\r
2084 * Parse skinvar self
\r
2089 public function parse_self()
\r
2092 echo $CONF['Self'];
\r
2097 * Actions::parse_sitevar()
\r
2098 * Parse skinvar sitevar
\r
2099 * (include a sitevar)
\r
2101 * @param string $which
\r
2104 public function parse_sitevar($which)
\r
2110 echo $CONF['IndexURL'];
\r
2113 echo $CONF['SiteName'];
\r
2116 echo $CONF['AdminEmail'];
\r
2119 echo $CONF['AdminURL'];
\r
2125 * Actions::parse_skinname()
\r
2131 public function parse_skinname()
\r
2133 echo $this->skin->getName();
\r
2138 * Actions::parse_skintype()
\r
2139 * Parse skintype (experimental)
\r
2144 public function parse_skintype()
\r
2146 echo $this->skintype;
\r
2151 * Actions::parse_text()
\r
2157 public function parse_text($which)
\r
2159 // constant($which) only available from 4.0.4 :(
\r
2160 if ( defined($which) )
\r
2162 eval("echo $which;");
\r
2168 * Actions::parse_ticket()
\r
2174 public function parse_ticket()
\r
2177 $manager->addTicketHidden();
\r
2182 * Actions::parse_todaylink()
\r
2183 * Parse skinvar todaylink
\r
2184 * A link to the today page (depending on selected blog, etc...)
\r
2186 * @param string $linktext text for link
\r
2189 public function parse_todaylink($linktext = '')
\r
2191 global $blog, $CONF;
\r
2194 echo $this->link(Link::create_blogidlink($blog->getID(),$this->linkparams), $linktext);
\r
2198 echo $this->link($CONF['SiteUrl'], $linktext);
\r
2205 * When commentform is not used, to include a hidden field with itemid
\r
2210 public function parse_vars()
\r
2213 echo '<input type="hidden" name="itemid" value="'.$itemid.'" />' . "\n";
\r
2218 * Actions::parse_version()
\r
2219 * Parse skinvar version
\r
2220 * (include nucleus versionnumber)
\r
2225 public function parse_version()
\r
2228 echo 'Nucleus CMS ' . $nucleus['version'];
\r
2233 * Actions::parse_sticky()
\r
2234 * Parse skinvar sticky
\r
2236 * @param integer $itemnumber id of item
\r
2237 * @param string $template name of template
\r
2240 public function parse_sticky($itemnumber = 0, $template = '')
\r
2244 $itemnumber = intval($itemnumber);
\r
2245 $itemarray = array($itemnumber);
\r
2247 $b =& $manager->getBlog(getBlogIDFromItemID($itemnumber));
\r
2248 $this->preBlogContent('sticky',$b);
\r
2249 $this->amountfound = $b->readLogFromList($itemarray, $template);
\r
2250 $this->postBlogContent('sticky',$b);
\r
2254 /* TODO: checking these new added methods */
\r
2257 * Actions::parse_adminbanlist()
\r
2258 * Parse skinvar adminbanlist
\r
2260 * @param string $templateName name of template to use
\r
2263 public function parse_adminbanlist($templateName = '')
\r
2265 $blogid = intRequestVar('blogid');
\r
2266 $query = "SELECT * FROM %s WHERE blogid=%d ORDER BY iprange;";
\r
2267 $query = sprintf($query, sql_table('ban'), (integer) $blogid);
\r
2268 $template['content'] = 'banlist';
\r
2269 $amount = skinableShowlist($query, 'table', $template, $templateName);
\r
2270 if ( $amount == 0 )
\r
2278 * Actions::parse_adminbatchaction()
\r
2279 * Parse skinvar adminbatchaction
\r
2284 public function parse_adminbatchaction()
\r
2286 echo Entity::hsc(requestVar('batchaction'));
\r
2291 * Actions::parse_adminbatchlist()
\r
2292 * Parse skinvar adminbatchlist
\r
2294 * @param string $templateName name of template to use
\r
2297 public function parse_adminbatchlist($templateName = '')
\r
2300 $templates = array();
\r
2301 if ( !empty($templateName) )
\r
2303 $templates = skinableTEMPLATE::read($templateName);
\r
2305 if ( isset($templates['ADMIN_BATCHLIST']) || !empty($templates['ADMIN_BATCHLIST']) )
\r
2307 $template = $templates['ADMIN_BATCHLIST'];
\r
2311 $template = '<li><%text(_BATCH_EXECUTING)%><b><%adminbatchaction%></b>'
\r
2312 . '<%batchlisttype%> <b><%batchid%></b>...'
\r
2313 . '<b><%batchlistmsg%></b></li>' . "\n";
\r
2316 $selected = requestIntArray('batch');
\r
2317 $action = requestVar('batchaction');
\r
2319 switch ( $this->skintype )
\r
2322 $batchlisttype = _BATCH_ONITEM;
\r
2323 $deleteaction = 'deleteOneItem';
\r
2324 $moveaction = 'moveOneItem';
\r
2325 $destid = intRequestVar('destcatid');
\r
2327 case 'batchcomment':
\r
2328 $batchlisttype = _BATCH_ONCOMMENT;
\r
2329 $deleteaction = 'deleteOneComment';
\r
2331 case 'batchmember':
\r
2332 $batchlisttype = _BATCH_ONMEMBER;
\r
2333 $deleteaction = 'deleteOneMember';
\r
2334 $setadminsql = sql_table('member') . ' SET madmin = 1 WHERE mnumber = ';
\r
2335 $unsetchksql = 'SELECT * FROM ' . sql_table('member') . ' WHERE madmin = 1 AND mcanlogin = 1';
\r
2336 $unsetupsql = sql_table('member') . ' SET madmin = 0 WHERE mnumber = ';
\r
2337 $unseterrmsg = _ERROR_ATLEASTONEADMIN;
\r
2340 $blogid = intRequestVar('blogid');
\r
2341 $batchlisttype = _BATCH_ONTEAM;
\r
2342 $deleteaction = 'deleteOneTeamMember';
\r
2343 $setadminsql = sql_table('team') . ' SET tadmin = 1 WHERE tblog = ' . $blogid . ' AND tmember = ';
\r
2344 $unsetchksql = 'SELECT * FROM ' . sql_table('team') . ' WHERE tadmin = 1 AND tblog = ' . $blogid;
\r
2345 $unseterrmsg = _ERROR_ATLEASTONEBLOGADMIN;
\r
2346 $unsetupsql = sql_table('team') . ' SET tadmin = 0 WHERE tblog = ' . $blogid . ' AND tmember = ';
\r
2348 case 'batchcategory':
\r
2349 $batchlisttype = _BATCH_ONCATEGORY;
\r
2350 $deleteaction = 'deleteOneCategory';
\r
2351 $moveaction = 'moveOneCategory';
\r
2352 $destid = intRequestVar('destblogid');
\r
2356 // walk over all selectedids and perform action
\r
2357 foreach ( $selected as $selectedid )
\r
2360 $selectedid = intval($selectedid);
\r
2361 switch ( $action )
\r
2364 if ( $this->skintype != 'batchteam' )
\r
2366 $error = $this->objAdmin->$deleteaction($selectedid);
\r
2370 $error = $this->objAdmin->deleteOneTeamMember($blogid, $selectedid);
\r
2374 $error = $this->objAdmin->$moveaction($selectedid, $destid);
\r
2377 // always succeeds
\r
2378 sql_query('UPDATE ' . $setadminsql . $selectedid);
\r
2381 case 'unsetadmin':
\r
2382 // there should always remain at least one super-admin
\r
2383 $r = sql_query($unsetchksql);
\r
2384 if ( sql_num_rows($r) < 2 )
\r
2386 $error = $unseterrmsg;
\r
2390 sql_query('UPDATE ' . $unsetupsql . $selectedid);
\r
2394 $error = _BATCH_UNKNOWN . Entity::hsc($action);
\r
2397 'batchid' => $selectedid,
\r
2398 'batchlisttype' => Entity::hsc($batchlisttype),
\r
2399 'adminbatchaction' => Entity::hsc($action),
\r
2400 'batchlistmsg' => $error ? $error : _BATCH_SUCCESS,
\r
2402 $handler = new skinableACTIONS('template', $template, new ADMIN);
\r
2403 $parser = new skinablePARSER($handler);
\r
2406 $parser->parse($template);
\r
2407 $template = ob_get_contents();
\r
2410 echo TEMPLATE::fill($template, $data);
\r
2416 * Actions::parse_adminbloglink()
\r
2417 * Parse skinvar adminbloglink
\r
2419 * @param string $templateName name of template to use
\r
2422 public function parse_adminbloglink($templateName = '')
\r
2425 $blogid = intRequestVar('blogid');
\r
2426 $blog =& $manager->getBlog($blogid);
\r
2427 $templates = array();
\r
2429 if ( !empty($templateName) )
\r
2431 $templates = skinableTEMPLATE::read($templateName);
\r
2434 if ( isset($templates['ADMIN_BLOGLINK']) || !empty($templates['ADMIN_BLOGLINK']) )
\r
2436 $template = $templates['ADMIN_BLOGLINK'];
\r
2440 $template = '<a href="<%url%>" title="<%adminbloglinktitle%>"><%blogname%></a>';
\r
2444 'url' => Entity::hsc($blog->getURL()),
\r
2445 'adminbloglinktitle' => _BLOGLIST_TT_VISIT,
\r
2446 'blogname' => Entity::hsc($blog->getName())
\r
2449 echo TEMPLATE::fill($template, $data);
\r
2454 * Actions::parse_adminerrormesg()
\r
2455 * Parse skinvar adminerrormesg
\r
2460 public function parse_adminerrormesg()
\r
2465 if ( requestVar('errormessage') )
\r
2467 $message = requestVar('errormessage');
\r
2469 elseif ( cookieVar($CONF['CookiePrefix'] . 'errormessage') )
\r
2471 $message = cookieVar($CONF['CookiePrefix'] . 'errormessage');
\r
2473 elseif ( $this->objAdmin->sessionVar($CONF['CookiePrefix'] . 'errormessage') )
\r
2475 $message = $this->objAdmin->sessionVar($CONF['CookiePrefix'] . 'errormessage');
\r
2477 echo Entity::hsc($message);
\r
2482 * Actions::parse_adminparsedinclude()
\r
2483 * Parse skinvar adminparsedinclude
\r
2485 * @param string $filename name of file
\r
2488 public function parse_adminparsedinclude($filename)
\r
2490 // check current level
\r
2491 if ( $this->level > 3)
\r
2493 // max. depth reached (avoid endless loop)
\r
2497 $skin = new skinableSKIN($this->skin->id);
\r
2498 $file = $this->getIncludeFileName($filename);
\r
2499 if ( !$skin->isValid && !file_exists($file) )
\r
2503 $contents = $skin->getContent($filename);
\r
2506 if ( !file_exists($file) )
\r
2510 $contents = file_get_contents($file);
\r
2511 if ( empty($contents) )
\r
2516 $this->level = $this->level + 1;
\r
2517 // parse file contents
\r
2518 $this->parser->parse($contents);
\r
2520 $this->level = $this->level - 1;
\r
2525 * Actions::parse_adminskineditallowedlist()
\r
2526 * Parse skinvar adminskineditallowedlist
\r
2528 * @param string $type template/blog
\r
2529 * @param string $templateName name of template to use
\r
2532 public function parse_adminskineditallowedlist($type = 'template', $templateName = '')
\r
2536 /* TODO: blog seems not to be used */
\r
2538 $query = "SELECT bshortname, bname FROM %s";
\r
2539 $query = sprintf($query, sql_table('blog'));
\r
2541 'content' => 'shortblognames'
\r
2545 $query = "SELECT tdname as name, tddesc as description FROM %s;";
\r
2546 $query = sprintf($query, sql_table('admintemplate_desc'));
\r
2548 'content' => 'shortnames'
\r
2552 skinableShowlist($query, 'table', $show, $templateName);
\r
2557 * Actions::parse_adminskinielist()
\r
2558 * Parse skinvar adminskinielist
\r
2560 * @param string $type skin/template
\r
2561 * @param string $templateName name of template to use
\r
2564 public function parse_adminskinielist($type, $templateName = '')
\r
2566 $templates = array();
\r
2567 if ( $templateName )
\r
2569 $templates = skinableTEMPLATE::read($templateName);
\r
2571 if ( isset($templates['SKINIE_EXPORT_LIST']) && !empty($templates['SKINIE_EXPORT_LIST']) )
\r
2573 $template = $templates['SKINIE_EXPORT_LIST'];
\r
2577 $template = '<td><input type="checkbox" name="<%typeid%>" id="<%expid%>" /><label for="<%expid%>"><%expname%></label></td>' . "\n"
\r
2578 . "<td><%expdesc%></td>\n"
\r
2584 $query = "SELECT * FROM %s;";
\r
2585 $query = sprintf($query, sql_table('adminskin_desc'));
\r
2586 $res = sql_query($query);
\r
2588 while ( $skinObj = sql_fetch_object($res) )
\r
2591 'typeid' => 'skin[' . $skinObj->sdnumber . ']',
\r
2592 'expid' => 'skinexp' . $skinObj->sdnumber,
\r
2593 'expname' => Entity::hsc($skinObj->sdname),
\r
2594 'expdesc' => Entity::hsc($skinObj->sddesc),
\r
2596 echo TEMPLATE::fill($template, $data);
\r
2600 $query = "SELECT * FROM %s;";
\r
2601 $query = sprintf($query, sql_table('admintemplate_desc'));
\r
2602 $res = sql_query($query);
\r
2603 while ( $templateObj = sql_fetch_object($res) )
\r
2606 'typeid' => 'template[' . $templateObj->tdnumber . ']',
\r
2607 'expid' => 'templateexp' . $templateObj->tdnumber,
\r
2608 'expname' => Entity::hsc($templateObj->tdname),
\r
2609 'expdesc' => Entity::hsc($templateObj->tddesc),
\r
2611 echo TEMPLATE::fill($template, $data);
\r
2619 * Actions::parse_adminskinoverview()
\r
2620 * Parse skinvar adminskinoverview
\r
2622 * @param string $templateName name of template to use
\r
2625 public function parse_adminskinoverview($templateName = '')
\r
2627 $query = "SELECT * FROM %s ORDER BY sdname;";
\r
2628 $query = sprintf($query, sql_table('adminskin_desc'));
\r
2630 $template['content'] = 'adminskinlist';
\r
2631 $template['tabindex'] = 10;
\r
2632 skinableShowlist($query, 'table', $template, $templateName);
\r
2637 * Actions::parse_adminskinselectoptions()
\r
2638 * Parse skinvar adminskinselectoptions
\r
2643 public function parse_adminskinselectoptions()
\r
2646 $query = "SELECT sdname as text, sdnumber as value FROM %s;";
\r
2647 $query = sprintf($query, sql_table('adminskin_desc'));
\r
2649 $template['name'] = 'adminskin';
\r
2650 $template['selected'] = $CONF['DefaultAdminSkin'];
\r
2651 $template['tabindex'] = 110;
\r
2652 skinableShowlist($query, 'select', $template, '');
\r
2657 * Actions::parse_adminspecialskinlist()
\r
2658 * Parse skinvar adminspecialskinlist
\r
2660 * @param string $templateName name of template to use
\r
2662 public function parse_adminspecialskinlist($templateName = '')
\r
2664 $templates = array();
\r
2665 if ( $templateName )
\r
2667 $templates = skinableTEMPLATE::read($templateName);
\r
2670 $nType = skinableSKIN::getAdminskinDefaultTypes();
\r
2671 $skinid = intRequestVar('skinid');
\r
2673 $query = "SELECT stype FROM %s WHERE stype NOT IN (%s) AND sdesc=%d;";
\r
2674 $query = sprintf($query, sql_table('adminskin'), "'" . implode("', '", $nType) . "'", (integer) $skinid);
\r
2676 $res = sql_query($query);
\r
2677 if ( $res && sql_num_rows($res) > 0 )
\r
2680 if ( isset($templates['ADMIN_SPECIALSKINLIST_HEAD']) && !empty($templates['ADMIN_SPECIALSKINLIST_HEAD']) )
\r
2682 $template['head'] = $templates['ADMIN_SPECIALSKINLIST_HEAD'];
\r
2686 $template['head'] = "<ul>\n";
\r
2688 echo TEMPLATE::fill($template['head'], $data);
\r
2689 if ( isset($templates['ADMIN_SPECIALSKINLIST_BODY']) && !empty($templates['ADMIN_SPECIALSKINLIST_BODY']) )
\r
2691 $template['body'] = $templates['ADMIN_SPECIALSKINLIST_BODY'];
\r
2695 $template['body'] = '<li><a tabindex="<%tabindex%>" href="index.php?action=adminskinedittype&skinid=<%skinid%>'
\r
2696 . '&type=<%skintype%>"><%skintype%></a> (<a tabindex="<%tabindex%>" href="index.php?'
\r
2697 . 'action=adminskinremovetype&skinid=<%skinid%>&type=<%skintype%>">remove</a>)</li>';
\r
2700 while ( $row = sql_fetch_assoc($res) )
\r
2703 'tabindex' => $tabstart++,
\r
2704 'skinid' => $skinid,
\r
2705 'skintype' => Entity::hsc(strtolower($row['stype']))
\r
2707 echo TEMPLATE::fill($template['body'], $data);
\r
2711 if ( isset($templates['ADMIN_SPECIALSKINLIST_FOOT']) && !empty($templates['ADMIN_SPECIALSKINLIST_FOOT']) )
\r
2713 $template['foot'] = $templates['ADMIN_SPECIALSKINLIST_FOOT'];
\r
2717 $template['foot'] = "<ul>\n";
\r
2719 echo TEMPLATE::fill($template['foot'], $data);
\r
2725 * Actions::parse_adminstyleseets()
\r
2726 * Parse skinvar adminstyleseets
\r
2731 public function parse_adminstyleseets()
\r
2734 $includePrefix = $this->skin->includePrefix;
\r
2736 if ( strlen($includePrefix) > 0 )
\r
2738 $styleURL = Entity::hsc($CONF['AdminURL']) . 'adminskins/' . $includePrefix . 'admin_' . $CONF['AdminCSS'] . '.css';
\r
2742 $styleURL = Entity::hsc($CONF['AdminURL']) . 'styles/admin_' . $CONF['AdminCSS'] . '.css';
\r
2749 * Actions::parse_adminstyleselectoptions()
\r
2750 * Parse skinvar adminstyleselectoptions
\r
2755 public function parse_adminstyleselectoptions()
\r
2757 global $CONF, $manager, $DIR_NUCLEUS;
\r
2758 if ( strlen($this->skin->includePrefix) > 0 )
\r
2760 $scndir = $DIR_NUCLEUS . 'adminskins/' . $this->skin->includePrefix;
\r
2764 $scndir = $DIR_NUCLEUS . 'styles/';
\r
2766 $files = scandir($scndir);
\r
2768 foreach ( $files as $file )
\r
2770 if ( !preg_match("#^admin_(.*)\.css$#", $file, $matches) )
\r
2775 $name = $matches[1];
\r
2776 $opts = '<option value="' . $name . '"';
\r
2777 if ( $name != $CONF['AdminCSS'] )
\r
2779 $opts .= "<option value=\"{$name}\">{$name}</option>\n";
\r
2783 $opts .= "<option value=\"{$name}\" selected=\"selected\">{$name}</option>\n";
\r
2791 * Actions::parse_admintemplateoverview()
\r
2792 * Parse skinvar admintemplateoverview
\r
2794 * @param string $templateName name of template to use
\r
2797 public function parse_admintemplateoverview($templateName = '')
\r
2799 $query = "SELECT * FROM %s ORDER BY tdname;";
\r
2800 $query = sprintf($query, sql_table('admintemplate_desc'));
\r
2802 $template['content'] = 'admintemplatelist';
\r
2803 $template['tabindex'] = 10;
\r
2805 skinableShowlist($query, 'table', $template, $templateName);
\r
2810 * Actions::parse_allowedadminskinactions()
\r
2811 * Parse skinvar allowedadminskinactions
\r
2816 public function parse_allowedadminskinactions()
\r
2818 global $DIR_ADMINSKINS;
\r
2819 $skinType = strtolower(trim(requestVar('type')));
\r
2820 $actions = skinableSKIN::getAllowedActionsForType($skinType);
\r
2823 while ( $current = array_shift($actions) )
\r
2825 // skip deprecated vars
\r
2826 if ($current == 'ifcat' || $current == 'imagetext' || $current == 'vars')
\r
2831 echo "<a href=\"{$DIR_ADMINSKINS}documentation/help.html#{$current}\" onclick=\"if (event && event.preventDefault) event.preventDefault(); return help(this.href);\">{$current}</a>\n";
\r
2833 if ( count($actions) != 0 )
\r
2842 * Actions::parse_allowedskinactions()
\r
2843 * Parse skinvar allowedskinactions
\r
2848 public function parse_allowedskinactions()
\r
2850 $skinType = strtolower(trim(requestVar('type')));
\r
2851 $actions = SKIN::getAllowedActionsForType($skinType);
\r
2854 while ( $current = array_shift($actions) )
\r
2856 // skip deprecated vars
\r
2857 if ( $current == 'ifcat' || $current == 'imagetext' || $current == 'vars' )
\r
2862 /* TODO: alternative function should be used or not? */
\r
2863 echo helplink("skinvar-{$current}") . "$current</a>\n";
\r
2865 if ( count($actions) != 0 )
\r
2874 * Action::parse_banlistdeletedlist()
\r
2875 * Parse skinvar banlistdeletedlist
\r
2877 * @param string $templateName name of template to use
\r
2880 public function parse_banlistdeletedlist($templateName = '')
\r
2883 $templates = array();
\r
2885 if ( $templateName )
\r
2887 $templates = skinableTEMPLATE::read($templateName);
\r
2889 if ( isset($templates['BANLIST_DELETED_LIST']) && !empty($templates['BANLIST_DELETED_LIST']) )
\r
2891 $template = $templates['BANLIST_DELETED_LIST'];
\r
2895 $template = "<li><%blogname%></li>\n";
\r
2897 $deleted = requestArray('delblogs');
\r
2898 foreach ( $deleted as $delblog )
\r
2900 $blog =& $manager->getBlog($delblog);
\r
2902 Entity::hsc($blog->getName())
\r
2904 TEMPLATE::fill($template, $data);
\r
2910 * Actions::parse_batchdeletelist()
\r
2911 * Parse skinvar batchdeletelist
\r
2916 public function parse_batchdeletelist()
\r
2918 $selected = requestIntArray('batch');
\r
2921 foreach ( $selected as $select )
\r
2923 echo '<input type="hidden" name="batch[' . ($index++) . ']" value="' . intval($select) . "\" />\n";
\r
2925 // add hidden vars for team & comment
\r
2926 if ( requestVar('action') == 'batchteam' )
\r
2928 echo '<input type="hidden" name="blogid" value="' . intRequestVar('blogid') . "\" />\n";
\r
2930 if ( requestVar('action') == 'batchcomment' )
\r
2932 echo '<input type="hidden" name="itemid" value="' . intRequestVar('itemid') . "\" />\n";
\r
2938 * Actions::parse_batchdeletetype()
\r
2939 * Parse skinvar batchdeletetype
\r
2944 function parse_batchdeletetype()
\r
2946 echo Entity::hsc(requestVar('action'));
\r
2951 * Actions::parse_batchmovebtn()
\r
2952 * Parse skinvar batchmovebtn
\r
2957 public function parse_batchmovebtn()
\r
2959 $actionType = requestVar('action');
\r
2960 switch ( $actionType )
\r
2965 case 'batchcategory':
\r
2966 echo _MOVECAT_BTN;
\r
2973 * Actions::parse_batchmovelist()
\r
2974 * Parse skinvar batchmovelist
\r
2979 public function parse_batchmovelist()
\r
2981 $selected = requestIntArray('batch');
\r
2982 foreach ( $selected as $select )
\r
2984 echo '<input type="hidden" name="batch[' . ($select++) . ']" value="' . intval($select) . "\" />\n";
\r
2990 * Actions::parse_batchmovetitle()
\r
2991 * Parse skinvar batchmovetitle
\r
2996 public function parse_batchmovetitle()
\r
2998 $actionType = requestVar('action');
\r
2999 switch ( $actionType )
\r
3004 case 'batchcategory':
\r
3005 echo _MOVECAT_TITLE;
\r
3012 * Actions::parse_batchmovetype()
\r
3013 * Parse skinvar batchmovetype
\r
3018 public function parse_batchmovetype()
\r
3020 echo Entity::hsc(requestVar('action'));
\r
3025 * Actions::parse_blogcatlist()
\r
3026 * Parse skinvar blogcatlist
\r
3031 public function parse_blogcatlist()
\r
3034 $blogid = intRequestVar('blogid');
\r
3035 $query = "SELECT * FROM %s WHERE cblog = %d ORDER BY cname;";
\r
3036 $query = sprintf($query, sql_table('category'), (integer) $blogid);
\r
3038 $template['content'] = 'categorylist';
\r
3039 $template['tabindex'] = 200;
\r
3041 $batch = new skinableBATCH('member');
\r
3042 $batch->showlist($query, 'table', $template);
\r
3047 * Actions::parse_blognotifysetting()
\r
3048 * Parse skinvar blognotifysetting
\r
3053 public function parse_blognotifysetting($type)
\r
3056 $blogid = intRequestVar('blogid');
\r
3057 $blog = $manager->getBlog($blogid);
\r
3062 if ( !$blog->notifyOnComment() )
\r
3068 if ( !$blog->notifyOnVote() )
\r
3074 if ( !$blog->notifyOnNewItem() )
\r
3080 echo ' checked="checked"';
\r
3085 * Actions::parse_blogsetting()
\r
3086 * Parse skinvar blogsetting
\r
3088 * @param string $which name of weblog setting
\r
3091 public function parse_blogsetting($which)
\r
3093 echo $this->parse_getblogsetting($which);
\r
3098 * Actions::parse_blogsettingyesno()
\r
3099 * Parse skinvar blogsettingyesno
\r
3101 * @param string $type type of weblog setting
\r
3102 * @param string $templateName name of template to use
\r
3105 public function parse_blogsettingyesno($type, $templateName = '')
\r
3109 $blogid = intRequestVar('blogid');
\r
3110 $blog = $manager->getBlog($blogid);
\r
3114 case 'convertbreaks':
\r
3115 $checkedval = $blog->convertBreaks();
\r
3118 case 'allowpastposting':
\r
3119 $checkedval = $blog->allowPastPosting();
\r
3123 $checkedval = $blog->commentsEnabled();
\r
3127 $checkedval = $blog->isPublic();
\r
3131 $checkedval = $blog->emailRequired();
\r
3134 case 'searchable':
\r
3135 $checkedval = $blog->getSearchable();
\r
3139 $this->parse_inputyesno($type, $checkedval, $tabindex, 1, 0, _YES, _NO, 0, $templateName);
\r
3144 * Actions::parse_blogteamlist()
\r
3145 * Parse skinvar blogteamlist
\r
3147 * @param string $templateName name of template to use
\r
3150 public function parse_blogteamlist($templateName = '')
\r
3153 $blogid = intRequestVar('blogid');
\r
3154 $query = "SELECT tblog, tmember, mname, mrealname, memail, tadmin "
\r
3156 . "WHERE tmember=mnumber AND tblog= %d";
\r
3157 $query = sprintf($query, sql_table('member'), sql_table('team'), (integer) $blogid);
\r
3159 $template['content'] = 'teamlist';
\r
3160 $template['tabindex'] = 10;
\r
3162 $batch = new skinableBATCH('team');
\r
3163 $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);
\r
3168 * Actions::parse_blogteammembers()
\r
3169 * Parse skinvar blogteammembers
\r
3174 public function parse_blogteammembers()
\r
3176 $blogid = intRequestVar('blogid');
\r
3177 $query = "SELECT mname, mrealname "
\r
3179 . "WHERE mnumber=tmember AND tblog=%d;";
\r
3180 $query = sprintf($query, sql_table('member'), sql_table('team'), (integer) $blogid);
\r
3181 $res = sql_query($query);
\r
3182 $memberNames = array();
\r
3183 while ($o = sql_fetch_object($res)) {
\r
3184 $memberNames[] = Entity::hsc($o->mname) . ' (' . Entity::hsc($o->mrealname). ')';
\r
3186 echo implode(',', $memberNames);
\r
3190 * Actions::parse_blogtime()
\r
3191 * Parse skinvar blogtime
\r
3193 * @param string $type type of time
\r
3194 * @param string $format format for time expression
\r
3195 * @param integer $offset offset of time
\r
3198 public function parse_blogtime($type, $format = '%H:%M', $offset = 0)
\r
3202 if ( $type != 'blogtime' )
\r
3204 /* return server time */
\r
3205 $timestamp = time() + $offset;
\r
3209 $bid = intRequestVar('blogid');
\r
3210 $b = $manager->getBlog($bid);
\r
3211 $timestamp = $b->getCorrectTime() + $offset;
\r
3214 echo i18n::formatted_datetime($format, $timestamp);
\r
3219 * Actions::parse_bookmarkletadmin()
\r
3220 * Parse skinvar bookmarkletadmin
\r
3222 * @param string $type type of anchor element for bookmarklet
\r
3225 public function parse_bookmarkletadmin($type)
\r
3229 $blogid = intRequestVar('blogid');
\r
3231 if ( $type != 'regfile' )
\r
3233 echo Entity::hsc(getBookmarklet($blogid));
\r
3237 $url = 'index.php?action=regfile&blogid=' . intval($blogid);
\r
3238 $url = $manager->addTicketToUrl($url);
\r
3239 /* TODO: Shift-JIS is not always correct, I think... */
\r
3240 echo Entity::hsc($url, 'SJIS');
\r
3246 * Actions::parse_categorysetting()
\r
3247 * Parse skinvar categorysetting
\r
3249 * @param string $type type in category setting
\r
3252 public function parse_categorysetting($type)
\r
3254 $catid = intRequestVar('catid');
\r
3255 if ( $type == 'id' )
\r
3260 $blogid = intRequestVar('blogid');
\r
3261 $query = "SELECT * FROM %s WHERE cblog = %d AND catid = %d;";
\r
3262 $query = sprintf($query, sql_table('category'), (integer) $blogid, (integer) $catid);
\r
3263 $res = sql_query($query);
\r
3264 $obj = sql_fetch_object($res);
\r
3266 if ( $type != desc )
\r
3268 echo Entity::hsc($obj->cdesc);
\r
3272 echo Entity::hsc($obj->cname);
\r
3279 * Actions::parse_codename()
\r
3280 * Parse templatevar codename
\r
3285 * TODO: is this need???
\r
3287 public function parse_codename()
\r
3290 echo $nucleus['codename'];
\r
3295 * Actions::parse_commentnavlist()
\r
3296 * Parse skinvar commentnavlist
\r
3301 public function parse_commentnavlist()
\r
3303 global $CONF, $manager, $member;
\r
3306 if ( postVar('start') )
\r
3308 $start = intPostVar('start');
\r
3315 // amount of items to show
\r
3316 if ( postVar('amount') )
\r
3318 $amount = intPostVar('amount');
\r
3322 $amount = (integer) $CONF['DefaultListSize'];
\r
3323 if ( $amount < 1 )
\r
3328 $query = 'SELECT cbody, cuser, cmail, cemail, mname, ctime, chost, cnumber, cip, citem '
\r
3330 . 'LEFT OUTER JOIN %s ON mnumber=cmember '
\r
3332 $query = sprintf($query, sql_table('comment'), sql_table('member'));
\r
3334 if ( $this->skintype == 'itemcommentlist' )
\r
3336 $itemid = intRequestVar('itemid');
\r
3337 $query .= " citem={$itemid}";
\r
3338 $template['canAddBan'] = $member->blogAdminRights(intRequestVar('blogid'));
\r
3340 $nonComments = _NOCOMMENTS;
\r
3342 elseif ( $this->skintype == 'browseowncomments' )
\r
3345 $query .= ' cmember=' . $member->getID();
\r
3346 $template['canAddBan'] = 0;
\r
3348 $nonComments = _NOCOMMENTS_YOUR;
\r
3350 elseif ( $this->skintype == 'blogcommentlist' )
\r
3353 $query .= ' cblog=' . intRequestVar('blogid');
\r
3354 $template['canAddBan'] = $member->blogAdminRights(intRequestVar('blogid'));
\r
3355 $bid = intRequestVar('blogid');
\r
3356 $nonComments = _NOCOMMENTS_BLOG;
\r
3359 $search = postVar('search');
\r
3360 if ( !empty($search) )
\r
3362 $query .= ' and cbody LIKE "%' . sql_real_escape_string($search) . '%"';
\r
3365 $query .= " ORDER BY ctime ASC LIMIT {$start},{$amount}";
\r
3367 $template['content'] = 'commentlist';
\r
3369 $navList = new skinableNAVLIST($this->skintype, $start, $amount, 0, 1000, $bid, $search, $itemid);
\r
3370 $navList->showBatchList('comment', $query, 'table', $template, $nonComments);
\r
3375 * Actions::parse_configsettingsedit()
\r
3376 * Parse skinvar configsettingsedit
\r
3378 * @param string $type type of global configuration
\r
3381 public function parse_configsettingsedit($type)
\r
3386 case 'DefaultListSize':
\r
3387 if ( !array_key_exists('DefaultListSize', $CONF) )
\r
3389 $query = "INSERT INTO %s VALUES (DefaultListSize, 10);";
\r
3390 $query = sprintf($query, sql_table('config'));
\r
3391 sql_query($query);
\r
3392 $CONF['DefaultListSize'] = 10;
\r
3394 elseif ( intval($CONF['DefaultListSize']) < 1 )
\r
3396 $CONF['DefaultListSize'] = 10;
\r
3398 echo intval($CONF['DefaultListSize']);
\r
3400 case 'SessionCookie':
\r
3401 $value = $CONF['SessionCookie'];
\r
3402 $txt1 = _SETTINGS_COOKIESESSION;
\r
3403 $txt2 = _SETTINGS_COOKIEMONTH;
\r
3404 $this->parse_inputyesno('SessionCookie', $value, 10190, 1, 0, $txt1, $txt2);
\r
3407 $value = $CONF['URLMode'];
\r
3408 $txt1 = _SETTINGS_URLMODE_NORMAL;
\r
3409 $txt2 = _SETTINGS_URLMODE_PATHINFO;
\r
3410 $this->parse_inputyesno('URLMode', $value, 10077, 'normal', 'pathinfo', $txt1, $txt2);
\r
3413 if ( array_key_exists($type, $CONF) && is_string($CONF[$type]) )
\r
3415 echo Entity::hsc($CONF[$type]);
\r
3423 * Actions::parse_configsettingsyesno()
\r
3424 * Parse skinvar configsettingsyesno
\r
3426 * @param string $type type of global setting
\r
3427 * @param integer $tabindex tabindex attribute of input element
\r
3430 function parse_configsettingsyesno($type, $tabindex)
\r
3433 if ( array_key_exists($type, $CONF) )
\r
3435 $this->parse_inputyesno($type, $CONF[$type], $tabindex);
\r
3441 * Actions::parse_customhelplink()
\r
3442 * Parse skinvar customhelplink
\r
3444 * @param string $topic name of topic
\r
3445 * @param string $tplName name of template
\r
3446 * @param string $url string as URI
\r
3447 * @param string $iconURL string as URI for icon
\r
3448 * @param string $alt alternative text for image element
\r
3449 * @param string $title title for anchor element
\r
3452 public function parse_customhelplink($topic, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')
\r
3454 $this->customHelp($topic, $url, $iconURL);
\r
3459 * Actions::parse_date()
\r
3460 * Parse skinvar date
\r
3462 public function parse_date($format = 'c')
\r
3464 global $CONF, $manager;
\r
3465 echo i18n::formatted_datetime($format, time(), 'iso8601', $manager->getBlog((integer) $CONF['DefaultBlog']));
\r
3470 * Actions::parse_defaultadminskintypes()
\r
3471 * Parse skinvar defaultadminskintypes
\r
3473 * @param string $tabindex index number for tabindex attribute of input element
\r
3474 * @param string $templateName name of template
\r
3477 public function parse_defaultadminskintypes($tabindex, $templateName = '')
\r
3479 $templates = array();
\r
3480 if ( $templateName )
\r
3482 $templates = skinableTEMPLATE::read($templateName);
\r
3485 $types = skinableSKIN::getAdminskinDefaultTypeFriendlyNames();
\r
3488 if ( array_key_exists('ADMINSKINTYPELIST_HEAD', $templates) && !empty($templates['ADMINSKINTYPELIST_HEAD']) )
\r
3490 $template['head'] = $templates['ADMINSKINTYPELIST_HEAD'];
\r
3494 $template['head'] = "<ul>\n";
\r
3497 echo $template['head'];
\r
3499 if ( array_key_exists('ADMINSKINTYPELIST_BODY', $templates) && !empty($templates['ADMINSKINTYPELIST_BODY']) )
\r
3501 $template['body'] = $templates['ADMINSKINTYPELIST_BODY'];
\r
3505 $template['body'] = '<li><a tabindex="<%tabindex%>" href="index.php?action=adminskinedittype&skinid=<%skinid%>&type=<%skintype%>">'
\r
3506 . "<%name%></a> <%help%></li>\n";
\r
3508 $handler = new skinableACTIONS('template', $template, new ADMIN);
\r
3509 $parser = new PARSER(skinableACTIONS::getDefinedActions(), $handler);
\r
3511 foreach ( $types as $type => $fName )
\r
3513 $helplink = $this->customHelpHtml('skinpart' . $type, $templateName);
\r
3515 'tabindex' => $tabindex,
\r
3516 'skintype' => $type,
\r
3518 'help' => $helplink,
\r
3519 'skinid' => intrequestVar('skinid'),
\r
3521 $templateBody = skinableTEMPLATE::fill($template['body'], $data);
\r
3522 $parser->parse($templateBody);
\r
3525 if ( array_key_exists('ADMINSKINTYPELIST_FOOT', $templates) && !empty($templates['ADMINSKINTYPELIST_FOOT']) )
\r
3527 $template['foot'] = $templates['ADMINSKINTYPELIST_FOOT'];
\r
3531 $template['foot'] = " </ul>\n";
\r
3533 echo $template['foot'];
\r
3538 * Actions::parse_defblogselect()
\r
3539 * Parse skinvar defblogselect
\r
3541 * @param string $templateName name of template
\r
3544 public function parse_defblogselect($templateName = '')
\r
3547 $query = "SELECT bname as text, bnumber as value FROM %s;";
\r
3548 $query = sprintf($query, sql_table('blog'));
\r
3549 $template['name'] = 'DefaultBlog';
\r
3550 $template['selected'] = $CONF['DefaultBlog'];
\r
3551 $template['tabindex'] = 10;
\r
3552 skinableShowlist($query, 'select', $template, $templateName);
\r
3557 * Actions::parse_defcatselect()
\r
3558 * Parse skinvar defcatselect
\r
3560 * @param string $templateName name of template
\r
3563 public function parse_defcatselect($templateName = '')
\r
3566 $blogid = intRequestVar('blogid');
\r
3567 $blog = $manager->getBlog($blogid);
\r
3568 $query = "SELECT cname as text, catid as value FROM %s WHERE cblog=%d;";
\r
3569 $query = sprintf($query, sql_table('category'), (integer) $blog->getID());
\r
3570 $template['name'] = 'defcat';
\r
3571 $template['selected'] = $blog->getDefaultCategory();
\r
3572 $template['tabindex'] = 110;
\r
3573 skinableShowlist($query, 'select', $template, $templateName);
\r
3578 * Actions::parse_defskinselect()
\r
3579 * Parse skinvar defskinselect
\r
3581 * @param string $type type of skin
\r
3582 * @param string $templateName name of template
\r
3585 public function parse_defskinselect($type = 'blog', $templateName = '')
\r
3588 $query = "SELECT sdname as text, sdnumber as value FROM %s;";
\r
3589 $query = sprintf($query, sql_table('skin_desc'));
\r
3591 $blogid = intRequestVar('blogid');
\r
3596 $template['selected'] = $CONF['BaseSkin'];
\r
3600 $blog = $manager->getBlog($blogid);
\r
3601 $template['selected'] = $blog->getDefaultSkin();
\r
3604 if ( $type != 'blog' )
\r
3606 $nname = 'BaseSkin';
\r
3610 $nname = 'defskin';
\r
3613 $template['name'] = $nname;
\r
3614 $template['tabindex'] = 50;
\r
3615 skinableShowlist($query, 'select', $template, $templateName);
\r
3620 * Actions::parse_deleteitembody()
\r
3621 * Parse skinvar deleteitembody
\r
3626 public function parse_deleteitembody()
\r
3629 $itemid = intRequestVar('itemid');
\r
3630 $item =& $manager->getItem($itemid, 1, 1);
\r
3631 $body = strip_tags($item['body']);
\r
3632 echo Entity::hsc(shorten($body, 300, '...'));
\r
3637 * Actions::parse_deleteitemid()
\r
3638 * Parse skinvar deleteitemid
\r
3643 public function parse_deleteitemid()
\r
3645 echo (integer) intRequestVar('itemid');
\r
3650 * Actions::parse_deleteitemtitle()
\r
3651 * Parse skinvar deleteitemtitle
\r
3656 public function parse_deleteitemtitle()
\r
3659 $itemid = intRequestVar('itemid');
\r
3660 $item =& $manager->getItem($itemid, 1, 1);
\r
3661 echo Entity::hsc(strip_tags($item['title']));
\r
3666 * Actions::parse_editadminskin()
\r
3667 * Parse skinvar editadminskin
\r
3669 * @param string $type type of skin setting
\r
3672 public function parse_editadminskin($type = 'id')
\r
3674 $skinid = intRequestVar('skinid');
\r
3675 $skin = new skinableSKIN($skinid);
\r
3679 echo intRequestVar('skinid');
\r
3682 echo Entity::hsc($skin->getName());
\r
3685 echo Entity::hsc($skin->getDescription());
\r
3688 echo Entity::hsc($skin->getContentType());
\r
3691 echo Entity::hsc($skin->getIncludePrefix());
\r
3694 $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL);
\r
3702 * Actions::parse_editadminskintype()
\r
3703 * Parse skinvar editadminskintype
\r
3705 * @param string $type name of skin type
\r
3708 public function parse_editadminskintype($type = 'id')
\r
3710 global $CONF, $manager, $member;
\r
3711 $skinid = intRequestVar('skinid');
\r
3712 $skin = new skinableSKIN($skinid);
\r
3713 $fNames = skinableSKIN::getFriendlyNames();
\r
3714 $sType = strtolower(trim(requestVar('type')));
\r
3719 echo intRequestVar('skinid');
\r
3722 echo Entity::hsc($skin->getName());
\r
3725 echo Entity::hsc($skin->getDescription());
\r
3728 echo Entity::hsc($skin->getContentType());
\r
3731 echo Entity::hsc($skin->getContent($sType));
\r
3734 $skinType = isset($fNames[$sType]) ? $fNames[$sType] : ucfirst($sType);
\r
3735 echo Entity::hsc($skinType);
\r
3737 case 'skintyperaw':
\r
3738 echo Entity::hsc($sType);
\r
3741 echo Entity::hsc($skin->getIncludePrefix());
\r
3744 $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;
\r
3745 echo Entity::hsc($incMode);
\r
3754 * Actions::parse_editadmintemplateinfo()
\r
3755 * Parse skinvar editadmintemplateinfo
\r
3757 * @param string $type type of skin template
\r
3758 * @param string $description description of template
\r
3759 * @param string $name name of stemplate
\r
3760 * @param string $tabindex index number for tabindex attribute of input element
\r
3761 * @param string $big
\r
3762 * @param string $tplt
\r
3764 function parse_editadmintemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '')
\r
3767 $templateid = intRequestVar('templateid');
\r
3768 $templatename = skinableTEMPLATE::getNameFromId($templateid);
\r
3769 $templatedescription = skinableTEMPLATE::getDesc($templateid);
\r
3770 $template =& skinableTEMPLATE::read($templatename);
\r
3774 echo intval($templateid);
\r
3777 echo Entity::hsc($templatename);
\r
3780 echo Entity::hsc($templatedescription);
\r
3782 case 'extratemplate':
\r
3784 $pluginfields = array();
\r
3786 'AdminTemplateExtraFields',
\r
3788 'fields' => &$pluginfields
\r
3792 if ( $description )
\r
3794 $tmplt = skinableTEMPLATE::read($description);
\r
3796 if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) )
\r
3798 $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME'];
\r
3804 . "\t" . '<th colspan="2"><%explugtplname%>' . "</th>\n";
\r
3806 foreach ( $pluginfields as $pfkey => $pfvalue )
\r
3809 'explugtplname' => Entity::hsc($pfkey)
\r
3811 echo TEMPLATE::fill($base, $data);
\r
3812 foreach ( $pfvalue as $pffield => $pfdesc )
\r
3814 $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name);
\r
3819 $desc = defined($description) ? constant($description) : $description;
\r
3820 $name = defined($name) ? constant($name) : $name;
\r
3821 $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt);
\r
3828 * Actions::parse_editcomment()
\r
3829 * Parse skinvar editcomment
\r
3831 * @param string $type type of comment setting
\r
3834 public function parse_editcomment($type = 'id')
\r
3837 $commentid = intRequestVar('commentid');
\r
3838 $comment = COMMENT::getComment($commentid);
\r
3840 $manager->notify('PrepareCommentForEdit', array('comment' => &$comment));
\r
3845 echo intRequestVar('commentid');
\r
3848 if (array_key_exists('member', $comment) && !empty($comment['member']) )
\r
3850 echo $comment['member'] . " (" . _EDITC_MEMBER . ")";
\r
3854 echo $comment['user'] . " (" . _EDITC_NONMEMBER . ")";
\r
3858 echo date("Y-m-d @ H:i", $comment['timestamp']);
\r
3861 $comment['body'] = str_replace('<br />', '', $comment['body']);
\r
3862 $comment['body'] = preg_replace("#<a href=['\"]([^'\"]+)['\"]( rel=\"nofollow\")?>[^<]*</a>#", "\\1", $comment['body']);
\r
3863 echo $comment['body'];
\r
3865 echo $comment[$type];
\r
3872 * Actions::parse_editdesturl()
\r
3873 * Parse skinvar editdesturl
\r
3875 public function parse_editdesturl()
\r
3877 if ( requestVar('desturl') )
\r
3879 echo Entity::hsc(requestVar('desturl'));
\r
3885 * Actions::parse_editmemberlist()
\r
3886 * Parse skinvar editmemberlist
\r
3888 * @param string $templateName name of template
\r
3891 public function parse_editmemberlist($templateName = '')
\r
3894 // show list of members with actions
\r
3895 $query = 'SELECT * FROM '.sql_table('member');
\r
3896 $template['content'] = 'memberlist';
\r
3897 $template['tabindex'] = 10;
\r
3899 $batch = new skinableBATCH('member');
\r
3900 $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);
\r
3905 * Actions::parse_editmemberlist()
\r
3906 * Parse skinvar editmemberlist
\r
3908 * @param string $templateName name of template
\r
3911 public function parse_editmemberlist($templateName = '')
\r
3914 // show list of members with actions
\r
3915 $query = 'SELECT * FROM '. sql_table('member');
\r
3916 $template['content'] = 'memberlist';
\r
3917 $template['tabindex'] = 10;
\r
3919 $batch = new skinableBATCH('member');
\r
3920 $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);
\r
3925 * Actions::parse_editpluginfo()
\r
3926 * Parse skinvar editpluginfo
\r
3928 * @param string $type type of plugin info
\r
3931 public function parse_editpluginfo($type)
\r
3933 $pid = intRequestVar('plugid');
\r
3940 echo Entity::hsc(getPluginNameFromPid($pid));
\r
3947 * Actions::parse_editplugoptionslist()
\r
3948 * Parse skinvar editplugoptionslist
\r
3950 * @param string $templateName name of template
\r
3953 public function parse_editplugoptionslist($templateName = '')
\r
3957 $pid = intRequestVar('plugid');
\r
3958 $aOptions = array();
\r
3961 $query = "SELECT * FROM %s WHERE ocontext='global' AND opid=%d ORDER BY oid ASC";
\r
3962 $query = sprintf($query, sql_table('plugin_option_desc'), (integer) $pid);
\r
3963 $resource = sql_query($query);
\r
3965 while ( $o = sql_fetch_object($resource) )
\r
3967 array_push($aOIDs, $o->oid);
\r
3968 $aOptions[$o->oid] = array(
\r
3971 'value' => $o->odef,
\r
3972 'name' => $o->oname,
\r
3973 'description' => $o->odesc,
\r
3974 'type' => $o->otype,
\r
3975 'typeinfo' => $o->oextra,
\r
3980 // fill out actual values
\r
3981 if ( count($aOIDs) > 0 )
\r
3983 $query = 'SELECT oid, ovalue FROM %s WHERE oid in (%s)';
\r
3984 $query = sprintf($query, sql_table('plugin_option'), implode(',', $aOIDs));
\r
3986 $result = sql_query($query);
\r
3988 while ( $o = sql_fetch_object($result) )
\r
3990 $aOptions[$o->oid]['value'] = $o->ovalue;
\r
3996 'PrePluginOptionsEdit',
\r
3998 'context' => 'global',
\r
4000 'options' => &$aOptions
\r
4004 $template['content'] = 'plugoptionlist';
\r
4005 $amount = skinableShowlist($aOptions, 'table', $template, $templateName);
\r
4006 if ( $amount == 0 )
\r
4008 echo '<p>' . _ERROR_NOPLUGOPTIONS . "</p>\n";
\r
4014 * Actions::parse_editskin()
\r
4015 * Parse skinvar editskin
\r
4017 * @param string $type type of skin
\r
4020 public function parse_editskin($type = 'id')
\r
4022 $skinid = intRequestVar('skinid');
\r
4023 $skin = new SKIN($skinid);
\r
4027 echo intRequestVar('skinid');
\r
4030 echo Entity::hsc($skin->getName());
\r
4033 echo Entity::hsc($skin->getDescription());
\r
4036 echo Entity::hsc($skin->getContentType());
\r
4039 echo Entity::hsc($skin->getIncludePrefix());
\r
4042 $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL);
\r
4050 * Actions::parse_editskintype()
\r
4051 * Parse skinvar editskintype
\r
4053 * @param string $type name of type for skin type
\r
4056 function parse_editskintype($type = 'id')
\r
4058 global $CONF, $manager, $member;
\r
4059 $skinid = intRequestVar('skinid');
\r
4060 $skin = new SKIN($skinid);
\r
4061 $fNames = SKIN::getFriendlyNames();
\r
4062 $sType = strtolower(trim(requestVar('type')));
\r
4067 echo intRequestVar('skinid');
\r
4070 echo Entity::hsc($skin->getName());
\r
4073 echo Entity::hsc($skin->getDescription());
\r
4076 echo Entity::hsc($skin->getContentType());
\r
4079 echo Entity::hsc($skin->getContent($sType));
\r
4082 $skinType = isset($fNames[$sType]) ? $fNames[$sType] : ucfirst($sType);
\r
4083 echo Entity::hsc($skinType);
\r
4085 case 'skintyperaw':
\r
4086 echo Entity::hsc($sType);
\r
4089 echo Entity::hsc($skin->getIncludePrefix());
\r
4092 $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;
\r
4093 echo Entity::hsc($incMode);
\r
4102 * Actions::parse_edittemplateinfo()
\r
4103 * Parse skinvar edittemplateinfo
\r
4105 * @param string $type name of type for skin
\r
4106 * @param string $description description for skin
\r
4107 * @param string $name name of skin
\r
4108 * @param string $help
\r
4109 * @param string $tabindex index value for tabindex attribute of input element
\r
4110 * @param string $big
\r
4111 * @param string $tplt name of template
\r
4113 public function parse_edittemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '')
\r
4116 $templateid = intRequestVar('templateid');
\r
4117 $templatename = TEMPLATE::getNameFromId($templateid);
\r
4118 $templatedescription = TEMPLATE::getDesc($templateid);
\r
4119 $template =& $manager->getTemplate($templatename);
\r
4123 echo intval($templateid);
\r
4126 echo Entity::hsc($templatename);
\r
4129 echo Entity::hsc($templatedescription);
\r
4131 case 'extratemplate':
\r
4133 $pluginfields = array();
\r
4135 'TemplateExtraFields',
\r
4137 'fields' => &$pluginfields
\r
4141 if ( $description )
\r
4143 $tmplt = skinableTEMPLATE::read($description);
\r
4145 if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) )
\r
4147 $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME'];
\r
4151 $base = "</tr><tr>\n"
\r
4152 . "\t" . '<th colspan="2"><%explugtplname%>' . "</th>\n";
\r
4154 foreach ( $pluginfields as $pfkey => $pfvalue )
\r
4157 'explugtplname' => Entity::hsc($pfkey)
\r
4159 echo TEMPLATE::fill($base, $data);
\r
4160 foreach ( $pfvalue as $pffield => $pfdesc )
\r
4162 $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name);
\r
4167 $desc = defined($description) ? constant($description) : $description;
\r
4168 $name = defined($name) ? constant($name) : $name;
\r
4169 $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt);
\r
4176 * Actions::parse_eventformextra()
\r
4177 * Parse skinvar eventformextra
\r
4179 * @param string $type name of type for event form extra
\r
4182 public function parse_eventformextra($type = 'activation')
\r
4187 case 'activation':
\r
4188 $key = requestVar('ackey');
\r
4191 $this->objAdmin->error(_ERROR_ACTIVATE);
\r
4193 $info = MEMBER::getActivationInfo($key);
\r
4196 $this->objAdmin->error(_ERROR_ACTIVATE);
\r
4198 $mem = MEMBER::createFromId($info->vmember);
\r
4201 $this->objAdmin->error(_ERROR_ACTIVATE);
\r
4204 'type' => 'activation',
\r
4208 case 'membermailform-notloggedin':
\r
4210 'type' => 'membermailform-notloggedin',
\r
4214 $manager->notify('FormExtra', $data);
\r
4219 * Actions::parse_extrahead()
\r
4220 * Parse skinvar extrahead
\r
4222 public function parse_extrahead()
\r
4225 $extrahead = $this->objAdmin->extrahead;
\r
4227 'AdminPrePageHead',
\r
4229 'extrahead' => &$extrahead,
\r
4230 'action' => $this->objAdmin->action
\r
4238 * Actions::parse_blogsetting()
\r
4239 * Parse skinvar blogsetting
\r
4241 * @param string $which name of setting for blog
\r
4244 public function parse_blogsetting($which)
\r
4246 echo $this->parse_getblogsetting($which);
\r
4251 * Actions::parse_category()
\r
4252 * Parse skinvar category
\r
4254 * @param string $type name of setting for category
\r
4257 public function parse_category($type = 'name')
\r
4259 echo $this->parse_getcategory($type);
\r
4264 * Actions::parse_geteditpluginfo()
\r
4265 * Parse skinvar geteditpluginfo
\r
4267 * @param string $type name of setting for edit plugin info
\r
4270 public function parse_geteditpluginfo($type)
\r
4272 $pid = intRequestVar('plugid');
\r
4279 return Entity::hsc(getPluginNameFromPid($pid));
\r
4286 * Actions::parse_getmember()
\r
4287 * Parse skinvar getmember
\r
4288 * (includes a member info thingie)
\r
4290 * @param string $what name of setting for member
\r
4293 public function parse_getmember($what)
\r
4295 global $memberinfo, $member;
\r
4296 // 1. only allow the member-details-page specific variables on member pages
\r
4297 if ( $this->skintype == 'member' )
\r
4302 return Entity::hsc($memberinfo->getDisplayName());
\r
4305 return Entity::hsc($memberinfo->getRealName());
\r
4308 return Entity::hsc($memberinfo->getNotes());
\r
4311 return Entity::hsc($memberinfo->getURL());
\r
4314 return Entity::hsc($memberinfo->getEmail());
\r
4317 return Entity::hsc($memberinfo->getID());
\r
4321 // 2. the next bunch of options is available everywhere, as long as the user is logged in
\r
4322 if ( $member->isLoggedIn() )
\r
4327 return $member->getDisplayName();
\r
4329 case 'yourrealname':
\r
4330 return $member->getRealName();
\r
4333 return $member->getNotes();
\r
4336 return $member->getURL();
\r
4339 return $member->getEmail();
\r
4342 return $member->getID();
\r
4350 * Actions::parse_headmessage()
\r
4351 * Parse skinvar headmessage
\r
4356 public function parse_headmessage()
\r
4358 if ( !empty($this->objAdmin->headMess) )
\r
4360 echo '<p>' . _MESSAGE . ': ' . Entity::hsc($this->objAdmin->headMess) . "</p>\n";
\r
4366 * Actions::parse_helplink()
\r
4367 * Parse skinvar helplink
\r
4369 * @param string $topic name of topic for help
\r
4372 public function parse_helplink($topic = '')
\r
4374 if ( empty($topic) )
\r
4383 * Actions::parse_helpplugname()
\r
4384 * Parse skinvar helpplugname
\r
4389 public function parse_helpplugname()
\r
4391 $plugid = intGetVar('plugid');
\r
4392 Entity::hsc(getPluginNameFromPid($plugid));
\r
4397 * Actions::parse_ilistaddnew()
\r
4398 * Parse skinvar ilistaddnew
\r
4403 public function parse_ilistaddnew()
\r
4405 $blogid = intRequestVar('blogid');
\r
4406 if ( intPostVar('start') == 0 )
\r
4408 echo '<p><a href="index.php?action=createitem&blogid=' . $blogid . '">' . _ITEMLIST_ADDNEW . "</a></p>\n";
\r
4414 * Actions::parse_importskininfo()
\r
4415 * Parse skinvar importskininfo
\r
4417 * @param string $type name of information for imported skin
\r
4420 public function parse_importskininfo($type)
\r
4425 echo Entity::hsc(requestVar('skininfo'));
\r
4428 $dataArr = requestArray('skinnames');
\r
4429 echo implode(' <em>' . _AND . '</em> ', $dataArr);
\r
4432 $dataArr = requestArray('tpltnames');
\r
4433 echo implode(' <em>' . _AND . '</em> ', $dataArr);
\r
4436 $dataArr = requestArray('skinclashes');
\r
4437 echo implode(' <em>' . _AND . '</em> ', $dataArr);
\r
4440 $dataArr = requestArray('tpltclashes');
\r
4441 echo implode(' <em>' . _AND . '</em> ', $dataArr);
\r
4444 echo Entity::hsc(requestVar('skinfile'));
\r
4447 echo Entity::hsc(requestVar('mode'));
\r
4454 * Actions::parse_inputyesno()
\r
4455 * Parse skinvar inputyesno
\r
4457 * @param string $name
\r
4458 * @param string $checkedval
\r
4459 * @param string $tabindex
\r
4460 * @param string $value1
\r
4461 * @param string $value2
\r
4462 * @param string $yesval
\r
4463 * @param string $noval
\r
4464 * @param string $isAdmin
\r
4465 * @param string $templateName
\r
4468 public function parse_inputyesno($name, $checkedval, $tabindex = 0, $value1 = 1, $value2 = 0, $yesval = _YES, $noval = _NO, $isAdmin = 0, $templateName = '')
\r
4470 self::input_yesno($name, $checkedval, $tabindex, $value1, $value2, $yesval, $noval, $isAdmin, $templateName );
\r
4475 * Actions::parse_insertpluginfo()
\r
4476 * Parse templatevar insertpluginfo
\r
4478 public function parse_insertpluginfo($type)
\r
4480 $option = $this->objAdmin;
\r
4484 return $option['pid'];
\r
4487 return Entity::hsc($option['pfile']);
\r
4494 * Actions::parse_insertpluginoptions()
\r
4495 * Parse skinvar insertpluginoptions
\r
4497 * @param string $templateName name of template
\r
4500 public function parse_insertpluginoptions($templateName = '')
\r
4502 $options = $this->objAdmin->aOptions;
\r
4503 $template = array();
\r
4504 $templats = array();
\r
4506 if ( $templateName )
\r
4508 $templates = skinableTEMPLATE::read($templateName);
\r
4510 if (array_key_exists('INSERT_PLUGOPTION_TITLE', $templates) && !empty($templates['INSERT_PLUGOPTION_TITLE']) )
\r
4512 $template['title'] = $templates['INSERT_PLUGOPTION_TITLE'];
\r
4516 $template['title'] = '<tr><th colspan="2"><%sprinttext(_PLUGIN_OPTIONS_TITLE, <|%insertpluginfo(name)%|>)%></th></tr>' . "\n";
\r
4518 if ( array_key_exists('INSERT_PLUGOPTION_BODY', $templates) && !empty($templates['INSERT_PLUGOPTION_BODY']) )
\r
4520 $template['body'] = $templates['INSERT_PLUGOPTION_BODY'];
\r
4524 $template['body'] = '<tr><%listplugplugoptionrow%></tr>' . "\n";
\r
4529 foreach ( $options as $option )
\r
4531 $handler = new skinableACTIONS($this->skintype, $template, $option);
\r
4532 $parser = new PARSER(skinableACTIONS::getDefinedActions(), $handler);
\r
4534 if ( $prevPid != $option['pid'] )
\r
4536 $prevPid = $option['pid'];
\r
4537 $parser->parse($template['title']);
\r
4539 $meta = NucleusPlugin::getOptionMeta($option['typeinfo']);
\r
4540 if ( @$meta['access'] != 'hidden' )
\r
4542 $parsed = $parser->parse($template['body']);
\r
4549 * Actions::parse_insplugoptcontent()
\r
4550 * Parse skinvar insplugoptcontent
\r
4555 public function parse_insplugoptcontent()
\r
4557 $option = $this->objAdmin->aOption;
\r
4559 $meta = NucleusPlugin::getOptionMeta($option['typeinfo']);
\r
4560 if (array_key_exists('access', $meta) && $meta['access'] != 'hidden')
\r
4563 skinableListplug_plugOptionRow($option);
\r
4570 * Actions::parse_iprangeinput()
\r
4571 * Parse skinvar iprangeinput
\r
4576 function parse_iprangeinput()
\r
4578 if ( requestVar('ip') )
\r
4580 $iprangeVal = Entity::hsc(requestVar('ip'));
\r
4581 echo '<input name="iprange" type="radio" value="' . $iprangeVal . '" checked="checked" id="ip_fixed" />' . "\n";
\r
4582 echo '<label for="ip_fixed">' . $iprangeVal . "</label><br />\n";
\r
4583 echo '<input name="iprange" type="radio" value="custom" id="ip_custom" />' . "\n";
\r
4584 echo '<label for="ip_custom">' . _BAN_IP_CUSTOM . '</label>' . "\n";
\r
4585 echo '<input name="customiprange" value="' . $iprangeVal . '" maxlength="15" size="15" />' . "\n";
\r
4589 echo '<input name="iprange" value="custom" type="hidden" />' . "\n";
\r
4590 echo '<input name="customiprange" value="" maxlength="15" size="15" />' . "\n";
\r
4596 * Actions::parse_itemnavlist()
\r
4597 * Parse skinvar itemnavlist
\r
4602 public function parse_itemnavlist()
\r
4604 global $CONF, $manager, $member;
\r
4605 if ( $this->skintype == 'itemlist' )
\r
4607 $blogid = intRequestVar('blogid');
\r
4608 $blog =& $manager->getBlog($blogid);
\r
4610 if ( postVar('start') )
\r
4612 $start = intPostVar('start');
\r
4619 // amount of items to show
\r
4620 if ( postVar('amount') )
\r
4622 $amount = intPostVar('amount');
\r
4626 $amount = intval($CONF['DefaultListSize']);
\r
4627 if ( $amount < 1 )
\r
4632 $query = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime"
\r
4633 . " FROM %s, %s, %s"
\r
4634 . " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid;";
\r
4636 $query = sprintf($query, sql_table('item'), sql_table('blog'), sql_table('member'), sql_table('category'));
\r
4638 if ( $this->skintype == 'itemlist' )
\r
4640 $query .= 'and iblog = ' . $blogid;
\r
4641 $template['now'] = $blog->getCorrectTime(time());
\r
4643 // non-blog-admins can only edit/delete their own items
\r
4644 if ( !$member->blogAdminRights($blogid) )
\r
4646 $query .= ' and iauthor = ' . $member->getID();
\r
4649 elseif ( $this->skintype == 'browseownitems' )
\r
4651 $query .= 'and iauthor = ' . $member->getID();
\r
4653 $template['now'] = time();
\r
4656 // search through items
\r
4657 $search = postVar('search');
\r
4659 if ( !empty($search) )
\r
4661 $query .= ' AND ((ititle LIKE "%' . sql_real_escape_string($search) . '%") '
\r
4662 . ' OR (ibody LIKE "%' . sql_real_escape_string($search) . '%") '
\r
4663 . ' OR (imore LIKE "%' . sql_real_escape_string($search) . '%"))';
\r
4665 $query .= ' ORDER BY itime DESC'
\r
4666 . " LIMIT {$start},{$amount}";
\r
4668 $template['content'] = 'itemlist';
\r
4670 $navList = new skinableNAVLIST($this->skintype, $start, $amount, 0, 1000, $blogid, $search, 0);
\r
4671 $navList->showBatchList('item', $query, 'table', $template);
\r
4676 * Actions::parse_jstoolbaroptions()
\r
4677 * Parse skinvar jstoolbaroptions
\r
4682 public function parse_jstoolbaroptions()
\r
4686 _SETTINGS_JSTOOLBAR_NONE,
\r
4687 _SETTINGS_JSTOOLBAR_SIMPLE,
\r
4688 _SETTINGS_JSTOOLBAR_FULL
\r
4691 foreach ( $options as $option )
\r
4693 $text = "<option value=\"%d\"%s>%s</option>\n";
\r
4694 $extra = ($CONF['DisableJsTools'] == $i) ? ' selected="selected"' : '';
\r
4695 echo sprintf($text, $i, $extra, $option);
\r
4702 * Actions::parse_localeselectoptions()
\r
4703 * Parse skinvar localeselectoptions
\r
4708 public function parse_localeselectoptions()
\r
4710 $locales = i18n::get_available_locale_list();
\r
4711 $memid = intRequestVar('memberid');
\r
4714 $mem = MEMBER::createFromID($memid);
\r
4715 if ( !$mem->getLocale() || !in_array($mem->getLocale(), $locales) )
\r
4717 echo "<option value=\"\" selected=\"selected\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";
\r
4721 echo "<option value=\"\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";
\r
4726 if ( !i18n::get_current_locale() || !in_array(i18n::get_current_locale(), $locales) )
\r
4728 echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";
\r
4731 foreach ( $locales as $locale )
\r
4735 if ( $locale == $mem->getLocale() )
\r
4737 echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
\r
4741 echo "<option value=\"{$locale}\">{$locale}</option>\n";
\r
4746 if ( $locale == i18n::get_current_locale() )
\r
4748 echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
\r
4752 echo "<option value=\"{$locale}\">{$locale}</option>\n";
\r
4760 * Actions::parse_listplugplugoptionrow()
\r
4761 * Parse templatevar listplugplugoptionrow
\r
4763 * @param string $templateName name of template
\r
4766 public function parse_listplugplugoptionrow($templateName = '')
\r
4768 $option = $this->objAdmin;
\r
4769 echo skinableListplug_plugOptionRow($option, $templateName);
\r
4774 * Actions::parse_mediadirwarning()
\r
4775 * Parse skinvar mediadirwarning
\r
4780 public function parse_mediadirwarning()
\r
4782 global $DIR_MEDIA;
\r
4783 if ( !is_dir($DIR_MEDIA) )
\r
4785 echo "<br /><b>" . _WARNING_NOTADIR . "</b>\n";
\r
4787 if ( !is_readable($DIR_MEDIA) )
\r
4789 echo "<br /><b>" . _WARNING_NOTREADABLE . "</b>\n";
\r
4791 if ( !is_writeable($DIR_MEDIA) )
\r
4793 echo "<br /><b>" . _WARNING_NOTWRITABLE . "</b>\n";
\r
4799 * Actions::parse_movedistselect()
\r
4800 * Parse skinvar movedistselect
\r
4802 function parse_movedistselect()
\r
4804 $actionType = requestVar('action');
\r
4805 switch ( $actionType )
\r
4808 $this->objAdmin->selectBlogCategory('destcatid');
\r
4810 case 'batchcategory':
\r
4811 $this->objAdmin->selectBlog('destblogid');
\r
4814 if ( $this->skintype == 'itemmove' )
\r
4816 $query = "SELECT icat as result FROM %s WHERE inumber=%d;";
\r
4817 $query = spriintf($query, sql_table('item'), intRequestVar('itemid'));
\r
4818 $catid = quickQuery(sprintf($query, intRequestVar('itemid')));
\r
4819 $this->objAdmin->selectBlogCategory('catid', $catid, 10, 1);
\r
4827 * Actions::parse_moveitemid()
\r
4828 * Parse skinvar moveitemid
\r
4833 public function parse_moveitemid()
\r
4835 echo intRequestVar('itemid');
\r
4840 * Actions::parse_newestcompare()
\r
4841 * Parse skinvar newestcompare
\r
4846 public function parse_newestcompare()
\r
4849 $newestVersion = getLatestVersion();
\r
4850 $newestCompare = str_replace('/', '.', $newestVersion);
\r
4851 $currentVersion = str_replace(array('/', 'v'), array('.', ''), $nucleus['version']);
\r
4852 if ( $newestVersion && version_compare($newestCompare, $currentVersion, '>') )
\r
4854 echo '<br /><a style="color:red" href="http://nucleuscms.org/upgrade.php" title="' . _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TITLE . '">';
\r
4855 echo _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT . $newestVersion . '</a>';
\r
4861 * Actions::parse_newmemberselect()
\r
4862 * Parse skinvar newmemberselect
\r
4864 * @param string $templateName name of template to use
\r
4867 public function parse_newmemberselect($templateName = '')
\r
4869 $blogid = intRequestVar('blogid');
\r
4871 $query = "SELECT tmember FROM %s WHERE tblog=%d;";
\r
4872 $query = sprintf($query, sql_table('team'), (integer) $blogid);
\r
4873 $res = sql_query($query);
\r
4876 while ( $tmember = sql_fetch_object($res) )
\r
4878 $tmem[] = intval($tmember->tmember);
\r
4881 $query = "SELECT mname as text, mnumber as value FROM %s WHERE mnumber NOT IN (%s);";
\r
4882 $query = sprintf($query, sql_table('member'), implode(', ', $tmem));
\r
4884 $template['name'] = 'memberid';
\r
4885 $template['tabindex'] = 10000;
\r
4886 skinableShowlist($query, 'select', $template, $templateName);
\r
4891 * Actions::parse_newpluginlist()
\r
4892 * Parse skinvar newpluginlist
\r
4897 public function parse_newpluginlist()
\r
4899 $candidates = $this->newPlugCandidates;
\r
4900 foreach ( $candidates as $name )
\r
4902 echo '<option value="NP_' . $name . '">' . Entity::hsc($name) . "</option>\n";
\r
4908 * Actions::parse_outputspecialdirs()
\r
4909 * Parse skinvar outputspecialdirs
\r
4911 * @param string $type type of setting for directory
\r
4914 public function parse_outputspecialdirs($type)
\r
4918 case 'nucleusdir':
\r
4919 global $DIR_NUCLEUS;
\r
4920 echo Entity::hsc($DIR_NUCLEUS);
\r
4923 global $DIR_MEDIA;
\r
4924 echo Entity::hsc($DIR_MEDIA);
\r
4931 * Actions::parse_passrequestvars()
\r
4932 * Parse skinvar passrequestvars
\r
4937 public function parse_passrequestvars()
\r
4939 $oldaction = postVar('oldaction');
\r
4940 if ( ($oldaction != 'logout')
\r
4941 && ($oldaction != 'login')
\r
4942 && $this->objAdmin->passvar
\r
4943 && !postVar('customaction') )
\r
4945 passRequestVars();
\r
4951 * Actions::parse_pluginextras()
\r
4952 * Parse skinvar pluginextras
\r
4954 * @param string $type type of plugin context
\r
4957 function parse_pluginextras($type = 'global')
\r
4963 $id = intRequestVar('memberid');
\r
4964 $mem = MEMBER::createFromID($id);
\r
4966 'MemberSettingsFormExtras',
\r
4973 $id = intRequestVar('blogid');
\r
4974 $blg = $manager->getBlog($id);
\r
4976 'BlogSettingsFormExtras',
\r
4984 'GeneralSettingsFormExtras',
\r
4994 * Actions::parse_pluginhelp()
\r
4995 * Parse skinvar pluginhelp
\r
5000 public function parse_pluginhelp()
\r
5002 global $manager, $DIR_PLUGINS;
\r
5003 $plugid = intGetVar('plugid');
\r
5004 $plugName = getPluginNameFromPid($plugid);
\r
5005 $plug =& $manager->getPlugin($plugName);
\r
5007 if ( $plug->supportsFeature('HelpPage') > 0 )
\r
5009 $helpfile = $DIR_PLUGINS . $plug->getShortName() . '/help.';
\r
5010 if ( @file_exists($helpfile . 'php') )
\r
5012 @include($helpfile . 'php');
\r
5015 elseif ( @file_exists($helpfile . 'html') )
\r
5017 @include($helpfile . 'html');
\r
5021 echo '<p>' . _ERROR . ': ' . _ERROR_PLUGNOHELPFILE . "</p>\n";
\r
5022 echo '<p><a href="index.php?action=pluginlist">(' . _BACK . ")</a></p>\n";
\r
5027 * Actions::parse_pluginlistlist()
\r
5028 * Parse skinvar pluginlistlist
\r
5030 * @param string $templateName name of template to use
\r
5033 public function parse_pluginlistlist($templateName = '')
\r
5035 $query = "SELECT * FROM %s ORDER BY porder ASC;";
\r
5036 $query = sprintf($query, sql_table('plugin'));
\r
5037 $template['content'] = 'pluginlist';
\r
5038 $template['tabindex'] = 10;
\r
5039 skinableShowlist($query, 'table', $template, $templateName);
\r
5044 * Actions::parse_pluginoptions()
\r
5045 * Parse skinvar pluginoptions
\r
5047 * @param string $type type of plugin option
\r
5050 public function parse_pluginoptions($type = 'global')
\r
5055 $id = intRequestVar('memberid');
\r
5058 $id = intRequestVar('blogid');
\r
5061 $id = intRequestVar('catid');
\r
5064 $this->objAdmin->_insertPluginOptions($type, $id);
\r
5069 * Actions::parse_qmenuaddselect()
\r
5070 * Parse skinvar qmanuaddselect
\r
5072 * @param string $templateName name of template to use
\r
5075 public function parse_qmenuaddselect($templateName = '')
\r
5078 $showAll = requestVar('showall');
\r
5079 if ( $member->isAdmin() && ($showAll == 'yes') )
\r
5081 // Super-Admins have access to all blogs! (no add item support though)
\r
5082 $query = 'SELECT bnumber as value, bname as text'
\r
5083 . ' FROM ' . sql_table('blog')
\r
5084 . ' ORDER BY bname';
\r
5088 $query = 'SELECT bnumber as value, bname as text'
\r
5089 . ' FROM ' . sql_table('blog') . ', ' . sql_table('team')
\r
5090 . ' WHERE tblog=bnumber and tmember=' . $member->getID()
\r
5091 . ' ORDER BY bname';
\r
5093 $template['name'] = 'blogid';
\r
5094 $template['tabindex'] = 15000;
\r
5095 $template['extra'] = _QMENU_ADD_SELECT;
\r
5096 $template['selected'] = -1;
\r
5097 $template['shorten'] = 10;
\r
5098 $template['shortenel'] = '';
\r
5099 $template['javascript'] = 'onchange="return form.submit()"';
\r
5100 skinableShowlist($query, 'select', $template, $templateName);
\r
5105 * Actions::parse_quickmenu()
\r
5106 * Parse skinvar quickmenu
\r
5108 * @param string $templateName name of template to use
\r
5111 public function parse_quickmenu($templateName = '')
\r
5114 $templates = array();
\r
5115 $template = array();
\r
5116 if ( !empty($templateName) )
\r
5118 $templates = skinableTEMPLATE::read($templateName);
\r
5120 $pluginExtras = array();
\r
5124 'options' => &$pluginExtras
\r
5127 if ( count($pluginExtras) > 0 )
\r
5129 if ( array_key_exists('PLUGIN_QUICKMENU_TITLE', $templates) || !empty($templates['PLUGIN_QUICKMENU_TITLE']) )
\r
5131 $template['title'] = $templates['PLUGIN_QUICKMENU_TITLE'];
\r
5135 $template['title'] = '<h2><%text(_QMENU_PLUGINS)%></h2>';
\r
5137 $handler = new skinableACTIONS($this->skintype, $template, $this->objAdmin);
\r
5138 $parser = new PARSER(skinableACTIONS::getDefinedActions(), $handler);
\r
5139 $parser->parse($template['title']);
\r
5141 if ( array_key_exists('PLUGIN_QUICKMENU_HEAD', $templates) || !empty($templates['PLUGIN_QUICKMENU_HEAD']) )
\r
5143 $template['head'] = $templates['PLUGIN_QUICKMENU_HEAD'];
\r
5147 $template['head'] = '<ul>';
\r
5150 echo $template['head'];
\r
5152 if ( array_key_exists('PLUGIN_QUICKMENU_BODY', $templates) || !empty($templates['PLUGIN_QUICKMENU_BODY']) )
\r
5154 $template['body'] = $templates['PLUGIN_QUICKMENU_BODY'];
\r
5158 $template['body'] = '<li><a href="<%plugadminurl%>" title="<%plugadmintooltip%>"><%plugadmintitle%></a></li>';
\r
5161 foreach ( $pluginExtras as $aInfo )
\r
5164 'plugadminurl' => ENTITY::hsc($aInfo['url'], ENT_QUOTES),
\r
5165 'plugadmintooltip' => ENTITY::hsc($aInfo['tooltip'], ENT_QUOTES),
\r
5166 'plugadmintitle' => ENTITY::hsc($aInfo['title'], ENT_QUOTES),
\r
5168 echo TEMPLATE::fill($template['body'], $data);
\r
5170 if ( array_key_exists('PLUGIN_QUICKMENU_FOOT', $templates) || !empty($templates['PLUGIN_QUICKMENU_FOOT']) )
\r
5172 $template['foot'] = $templates['PLUGIN_QUICKMENU_FOOT'];
\r
5176 $template['foot'] = '</ul>';
\r
5178 echo $template['foot'];
\r
5184 * Actions::parse_requestblogid()
\r
5185 * Parse skinvar requestblogid
\r
5190 public function parse_requestblogid()
\r
5192 echo intRequestVar('blogid');
\r
5197 * Actions::parse_requestiprange()
\r
5198 * Parse skinvar requestiprange
\r
5203 public function parse_requestiprange()
\r
5205 if ( requestVar('iprange') )
\r
5207 echo Entity::hsc(requestVar('iprange'));
\r
5209 elseif ( requestVar('ip') )
\r
5211 echo Entity::hsc(requestVar('ip'));
\r
5217 * Actions::parse_selectlocaladminskinfiles()
\r
5218 * Parse skinvar selectlocaladminskinfiles
\r
5223 public function parse_selectlocaladminskinfiles()
\r
5225 global $DIR_ADMINSKINS, $manager;
\r
5226 $candidates = skinableSKINIMPORT::searchForCandidates($DIR_ADMINSKINS);
\r
5227 foreach ( $candidates as $skinname => $skinfile )
\r
5229 $html = Entit::hsc($skinfile);
\r
5230 echo '<option value="' . $html . '">' . $skinname . "</option>\n";
\r
5236 * Actions::parse_selectlocalskinfiles()
\r
5237 * Parse skinvar selectlocalskinfiles
\r
5242 function parse_selectlocalskinfiles()
\r
5244 global $DIR_SKINS;
\r
5245 $candidates = SKINIMPORT::searchForCandidates($DIR_SKINS);
\r
5246 foreach ( $candidates as $skinname => $skinfile )
\r
5248 $html = ENTITY::hsc($skinfile);
\r
5249 echo '<option value="' . $html . '">' . $skinname . "</option>\n";
\r
5255 * Actions::parse_skineditallowedlist()
\r
5256 * Parse skinvar skineditallowedlist
\r
5258 * @param string $type type of skin
\r
5259 * @param string $templateName name of template
\r
5262 public function parse_skineditallowedlist($type, $templateName = '')
\r
5267 $query = "SELECT bshortname, bname FROM %s";
\r
5269 'content' => 'shortblognames'
\r
5271 $query = sprintf($query, sql_table('blog'));
\r
5272 skinableShowlist($query, 'table', $show, $templateName);
\r
5275 $query = "SELECT tdname as name, tddesc as description FROM %s";
\r
5277 'content' => 'shortnames'
\r
5279 $query = sprintf($query, sql_table('template_desc'));
\r
5280 skinableShowlist($query, 'table', $show, $templateName);
\r
5287 * Actions::parse_skinfile()
\r
5288 * Inserts an url relative to the skindir (useful when doing import/export)
\r
5290 * e.g. <skinfile(default/myfile.sth)>
\r
5292 * @param string $filename file name for skin
\r
5295 public function parse_skinfile($filename)
\r
5297 $base = NP_SkinableAdmin::getAdminSkinURL();
\r
5298 $pref = PARSER::getProperty('IncludePrefix');
\r
5299 echo $base . $pref . $filename;
\r
5304 * Actions::parse_skinielist()
\r
5305 * Parse skinvar skinielist
\r
5307 * @param string $type type of skin
\r
5308 * @param string $templateName name of template to use
\r
5311 public function parse_skinielist($type, $templateName = '')
\r
5313 $templates = array();
\r
5314 if ( $templateName )
\r
5316 $templates = skinableTEMPLATE::read($templateName);
\r
5318 if ( array_key_exists('SKINIE_EXPORT_LIST', $templates) && !empty($templates['SKINIE_EXPORT_LIST']) )
\r
5320 $template = $templates['SKINIE_EXPORT_LIST'];
\r
5324 $template = '<td><input type="checkbox" name="<%typeid%>" id="<%expid%>" /><label for="<%expid%>"><%expname%></label></td>' . "\n"
\r
5325 . "<td><%expdesc%></td>\n"
\r
5331 $res = sql_query('SELECT * FROM ' . sql_table('skin_desc'));
\r
5332 while ( $skinObj = sql_fetch_object($res) )
\r
5335 'typeid' => 'skin[' . $skinObj->sdnumber . ']',
\r
5336 'expid' => 'skinexp' . $skinObj->sdnumber,
\r
5337 'expname' => ENTITY::hsc($skinObj->sdname, ENT_QUOTES),
\r
5338 'expdesc' => ENTITY::hsc($skinObj->sddesc, ENT_QUOTES),
\r
5340 echo TEMPLATE::fill($template, $data);
\r
5344 $res = sql_query('SELECT * FROM '.sql_table('template_desc'));
\r
5345 while ($templateObj = sql_fetch_object($res)) {
\r
5347 'typeid' => 'template[' . $templateObj->tdnumber . ']',
\r
5348 'expid' => 'templateexp' . $templateObj->tdnumber,
\r
5349 'expname' => ENTITY::hsc($templateObj->tdname, ENT_QUOTES),
\r
5350 'expdesc' => ENTITY::hsc($templateObj->tddesc, ENT_QUOTES),
\r
5352 echo TEMPLATE::fill($template, $data);
\r
5360 * Actions::parse_skinoverview()
\r
5361 * Parse skinvar skinoverview
\r
5363 * @param string $templateName name of template to use
\r
5366 public function parse_skinoverview($templateName = '')
\r
5368 $query = "SELECT * FROM %s ORDER BY sdname";
\r
5369 $query = sprintf($query, sql_table('skin_desc'));
\r
5371 $template['content'] = 'skinlist';
\r
5372 $template['tabindex'] = 10;
\r
5374 skinableShowlist($query, 'table', $template, $templateName);
\r
5379 * Actions::parse_skintypehelp()
\r
5380 * Check editing skintypehelp
\r
5385 public function parse_skintypehelp()
\r
5387 $nowSkinType = strtolower(trim(requestVar('type')));
\r
5388 $regularType = array(
\r
5399 if ( in_array($nowSkinType, $regularType) )
\r
5401 help('skinpart' . $nowSkinType);
\r
5405 help('skinpartspecial');
\r
5411 * Actions::parse_specialskinlist()
\r
5412 * Parse skinvar specialskinlist
\r
5414 * @param string $templateName name of template to use
\r
5417 public function parse_specialskinlist($templateName = '')
\r
5419 $templates = array();
\r
5420 if ( $templateName )
\r
5422 $templates = skinableTEMPLATE::read($templateName);
\r
5434 $skinid = intRequestVar('skinid');
\r
5435 $query = "SELECT stype FROM %s WHERE stype NOT IN ('%s') AND sdesc = %d;";
\r
5436 $query = sprintf($query, sql_table('skin'), implode("', '", $nType), $skinid);
\r
5438 $res = sql_query($query);
\r
5439 if ( $res && sql_num_rows($res) > 0 )
\r
5442 if ( array_key_exists('SPECIALSKINLIST_HEAD', $templates) && !empty($templates['SPECIALSKINLIST_HEAD']) )
\r
5444 $template['head'] = $templates['SPECIALSKINLIST_HEAD'];
\r
5448 $template['head'] = "<ul>\n";
\r
5450 echo TEMPLATE::fill($template['head'], $data);
\r
5451 if ( array_key_exists('SPECIALSKINLIST_BODY', $templates) && !empty($templates['SPECIALSKINLIST_BODY']) )
\r
5453 $template['body'] = $templates['SPECIALSKINLIST_BODY'];
\r
5457 $template['body'] = '<li><a tabindex="<%tabindex%>" href="index.php?action=skinedittype&skinid=<%skinid%>'
\r
5458 . '&type=<%skintype%>"><%skintype%></a> (<a tabindex="<%tabindex%>" href="index.php?'
\r
5459 . 'action=skinremovetype&skinid=<%skinid%>&type=<%skintype%>">remove</a>)</li>';
\r
5462 while ( $row = sql_fetch_assoc($res) )
\r
5465 'tabindex' => $tabstart++,
\r
5466 'skinid' => $skinid,
\r
5467 'skintype' => ENTITY::hsc(strtolower($row['stype']), ENT_QUOTES)
\r
5469 echo TEMPLATE::fill($template['body'], $data);
\r
5472 if (array_key_exists('SPECIALSKINLIST_FOOT', $templates) && !empty($templates['SPECIALSKINLIST_FOOT']) )
\r
5474 $template['foot'] = $templates['SPECIALSKINLIST_FOOT'];
\r
5478 $template['foot'] = "</ul>\n";
\r
5480 echo TEMPLATE::fill($template['foot'], $data);
\r
5486 * Actions::parse_sprinttext()
\r
5487 * Parse sprinttext
\r
5489 * @param string $which
\r
5490 * @param string $val
\r
5493 public function parse_sprinttext($which, $val)
\r
5495 if ( !defined($which) )
\r
5501 $base = constant($which);
\r
5504 if ( preg_match('#[^<|%].*[^%|>]#', $val, $matchies) )
\r
5506 if ( !preg_match('#[(].*[^)]#', $matchies[0], $args) )
\r
5508 $met = 'parse_' . $matchies[0];
\r
5512 $arg = trim($args[0], '()');
\r
5513 $met = 'parse_' . substr($matchies[0], 0, strpos($matchies[0], '('));
\r
5516 if ( method_exists($this, $met) )
\r
5518 $value = call_user_func(array(&$this, $met), $arg);
\r
5522 if ( !isset($value) || empty($value) )
\r
5526 echo sprintf($base, $value);
\r
5531 * Actions::parse_systemsettings()
\r
5532 * Parse skinvar systemsettings
\r
5534 * @param string $type type of settings for system
\r
5535 * @param string $templateName name of template to use
\r
5538 public function parse_systemsettings($type = 'phpinfo', $templateName = '')
\r
5540 global $member, $CONF, $nucleus;
\r
5542 $member->isAdmin() or $this->objAdmin->disallow();
\r
5544 $enable = _ADMIN_SYSTEMOVERVIEW_ENABLE;
\r
5545 $disable = _ADMIN_SYSTEMOVERVIEW_DISABLE;
\r
5549 case 'phpversion':
\r
5550 echo phpversion();
\r
5552 case 'sqlserverinfo':
\r
5553 echo sql_get_server_info();
\r
5555 case 'sqlclientinfo':
\r
5556 echo sql_get_client_info();
\r
5558 case 'magicquotesgpc':
\r
5559 echo ini_get('magic_quotes_gpc') ? 'On' : 'Off';
\r
5561 case 'magicquotesruntime':
\r
5562 echo ini_get('magic_quotes_runtime') ? 'On' : 'Off';
\r
5564 case 'registerglobals':
\r
5565 echo ini_get('register_globals') ? 'On' : 'Off';
\r
5568 $templates = array();
\r
5569 if ( $templateName )
\r
5571 $templates = skinableTEMPLATE::read($templateName);
\r
5573 if ( array_key_exists('SYSTEMINFO_GDSETTINGS', $templates) && !empty($templates['SYSTEMINFO_GDSETTINGS']) )
\r
5575 $template = $templates['SYSTEMINFO_GDSETTINGS'];
\r
5579 $template = "<tr>\n\t\t" . '<td width="50%">' . "<%key%></td><td><%value%></td>\n</tr>\n";
\r
5582 $gdinfo = gd_info();
\r
5584 foreach ( $gdinfo as $key => $value )
\r
5586 if ( is_bool($value) )
\r
5588 $value = $value ? $enable : $disable;
\r
5592 $value = ENTITY::hsc($value, ENT_QUOTES);
\r
5596 'value' => $value,
\r
5598 echo TEMPLATE::fill($template, $data);
\r
5601 case 'modrewrite':
\r
5603 phpinfo(INFO_MODULES);
\r
5604 $im = ob_get_contents();
\r
5606 echo (strstr($im, 'mod_rewrite') != '') ? $enable : $disable;
\r
5608 case 'nucleusversion':
\r
5609 echo getNucleusVersion() / 100 . '(' . $nucleus['version'] . ')';
\r
5611 case 'nucleuspatchlevel':
\r
5612 echo getNucleusPatchLevel();
\r
5615 echo $CONF['Self'];
\r
5617 case 'confitemurl':
\r
5618 echo $CONF['ItemURL'];
\r
5620 case 'alertonheaderssent':
\r
5621 echo $CONF['alertOnHeadersSent'] ? $enable : $disable;
\r
5623 case 'nucleuscodename':
\r
5624 if ( $nucleus['codename'] != '' )
\r
5626 echo ' "' . $nucleus['codename'] . '"';
\r
5629 case 'versioncheckurl':
\r
5630 echo sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());
\r
5637 * Actions::parse_templateoverview()
\r
5638 * Parse skinvar templateoverview
\r
5640 * @param string $templateName name of template to use
\r
5643 public function parse_templateoverview($templateName = '')
\r
5645 $query = "SELECT * FROM %s ORDER BY tdname";
\r
5646 $query = sprintf($query, sql_table('template_desc'));
\r
5647 $template['content'] = 'templatelist';
\r
5648 $template['tabindex'] = 10;
\r
5649 skinableShowlist($query, 'table', $template, $templateName);
\r
5654 * Actions::parse_versioncheckurl()
\r
5655 * Parse skinvar versioncheckurl
\r
5660 public function parse_versioncheckurl()
\r
5662 echo sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());
\r
5667 * Actions::parse_yrbloglist()
\r
5668 * Parse skinvar yrbloglist
\r
5670 * @param string $templateName name of template to use
\r
5673 public function parse_yrbloglist($templateName = '')
\r
5676 $showAll = requestVar('showall');
\r
5678 if ( $member->isAdmin() && ($showAll == 'yes') )
\r
5680 // Super-Admins have access to all blogs! (no add item support though)
\r
5681 $query = "SELECT bnumber, bname, 1 as tadmin, burl, bshortname"
\r
5683 . " ORDER BY bnumber";
\r
5684 $query = sprintf($query, sql_table('blog'));
\r
5688 $query = "SELECT bnumber, bname, tadmin, burl, bshortname"
\r
5690 . " WHERE tblog=bnumber and tmember=%d"
\r
5691 . " ORDER BY bnumber";
\r
5692 $query = sprintf($query, sql_table('blog'), sql_table('team'), (integer) $member->getID());
\r
5695 $template['content'] = 'bloglist';
\r
5696 $template['superadmin'] = $member->isAdmin();
\r
5698 $amount = skinableShowlist($query, 'table', $template, $templateName);
\r
5700 if ( ($showAll != 'yes') && ($member->isAdmin()) )
\r
5702 $query = 'SELECT COUNT(*) as result FROM ' . sql_table('blog');
\r
5704 $total = quickQuery($query);
\r
5705 if ( $total > $amount )
\r
5707 echo '<p><a href="index.php?action=overview&showall=yes">' . _OVERVIEW_SHOWALL . '</a></p>';
\r
5711 if ( $amount == 0 )
\r
5713 echo _OVERVIEW_NOBLOGS;
\r
5715 elseif( $amount != 0 )
\r
5717 echo '<h2>' . _OVERVIEW_YRDRAFTS . '</h2>';
\r
5719 $query = "SELECT ititle, inumber, bshortname"
\r
5721 . ' WHERE iauthor=%d AND iblog=bnumber AND idraft=1';
\r
5722 $query = sprintf($query. sql_table('item'), sql_table('blog'), (integer) $member->getID());
\r
5724 $template['content'] = 'draftlist';
\r
5726 $amountdrafts = skinableShowlist($query, 'table', $template, $templateName);
\r
5727 if ( $amountdrafts == 0 )
\r
5729 echo _OVERVIEW_NODRAFTS;
\r
5736 * Actions::customHelp()
\r
5737 * shows a link to custom help file
\r
5739 * @param integer $id
\r
5740 * @param string $tplName
\r
5741 * @param string $url
\r
5742 * @param string $iconURL
\r
5743 * @param string $alt
\r
5744 * @param string $title
\r
5748 private function customHelp($id, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')
\r
5750 echo self::customHelpHtml($id, $tplName, $url, $iconURL, $alt, $title, $onclick);
\r
5754 * Actions::customHelpHtml()
\r
5756 * @param integer $id
\r
5757 * @param string $tplName
\r
5758 * @param string $url
\r
5759 * @param string $iconURL
\r
5760 * @param string $alt
\r
5761 * @param string $title
\r
5762 * @param string $onclick
\r
5763 * @return string anchor element with help uri
\r
5765 static public function customHelpHtml($id, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')
\r
5767 $templates = array();
\r
5770 $templates = skinableTEMPLATE::read($tplName);
\r
5772 if ( array_key_exists('ADMIN_CUSTOMHELPLINK_ICON', $templates) && !empty($templates['ADMIN_CUSTOMHELPLINK_ICON']) )
\r
5774 $template = $templates['ADMIN_CUSTOMHELPLINK_ICON'];
\r
5778 $template = '<img src="<%iconurl%>" <%width%><%height%>alt="<%alt%>" title="<%title%>" /></a>';
\r
5781 if ( empty($iconURL) )
\r
5784 $iconURL = $CONF['AdminURL'] . 'documentation/icon-help.gif';
\r
5786 if ( function_exists('getimagesize') )
\r
5788 $size = getimagesize($iconURL);
\r
5789 $width = 'width="' . $size[0] . '" ';
\r
5790 $height = 'height="' . $size[1] . '" ';
\r
5793 'iconurl' => $iconURL,
\r
5794 'width' => $width,
\r
5795 'height' => $height,
\r
5796 'alt' => (isset($alt) && !empty($alt)) ? $alt : _HELP_TT,
\r
5797 'title' => (isset($title) && !empty($title)) ? $title : _HELP_TT,
\r
5799 $icon = TEMPLATE::fill($template, $data);
\r
5800 $help = self::customHelplink($id, $tplName, $url, $title, $onclick);
\r
5801 return $help . $icon;
\r
5805 * Actions::input_yesno
\r
5808 * @param $checkedval
\r
5809 * @param $tabindex
\r
5815 * @param $templateName
\r
5816 * @param $showlist
\r
5818 static function input_yesno($name,
\r
5826 $templateName = '',
\r
5827 $showlist = false)
\r
5829 $templates = array();
\r
5830 if ( $templateName )
\r
5832 $templates = skinableTEMPLATE::read($templateName);
\r
5835 if ( $name == 'admin' )
\r
5837 if ( array_key_exists('INPUTYESNO_TEMPLATE_ADMIN', $templates) && !empty($templates['INPUTYESNO_TEMPLATE_ADMIN']) )
\r
5839 $template = $templates['INPUTYESNO_TEMPLATE_ADMIN'];
\r
5843 $template = '<input onclick="selectCanLogin(true);" type="radio" name="<%name%>" value="<%yesval%>" <%yescheckedval%> id="<%yesid%>" />' . "\n"
\r
5844 . '<label for="<%yesid%>"><%yesvaltext%></label>' . "\n"
\r
5845 . '<input onclick="selectCanLogin(false);" type="radio" name="<%name%>" value="<%noval%>" <%nocheckedval%> id="<%noid%>"<%disabled%> />' . "\n"
\r
5846 . '<label for="<%noid%>"><%novaltext%></label>' . "\n";
\r
5851 if ( array_key_exists('INPUTYESNO_TEMPLATE_NORMAL', $templates) && !empty($templates['INPUTYESNO_TEMPLATE_NORMAL']) )
\r
5853 $template = $templates['INPUTYESNO_TEMPLATE_NORMAL'];
\r
5857 if ( array_key_exists('SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO', $templates) && !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO']) )
\r
5859 $template = $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO'];
\r
5862 if ( !isset($template) )
\r
5864 $template = '<input type="radio" name="<%name%>" value="<%yesval%>" <%yescheckedval%> id="<%yesid%>" />' . "\n"
\r
5865 . '<label for="<%yesid%>"><%yesvaltext%></label>' . "\n"
\r
5866 . '<input type="radio" name="<%name%>" value="<%noval%>" <%nocheckedval%> id="<%noid%>"<%disabled%> />' . "\n"
\r
5867 . '<label for="<%noid%>"><%novaltext%></label>' . "\n";
\r
5872 $id = ENTITY::hsc($name);
\r
5873 $id = str_replace('[', '-', $id);
\r
5874 $id = str_replace(']', '-', $id);
\r
5875 $id1 = $id . ENTITY::hsc($value1);
\r
5876 $id2 = $id . ENTITY::hsc($value2);
\r
5878 'name' => ENTITY::hsc($name),
\r
5879 'yesval' => ENTITY::hsc($value1),
\r
5880 'noval' => ENTITY::hsc($value2),
\r
5883 'yesvaltext' => $yesval,
\r
5884 'novaltext' => $noval,
\r
5885 'yescheckedval' => ($checkedval == $value1) ? ' checked="checked" tabindex="' . $tabindex . '"': '',
\r
5886 'nocheckedval' => ($checkedval != $value1) ? ' checked="checked" tabindex="' . $tabindex . '"': '',
\r
5887 'disabled' => ($isAdmin && $name == 'canlogin') ? ' disabled="disabled"' : '',
\r
5892 return skinableTEMPLATE::fill($template, $dat);
\r
5896 echo TEMPLATE::fill($template, $dat);
\r