\*======================================================================*/ // ######################## SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); @set_time_limit(0); // ##################### DEFINE IMPORTANT CONSTANTS ####################### define('CVS_REVISION', '$RCSfile$ - $Revision: 76725 $'); @ini_set('display_errors', 'On'); // #################### PRE-CACHE TEMPLATES AND DATA ###################### $phrasegroups = array('attachment_image'); $specialtemplates = array(); // ########################## REQUIRE BACK-END ############################ require_once './global.php'; require_once DIR . '/includes/adminfunctions_attachment.php'; require_once DIR . '/includes/functions_file.php'; require_once DIR . '/packages/vbattach/attach.php'; vB_Router::setRelativePath('../'); // ######################## CHECK ADMIN PERMISSIONS ####################### if (!can_administer('canadminthreads')) { print_cp_no_permission(); } // ############################# LOG ACTION ############################### $vbulletin->input->clean_array_gpc('r', array('attachmentid' => TYPE_INT, 'extension' => TYPE_STR, 'attachpath' => TYPE_STR, 'dowhat' => TYPE_STR)); log_admin_action(iif($vbulletin->GPC['attachmentid'] != 0, 'attachment id = ' . $vbulletin->GPC['attachmentid'], iif(!empty($vbulletin->GPC['extension']), "extension = " . $vbulletin->GPC['extension'], ''))); // ######################################################################## // ######################### START MAIN SCRIPT ############################ // ######################################################################## print_cp_header($vbphrase['attachment_manager']); if (empty($_REQUEST['do'])) { $_REQUEST['do'] = 'intro'; } // ###################### Swap from database to file system and vice versa ##########
/** * Initializes the vB framework. * All framework level objects and services are created so that they are available * throughout the application. This is only done once per actual request. * * Note: If the framework is used this way then there are several limitations. * - If no vB_Bootstrap was created (ie, the admincp), then you cannot render any * views created by the framework. * - VB_ENTRY must be defined to a valid request script that runs the framework * with vB::Main() * - If you are rendering views, try to create all of the views that will be * used before rendering any of them. This optimises template and phrase * fetching. */ public static function init($relative_path = false) { global $vbulletin, $vbphrase; if (self::$initialized) { return; } // Reference legacy registry self::$vbulletin = $vbulletin; // Legacy DB self::$db = $vbulletin->db; // Set a top level exception handler set_exception_handler(array('vB', 'handleException')); // Set unserializer to use spl registered autoloader ini_set('unserialize_callback_func', 'spl_autoload_call'); // Set class autoloader spl_autoload_register(array('vB', 'autoload')); // Legacy language vB_Phrase::setLanguage(!empty(self::$vbulletin->session->vars['languageid']) ? self::$vbulletin->session->vars['languageid'] : intval(self::$vbulletin->options['languageid'])); vB_Phrase::preCache($vbphrase, $GLOBALS['phrasegroups']); // Ensure we have friendly url class require_once DIR . '/includes/class_friendly_url.php'; if ($relative_path) { vB_Router::setRelativePath($relative_path); } // Done self::$initialized = true; }
public static function listNodes($page, $per_page = 10) { global $vbphrase; global $vbulletin; $nodes = self::getContent($page, $per_page); $filtersection = intval($vbulletin->GPC['filter_section']); //We may or may not have started at page 1 $total_records = (($page - 1) * $per_page) + sizeof($nodes); $nodes = array_slice($nodes, 0, $per_page, true); if ($record_count = count($nodes)) { $section = $vbulletin->db->query_first($sql = "SELECT info.title FROM " . TABLE_PREFIX . "cms_node AS node INNER JOIN " . TABLE_PREFIX . "cms_nodeinfo AS info ON info.nodeid = node.nodeid WHERE " . ( $vbulletin->GPC_exists['sectionid'] ? " node.nodeid = " . $vbulletin->GPC['sectionid'] : ($vbulletin->GPC_exists['filter_section'] ? " node.nodeid = " . $filtersection : " node.nodeid IS NULL" ))); $i = 1; } $result = print_form_header('cms_content_admin', '', false, true, 'cms_data', '100%', '_self', true, 'post', 0, false); $result .= "<input type=\"hidden\" id=\"sectionid\" value=\"" . ( $vbulletin->GPC_exists['sectionid'] ? " node.parentnode = " . $vbulletin->GPC['sectionid'] : ($vbulletin->GPC_exists['filter_section'] ? " node.parentnode = " . $filtersection : " node.parentnode IS NULL" )) . "\" name=\"sectionid\"/> <input type=\"hidden\" name=\"sentfrom\" id=\"nodes\" value=\"nodes\"/> <input type=\"hidden\" name=\"id\" id=\"id\" value=\"0\"/>"; $result .= "<div class=\"tcat nodeHeaders\" style=\"width: 100%;margin:auto;\">" . self::getNodeHeaders() . "</div><br />\n"; $result .= "<tr class=\"tcat\"> <td colspan=\"10\" align=\"" . vB_Template_Runtime::fetchStyleVar('left') . "\" class=\"feature_management_header\" style=\"padding:5px;\"> " . $vbphrase['you_are_managing'] . " " . $vbphrase['section'] . ": <span class=\"section_name\">" . $section['title'] . ($vbulletin->GPC_exists['sectionid'] ? '' : '(' . $vbphrase['all_sections'] .')') . "</span>" . " <input type=\"button\" onclick=\"showNodeWindow('filter_nodesection')\" value=\"" . $vbphrase['filter_by_section'] ."\"> </td> </tr>"; $result .= "<tr><td> <table class=\"tborder\" cellpadding=\"4\" border=\"0\" width=\"100%\" align=\"center\" style=\"font-size:11px\">\n"; $bgclass = fetch_row_bgclass(); if ($record_count = count($nodes)) { $result .= "<tr align=\"center\" class=\"thead\">\n"; $result .= "<td class=\"thead\">#</td> <td class=\"thead\"> </td> <td align=\"" . vB_Template_Runtime::fetchStyleVar('left') . "" . vB_Template_Runtime::fetchStyleVar('left') . "\" width=\"33%\" class=\"thead\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=title\" target=\"_self\">" . $vbphrase['title'] . "</a></td> <td class=\"thead\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=class\" target=\"_self\">" . $vbphrase['content_type'] . "</a></td> <td class=\"thead\" width=\"60\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=publicpreview\" target=\"_self\">" . $vbphrase['public_preview'] . "</a></td> <td class=\"thead\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=setpublish\">" . $vbphrase['published'] . "</a></td> <td class=\"thead\">" . $vbphrase['order'] . "</td> <td class=\"thead\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=username\">" . $vbphrase['author'] . "</a></td> <td class=\"thead\" width=\"120\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=publishdate\">" . $vbphrase['date'] . "</a></td> <td class=\"thead\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=viewcount\">" . $vbphrase['viewcount'] . "</a></td> <td class=\"thead\"><a href=\"cms_content_admin.php?do=sort&sentfrom=nodes&sortby=replycount\">" . $vbphrase['comments'] . "</a></td> </tr>"; self::getParentage($nodes, 4); vB_Router::setRelativePath('../'); foreach($nodes as $node) { $content_url = vB_Route::create('vBCms_Route_Content', $node['nodeid'] . '/edit')->getCurrentURL(); $bgclass = fetch_row_bgclass(); $result .= "<tr align=\"center\">\n <input type=\"hidden\" name=\"ids[]\" value=\"" . $node['nodeid'] . "\" /> <td class=\"$bgclass\">" . $i++ . "</td>\n"; $result .= " <td class=\"$bgclass\"><input type=\"checkbox\" name=\"cb_" . $node['nodeid'] . '"/>' . "</td>\n"; $result .= " <td align=\"" . vB_Template_Runtime::fetchStyleVar('left') . "\" class=\"$bgclass\"><a href=\"" . $content_url . "\" target=\"_blank\" >" . self::stripScript($node['title']) . "</a></td>\n"; $result .= " <td class=\"$bgclass\">" . $vbphrase[strtolower($node['class'])] . "</td>\n"; $result .= " <td class=\"$bgclass\"><input type=checkbox name=\"cb_pp_" . $node['nodeid'] . '" ' . (0 == intval($node['publicpreview']) ? '' : 'checked="checked"') . " /></td>\n";; $result .= " <td class=\"$bgclass\"><select name=\"state_" . $node['nodeid']. "\" id=\"state_" . $node['nodeid']. "\" onchange=\"setFormValue('do', 'saveonenodestate'); setFormValue('nodeid', '" . $node['nodeid']. "');document.getElementById('cms_data').submit();\">" . self::getPublishedSelect( intval($node['setpublish']), $node['publishdate']) . "</select></td>\n"; $result .= " <td class=\"$bgclass\"><select name=\"displayorder_" . $node['nodeid'] . "\" onchange=\"setOrder(" . $node['nodeid'] . ", " . $node['parentid'] . ", this.value);\">\n " . self::getOrderSelect($node['displayorder'], $node['parentnode']) . "</select>\n</td>\n"; $result .= " <td align=\"" . vB_Template_Runtime::fetchStyleVar('left') . "\" class=\"$bgclass\">" . $node['username'] . "</td>\n"; $result .= " <td class=\"$bgclass\">" . vbdate($vbulletin->options['dateformat'], $node['publishdate']). "</td>\n"; $result .= " <td class=\"$bgclass\">" . $node['viewcount'] . "</td>\n"; $result .= " <td class=\"$bgclass\">" . intval($node['replycount']) . "</td>\n"; $result .= "</tr>\n"; } //moving the lines below outside of if/else -ch //print_hidden_fields(); //$result .= "</table></td></tr>"; //$result .= self::getNav($per_page, $total_records, $page, $displayfor); } else { vB_Router::setRelativePath('../'); $content_url = vB_Route::create('vBCms_Route_Content'); $result .= "\n<tr><td>\n\n<div style=\"text-align:middle;font-size:16px;font-weight:bold;\" class=\"notFoundMessage\">" . $vbphrase['no_articles_in_this_section'] . " </div>\n\n</td></tr>\n"; } print_hidden_fields(); $result .= "</table></td></tr>\n"; $result .= "</table>"; $result .= self::getNav($per_page, $total_records, $page, 'filter_nodesection', 100, 'page', true, ('cms_content_admin.php' . ($vbulletin->GPC_exists['sectionid'] ? '?sectionid=' . $vbulletin->GPC['sectionid'] : ''))); global $echoform; $echoform = false; $result .= "</form>"; return $result; }