/** * Prints the user submission lists at the top * * @param string $token CSRF token * @return string HTML for the C&C block * */ function usersubmissions($token) { global $_CONF, $_TABLES, $LANG_ADMIN, $LANG29, $_IMAGE_TYPE; require_once $_CONF['path_system'] . 'lib-admin.php'; $retval = ''; // writing the menu on top $menu_arr = array(array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home'])); $retval .= COM_startBlock($LANG29[13], '', COM_getBlockTemplate('_admin_block', 'header')); $retval .= ADMIN_createMenu($menu_arr, $LANG29['submissions_desc'], $_CONF['layout_url'] . '/images/icons/moderation.' . $_IMAGE_TYPE); // IMPORTANT - If any of the below submission lists change, please // update the function SEC_hasModerationAccess in lib-security.php to // reflect the changes if (SEC_hasRights('story.moderate')) { $retval .= itemlist('story', $token); } if ($_CONF['listdraftstories'] == 1) { if (SEC_hasRights('story.edit')) { $retval .= itemlist('story_draft', $token); } } if ($_CONF['commentsubmission'] == 1) { if (SEC_hasRights('comment.moderate')) { $retval .= itemlist('comment', $token); } } if ($_CONF['usersubmission'] == 1) { if (SEC_hasRights('user.edit') && SEC_hasRights('user.delete')) { $retval .= userlist($token); } } $retval .= PLG_showModerationList($token); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); return $retval; }
/** * Prints the command & control block at the top * * @param string $token CSRF token * @return string HTML for the C&C block * @todo The moderation items should be displayed with the help of ul/li * instead of div's. * */ function commandcontrol($token) { global $_CONF, $_TABLES, $LANG01, $LANG29, $LANG_LOGVIEW, $_IMAGE_TYPE, $_DB_dbms; $retval = ''; $admin_templates = new Template($_CONF['path_layout'] . 'admin/moderation'); $admin_templates->set_file(array('cc' => 'moderation.thtml', 'ccrow' => 'ccrow.thtml', 'ccitem' => 'ccitem.thtml')); $admin_templates->set_var('xhtml', XHTML); $admin_templates->set_var('layout_url', $_CONF['layout_url']); $admin_templates->set_var('site_url', $_CONF['site_url']); $admin_templates->set_var('site_admin_url', $_CONF['site_admin_url']); $retval .= COM_startBlock('Geeklog ' . VERSION . ' -- ' . $LANG29[34], '', COM_getBlockTemplate('_admin_block', 'header')); $showTrackbackIcon = ($_CONF['trackback_enabled'] || $_CONF['pingback_enabled'] || $_CONF['ping_enabled']) && SEC_hasRights('story.ping'); $cc_arr = array(array('condition' => SEC_hasRights('story.edit'), 'url' => $_CONF['site_admin_url'] . '/story.php', 'lang' => $LANG01[11], 'image' => '/images/icons/story.'), array('condition' => SEC_hasRights('block.edit'), 'url' => $_CONF['site_admin_url'] . '/block.php', 'lang' => $LANG01[12], 'image' => '/images/icons/block.'), array('condition' => SEC_hasRights('topic.edit'), 'url' => $_CONF['site_admin_url'] . '/topic.php', 'lang' => $LANG01[13], 'image' => '/images/icons/topic.'), array('condition' => SEC_hasRights('user.edit'), 'url' => $_CONF['site_admin_url'] . '/user.php', 'lang' => $LANG01[17], 'image' => '/images/icons/user.'), array('condition' => SEC_hasRights('group.edit'), 'url' => $_CONF['site_admin_url'] . '/group.php', 'lang' => $LANG01[96], 'image' => '/images/icons/group.'), array('condition' => SEC_hasRights('user.mail'), 'url' => $_CONF['site_admin_url'] . '/mail.php', 'lang' => $LANG01[105], 'image' => '/images/icons/mail.'), array('condition' => SEC_hasRights('syndication.edit'), 'url' => $_CONF['site_admin_url'] . '/syndication.php', 'lang' => $LANG01[38], 'image' => '/images/icons/syndication.'), array('condition' => $showTrackbackIcon, 'url' => $_CONF['site_admin_url'] . '/trackback.php', 'lang' => $LANG01[116], 'image' => '/images/icons/trackback.'), array('condition' => SEC_hasRights('plugin.edit'), 'url' => $_CONF['site_admin_url'] . '/plugins.php', 'lang' => $LANG01[98], 'image' => '/images/icons/plugins.'), array('condition' => SEC_inGroup('Root'), 'url' => $_CONF['site_admin_url'] . '/logview.php', 'lang' => $LANG_LOGVIEW['logview'], 'image' => '/images/icons/logview.')); $admin_templates->set_var('cc_icon_width', floor(100 / ICONS_PER_ROW)); for ($i = 0; $i < count($cc_arr); $i++) { if ($cc_arr[$i]['condition']) { $item = render_cc_item($admin_templates, $cc_arr[$i]['url'], $_CONF['layout_url'] . $cc_arr[$i]['image'] . $_IMAGE_TYPE, $cc_arr[$i]['lang']); $items[$cc_arr[$i]['lang']] = $item; } } // now add the plugins $plugins = PLG_getCCOptions(); for ($i = 0; $i < count($plugins); $i++) { $cur_plugin = current($plugins); $item = render_cc_item($admin_templates, $cur_plugin->adminurl, $cur_plugin->plugin_image, $cur_plugin->adminlabel); $items[$cur_plugin->adminlabel] = $item; next($plugins); } // and finally, add the remaining admin items $docsUrl = $_CONF['site_url'] . '/docs/english/index.html'; if ($_CONF['link_documentation'] == 1) { $doclang = COM_getLanguageName(); $docs = 'docs/' . $doclang . '/index.html'; if (file_exists($_CONF['path_html'] . $docs)) { $docsUrl = $_CONF['site_url'] . '/' . $docs; } } $cc_arr = array(array('condition' => $_CONF['allow_mysqldump'] == 1 && $_DB_dbms == 'mysql' && SEC_inGroup('Root'), 'url' => $_CONF['site_admin_url'] . '/database.php', 'lang' => $LANG01[103], 'image' => '/images/icons/database.'), array('condition' => $_CONF['link_documentation'] == 1, 'url' => $docsUrl, 'lang' => $LANG01[113], 'image' => '/images/icons/docs.'), array('condition' => SEC_inGroup('Root') && $_CONF['link_versionchecker'] == 1, 'url' => 'http://www.geeklog.net/versionchecker.php?version=' . VERSION, 'lang' => $LANG01[107], 'image' => '/images/icons/versioncheck.'), array('condition' => SEC_inGroup('Root'), 'url' => $_CONF['site_admin_url'] . '/configuration.php', 'lang' => $LANG01[129], 'image' => '/images/icons/configuration.')); for ($i = 0; $i < count($cc_arr); $i++) { if ($cc_arr[$i]['condition']) { $item = render_cc_item($admin_templates, $cc_arr[$i]['url'], $_CONF['layout_url'] . $cc_arr[$i]['image'] . $_IMAGE_TYPE, $cc_arr[$i]['lang']); $items[$cc_arr[$i]['lang']] = $item; } } if ($_CONF['sort_admin']) { uksort($items, 'strcasecmp'); } // logout is always the last entry $item = render_cc_item($admin_templates, $_CONF['site_url'] . '/users.php?mode=logout', $_CONF['layout_url'] . '/images/icons/logout.' . $_IMAGE_TYPE, $LANG01[35]); $items[$LANG01[35]] = $item; reset($items); $cols = 0; $cc_main_options = ''; foreach ($items as $key => $val) { $cc_main_options .= $val . LB; $cols++; if ($cols == ICONS_PER_ROW) { $admin_templates->set_var('cc_main_options', $cc_main_options); $admin_templates->parse('cc_rows', 'ccrow', true); $admin_templates->clear_var('cc_main_options'); $cc_main_options = ''; $cols = 0; } } if ($cols > 0) { // "flush out" any unrendered entries $admin_templates->set_var('cc_main_options', $cc_main_options); $admin_templates->parse('cc_rows', 'ccrow', true); $admin_templates->clear_var('cc_main_options'); } $retval .= $admin_templates->finish($admin_templates->parse('output', 'cc')); $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); if (SEC_hasRights('story.moderate')) { $retval .= itemlist('story', $token); } if ($_CONF['listdraftstories'] == 1) { if (SEC_hasRights('story.edit')) { $retval .= draftlist($token); } } if ($_CONF['commentsubmission'] == 1) { if (SEC_hasRights('comment.moderate')) { $retval .= itemlist('comment', $token); } } if ($_CONF['usersubmission'] == 1) { if (SEC_hasRights('user.edit') && SEC_hasRights('user.delete')) { $retval .= userlist($token); } } $retval .= PLG_showModerationList($token); return $retval; }
/** * Generates a series of moderation list for the various object types * * This is the primary function called for the Submissions panel * */ function MODERATE_submissions() { global $_CONF, $LANG01, $LANG29, $LANG_ADMIN, $_IMAGE_TYPE; $retval = COM_startBlock($LANG01[10], '', COM_getBlockTemplate('_admin_block', 'header')); $menu_arr = array(array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home'])); $retval .= ADMIN_createMenu($menu_arr, $LANG29['info'], $_CONF['layout_url'] . '/images/icons/moderation.' . $_IMAGE_TYPE); $token = SEC_createToken(); // user submissions $retval .= MODERATE_ismoderator_user() && MODERATE_submissioncount_user() > 0 && $_CONF['usersubmission'] == 1 ? MODERATE_itemList('user', $token) : ''; // draft story submissions $retval .= plugin_ismoderator_story() && MODERATE_submissioncount_draftstory() > 0 && $_CONF['listdraftstories'] == 1 ? MODERATE_itemList('draftstory', $token) : ''; // story & plugin submissions $retval .= PLG_showModerationList($token); // if empty at this point, we have no submissions to moderate $retval .= empty($retval) ? '<br /><p>' . $LANG29[39] . '</p>' : ''; $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')); return $retval; }