class AdminActions extends BaseActions
{
- // reference to the skin object for which a part is being parsed
- private $skin;
-
private $skintype;
/* NOTE: list of whole available action names for tags
'iprangeinput',
'itemnavlist',
'jstoolbaroptions',
- 'languageselectoptions',
'listplugplugoptionrow',
+ 'localeselectoptions',
'mediadirwarning',
'movedistselect',
'moveitemid',
static private $default_actions = array(
'addtickettourl',
'adminurl',
+ 'codename',
'customhelplink',
+ 'date',
+ 'extrahead',
'headmessage',
'helplink',
+ 'member',
+ 'newestcompare',
+ 'pagehead',
+ 'pagefoot',
+ 'qmenuaddselect',
+ 'quickmenu',
+ 'sitevar',
'sprinttext',
- 'ticket'
+ 'ticket',
+ 'version',
+ 'versioncheckurl'
);
/**
'adminskinremovetype' => _ADM_SKPRT_ADMINSKINREMOVETYPE,
'admintemplatedelete' => _ADM_SKPRT_ADMINTEMPLATEDELETE,
'admintemplateedit' => _ADM_SKPRT_ADMINTEMPLATEEDIT,
- 'admintemplateoverview' => _ADM_SKPRT_ADMINTEMPLATEOVERVIEW,
+ 'admntemplateoverview' => _ADM_SKPRT_ADMINTEMPLATEOVERVIEW,
'backupoverview' => _ADM_SKPRT_BACKUPOVERVIEW,
'backuprestore' => _ADM_SKPRT_BACKUPRESTORE,
'banlist' => _ADM_SKPRT_BANLIST,
'contents',
'categories',
'currenttime',
- 'pluginextras',
- 'itemoptions'
+ 'init',
+ 'pluginoptions',
+ 'pluginextras'
);
break;
case 'createnewlog':
break;
case 'editmembersettings':
$extra_actions = array(
- 'editmember',
- 'languageselectoptions',
'adminskinselectoptions',
+ 'editmember',
+ 'localeselectoptions',
'pluginoptions',
);
break;
'categories',
'currenttime',
'itemtime',
- 'pluginextras',
- 'itemoptions'
+ 'pluginoptions',
+ 'pluginextras'
);
break;
case 'itemlist':
'yrbloglist',
);
break;
- case 'pagefoot':
- $extra_actions = array(
- 'date',
- 'qmenuaddselect',
- 'member',
- 'quickmenu',
- );
- break;
- case 'pagehead':
- $extra_actions = array(
- 'charset',
- 'sitevar',
- 'adminurl',
- 'extrahead',
- 'member',
- 'versioncheckurl',
- 'version',
- 'codename',
- 'newestcompare',
- );
- break;
case 'plugindelete':
$extra_actions = array(
'editpluginfo',
'defblogselect',
'defskinselect',
'configsettingsedit',
- 'languageselectoptions',
'configsettingsyesno',
'outputspecialdirs',
'jstoolbaroptions',
+ 'localeselectoptions',
'mediadirwarning',
'pluginextras',
);
}
/**
- * AdminActions::setSkin()
- * Set the skin
- * @param object $skin an instance of Skin class
- * @return void
- */
- public function setSkin(&$skin)
- {
- $this->skin =& $skin;
- return;
- }
-
- /**
* AdminActions::parse_actionloglist()
* Parse skinvar actionloglist
*
if ( !array_key_exists('ADMIN_BATCHLIST', $templates) || empty($templates['ADMIN_BATCHLIST']) )
{
- $template = '<li><%text(_BATCH_EXECUTING)%>'
- . '<b><%adminbatchaction%></b>'
- . '<%batchlisttype%>'
- . '<b><%batchid%></b>...'
+ $template = '<li><%text(_BATCH_EXECUTING)%> '
+ . '<b><%adminbatchaction%></b> '
+ . '<%batchlisttype%> '
+ . '<b><%batchid%></b>... '
. '<b><%batchlistmsg%></b>'
. '</li>' . "\n";
}
$selected = requestIntArray('batch');
$action = requestVar('batchaction');
-
+
switch ( $this->skintype )
{
case 'batchitem':
{
$error = '';
$selectedid = intval($selectedid);
-
switch ( $action )
{
case 'delete':
if ( $this->skintype != 'batchteam' )
{
- $error = Admin::deleteaction($selectedid);
+ $error = call_user_func_array(array('Admin', $deleteaction), array($selectedid));
}
else
{
}
break;
case 'move':
- $error = Admin::moveaction($selectedid, $destid);
+ $error = call_user_func_array(array('Admin', $moveaction), array($selectedid, $destid));
break;
case 'setadmin':
// always succeeds
- sql_query("UPDATE {$setadminsql} {$selectedid};");
+ DB::execute("UPDATE {$setadminsql} {$selectedid};");
$error = '';
break;
case 'unsetadmin':
// there should always remain at least one super-admin
- $r = sql_query($unsetchksql);
- if ( sql_num_rows($r) < 2 )
+ $r = DB::getResult($unsetchksql);
+ if ( $r->rowCount() < 2 )
{
$error = $unseterrmsg;
}
else
{
- sql_query("UPDATE {$setadminsql} {$selectedid};");
+ DB::execute("UPDATE {$unsetupsql} {$selectedid};");
}
break;
default:
$handler = new AdminActions('template');
$parser = new Parser($handler);
+ $output = Template::fill($template, $data);
ob_start();
- $parser->parse($template);
- $template = ob_get_contents();
+ $parser->parse($output);
+ $output = ob_get_contents();
ob_end_clean();
-
- echo Template::fill($template, $data);
- return;
+ echo "{$output}<br />";
}
+ return;
}
/**
case 'skin':
$query = "SELECT * FROM %s WHERE sdname LIKE 'admin/%%';";
$query = sprintf($query, sql_table('skin_desc'));
- $res = sql_query($query);
+ $res = DB::getResult($query);
- while ( $skinObj = sql_fetch_object($res) )
+ foreach ( $res as $row )
{
$data = array(
- 'typeid' => 'skin[' . $skinObj->sdnumber . ']',
- 'expid' => 'skinexp' . $skinObj->sdnumber,
- 'expname' => Entity::hsc($skinObj->sdname),
- 'expdesc' => Entity::hsc($skinObj->sddesc),
+ 'typeid' => 'skin[' . $row['sdnumber'] . ']',
+ 'expid' => 'skinexp' . $row['sdnumber'],
+ 'expname' => Entity::hsc($row['sdname']),
+ 'expdesc' => Entity::hsc($row['sddesc']),
);
echo Template::fill($template, $data);
}
case 'template':
$query = "SELECT * FROM %s WHERE tdname LIKE 'admin/%%';";
$query = sprintf($query, sql_table('template_desc'));
- $res = sql_query($query);
- while ( $templateObj = sql_fetch_object($res) )
+ $res = DB::getResult($query);
+ foreach ( $res as $row )
{
$data = array(
- 'typeid' => 'template[' . $templateObj->tdnumber . ']',
- 'expid' => 'templateexp' . $templateObj->tdnumber,
- 'expname' => Entity::hsc($templateObj->tdname),
- 'expdesc' => Entity::hsc($templateObj->tddesc),
+ 'typeid' => 'template[' . $row['tdnumber'] . ']',
+ 'expid' => 'templateexp' . $row['tdnumber'],
+ 'expname' => Entity::hsc($row['tdname']),
+ 'expdesc' => Entity::hsc($row['tddesc']),
);
echo Template::fill($template, $data);
}
$template['content'] = 'adminskinlist';
$template['tabindex'] = 10;
- $template['friendly_names'] = $this->skin->getAvailableTypes();
+ $template['friendly_names'] = $this->parser->skin->getAvailableTypes();
Showlist($query, 'table', $template, $templateName);
return;
}
* @param void
* @return void
*/
- public function parse_adminskinselectoptions()
+ public function parse_adminskinselectoptions($templateName = '')
{
global $CONF;
$query = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname LIKE 'admin/%%';";
$query = sprintf($query, sql_table('skin_desc'));
$template['name'] = 'adminskin';
- $template['selected'] = $CONF['DefaultAdminSkin'];
+ $template['selected'] = $CONF['AdminSkin'];
$template['tabindex'] = 110;
- Showlist($query, 'select', $template, '');
+ Showlist($query, 'select', $template, $templateName);
return;
}
$templates = Template::read($templateName);
}
- $nType = $this->skin->getAvailableTypes();
+ $nType = $this->parser->skin->getAvailableTypes();
$skinid = intRequestVar('skinid');
$query = "SELECT stype FROM %s WHERE stype NOT IN (%s) AND sdesc=%d;";
$query = sprintf($query, sql_table('skin'), "'" . implode("', '", $nType) . "'", (integer) $skinid);
- $res = sql_query($query);
- if ( $res && sql_num_rows($res) > 0 )
+ $res = DB::getResult($query);
+ if ( $res && $res->rowCount() > 0 )
{
/* NOTE: set templates for HEAD/BODY/FOOT */
if ( !array_key_exists('ADMIN_SPECIALSKINLIST_HEAD', $templates) || empty($templates['ADMIN_SPECIALSKINLIST_HEAD']) )
/* NOTE: do echo */
$data = array();
echo $template['head'];
- while ( $row = sql_fetch_assoc($res) )
+ foreach ( $res as $row )
{
$data = array(
'tabindex' => $tabstart++,
{
global $DIR_ADMINSKINS;
$skinType = strtolower(trim(requestVar('type')));
- $actions = $this->skin->getAllowedActionsForType($skinType);
+ $actions = $this->parser->skin->getAllowedActionsForType($skinType);
sort($actions);
while ( $current = array_shift($actions) )
public function parse_banlistdeletedlist($templateName = '')
{
global $manager;
- $templates = array();
+ $templates = array();
if ( $templateName )
{
$templates = Template::read($templateName);
}
+
if ( !array_key_exists('BANLIST_DELETED_LIST', $templates) || empty($templates['BANLIST_DELETED_LIST']) )
{
$template = "<li><%blogname%></li>\n";
{
$blog =& $manager->getBlog($delblog);
$data = array(
- Entity::hsc($blog->getName())
+ 'blogname' => Entity::hsc($blog->getName())
);
- Template::fill($template, $data);
+ echo Template::fill($template, $data);
}
+
return;
}
public function parse_batchmovelist()
{
$selected = requestIntArray('batch');
+ $count = 0;
foreach ( $selected as $select )
{
- echo '<input type="hidden" name="batch[' . ($select++) . ']" value="' . intval($select) . "\" />\n";
+ echo '<input type="hidden" name="batch[' . ($count) . ']" value="' . intval($select) . "\" />\n";
+ $count++;
}
return;
}
* @param void
* @return void
*/
- public function parse_blogcatlist()
+ public function parse_blogcatlist($templateName = '')
{
global $manager;
$blogid = intRequestVar('blogid');
$template['tabindex'] = 200;
$batch = new Batch('category');
- $batch->showlist($query, 'table', $template);
+ $batch->showlist($query, 'table', $template, $templateName);
return;
}
* @param void
* @return void
*/
- function parse_blogid()
+ public function parse_blogid()
{
echo intRequestVar('blogid');
return;
// (only select those blogs that have the user on the team)
$queryBlogs = "SELECT bnumber, bname FROM %s WHERE bnumber in (%s) ORDER BY bname;";
$queryBlogs = sprintf($queryBlogs, sql_table('blog'), implode(',', $aBlogIds));
- $blogs = sql_query($queryBlogs);
+ $blogs = DB::getResult($queryBlogs);
if ( $mode == 'category' )
{
- if ( sql_num_rows($blogs) > 1 )
+ if ( $blogs->rowCount() > 1 )
{
$multipleBlogs = 1;
}
- while ( $oBlog = sql_fetch_object($blogs) )
+ foreach ( $blogs as $rBlog )
{
if ( isset($multipleBlogs) && !empty($multipleBlogs) )
{
- echo '<optgroup label="' . Entity::hsc($oBlog->bname) . "\>\n";
+ echo '<optgroup label="' . Entity::hsc($rBlog['bname']) . "\">\n";
}
// show selection to create new category when allowed/wanted
if ( $showNewCat )
{
// check if allowed to do so
- if ( $member->blogAdminRights($oBlog->bnumber) )
+ if ( $member->blogAdminRights($rBlog['bnumber']) )
{
- echo '<option value="newcat-' . $oBlog->bnumber . '">' . _ADD_NEWCAT . "</option>\n";
+ echo '<option value="newcat-' . $rBlog['bnumber'] . '">' . _ADD_NEWCAT . "</option>\n";
}
}
// 2. for each category in that blog
$catQuery = "SELECT cname, catid FROM %s WHERE cblog=%d ORDER BY cname ASC;";
- $catQuery = sprintf($catQuery, sql_table('category'), (integer) $oBlog->bnumber);
- $categories = sql_query($catQuery);
- while ( $oCat = sql_fetch_object($categories) )
+ $catQuery = sprintf($catQuery, sql_table('category'), (integer) $rBlog['bnumber']);
+ $categories = DB::getResult($catQuery);
+ foreach ( $categories as $rCat )
{
- if ( $oCat->catid == $selected )
+ if ( $rCat['catid'] == $selected )
{
$selectText = ' selected="selected" ';
}
{
$selectText = '';
}
- echo '<option value="' . $oCat->catid . '" ' . $selectText . '>' . Entity::hsc($oCat->cname) . "</option>\n";
+ echo '<option value="' . $rCat['catid'] . '" ' . $selectText . '>' . Entity::hsc($rCat['cname']) . "</option>\n";
}
if ( isset($multipleBlogs) && !empty($multipleBlogs) )
else
{
// blog mode
- while ( $oBlog = sql_fetch_object($blogs) )
+ foreach ( $blogs as $rBlog )
{
- echo '<option value="' . $oBlog->bnumber . '"';
- if ( $oBlog->bnumber == $selected )
+ echo '<option value="' . $rBlog['bnumber'] . '"';
+ if ( $rBlog['bnumber'] == $selected )
{
- echo '<option value="' . $oBlog->bnumber . '" selected="selected">' . Entity::hsc($oBlog->bname) . "</option>\n";
+ echo '<option value="' . $rBlog['bnumber'] . '" selected="selected">' . Entity::hsc($rBlog['bname']) . "</option>\n";
}
else
{
- echo '<option value="' . $oBlog->bnumber . '">' . Entity::hsc($oBlog->bname) . "</option>\n";
+ echo '<option value="' . $rBlog['bnumber'] . '">' . Entity::hsc($rBlog['bname']) . "</option>\n";
}
}
}
$template['tabindex'] = 10;
$batch = new Batch('team');
- $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);
+ $batch->showList($query, 'table', $template, $templateName, _LISTS_NOMORE);
return;
}
. "FROM %s, %s "
. "WHERE mnumber=tmember AND tblog=%d;";
$query = sprintf($query, sql_table('member'), sql_table('team'), (integer) $blogid);
- $res = sql_query($query);
+ $res = DB::getResult($query);
$memberNames = array();
- while ( $o = sql_fetch_object($res) )
+ foreach ( $res as $row )
{
- $memberNames[] = Entity::hsc($o->mname) . ' (' . Entity::hsc($o->mrealname). ')';
+ $memberNames[] = Entity::hsc($row['mname']) . ' (' . Entity::hsc($row['mrealname']). ')';
}
echo implode(',', $memberNames);
}
* @param string $type name of setting for category
* @return void
*/
- function parse_categories($startidx = 0)
+ public function parse_categories($startidx = 0)
{
global $manager;
- $item = false;
- $itemid = intRequestVar('itemid');
+ $item = FALSE;
+ $itemid = intRequestVar('itemid');
+ $item = &$manager->getItem($itemid, 1, 1);
- $item =& $manager->getItem($itemid, 1, 1);
- $blog =& $manager->getBlog(getBlogIDFromItemID($itemid));
+ $blog = FALSE;
+ if ( !$item )
+ {
+ $blogid = intRequestVar('blogid');
+ }
+ else
+ {
+ $blogid = $item['blogid'];
+ }
+ $blog = &$manager->getBlog($blogid);
if ( $item && $blog->convertBreaks() && requestVar('action') == 'itemedit' )
{
{
$contents = $item;
}
- if ( isset($contents['catid']) && $contents['catid'] )
+
+ if ( !array_key_exists('catid', $contents) || empty($contents['catid']) )
{
- $catid = $contents['catid']; // on edit item
+ // on add item
+ $catid = $blog->getDefaultCategory();
}
else
{
- $catid = $blog->getDefaultCategory(); // on add item
+ // on edit item
+ $catid = $contents['catid'];
}
+
Admin::selectBlogCategory('catid', $catid, $startidx, 1, $blog->getID());
+
return;
}
$blogid = intRequestVar('blogid');
$query = "SELECT * FROM %s WHERE cblog = %d AND catid = %d;";
$query = sprintf($query, sql_table('category'), (integer) $blogid, (integer) $catid);
- $res = sql_query($query);
- $obj = sql_fetch_object($res);
+ $row = DB::getRow($query);
if ( $type != 'name' )
{
- echo Entity::hsc($obj->cdesc);
+ echo Entity::hsc($row['cdesc']);
}
else
{
- echo Entity::hsc($obj->cname);
+ echo Entity::hsc($row['cname']);
}
return;
* @param $name
*
*/
- function parse_checkedonval($value, $name)
+ public function parse_checkedonval($value, $name)
{
global $manager;
$search = postVar('search');
if ( !empty($search) )
{
- $query .= ' and cbody LIKE "%' . sql_real_escape_string($search) . '%"';
+ $query .= ' and cbody LIKE ' . DB::quoteValue('%'.$search.'%');
}
$query .= " ORDER BY ctime ASC LIMIT {$start},{$amount}";
{
$query = "INSERT INTO %s VALUES (DefaultListSize, 10);";
$query = sprintf($query, sql_table('config'));
- sql_query($query);
+ DB::execute($query);
$CONF['DefaultListSize'] = 10;
}
elseif ( intval($CONF['DefaultListSize']) < 1 )
* @param string $which part for item
* @return void
*/
- function parse_contents($which)
+ public function parse_contents($which)
{
global $manager;
* @param string $what
*/
// for future items
- function parse_currenttime($what)
+ public function parse_currenttime($what)
{
global $manager;
if ( requestVar('action') == 'itemedit' )
$templates = Template::read($templateName);
}
- $types = $this->skin->getAvailableTypes();
+ $types = $this->parser->skin->getAvailableTypes();
ksort($types);
/* NOTE: set templates for HEAD/BODY/FOOT */
{
global $CONF, $manager, $member;
- $fNames = $this->skin->getAvailableTypes();
+ $fNames = $this->parser->skin->getAvailableTypes();
$sType = strtolower(trim(requestVar('type')));
switch ( $type )
echo intRequestVar('skinid');
break;
case 'name':
- echo Entity::hsc($this->skin->getName());
+ echo Entity::hsc($this->parser->skin->getName());
break;
case 'desc':
- echo Entity::hsc($this->skin->getDescription());
+ echo Entity::hsc($this->parser->skin->getDescription());
break;
case 'type':
- echo Entity::hsc($this->skin->getContentType());
+ echo Entity::hsc($this->parser->skin->getContentType());
break;
case 'content':
- echo Entity::hsc($this->skin->getContentFromDB($sType));
+ echo Entity::hsc($this->parser->skin->getContentFromDB($sType));
break;
case 'skintype':
$skinType = !array_key_exists($sType, $fNames) ? ucfirst($sType) : $fNames[$sType];
echo Entity::hsc($sType);
break;
case 'prefix':
- echo Entity::hsc($this->skin->getIncludePrefix());
+ echo Entity::hsc($this->parser->skin->getIncludePrefix());
break;
case 'mode':
$incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;
$comment['body'] = str_replace('<br />', '', $comment['body']);
$comment['body'] = preg_replace("#<a href=['\"]([^'\"]+)['\"]( rel=\"nofollow\")?>[^<]*</a>#", "\\1", $comment['body']);
echo $comment['body'];
+ break;
+ case 'cmail':
+ echo $comment['userid'];
+ break;
+ case 'url':
+ echo $comment['userid'];
+ break;
default:
echo $comment[$type];
break;
$template['tabindex'] = 10;
$batch = new Batch('member');
- $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);
+ $batch->showList($query, 'table', $template, $templateName, _LISTS_NOMORE);
return;
}
*/
public function parse_editpluginfo($type)
{
+ global $manager;
+
$pid = intRequestVar('plugid');
switch ( $type )
{
echo $pid;
break;
case 'name':
- echo Entity::hsc(getPluginNameFromPid($pid));
+ echo Entity::hsc($manager->getPluginNameFromPid($pid));
break;
}
return;
$query = "SELECT * FROM %s WHERE ocontext='global' AND opid=%d ORDER BY oid ASC;";
$query = sprintf($query, sql_table('plugin_option_desc'), (integer) $pid);
- $resource = sql_query($query);
-
- while ( $o = sql_fetch_object($resource) )
- {
- array_push($aOIDs, $o->oid);
- $aOptions[$o->oid] = array(
- 'oid' => $o->oid,
- 'value' => $o->odef,
- 'name' => $o->oname,
- 'description' => $o->odesc,
- 'type' => $o->otype,
- 'typeinfo' => $o->oextra,
+ $resource = DB::getResult($query);
+
+ foreach ( $resource as $row )
+ {
+ array_push($aOIDs, $row['oid']);
+ $aOptions[$row['oid']] = array(
+ 'oid' => $row['oid'],
+ 'value' => $row['odef'],
+ 'name' => $row['oname'],
+ 'description' => $row['odesc'],
+ 'type' => $row['otype'],
+ 'typeinfo' => $row['oextra'],
'contextid' => 0
);
}
$query = 'SELECT oid, ovalue FROM %s WHERE oid in (%s)';
$query = sprintf($query, sql_table('plugin_option'), implode(',', $aOIDs));
- $result = sql_query($query);
+ $result = DB::getResult($query);
- while ( $o = sql_fetch_object($result) )
+ foreach ( $result as $row )
{
- $aOptions[$o->oid]['value'] = $o->ovalue;
+ $aOptions[$row['oid']]['value'] = $row['ovalue'];
}
}
*/
public function parse_getblogsetting($which)
{
- global $blog;
+ global $blog, $manager;
if ( $blog )
{
}
elseif ( $bid = intRequestVar('blogid') )
{
- global $manager;
$b = $manager->getBlog($bid);
}
else
return $pid;
break;
case 'name':
- return Entity::hsc(getPluginNameFromPid($pid));
+ return Entity::hsc($manager->getPluginNameFromPid($pid));
break;
}
return;
public function parse_helpplugname()
{
$plugid = intGetVar('plugid');
- Entity::hsc(getPluginNameFromPid($plugid));
+ Entity::hsc($manager->getPluginNameFromPid($plugid));
return;
}
* some init stuff for all forms
*
* @param void
+ * @return void
*/
- function parse_init()
+ public function parse_init()
{
global $manager;
- $item = false;
+
+ $item = false;
if ( requestVar('action') == 'itemedit' )
{
$itemid = intRequestVar('itemid');
}
elseif ( requestVar('action') == 'createitem' )
{
- $blog =& $manager->getBlog(intRequestVar($blogid));
+ $blogid = intRequestVar('blogid');
+ $blog =& $manager->getBlog($blogid);
$authorid = '';
}
$blog->insertJavaScriptInfo($authorid);
+ return;
}
/**
*/
public function parse_insertpluginfo($type)
{
- $option = Admin::$aOptions;
+ $option = Admin::getAdminaOption();
switch ( $type )
{
case 'id':
{
$templates = Template::read($templateName);
}
+
if ( !array_key_exists('INSERT_PLUGOPTION_TITLE', $templates) || empty($templates['INSERT_PLUGOPTION_TITLE']) )
{
$template['title'] = "<tr>"
{
$template['title'] = $templates['INSERT_PLUGOPTION_TITLE'];
}
+
if ( !array_key_exists('INSERT_PLUGOPTION_BODY', $templates) || empty($templates['INSERT_PLUGOPTION_BODY']) )
{
$template['body'] = "<tr>"
*/
public function parse_insplugoptcontent()
{
- $option = Admin::$aOption;
+ $option = Admin::getAdminaOption();
$meta = NucleusPlugin::getOptionMeta($option['typeinfo']);
if ( array_key_exists('access', $meta) && $meta['access'] != 'hidden' )
* @param void
* @return void
*/
- public function parse_itemnavlist()
+ public function parse_itemnavlist($templateName)
{
global $CONF, $manager, $member;
- if ( $this->skintype == 'itemlist' )
- {
- $blogid = intRequestVar('blogid');
- $blog =& $manager->getBlog($blogid);
- }
- if ( postVar('start') )
- {
- $start = intPostVar('start');
- }
- else
- {
- $start = 0;
- }
- // amount of items to show
- if ( postVar('amount') )
- {
- $amount = intPostVar('amount');
- }
- else
- {
- $amount = intval($CONF['DefaultListSize']);
- if ( $amount < 1 )
- {
- $amount = 10;
- }
- }
$query = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime"
. " FROM %s, %s, %s, %s"
. " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid";
if ( $this->skintype == 'itemlist' )
{
- $query .= ' AND iblog = ' . $blogid;
+ $blog = FALSE;
+ if ( array_key_exists('blogid', $_REQUEST) )
+ {
+ $blogid = intRequestVar('blogid');
+ }
+ else if ( array_key_exists('itemid', $_REQUEST) )
+ {
+ $itemid = intRequestVar('itemid');
+ $item = &$manager->getItem($itemid, 1, 1);
+ $blogid = (integer) $item['blogid'];
+ }
+ $blog =& $manager->getBlog($blogid);
+
+ $query .= " AND iblog={$blogid}";
$template['now'] = $blog->getCorrectTime(time());
// non-blog-admins can only edit/delete their own items
if ( !empty($search) )
{
- $query .= ' AND ((ititle LIKE "%' . sql_real_escape_string($search) . '%") '
- . ' OR (ibody LIKE "%' . sql_real_escape_string($search) . '%") '
- . ' OR (imore LIKE "%' . sql_real_escape_string($search) . '%"))';
+ $query .= ' AND ((ititle LIKE ' . DB::quoteValue('%'.$search.'%') . ') '
+ . ' OR (ibody LIKE ' . DB::quoteValue('%'.$search.'%') . ') '
+ . ' OR (imore LIKE ' . DB::quoteValue('%'.$search.'%') . '))';
+ }
+
+ if ( postVar('start') )
+ {
+ $start = intPostVar('start');
+ }
+ else
+ {
+ $start = 0;
}
+
+ // amount of items to show
+ if ( postVar('amount') )
+ {
+ $amount = intPostVar('amount');
+ }
+ else
+ {
+ $amount = (integer) $CONF['DefaultListSize'];
+ if ( $amount < 1 )
+ {
+ $amount = 10;
+ }
+ }
+
$query .= ' ORDER BY itime DESC'
. " LIMIT {$start},{$amount}";
$template['content'] = 'itemlist';
-
+
$navList = new Navlist($this->skintype, $start, $amount, 0, 1000, $blogid, $search, 0);
- $navList->showBatchList('item', $query, 'table', $template);
+ $navList->showBatchList('item', $query, 'table', $template, '', $templateName);
return;
}
/**
- * AdminActions::parse_itemoptions()
- * Parse skinvar itemoptions
- * Adds the itemOptions of a plugin to a page
- * @author TeRanEX
- */
- function parse_itemoptions()
- {
- $this->parse_pluginoptions('item');
- return;
- }
-
- /**
- * AdminActions::parse_itemoptions()
- *
+ * AdminActions::parse_itemtime()
* date change on edit item
*
- * Parse skinvar itemoptions
- * Adds the itemOptions of a plugin to a page
- * @author TeRanEX
+ * @param string $key key of PHP's getDate()
+ * @return void
*/
- function parse_itemtime($what)
+ public function parse_itemtime($key)
{
global $manager;
$manager->notify('PreAddItemForm', $data);
}
$itemtime = getdate($contents['timestamp']);
- echo $itemtime[$what];
+ echo $itemtime[$key];
return;
}
return;
}
/**
- * Parse skinvar languageselectoptions
- */
- function parse_languageselectoptions()
- {
- $locales = i18n::get_available_locale_list();
- $memid = intRequestVar('memberid');
-
- if ($memid)
- {
- $mem = MEMBER::createFromID($memid);
- if ( !$mem->getLocale() || !in_array($mem->getLocale(), $locales) )
- {
- echo "<option value=\"\" selected=\"selected\">" . ENTITY::hsc(_MEMBERS_USESITELANG) . "</option>\n";
- }
- else
- {
- echo "<option value=\"\">" . ENTITY::hsc(_MEMBERS_USESITELANG) . "</option>\n";
- }
- }
- else
- {
- if ( !i18n::get_current_locale() || !in_array(i18n::get_current_locale(), $locales) )
- {
- echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";
- }
- }
- foreach ( $locales as $locale )
- {
- if ($memid)
- {
- if ( $locale == $mem->getLocale() )
- {
- echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
- }
- else
- {
- echo "<option value=\"{$locale}\">{$locale}</option>\n";
- }
- }
- else
- {
- if ( $locale == i18n::get_current_locale() )
- {
- echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
- }
- else
- {
- echo "<option value=\"{$locale}\">{$locale}</option>\n";
- }
- }
- }
- return;
- }
-
- /**
* AdminActions::parse_localeselectoptions()
* Parse skinvar localeselectoptions
*
{
echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";
}
+ else
+ {
+ echo "<option value=\"\">en_Latn_US</option>\n";
+ }
}
foreach ( $locales as $locale )
{
- if ($memid)
+ if ( $locale == 'en_Latn_US' )
+ {
+ continue;
+ }
+ else if ($memid)
{
if ( $locale == $mem->getLocale() )
{
*/
public function parse_listplugplugoptionrow($templateName = '')
{
- echo listplug_plugOptionRow(Admin::$aOptions, $templateName);
+ echo listplug_plugOptionRow(Admin::getAdminaOption(), $templateName);
return;
}
{
$query = "SELECT icat as result FROM %s WHERE inumber=%d;";
$query = sprintf($query, sql_table('item'), intRequestVar('itemid'));
- $catid = quickQuery(sprintf($query, intRequestVar('itemid')));
+ $catid = DB::getValue(sprintf($query, intRequestVar('itemid')));
Admin::selectBlogCategory('catid', $catid, 10, 1);
}
break;
$query = "SELECT tmember FROM %s WHERE tblog=%d;";
$query = sprintf($query, sql_table('team'), (integer) $blogid);
- $res = sql_query($query);
+ $res = DB::getResult($query);
$tmem = array();
- while ( $tmember = sql_fetch_object($res) )
+ foreach ( $res as $row )
{
- $tmem[] = intval($tmember->tmember);
+ $tmem[] = intval($row['tmember']);
}
$query = "SELECT mname as text, mnumber as value FROM %s WHERE mnumber NOT IN (%s);";
$query = sprintf($query, sql_table('member'), implode(', ', $tmem));
- $template['name'] = 'memberid';
- $template['tabindex'] = 10000;
+ $template = array(
+ 'name' => 'memberid',
+ 'tabindex' => 10000,
+ 'selected' => 0
+ );
Showlist($query, 'select', $template, $templateName);
return;
}
global $manager, $DIR_PLUGINS;
$plugid = intGetVar('plugid');
- $plugName = getPluginNameFromPid($plugid);
+ $plugName = $manager->getPluginNameFromPid($plugid);
$plug =& $manager->getPlugin($plugName);
if ( $plug->supportsFeature('HelpPage') > 0 )
* @param string $type type of plugin option
* @return void
*/
- public function parse_pluginoptions($type = 'global')
+ public function parse_pluginoptions($context='global')
{
- global $itemid;
+ global $itemid, $manager;
- switch ( $type )
+ switch ( $context )
{
case 'member':
- $id = intRequestVar('memberid');
+ $contextid = intRequestVar('memberid');
break;
case 'blog':
- $id = intRequestVar('blogid');
+ $contextid = intRequestVar('blogid');
break;
case 'category':
- $id = intRequestVar('catid');
+ $contextid = intRequestVar('catid');
break;
case 'item':
- $id = $itemid;
+ $contextid = $itemid;
break;
}
- Admin::insertPluginOptions($type, $id);
+
+ /* Actually registererd plugin options */
+ $aIdToValue = array();
+ $query = "SELECT oid, ovalue FROM %s WHERE ocontextid=%d;";
+ $query = sprintf($query, sql_table('plugin_option'), (integer) $contextid);
+ $res = DB::getResult($query);
+ foreach ( $res as $row )
+ {
+ $aIdToValue[$row['oid']] = $row['ovalue'];
+ }
+
+ /* Currently available plugin options */
+ $query = "SELECT * FROM %s, %s WHERE opid=pid and ocontext= %s ORDER BY porder, oid ASC;";
+ $query = sprintf($query, sql_table('plugin_option_desc'), sql_table('plugin'), DB::quoteValue($context));
+ $res = DB::getResult($query);
+
+ $options = array();
+ foreach ($res as $row )
+ {
+ if ( !array_key_exists($row['oid'], $aIdToValue) )
+ {
+ $value = $row['odef'];
+ }
+ else
+ {
+ $value = $aIdToValue[$row['oid']];
+ }
+
+ $options[] = array(
+ 'pid' => $row['pid'],
+ 'pfile' => $row['pfile'],
+ 'oid' => $row['oid'],
+ 'value' => $value,
+ 'name' => $row['oname'],
+ 'description' => $row['odesc'],
+ 'type' => $row['otype'],
+ 'typeinfo' => $row['oextra'],
+ 'contextid' => $contextid,
+ 'extra' => ''
+ );
+ }
+
+ $data = array(
+ 'context' => $context,
+ 'contextid' => $contextid,
+ 'options' => &$opt4ions
+ );
+ $manager->notify('PrePluginOptionsEdit', $data);
+
+ $content = $this->parser->skin->getContentFromDB('insertpluginoptions');
+ $this->parser->parse($content);
+
return;
}
switch ( $type )
{
case 'skin':
- $res = sql_query('SELECT * FROM ' . sql_table('skin_desc'));
- while ( $skinObj = sql_fetch_object($res) )
+ $res = DB::getResult('SELECT * FROM ' . sql_table('skin_desc'));
+ foreach ( $res as $row )
{
$data = array(
- 'typeid' => 'skin[' . $skinObj->sdnumber . ']',
- 'expid' => 'skinexp' . $skinObj->sdnumber,
- 'expname' => Entity::hsc($skinObj->sdname),
- 'expdesc' => Entity::hsc($skinObj->sddesc),
+ 'typeid' => 'skin[' . $row['sdnumber'] . ']',
+ 'expid' => 'skinexp' . $row['sdnumber'],
+ 'expname' => Entity::hsc($row['sdname']),
+ 'expdesc' => Entity::hsc($row['sddesc'])
);
echo Template::fill($template, $data);
}
break;
case 'template':
- $res = sql_query('SELECT * FROM '.sql_table('template_desc'). " WHERE tdname NOT LIKE 'admin/%%';");
- while ($templateObj = sql_fetch_object($res)) {
+ $res = DB::getResult('SELECT * FROM '.sql_table('template_desc'). " WHERE tdname NOT LIKE 'admin/%%';");
+ foreach ( $res as $row )
+ {
$data = array(
- 'typeid' => 'template[' . $templateObj->tdnumber . ']',
- 'expid' => 'templateexp' . $templateObj->tdnumber,
- 'expname' => Entity::hsc($templateObj->tdname),
- 'expdesc' => Entity::hsc($templateObj->tddesc),
+ 'typeid' => 'template[' . $row['tdnumber'] . ']',
+ 'expid' => 'templateexp' . $row['tdnumber'],
+ 'expname' => Entity::hsc($row['tdname']),
+ 'expdesc' => Entity::hsc($row['tddesc'])
);
echo Template::fill($template, $data);
}
$query = "SELECT stype FROM %s WHERE stype NOT IN ('%s') AND sdesc = %d;";
$query = sprintf($query, sql_table('skin'), implode("', '", $nType), $skinid);
- $res = sql_query($query);
- if ( $res && sql_num_rows($res) > 0 )
+ $res = DB::getResult($query);
+ if ( $res && $res->rowCount() > 0 )
{
$data = array();
if ( array_key_exists('SPECIALSKINLIST_HEAD', $templates) && !empty($templates['SPECIALSKINLIST_HEAD']) )
}
$tabstart = 75;
- while ( $row = sql_fetch_assoc($res) )
+ foreach ( $res as $row )
{
$data = array(
'tabindex' => $tabstart++,
echo phpversion();
break;
case 'sqlserverinfo':
- echo sql_get_server_info();
+ echo DB::getAttribute(PDO::ATTR_SERVER_VERSION);
break;
case 'sqlclientinfo':
- echo sql_get_client_info();
+ echo DB::getAttribute(PDO::ATTR_CLIENT_VERSION);
break;
case 'magicquotesgpc':
echo ini_get('magic_quotes_gpc') ? 'On' : 'Off';
{
$query = 'SELECT COUNT(*) as result FROM ' . sql_table('blog');
- $total = quickQuery($query);
+ $total = DB::getValue($query);
if ( $total > $amount )
{
echo '<p><a href="index.php?action=overview&showall=yes">' . _OVERVIEW_SHOWALL . '</a></p>';
* @param $templateName
* @param $showlist
*/
- private function input_yesno($name,
+ public function input_yesno($name,
$checkedval,
$tabindex = 0,
$value1 = 1,
{
global $DIR_PLUGINS;
- $candidates = array();
+ $query = "SELECT * FROM %s;";
+ $query = sprintf($query, sql_table('plugin'));
+ $res = DB::getResult($query);
+
+ $installed = array();
+ foreach( $res as $row )
+ {
+ $installed[] = $row['pfile'];
+ }
+
$files = scandir($DIR_PLUGINS);
+ $candidates = array();
foreach ( $files as $file )
{
- if ( preg_match("#^NP_(.*)\.php$#", $file, $matches) )
+ if ( preg_match("#^(NP_.*)\.php$#", $file, $matches) )
{
- $name = $matches[1];
- $query = "SELECT * FROM %s WHERE pfile='%s';";
- $query = sprintf($query, sql_table('plugin'), sql_real_escape_string("{NP_{$name}"));
- $res = sql_query($query);
-
- if ( sql_num_rows($res) == 0 )
+ if ( !in_array($matches[1], $installed) )
{
- $candidates[] = $name;
+ $candidates[] = $matches[1];
}
}
- continue;
}
$this->newPlugCandidates = $candidates;
return (count($candidates) > 0);
}
+
+ /**
+ * AdminActions::pagehead()
+ * Output admin page head
+ *
+ * @param void
+ * @return void
+ */
+ public function parse_pagehead()
+ {
+ global $member, $nucleus, $CONF, $manager;
+
+ $content = $this->parser->skin->getContentFromDB('pagehead');
+ if ( !$content )
+ {
+ $extrahead = Admin::$extrahead;
+ $data = array(
+ 'extrahead' => &$extrahead,
+ 'action' => Admin::$action
+ );
+ $manager->notify('AdminPrePageHead', $data);
+
+ $baseUrl = Entity::hsc($CONF['SkinsURL']);
+
+ /*
+ * TODO: obsoleted
+ if ( !array_key_exists('AdminCSS', $CONF) )
+ {
+ DB::execute("INSERT INTO " . sql_table('config') . " VALUES ('AdminCSS', 'original')");
+ $CONF['AdminCSS'] = 'original';
+ }
+ */
+
+ /* HTTP 1.1 application for no caching */
+ header("Cache-Control: no-cache, must-revalidate");
+ header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
+
+ $root_element = 'html';
+ $charset = i18n::get_current_charset();
+ $locale = preg_replace('#_#', '-', i18n::get_current_locale());
+ $xml_version_info = self::$xml_version_info;
+ $formal_public_identifier = self::$formal_public_identifier;
+ $system_identifier = self::$system_identifier;
+ $xhtml_namespace = self::$xhtml_namespace;
+
+ echo "<?xml version=\"{$xml_version_info}\" encoding=\"{$charset}\" ?>\n";
+ echo "<!DOCTYPE {$root_element} PUBLIC \"{$formal_public_identifier}\" \"{$system_identifier}\">\n";
+ echo "<{$root_element} xmlns=\"{$xhtml_namespace}\" xml:lang=\"{$locale}\" lang=\"{$locale}\">\n";
+ echo "<head>\n";
+ echo '<title>' . Entity::hsc($CONF['SiteName']) . " - Admin</title>\n";
+ /*
+ * TODO: obsoleted
+ echo "<link rel=\"stylesheet\" title=\"Nucleus Admin Default\" type=\"text/css\" href=\"{$baseUrl}admin/defaultadmin/styles/admin_{$CONF["AdminCSS"]}.css\" />\n";
+ */
+ echo "<link rel=\"stylesheet\" title=\"Nucleus Admin Default\" type=\"text/css\" href=\"{$baseUrl}admin/defaultadmin/styles/addedit.css\" />\n";
+ echo "<script type=\"text/javascript\" src=\"{$baseUrl}javascripts/edit.js\"></script>\n";
+ echo "<script type=\"text/javascript\" src=\"{$baseUrl}javascripts/admin.js\"></script>\n";
+ echo "<script type=\"text/javascript\" src=\"{$baseUrl}javascripts/compatibility.js\"></script>\n";
+ echo "{$extrahead}\n";
+ echo "</head>\n\n";
+ echo "<body>\n";
+ echo "<div id=\"adminwrapper\">\n";
+ echo "<div class=\"header\">\n";
+ echo '<h1>' . Entity::hsc($CONF['SiteName']) . "</h1>\n";
+ echo "</div>\n";
+ echo "<div id=\"container\">\n";
+ echo "<div id=\"content\">\n";
+ echo "<div class=\"loginname\">\n";
+
+ if ( !$member->isLoggedIn() )
+ {
+ echo '<a href="index.php?action=showlogin" title="Log in">' . _NOTLOGGEDIN . "</a><br />\n";
+ }
+ else
+ {
+ echo _LOGGEDINAS . ' ' . $member->getDisplayName() ." - <a href='index.php?action=logout'>" . _LOGOUT. "</a><br />\n";
+ echo "<a href='index.php?action=overview'>" . _ADMINHOME . "</a> - ";
+ }
+
+ echo "<a href='".$CONF['IndexURL']."'>"._YOURSITE."</a><br />\n";
+ echo '(';
+
+ if ( !array_key_exists('codename', $nucleus) || empty($nucleus['codename']) )
+ {
+ $codenamestring = '';
+ }
+ else
+ {
+ $codenamestring = ' "' . $nucleus['codename'].'"';
+ }
+
+ if ( $member->isLoggedIn() && $member->isAdmin() )
+ {
+ $checkURL = sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());
+ echo '<a href="' . $checkURL . '" title="' . _ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_TITLE . '">Nucleus CMS ' . $nucleus['version'] . $codenamestring . '</a>';
+
+ $newestVersion = getLatestVersion();
+ $newestCompare = str_replace('/', '.', $newestVersion);
+ $currentVersion = str_replace(array('/','v'), array('.',''), $nucleus['version']);
+
+ if ( $newestVersion && version_compare($newestCompare, $currentVersion) > 0 )
+ {
+ echo "<br />\n";
+ echo '<a style="color:red" href="http://nucleuscms.org/upgrade.php" title="' . _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TITLE . '">';
+ echo _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT . $newestVersion;
+ echo "</a>";
+ }
+ }
+ else
+ {
+ echo "Nucleus CMS {$nucleus['version']}{$codenamestring}";
+ }
+ echo ')';
+ echo '</div>';
+ }
+ else
+ {
+ $this->parser->parse($content);
+ }
+
+ return;
+ }
+
+ /**
+ * AdminActionss::pagefoot()
+ * Output admin page foot include quickmenu
+ *
+ * @param void
+ * @return void
+ */
+ public function parse_pagefoot()
+ {
+ global $action, $member, $manager;
+
+ $content = $this->parser->skin->getContentFromDB('pagefoot');
+ if ( !$content )
+ {
+ $data = array(
+ 'action' => self::$action
+ );
+ $manager->notify('AdminPrePageFoot', $data);
+
+ if ( $member->isLoggedIn() && ($action != 'showlogin') )
+ {
+ echo '<h2>' . _LOGOUT . "</h2>\n";
+ echo "<ul>\n";
+ echo '<li><a href="index.php?action=overview">' . _BACKHOME . "</a></li>\n";
+ echo '<li><a href="index.php?action=logout">' . _LOGOUT . "</a></li>\n";
+ echo "</ul>\n";
+ }
+
+ echo "<div class=\"foot\">\n";
+ echo '<a href="' . _ADMINPAGEFOOT_OFFICIALURL . '">Nucleus CMS</a> © 2002-' . date('Y') . ' ' . _ADMINPAGEFOOT_COPYRIGHT;
+ echo '-';
+ echo '<a href="' . _ADMINPAGEFOOT_DONATEURL . '">' . _ADMINPAGEFOOT_DONATE . "</a>\n";
+ echo "</div>\n";
+
+ echo "<div id=\"quickmenu\">\n";
+
+ if ( ($action != 'showlogin') && ($member->isLoggedIn()) )
+ {
+ echo "<ul>\n";
+ echo '<li><a href="index.php?action=overview">' . _QMENU_HOME . "</a></li>\n";
+ echo "</ul>\n";
+
+ echo '<h2>' . _QMENU_ADD . "</h2>\n";
+ echo "<form method=\"get\" action=\"index.php\">\n";
+ echo "<p>\n";
+ echo "<input type=\"hidden\" name=\"action\" value=\"createitem\" />\n";
+
+ $showAll = requestVar('showall');
+
+ if ( ($member->isAdmin()) && ($showAll == 'yes') )
+ {
+ // Super-Admins have access to all blogs! (no add item support though)
+ $query = "SELECT bnumber as value, bname as text FROM %s ORDER BY bname;";
+ $query = sprintf($query, sql_table('blog'));
+ }
+ else
+ {
+ $query = "SELECT bnumber as value, bname as text FROM %s, %s WHERE tblog=bnumber and tmember=%d ORDER BY bname;";
+ $query = sprintf($query, sql_table('blog'), sql_table('team'), (integer) $member->getID());
+ }
+ $template['name'] = 'blogid';
+ $template['tabindex'] = 15000;
+ $template['extra'] = _QMENU_ADD_SELECT;
+ $template['selected'] = -1;
+ $template['shorten'] = 10;
+ $template['shortenel'] = '';
+ $template['javascript'] = 'onchange="return form.submit()"';
+ showlist($query, 'select', $template);
+
+ echo "</p>\n";
+ echo "</form>\n";
+
+ echo "<h2>{$member->getDisplayName()}</h2>\n";
+ echo "<ul>\n";
+ echo '<li><a href="index.php?action=editmembersettings">' . _QMENU_USER_SETTINGS . "</a></li>\n";
+ echo '<li><a href="index.php?action=browseownitems">' . _QMENU_USER_ITEMS . "</a></li>\n";
+ echo '<li><a href="index.php?action=browseowncomments">' . _QMENU_USER_COMMENTS . "</a></li>\n";
+ echo "</ul>\n";
+
+ if ( $member->isAdmin() )
+ {
+ echo '<h2>' . _QMENU_MANAGE . "</h2>\n";
+ echo "<ul>\n";
+ echo '<li><a href="index.php?action=actionlog">' . _QMENU_MANAGE_LOG . "</a></li>\n";
+ echo '<li><a href="index.php?action=settingsedit">' . _QMENU_MANAGE_SETTINGS . "</a></li>\n";
+ echo '<li><a href="index.php?action=systemoverview">' . _QMENU_MANAGE_SYSTEM . "</a></li>\n";
+ echo '<li><a href="index.php?action=usermanagement">' . _QMENU_MANAGE_MEMBERS . "</a></li>\n";
+ echo '<li><a href="index.php?action=createnewlog">' . _QMENU_MANAGE_NEWBLOG . "</a></li>\n";
+ echo '<li><a href="index.php?action=backupoverview">' . _QMENU_MANAGE_BACKUPS . "</a></li>\n";
+ echo '<li><a href="index.php?action=pluginlist">' . _QMENU_MANAGE_PLUGINS . "</a></li>\n";
+ echo "</ul>\n";
+
+ echo "<h2>" . _QMENU_LAYOUT . "</h2>\n";
+ echo "<ul>\n";
+ echo '<li><a href="index.php?action=skinoverview">' . _QMENU_LAYOUT_SKINS . "</a></li>\n";
+ echo '<li><a href="index.php?action=templateoverview">' . _QMENU_LAYOUT_TEMPL . "</a></li>\n";
+ echo '<li><a href="index.php?action=skinieoverview">' . _QMENU_LAYOUT_IEXPORT . "</a></li>\n";
+ echo "</ul>\n";
+ }
+
+ $data = array('options' => array());
+
+ $manager->notify('QuickMenu', $data);
+
+ if ( count($data['options']) > 0 )
+ {
+ echo "<h2>" . _QMENU_PLUGINS . "</h2>\n";
+ echo "<ul>\n";
+ foreach ( $data['options'] as $option )
+ {
+ echo '<li><a href="' . Entity::hsc($option['url']) . '" title="' . Entity::hsc($option['tooltip']) . '">' . Entity::hsc($option['title']) . "</a></li>\n";
+ }
+ echo "</ul>\n";
+ }
+ }
+ else if ( ($action == 'activate') || ($action == 'activatesetpwd') )
+ {
+
+ echo '<h2>' . _QMENU_ACTIVATE . '</h2>' . _QMENU_ACTIVATE_TEXT;
+ }
+ else
+ {
+ echo '<h2>' . _QMENU_INTRO . '</h2>' . _QMENU_INTRO_TEXT;
+ }
+
+ echo "<!-- quickmenu -->\n";
+ echo "</div>\n";
+
+ echo "<!-- content -->\n";
+ echo "</div>\n";
+
+ echo "<!-- container -->\n";
+ echo "</div>\n";
+
+ echo "<!-- adminwrapper -->\n";
+ echo "</div>\n";
+
+ echo "</body>\n";
+ echo "</html>\n";
+ }
+ else
+ {
+ $this->parser->skin->parse('pagefoot');
+ exit;
+ }
+
+ return;
+ }
}