예제 #1
0
function LINK_CAT_list($root)
{
    global $_CONF, $_TABLES, $_USER, $_IMAGE_TYPE, $LANG_ADMIN, $LANG_ACCESS, $LANG_LINKS_ADMIN, $LANG_LINKS, $_LI_CONF;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 'edit', 'sort' => false, 'align' => 'center', 'width' => '25px'), array('text' => $LANG_LINKS_ADMIN[41], 'field' => 'addchild', 'sort' => false, 'align' => 'center', 'width' => '25px'), array('text' => $LANG_LINKS_ADMIN[30], 'field' => 'category', 'sort' => true), array('text' => $LANG_LINKS_ADMIN[33], 'field' => 'tid', 'sort' => true, 'align' => 'center'), array('text' => $LANG_LINKS_ADMIN[61], 'field' => 'owner', 'sort' => true, 'align' => 'center'), array('text' => $LANG_ACCESS['access'], 'field' => 'access', 'sort' => false, 'align' => 'center'), array('text' => $LANG_LINKS_ADMIN[62], 'field' => 'unixdate', 'sort' => true, 'align' => 'center'), array('text' => $LANG_ADMIN['delete'], 'field' => 'delete', 'sort' => false, 'align' => 'center', 'width' => '25px'));
    $defsort_arr = array('field' => 'category', 'direction' => 'asc');
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/plugins/links/category.php?edit=x', 'text' => $LANG_LINKS_ADMIN[52]), array('url' => $_CONF['site_admin_url'] . '/plugins/links/index.php', 'text' => $LANG_LINKS_ADMIN[53]), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']));
    $retval .= COM_startBlock($LANG_LINKS_ADMIN[54], '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG_LINKS_ADMIN[12], plugin_geticon_links());
    $text_arr = array('has_extras' => true, 'form_url' => $_CONF['site_admin_url'] . '/plugins/links/category.php');
    $dummy = array();
    $data_arr = LINK_CAT_list_recursive($dummy, $_LI_CONF['root'], 0);
    $retval .= ADMIN_simpleList('plugin_getListField_categories', $header_arr, $text_arr, $data_arr);
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    return $retval;
}
예제 #2
0
function banner_list_categories($root)
{
    global $_CONF, $_TABLES, $_USER, $_IMAGE_TYPE, $LANG_ADMIN, $LANG_ACCESS, $LANG_BANNER_ADMIN, $LANG_BANNER, $_BAN_CONF;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 'edit', 'sort' => false), array('text' => $LANG_BANNER_ADMIN[44], 'field' => 'addchild', 'sort' => false), array('text' => $LANG_BANNER_ADMIN[30], 'field' => 'bannercategory', 'sort' => true), array('text' => $LANG_ACCESS['access'], 'field' => 'access', 'sort' => false), array('text' => $LANG_BANNER_ADMIN[33], 'field' => 'tid', 'sort' => true));
    $defsort_arr = array('field' => 'category', 'direction' => 'asc');
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/plugins/banner/index.php', 'text' => $LANG_BANNER_ADMIN[53]), array('url' => $_CONF['site_admin_url'] . '/plugins/banner/index.php?mode=edit', 'text' => $LANG_BANNER_ADMIN[51]), array('url' => $_CONF['site_admin_url'] . '/plugins/banner/index.php?validate=enabled', 'text' => $LANG_BANNER_ADMIN[26]), array('url' => $_CONF['site_admin_url'] . '/plugins/banner/bannercategory.php', 'text' => $LANG_BANNER_ADMIN[50]), array('url' => $_CONF['site_admin_url'] . '/plugins/banner/bannercategory.php?mode=edit', 'text' => $LANG_BANNER_ADMIN[52]), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']));
    $retval .= COM_startBlock($LANG_BANNER_ADMIN[54], '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG_BANNER_ADMIN[12], plugin_geticon_banner());
    $text_arr = array('has_extras' => true, 'form_url' => $_CONF['site_admin_url'] . '/plugins/banner/bannercategory.php');
    $dummy = array();
    $data_arr = banner_list_categories_recursive($dummy, $_BAN_CONF['root'], 0);
    $retval .= ADMIN_simpleList('plugin_getListField_bannercategories', $header_arr, $text_arr, $data_arr);
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    return $retval;
}
예제 #3
0
/**
* Displays a list of all the stories that have the 'draft' flag set.
*
* When enabled, this will list all the stories that have been marked as
* 'draft'. Approving a story from this list will clear the draft flag and
* thus publish the story.
*
* @param    string  $token  CSRF token
* @return   string          HTML for the list of draft stories
*
*/
function draftlist($token)
{
    global $_CONF, $_TABLES, $LANG24, $LANG29, $LANG_ADMIN;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $result = DB_query("SELECT sid AS id,title,UNIX_TIMESTAMP(date) AS day,tid FROM {$_TABLES['stories']} WHERE (draft_flag = 1)" . COM_getTopicSQL('AND') . COM_getPermSQL('AND', 0, 3) . " ORDER BY date ASC");
    $nrows = DB_numRows($result);
    $data_arr = array();
    for ($i = 0; $i < $nrows; $i++) {
        $A = DB_fetchArray($result);
        $A['edit'] = $_CONF['site_admin_url'] . '/story.php?mode=edit&amp;sid=' . $A['id'];
        $A['row'] = $i;
        $A['title'] = stripslashes($A['title']);
        $A['tid'] = stripslashes($A['tid']);
        $data_arr[$i] = $A;
    }
    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 0), array('text' => $LANG29[10], 'field' => 'title'), array('text' => $LANG29[14], 'field' => 'day'), array('text' => $LANG29[15], 'field' => 'tid'), array('text' => $LANG29[2], 'field' => 'delete'), array('text' => $LANG29[1], 'field' => 'approve'));
    $text_arr = array('has_menu' => false, 'title' => $LANG29[35] . ' (' . $LANG24[34] . ')', 'help_url' => '', 'no_data' => $LANG29[39], 'form_url' => "{$_CONF['site_admin_url']}/moderation.php");
    $form_arr = array("bottom" => '', "top" => '');
    if ($nrows > 0) {
        $form_arr['bottom'] = '<input type="hidden" name="type" value="draft"' . XHTML . '>' . LB . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"' . XHTML . '>' . LB . '<input type="hidden" name="mode" value="moderation"' . XHTML . '>' . LB . '<input type="hidden" name="count" value="' . $nrows . '"' . XHTML . '>' . '<p align="center"><input type="submit" value="' . $LANG_ADMIN['submit'] . '"' . XHTML . '></p>' . LB;
    }
    $listoptions = array('chkdelete' => true, 'chkfield' => 'id');
    $table = ADMIN_simpleList('ADMIN_getListField_moderation', $header_arr, $text_arr, $data_arr, $listoptions, $form_arr);
    $retval .= $table;
    return $retval;
}
예제 #4
0
function TMCE_getAdminConfigList()
{
    global $_CONF, $_TABLES;
    $fieldfunction = 'TMCE_adminConfigFieldFunction';
    $header_arr = array(array('text' => TMCE_str('admin_edit'), 'field' => 'cid', 'sort' => FALSE), array('text' => TMCE_str('admin_title'), 'field' => 'title', 'sort' => FALSE), array('text' => TMCE_str('admin_theme'), 'field' => 'theme', 'sort' => FALSE), array('text' => TMCE_str('admin_grp_name'), 'field' => 'grp_name', 'sort' => FALSE));
    $text_arr = array('form_url' => $_CONF['site_admin_url'] . '/plugins/tinymce/index.php');
    $data_arr = array();
    $sql = "SELECT cid, title, theme, grp_name " . "FROM {$_TABLES['tinymce_configs']} " . "LEFT JOIN {$_TABLES['groups']} " . "ON group_id = grp_id ";
    $result = DB_query($sql);
    if (!DB_error()) {
        while (($A = DB_fetchArray($result, FALSE)) !== FALSE) {
            $data_arr[] = $A;
        }
    }
    $options = array('chkdelete' => FALSE);
    $form_arr = array();
    return ADMIN_simpleList($fieldfunction, $header_arr, $text_arr, $data_arr, $options, $form_arr);
}
예제 #5
0
/**
* Creates list of uninstalled plugins (if any) and offers install link to them.
*
* @param    string  $token  Security token to use in list
* @return   string          HTML containing list of uninstalled plugins
*
*/
function show_newplugins($token)
{
    global $_CONF, $_TABLES, $LANG32;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $plugins = array();
    $plugins_dir = $_CONF['path'] . 'plugins/';
    $fd = opendir($plugins_dir);
    $index = 1;
    $retval = '';
    $data_arr = array();
    while (($dir = @readdir($fd)) == TRUE) {
        if ($dir != '.' && $dir != '..' && $dir != 'CVS' && substr($dir, 0, 1) != '.' && is_dir($plugins_dir . $dir)) {
            clearstatcache();
            // Check and see if this plugin is installed - if there is a record.
            // If not then it's a new plugin
            if (DB_count($_TABLES['plugins'], 'pi_name', $dir) == 0) {
                $plugin_ok = false;
                $plugin_new_style = false;
                // additionally, check if a 'functions.inc' exists
                if (file_exists($plugins_dir . $dir . '/functions.inc')) {
                    // new plugins will have a autoinstall.php
                    if (file_exists($plugins_dir . $dir . '/autoinstall.php')) {
                        $plugin_ok = true;
                        $plugin_new_style = true;
                    } else {
                        // and finally, since we're going to link to it, check
                        // if an install script exists
                        $adminurl = $_CONF['site_admin_url'];
                        if (strrpos($adminurl, '/') == strlen($adminurl)) {
                            $adminurl = substr($adminurl, 0, -1);
                        }
                        $pos = strrpos($adminurl, '/');
                        if ($pos === false) {
                            // didn't work out - use the URL
                            $admindir = $_CONF['site_admin_url'];
                        } else {
                            $admindir = $_CONF['path_html'] . substr($adminurl, $pos + 1);
                        }
                        $fh = @fopen($admindir . '/plugins/' . $dir . '/install.php', 'r');
                        if ($fh) {
                            fclose($fh);
                            $plugin_ok = true;
                            $plugin_new_style = false;
                        }
                    }
                    if ($plugin_ok) {
                        if ($plugin_new_style) {
                            $url = $_CONF['site_admin_url'] . '/plugins.php' . '?mode=autoinstall&amp;plugin=' . $dir;
                        } else {
                            $url = $_CONF['site_admin_url'] . '/plugins/' . $dir . '/install.php?action=install';
                        }
                        $url .= '&amp;' . CSRF_TOKEN . '=' . $token;
                        $data_arr[] = array('pi_name' => $dir, 'pi_display_name' => plugin_get_pluginname($dir), 'pi_gl_version' => '', 'number' => $index, 'install_link' => $url);
                        $index++;
                    }
                }
            }
        }
    }
    $header_arr = array(array('text' => $LANG32[59], 'field' => 'info_uninstalled'), array('text' => $LANG32[16], 'field' => 'pi_display_name'), array('text' => $LANG32[17], 'field' => 'pi_version'), array('text' => $LANG32[50], 'field' => 'pi_dependencies'), array('text' => $LANG32[22], 'field' => 'install_link'));
    $text_arr = array('title' => $LANG32[14]);
    $retval .= ADMIN_simpleList('ADMIN_getListField_newplugins', $header_arr, $text_arr, $data_arr);
    return $retval;
}
예제 #6
0
    }
    closedir($dir);
}
$header_arr = array(array('text' => $LANG_SX00['plugin'], 'field' => 'title'), array('text' => $LANG33[30], 'field' => 'regdate'), array('text' => $LANG_SX00['action'], 'field' => 'edit'));
$data_arr = array();
foreach ($files as $file) {
    require_once $_CONF['path'] . 'plugins/spamx/' . $file . '.Admin.class.php';
    $CM = new $file();
    $action = 'Edit';
    $link = $CM->linkText;
    $regdate = '-';
    if (strpos($link, 'Edit ') !== false) {
        $link = substr($link, 5);
        $regdate = DB_getItem($_TABLES['spamx'], 'regdate', "name = '{$CM->moduleName}' ORDER BY regdate DESC ");
    } else {
        $action = 'View';
    }
    $data_arr[] = array('title' => $link, 'regdate' => $regdate, 'edit' => COM_createLink($LANG_SX00[strtolower($action)], $_CONF['site_admin_url'] . '/plugins/spamx/index.php?command=' . $file));
}
$data_arr[] = array('title' => $LANG_SX00['documentation'], 'regdate' => '-', 'edit' => COM_createLink($LANG_SX00['view'], plugin_getdocumentationurl_spamx('index')));
$display .= ADMIN_simpleList(null, $header_arr, null, $data_arr);
if (isset($_REQUEST['command'])) {
    $cmd = COM_applyFilter($_REQUEST['command']);
    if (!empty($cmd) && in_array($cmd, $files)) {
        $CM = new $cmd();
        $display .= $CM->display();
    }
}
$display .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
$display = COM_createHTMLDocument($display, array('pagetitle' => $LANG_SX00['plugin_name']));
COM_output($display);
예제 #7
0
파일: block.php 프로젝트: ivywe/geeklog
/**
* Display two lists of blocks, separated by left and right
*
* @return   string  HTML for the two lists
*
*/
function listblocks()
{
    global $_CONF, $_TABLES, $LANG_ADMIN, $LANG21, $_IMAGE_TYPE;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $token = SEC_createToken();
    // writing the menu on top
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/block.php?mode=edit', 'text' => $LANG_ADMIN['create_new']), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']));
    $retval .= COM_startBlock($LANG21[19], '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG21[25], $_CONF['layout_url'] . '/images/icons/block.' . $_IMAGE_TYPE);
    reorderblocks();
    // Left
    // Regular Blocks
    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 'edit', 'sort' => false), array('text' => $LANG21[65], 'field' => 'blockorder', 'sort' => true), array('text' => $LANG21[46], 'field' => 'move', 'sort' => false), array('text' => $LANG_ADMIN['title'], 'field' => 'title', 'sort' => true), array('text' => $LANG21[48], 'field' => 'name', 'sort' => true), array('text' => $LANG_ADMIN['type'], 'field' => 'type', 'sort' => true), array('text' => $LANG_ADMIN['topic'], 'field' => 'topic', 'sort' => true), array('text' => $LANG_ADMIN['enabled'], 'field' => 'is_enabled', 'sort' => true));
    $defsort_arr = array('field' => 'blockorder', 'direction' => 'asc');
    $text_arr = array('has_extras' => true, 'title' => "{$LANG21['20']} ({$LANG21['40']})", 'form_url' => $_CONF['site_admin_url'] . '/block.php');
    $query_arr = array('table' => 'blocks', 'sql' => "SELECT * FROM {$_TABLES['blocks']} WHERE onleft = 1", 'query_fields' => array('title', 'content'), 'default_filter' => COM_getPermSql('AND'));
    // this is a dummy variable so we know the form has been used if all blocks
    // should be disabled on one side in order to disable the last one.
    // The value is the onleft var
    $form_arr = array('top' => '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"' . XHTML . '>', 'bottom' => '<input type="hidden" name="blockenabler" value="1"' . XHTML . '>');
    $retval .= ADMIN_list('blocks', 'ADMIN_getListField_blocks', $header_arr, $text_arr, $query_arr, $defsort_arr, '', $token, '', $form_arr);
    // Dynamic blocks
    $dyn_header_arr = array(array('text' => $LANG21[65], 'field' => 'blockorder', 'sort' => true), array('text' => $LANG21[69], 'field' => 'plugin', 'sort' => true), array('text' => $LANG_ADMIN['title'], 'field' => 'title', 'sort' => true), array('text' => $LANG21[48], 'field' => 'name', 'sort' => true), array('text' => $LANG_ADMIN['type'], 'field' => 'type', 'sort' => true), array('text' => $LANG_ADMIN['topic'], 'field' => 'topic', 'sort' => true), array('text' => $LANG_ADMIN['enabled'], 'field' => 'is_enabled', 'sort' => true));
    $dyn_text_arr = array('title' => "{$LANG21['22']} ({$LANG21['40']})", 'form_url' => $_CONF['site_admin_url'] . '/block.php');
    $leftblocks = PLG_getBlocksConfig('left', '');
    // Sort Dynamic Blocks on Block Order
    usort($leftblocks, "cmpDynamicBlocks");
    $retval .= ADMIN_simpleList('ADMIN_getListField_dynamicblocks', $dyn_header_arr, $dyn_text_arr, $leftblocks, '', $form_arr);
    // Right
    // Regular Blocks
    $query_arr = array('table' => 'blocks', 'sql' => "SELECT * FROM {$_TABLES['blocks']} WHERE onleft = 0", 'query_fields' => array('title', 'content'), 'default_filter' => COM_getPermSql('AND'));
    $text_arr = array('has_extras' => true, 'title' => "{$LANG21['20']} ({$LANG21['41']})", 'form_url' => $_CONF['site_admin_url'] . '/block.php');
    // this is a dummy-variable so we know the form has been used if all blocks should be disabled
    // on one side in order to disable the last one. The value is the onleft var
    $form_arr = array('top' => '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"' . XHTML . '>', 'bottom' => '<input type="hidden" name="blockenabler" value="0"' . XHTML . '>');
    $retval .= ADMIN_list('blocks', 'ADMIN_getListField_blocks', $header_arr, $text_arr, $query_arr, $defsort_arr, '', $token, '', $form_arr);
    // Dynamic blocks
    $dyn_text_arr = array('title' => "{$LANG21['22']} ({$LANG21['41']})", 'form_url' => $_CONF['site_admin_url'] . '/block.php');
    $rightblocks = PLG_getBlocksConfig('right', '');
    // Sort Dynamic Blocks on Block Order
    usort($rightblocks, "cmpDynamicBlocks");
    $retval .= ADMIN_simpleList('ADMIN_getListField_dynamicblocks', $dyn_header_arr, $dyn_text_arr, $rightblocks, '', $form_arr);
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    return $retval;
}
예제 #8
0
/**
* List all backups, i.e. all files ending in .sql
*
* @return   string      HTML for the list of files or an error when not writable
*
*/
function listbackups()
{
    global $_CONF, $_TABLES, $_IMAGE_TYPE, $LANG08, $LANG_ADMIN, $LANG_DB_BACKUP, $_DB_dbms;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    if (is_writable($_CONF['backup_path'])) {
        $backups = array();
        $fd = opendir($_CONF['backup_path']);
        $index = 0;
        while (false !== ($file = @readdir($fd))) {
            if ($file != '.' && $file != '..' && $file != 'CVS' && preg_match('/\\.sql$/i', $file)) {
                $index++;
                clearstatcache();
                $backups[] = $file;
            }
        }
        // AS, 2004-03-29 - Sort backup files by date, newest first.
        // Order given by 'readdir' might not be correct.
        usort($backups, 'compareBackupFiles');
        $data_arr = array();
        $thisUrl = $_CONF['site_admin_url'] . '/database.php';
        $num_backups = count($backups);
        for ($i = 0; $i < $num_backups; $i++) {
            $downloadUrl = $thisUrl . '?mode=download&amp;file=' . urlencode($backups[$i]);
            $downloadLink = COM_createLink($backups[$i], $downloadUrl, array('title' => $LANG_DB_BACKUP['download']));
            $backupfile = $_CONF['backup_path'] . $backups[$i];
            $backupfilesize = COM_numberFormat(filesizeHelper($backupfile)) . ' <b>' . $LANG_DB_BACKUP['bytes'] . '</b>';
            $data_arr[$i] = array('file' => $downloadLink, 'size' => $backupfilesize, 'filename' => $backups[$i]);
        }
        $token = SEC_createToken();
        $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/database.php?mode=backup&amp;' . CSRF_TOKEN . '=' . $token, 'text' => $LANG_ADMIN['create_new']));
        if ($_DB_dbms == 'mysql') {
            $menu_arr[] = array('url' => $thisUrl . '?mode=optimize', 'text' => $LANG_DB_BACKUP['optimize_menu']);
            if (innodb_supported()) {
                $menu_arr[] = array('url' => $thisUrl . '?mode=innodb', 'text' => $LANG_DB_BACKUP['convert_menu']);
            }
        }
        $menu_arr[] = array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']);
        $retval .= COM_startBlock($LANG_DB_BACKUP['last_ten_backups'], '', COM_getBlockTemplate('_admin_block', 'header'));
        $retval .= ADMIN_createMenu($menu_arr, "<p>{$LANG_DB_BACKUP['db_explanation']}</p>" . '<p>' . sprintf($LANG_DB_BACKUP['total_number'], $index) . '</p>', $_CONF['layout_url'] . '/images/icons/database.' . $_IMAGE_TYPE);
        $header_arr = array(array('text' => $LANG_DB_BACKUP['backup_file'], 'field' => 'file'), array('text' => $LANG_DB_BACKUP['size'], 'field' => 'size'));
        $text_arr = array('form_url' => $thisUrl);
        $form_arr = array('bottom' => '', 'top' => '');
        if ($num_backups > 0) {
            $form_arr['bottom'] = '<input type="hidden" name="mode" value="delete"' . XHTML . '>' . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"' . XHTML . '>' . LB;
        }
        $listoptions = array('chkdelete' => true, 'chkminimum' => 0, 'chkfield' => 'filename');
        $retval .= ADMIN_simpleList('', $header_arr, $text_arr, $data_arr, $listoptions, $form_arr);
        $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    } else {
        $retval .= COM_showMessageText($LANG_DB_BACKUP['no_access'], $LANG08[06]);
        COM_errorLog($_CONF['backup_path'] . ' is not writable.', 1);
    }
    return $retval;
}
예제 #9
0
                $testText = strip_tags($testText);
                $html2txt = new html2text($testText, false);
                $testText = trim($html2txt->get_text());
                $lastpostinfogll = htmlspecialchars(preg_replace('#\\r?\\n#', '<br>', strip_tags(substr($testText, 0, $_FF_CONF['contentinfo_numchars']) . '...')));
            }
            $link = '<a class="' . COM_getTooltipStyle() . '" style="text-decoration:none; white-space:nowrap;" href="' . $_CONF['site_url'] . '/forum/viewtopic.php?showtopic=' . $topic_id . '&amp;lastpost=true#' . $lastid . '" title="' . htmlspecialchars($P['subject']) . '::' . $lastpostinfogll . '" rel="nofollow">';
            $topiclink = '<a class="' . COM_getTooltipStyle() . '" style="text-decoration:none;" href="' . $_CONF['site_url'] . '/forum/viewtopic.php?showtopic=' . $topic_id . '" title="' . htmlspecialchars($P['subject']) . '::' . $topicinfo . '">' . $P['subject'] . '</a>';
            $dt->setTimestamp($P['date']);
            $tdate = $dt->format($_FF_CONF['default_Datetime_format'], true);
            $data_arr[] = array('forum' => '<a href="' . $_CONF['site_url'] . '/forum/index.php?forum=' . $P['forum_id'] . '">' . $P['forum_name'] . '</a>', 'subject' => $topiclink, 'date' => $link . $tdate . '</a>');
            if ($displayrecs >= 100) {
                break;
            }
        }
    }
    $retval .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    $display .= $retval;
} else {
    $retval = '';
    $header_arr = array(array('text' => 'User', 'field' => 'username', 'sort' => true), array('text' => 'Registered', 'field' => 'regdate', 'sort' => false), array('text' => 'Posts', 'field' => 'posts', 'sort' => false), array('text' => 'Email', 'field' => 'email', 'sort' => false), array('text' => 'WWW', 'field' => 'homepage', 'sort' => false), array('text' => 'Last', 'field' => 'lastpost', 'sort' => false));
    $form_url = $_CONF['site_url'] . '/forum/memberlist.php';
    $form_url .= $chkactivity ? '?chkactivity=1' : '';
    $text_arr = array('has_extras' => true, 'form_url' => $form_url, 'help_url' => '', 'nowrap' => 'date');
    $defsort_arr = array('field' => 'username', 'direction' => 'ASC');
    if ($chkactivity) {
        $sql = "SELECT user.uid,user.uid,user.username,user.regdate,user.email,user.homepage, count(*) as posts, userprefs.emailfromuser ";
        $sql .= " FROM {$_TABLES['users']} user, {$_TABLES['userprefs']} userprefs, {$_TABLES['ff_topic']} topic WHERE";
        $sql .= " user.uid <> 1 AND user.status = 3 AND user.uid=topic.uid AND user.uid=userprefs.uid ";
        $sql .= "GROUP by user.uid ";
    } else {
예제 #10
0
function _displayVersionData()
{
    global $_CONF, $_USER, $LANG_UPGRADE, $LANG01, $LANG_FILECHECK, $LANG_ADMIN, $_PLUGIN_INFO;
    $retval = '';
    $upToDate = 0;
    $classCounter = 0;
    $pluginInfo = '';
    list($upToDate, $pluginsUpToDate, $pluginData) = _checkVersion();
    $T = new Template($_CONF['path_layout'] . 'admin');
    $T->set_file('page', 'vercheck.thtml');
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/vercheck.php', 'text' => $LANG_UPGRADE['recheck']), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']));
    $retval .= COM_startBlock($LANG_UPGRADE['title'], '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG_UPGRADE['desc'], $_CONF['layout_url'] . '/images/icons/versioncheck.png');
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    switch ($upToDate) {
        case 0:
            $alertIcon = $_CONF['layout_url'] . '/images/alert.png';
            $statusMsg = $LANG_UPGRADE['upgrade_title'];
            $statusText = sprintf($LANG_UPGRADE['upgrade'], $pluginData['glfusioncms']['installed_version'], $pluginData['glfusioncms']['latest_version']);
            break;
        case 1:
            $alertIcon = $_CONF['layout_url'] . '/images/check.png';
            $statusMsg = $LANG_UPGRADE['uptodate_title'];
            $statusText = $LANG_UPGRADE['uptodate'];
            break;
        case 2:
            $alertIcon = $_CONF['layout_url'] . '/images/alert.png';
            $statusMsg = $LANG_UPGRADE['unknown_title'];
            $statusText = sprintf($LANG_UPGRADE['unknown'], $pluginData['glfusioncms']['installed_version']);
            break;
        default:
            $alertIcon = $_CONF['layout_url'] . '/images/alert.png';
            $statusMsg = $LANG_UPGRADE['error_title'];
            $statusText = $LANG_UPGRADE['error'];
            break;
    }
    $T->set_var(array('alerticon' => $alertIcon, 'statusmsg' => $statusMsg, 'statustext' => $statusText));
    if ($pluginsUpToDate != -1) {
        $pluginInfo .= '<div style="margin-top:10px;"><h3>' . $LANG_UPGRADE['plugin_title'] . '</h3>';
        $dt = new Date('now', $_USER['tzid']);
        $data_arr = array();
        $text_arr = array();
        $header_arr = array(array('text' => $LANG_UPGRADE['plugin'], 'field' => 'display_name'), array('text' => $LANG_UPGRADE['installed_version'], 'field' => 'installed_version'), array('text' => $LANG_UPGRADE['latest_version'], 'field' => 'latest_version'), array('text' => $LANG_UPGRADE['notes'], 'field' => 'notes'));
        asort($pluginData);
        foreach ($pluginData as $plugin) {
            if ($plugin['plugin'] == 'glfusioncms') {
                continue;
            }
            $dt->setTimestamp($plugin['release_date']);
            if ($plugin['latest_version'] == 0) {
                $upToDate = -1;
            } else {
                $upToDate = _upToDate($plugin['latest_version'], $plugin['installed_version']);
            }
            switch ($upToDate) {
                case 0:
                    $notes = sprintf($LANG_UPGRADE['was_released'], $plugin['latest_version'], $dt->format("M d, Y", true));
                    $class = "notok";
                    if (strlen($plugin['url']) > 0) {
                        $latest_version = '<a href="' . $plugin['url'] . '" target="_blank">' . $plugin['latest_version'] . '</a>';
                    } else {
                        $latest_version = $plugin['latest_version'];
                    }
                    break;
                case 1:
                    $notes = $LANG_UPGRADE['plugin_uptodate'];
                    $class = "yes";
                    $latest_version = $plugin['latest_version'];
                    break;
                case 2:
                    $notes = $LANG_UPGRADE['plugin_newer'];
                    $class = "yes";
                    $latest_version = $plugin['latest_version'];
                    break;
                default:
                    $notes = $LANG_UPGRADE['no_data'];
                    $class = "ok";
                    $latest_version = '???';
                    break;
            }
            $data_arr[] = array('display_name' => $plugin['display_name'], 'installed_version' => $plugin['installed_version'], 'latest_version' => '<span class="' . $class . '">' . $latest_version . '</span>', 'url' => $plugin['url'], 'notes' => $notes, 'release_date' => $plugin['release_date'], 'update_available' => $upToDate);
        }
        $pluginInfo .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
        $pluginInfo .= '</div>';
    }
    $T->parse('output', 'page');
    $retval .= $T->finish($T->get_var('output'));
    $retval .= $pluginInfo;
    return $retval;
}
예제 #11
0
function fncListReserv()
{
    global $_CONF;
    global $_TABLES;
    global $LANG_ADMIN;
    global $MESSAGE;
    global $LANG_ASSIST_ADMIN;
    global $LANG_ASSIST_TOENV;
    $retval = '';
    $files = glob("{$_CONF['path_data']}assist_reserv_*", GLOB_NOCHECK);
    if (is_array($files)) {
        if (count($files) > 0 && $files[0] != "{$_CONF['path_data']}assist_reserv_*") {
            //ヘッダ:編集~
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['reservlist_no'], 'field' => 'no');
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['reservlist_datetime'], 'field' => 'datetime');
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['reservlist_range'], 'field' => 'range');
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['toenv'], 'field' => 'toenv');
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['selectgroup'], 'field' => 'selectgroup');
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['reservlist_sid'], 'field' => 'sid');
            $header_arr[] = array('text' => $LANG_ASSIST_ADMIN['reservlist_cancel'], 'field' => 'reservcancel');
            //
            $text_arr = array('has_menu' => false, 'title' => $LANG_ASSIST_ADMIN['reservlist_title']);
            //
            $data_arr = array();
            $token = SEC_createToken();
            foreach ($files as $file) {
                $filename = basename($file);
                $aname = explode('_', $filename);
                if (!empty($aname[2])) {
                    $A = array();
                    $A['no'] = $aname[2];
                    $A['datetime'] = date('Y-m-d H:i', $A['no']);
                    //
                    $uidfrom = DB_getItem($_TABLES['vars'], 'value', "name = 'assist_uf_{$A['no']}'");
                    $uidfrom = COM_stripslashes($uidfrom);
                    $uidto = DB_getItem($_TABLES['vars'], 'value', "name = 'assist_ut_{$A['no']}'");
                    $uidto = COM_stripslashes($uidto);
                    $lastid = DB_getItem($_TABLES['vars'], 'value', "name = 'assist_li_{$A['no']}'");
                    $lastid = COM_stripslashes($lastid);
                    $A['range'] = $uidfrom . ' -&gt; ' . $uidto;
                    if ($lastid != 0) {
                        $A['range'] .= "(" . $lastid . ")";
                    }
                    //
                    $toenv = DB_getItem($_TABLES['vars'], 'value', "name = 'assist_te_{$A['no']}'");
                    $toenv = COM_stripslashes($toenv);
                    $A['toenv'] = $LANG_ASSIST_TOENV[$toenv];
                    //
                    $selectgroup = DB_getItem($_TABLES['vars'], 'value', "name = 'assist_sg_{$A['no']}'");
                    $selectgroup = COM_stripslashes($selectgroup);
                    if ($selectgroup === "99999") {
                        $A['selectgroup'] = $LANG_ASSIST_ADMIN['wkymlmguser_user'];
                    } else {
                        $A['selectgroup'] = DB_getItem($_TABLES['groups'], 'grp_name', "grp_id = '{$selectgroup}'");
                    }
                    //
                    $sid = DB_getItem($_TABLES['vars'], 'value', "name = 'assist_si_{$A['no']}'");
                    $sid = COM_stripslashes($sid);
                    $title = DB_getItem($_TABLES['stories'], 'title', "sid = '{$sid}'");
                    $title = stripslashes(str_replace('$', '&#36;', $title));
                    $A['sid'] = COM_createLink($title, COM_buildUrl($_CONF['site_url'] . "/article.php?story={$sid}"));
                    //
                    $iconimg = "<img src=\"{$_CONF['layout_url']}/images/deleteitem.png\" border=\"0\"";
                    $iconimg .= "alt=\"{$LANG_ADMIN['delete']}\" title=\"{$LANG_ADMIN['delete']}\">";
                    $url = "{$_CONF['site_admin_url']}/plugins/assist/" . THIS_SCRIPT . "?";
                    $url .= "mode=reservcancel&amp;id={$A['no']}&amp;" . CSRF_TOKEN . "={$token}";
                    $attr = array('onClick' => "return confirm('{$MESSAGE[76]}');");
                    $A['reservcancel'] = COM_createLink($iconimg, $url, $attr);
                    //
                    $data_arr[] = $A;
                }
            }
            $retval .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
        }
    }
    return $retval;
}
예제 #12
0
function _checkEnvironment()
{
    global $_CONF, $_TABLES, $_PLUGINS, $_SYSTEM, $LANG_ADMIN, $LANG_ENVCHECK, $_SCRIPTS;
    $retval = '';
    $permError = 0;
    $T = new Template($_CONF['path_layout'] . 'admin');
    $T->set_file('page', 'envcheck.thtml');
    $_SCRIPTS->setJavaScriptLibrary('jquery');
    $javascript = '
                    $(document).ready(function(){
                      $("#toggle_phpinfo").click(function(){
                        $("#panel_phpinfo").slideToggle("slow");
                      });
                    });';
    $_SCRIPTS->setJavascript($javascript, true);
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/envcheck.php', 'text' => $LANG_ENVCHECK['recheck']), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']));
    $retval .= COM_startBlock($LANG_ENVCHECK['hosting_env'], '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG_ENVCHECK['php_warning'], $_CONF['layout_url'] . '/images/icons/envcheck.png');
    // ***********************************************
    // PHP Settings Section - First we will validate the general environment.
    $header_arr = array(array('text' => $LANG_ENVCHECK['setting'], 'field' => 'settings'), array('text' => $LANG_ENVCHECK['current'], 'field' => 'current'), array('text' => $LANG_ENVCHECK['recommended'], 'field' => 'recommended'), array('text' => $LANG_ENVCHECK['notes'], 'field' => 'notes'));
    $text_arr = array('has_menu' => false, 'title' => $LANG_ENVCHECK['php_settings'], 'form_url' => "{$_CONF['site_admin_url']}/envcheck.php");
    $data_arr = array();
    if (_phpOutOfDate()) {
        $current = '<span class="notok">' . phpversion() . '</span>';
    } else {
        $current = '<span class="yes">' . phpversion() . '</span>';
    }
    $data_arr[] = array('settings' => $LANG_ENVCHECK['php_version'], 'current' => $current, 'recommended' => '5.2.0+', 'notes' => $LANG_ENVCHECK['php_req_version']);
    $rg = ini_get('register_globals');
    $sm = ini_get('safe_mode');
    $ob = ini_get('open_basedir');
    $current = $rg == 1 ? '<span class="notok">' . $LANG_ENVCHECK['on'] . '</span>' : '<span class="yes">' . $LANG_ENVCHECK['off'] . '</span>';
    $data_arr[] = array('settings' => 'register_globals', 'current' => $current, 'recommended' => $LANG_ENVCHECK['off'], 'notes' => $LANG_ENVCHECK['register_globals']);
    $current = $sm == 1 ? '<span class="notok">' . $LANG_ENVCHECK['on'] . '</span>' : '<span class="yes">' . $LANG_ENVCHECK['off'] . '</span>';
    $data_arr[] = array('settings' => 'safe_mode', 'current' => $current, 'recommended' => $LANG_ENVCHECK['off'], 'notes' => $LANG_ENVCHECK['safe_mode']);
    $ob = ini_get('open_basedir');
    if ($ob == '') {
        $open_basedir_restriction = 0;
    } else {
        $open_basedir_restriction = 1;
        $open_basedir_directories = $ob;
    }
    $current = $ob == '' ? '<span class="yes">' . $LANG_ENVCHECK['off'] . '</span>' : '<span class="notok">' . $LANG_ENVCHECK['enabled'] . '</span>';
    $data_arr[] = array('settings' => 'open_basedir', 'current' => $current, 'recommended' => $LANG_ENVCHECK['off'], 'notes' => $LANG_ENVCHECK['open_basedir']);
    $memory_limit = _return_bytes(ini_get('memory_limit'));
    $memory_limit_print = $memory_limit / 1024 / 1024;
    $current = $memory_limit < 50331648 ? '<span class="notok">' . $memory_limit_print . 'M</span>' : '<span class="yes">' . $memory_limit_print . 'M</span>';
    $data_arr[] = array('settings' => 'memory_limit', 'current' => $current, 'recommended' => '48M', 'notes' => $LANG_ENVCHECK['memory_limit']);
    $fu = ini_get('file_uploads');
    $current = $fu == 1 ? '<span class="yes">' . $LANG_ENVCHECK['on'] . '</span>' : '<span class="notok">' . $LANG_ENVCHECK['off'] . '</span>';
    $data_arr[] = array('settings' => 'file_uploads', 'current' => $current, 'recommended' => $LANG_ENVCHECK['on'], 'notes' => $LANG_ENVCHECK['file_uploads']);
    $upload_limit = _return_bytes(ini_get('upload_max_filesize'));
    $upload_limit_print = $upload_limit / 1024 / 1024;
    $current = $upload_limit < 8388608 ? '<span class="notok">' . $upload_limit_print . 'M</span>' : '<span class="yes">' . $upload_limit_print . 'M</span>';
    $data_arr[] = array('settings' => 'upload_max_filesize', 'current' => $current, 'recommended' => '8M', 'notes' => $LANG_ENVCHECK['upload_max_filesize']);
    $post_limit = _return_bytes(ini_get('post_max_size'));
    $post_limit_print = $post_limit / 1024 / 1024;
    $current = $post_limit < 8388608 ? '<span class="notok">' . $post_limit_print . 'M</span>' : '<span class="yes">' . $post_limit_print . 'M</span>';
    $data_arr[] = array('settings' => 'post_max_size', 'current' => $current, 'recommended' => '8M', 'notes' => $LANG_ENVCHECK['post_max_size']);
    $max_execution_time = ini_get('max_execution_time');
    $current = $max_execution_time < 30 ? '<span class="notok">' . $max_execution_time . ' secs</span>' : '<span class="yes">' . $max_execution_time . ' secs</span>';
    $data_arr[] = array('settings' => 'max_execution_time', 'current' => $current, 'recommended' => '30 secs', 'notes' => $LANG_ENVCHECK['max_execution_time']);
    $admin_list = ADMIN_simpleList('', $header_arr, $text_arr, $data_arr);
    $T->set_var('php_settings_list', $admin_list);
    // ***********************************************
    // Libraries
    $header_arr = array(array('text' => $LANG_ENVCHECK['item'], 'field' => 'item'), array('text' => $LANG_ENVCHECK['status'], 'field' => 'status'), array('text' => $LANG_ENVCHECK['notes'], 'field' => 'notes'));
    $text_arr = array('has_menu' => false, 'title' => $LANG_ENVCHECK['libraries'], 'form_url' => "{$_CONF['site_admin_url']}/envcheck.php");
    $data_arr = array();
    if (extension_loaded('openssl')) {
        $data_arr[] = array('item' => $LANG_ENVCHECK['openssl_library'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['openssl_ok']);
    } else {
        $data_arr[] = array('item' => $LANG_ENVCHECK['openssl_library'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['openssl_not_found']);
    }
    if ($sm != 1 && $open_basedir_restriction != 1) {
        switch ($_CONF['image_lib']) {
            case 'imagemagick':
                // ImageMagick
                if (PHP_OS == "WINNT") {
                    $binary = "/convert.exe";
                } else {
                    $binary = "/convert";
                }
                clearstatcache();
                if (!@file_exists($_CONF['path_to_mogrify'] . $binary)) {
                    $data_arr[] = array('item' => $LANG_ENVCHECK['imagemagick'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['im_not_found']);
                } else {
                    $data_arr[] = array('item' => $LANG_ENVCHECK['imagemagick'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['im_ok']);
                }
                break;
            case 'gdlib':
                // GD Libs
                if ($gdv = gdVersion()) {
                    if ($gdv >= 2) {
                        $data_arr[] = array('item' => $LANG_ENVCHECK['gd_lib'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['gd_ok']);
                    } else {
                        $data_arr[] = array('item' => $LANG_ENVCHECK['gd_lib'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['gd_v1']);
                    }
                } else {
                    $data_arr[] = array('item' => $LANG_ENVCHECK['gd_lib'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['gd_not_found']);
                }
                break;
            case 'netpbm':
                // NetPBM
                if (PHP_OS == "WINNT") {
                    $binary = "/jpegtopnm.exe";
                } else {
                    $binary = "/jpegtopnm";
                }
                clearstatcache();
                if (!@file_exists($_CONF['path_to_netpbm'] . $binary)) {
                    $data_arr[] = array('item' => $LANG_ENVCHECK['netpbm'], 'status' => '<span class="notok">' . $LANG_ENVCHECK['not_found'] . '</span>', 'notes' => $LANG_ENVCHECK['np_not_found']);
                } else {
                    $data_arr[] = array('item' => $LANG_ENVCHECK['netpbm'], 'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>', 'notes' => $LANG_ENVCHECK['np_ok']);
                }
                break;
            default:
                $data_arr[] = array('item' => $LANG_ENVCHECK['graphics'], 'status' => $LANG_ENVCHECK['not_checked'], 'notes' => $LANG_ENVCHECK['not_used_note']);
        }
        /* Left incase we decided to use jhead and/or jpegtran Program in future
                if ( $_CONF['jhead_enabled'] ) {
                    if (PHP_OS == "WINNT") {
                        $binary = "/jhead.exe";
                    } else {
                        $binary = "/jhead";
                    }
                    clearstatcache();
                    if (! @file_exists( $_CONF['path_to_jhead'] . $binary ) ) {
                        $data_arr[] = array(
                            'item' => $LANG_ENVCHECK['jhead'],
                            'status' =>  '<span class="notok">' .  $LANG_ENVCHECK['not_found'] . '</span>',
                            'notes'     => $LANG_ENVCHECK['jhead_not_found'],
                        );
                    } else {
                        $data_arr[] = array(
                            'item'      => $LANG_ENVCHECK['jhead'],
                            'status'    => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>',
                            'notes'     => $LANG_ENVCHECK['jhead_ok'],
                        );
                    }
                }
        
                if ( $_CONF['jpegtrans_enabled'] ) {
                    if (PHP_OS == "WINNT") {
                        $binary = "/jpegtran.exe";
                    } else {
                        $binary = "/jpegtran";
                    }
                    clearstatcache();
                    if (! @file_exists( $_CONF['path_to_jpegtrans'] . $binary ) ) {
                        $data_arr[] = array(
                            'item'   => $LANG_ENVCHECK['jpegtran'],
                            'status' => '<span class="notok">' .  $LANG_ENVCHECK['not_found'] . '</span>',
                            'notes'  => $LANG_ENVCHECK['jpegtran_not_found'],
                        );
                    } else {
                        $data_arr[] = array(
                            'item'   => $LANG_ENVCHECK['jpegtran'],
                            'status' => '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>',
                            'notes'  => $LANG_ENVCHECK['jpegtran_ok'],
                        );
                    }
                }
                */
    } else {
        $data_arr[] = array('item' => $LANG_ENVCHECK['graphics'], 'status' => $LANG_ENVCHECK['not_checked'], 'notes' => $LANG_ENVCHECK['bypass_note']);
    }
    $admin_list = ADMIN_simpleList('', $header_arr, $text_arr, $data_arr);
    $T->set_var('graphics_list', $admin_list);
    // ***********************************************
    // Directory / File Permissions
    $header_arr = array(array('text' => $LANG_ENVCHECK['location'], 'field' => 'location'), array('text' => $LANG_ENVCHECK['status'], 'field' => 'status'));
    $text_arr = array('has_menu' => false, 'title' => $LANG_ENVCHECK['filesystem_check'], 'form_url' => "{$_CONF['site_admin_url']}/envcheck.php");
    $data_arr = array();
    // extract syndication storage path
    $feedpath = $_CONF['rdf_file'];
    $pos = strrpos($feedpath, '/');
    $feedPath = substr($feedpath, 0, $pos + 1);
    $file_list = array($_CONF['path_data'], $_CONF['path_log'] . 'error.log', $_CONF['path_log'] . 'access.log', $_CONF['path_log'] . 'captcha.log', $_CONF['path_log'] . 'spamx.log', $_CONF['path_log'] . '404.log', $_CONF['path_data'] . 'layout_cache/', $_CONF['path_html'], $feedPath, $_CONF['rdf_file'], $_CONF['path_html'] . 'images/articles/', $_CONF['path_html'] . 'images/topics/', $_CONF['path_html'] . 'images/userphotos/', $_CONF['path_html'] . 'images/library/File/', $_CONF['path_html'] . 'images/library/Flash/', $_CONF['path_html'] . 'images/library/Image/', $_CONF['path_html'] . 'images/library/Media/');
    /* For Media Gallery Plugin - left in incase add plugin api checks in future
        $mg_file_list = array($_CONF['path'].'plugins/mediagallery/tmp/',
                            $_MG_CONF['path_mediaobjects'],
                            $_MG_CONF['path_mediaobjects'].'covers/',
                            $_MG_CONF['path_mediaobjects'].'orig/',
                            $_MG_CONF['path_mediaobjects'].'disp/',
                            $_MG_CONF['path_mediaobjects'].'tn/',
                            $_MG_CONF['path_mediaobjects'].'orig/0/',
                            $_MG_CONF['path_mediaobjects'].'disp/0/',
                            $_MG_CONF['path_mediaobjects'].'tn/0/',
                            $_MG_CONF['path_mediaobjects'].'orig/1/',
                            $_MG_CONF['path_mediaobjects'].'disp/1/',
                            $_MG_CONF['path_mediaobjects'].'tn/1/',
                            $_MG_CONF['path_mediaobjects'].'orig/2/',
                            $_MG_CONF['path_mediaobjects'].'disp/2/',
                            $_MG_CONF['path_mediaobjects'].'tn/2/',
                            $_MG_CONF['path_mediaobjects'].'orig/3/',
                            $_MG_CONF['path_mediaobjects'].'disp/3/',
                            $_MG_CONF['path_mediaobjects'].'tn/3/',
                            $_MG_CONF['path_mediaobjects'].'orig/4/',
                            $_MG_CONF['path_mediaobjects'].'disp/4/',
                            $_MG_CONF['path_mediaobjects'].'tn/4/',
                            $_MG_CONF['path_mediaobjects'].'orig/5/',
                            $_MG_CONF['path_mediaobjects'].'disp/5/',
                            $_MG_CONF['path_mediaobjects'].'tn/5/',
                            $_MG_CONF['path_mediaobjects'].'orig/6/',
                            $_MG_CONF['path_mediaobjects'].'disp/6/',
                            $_MG_CONF['path_mediaobjects'].'tn/6/',
                            $_MG_CONF['path_mediaobjects'].'orig/7/',
                            $_MG_CONF['path_mediaobjects'].'disp/7/',
                            $_MG_CONF['path_mediaobjects'].'tn/7/',
                            $_MG_CONF['path_mediaobjects'].'orig/8/',
                            $_MG_CONF['path_mediaobjects'].'disp/8/',
                            $_MG_CONF['path_mediaobjects'].'tn/8/',
                            $_MG_CONF['path_mediaobjects'].'orig/9/',
                            $_MG_CONF['path_mediaobjects'].'disp/9/',
                            $_MG_CONF['path_mediaobjects'].'tn/9/',
                            $_MG_CONF['path_mediaobjects'].'orig/a/',
                            $_MG_CONF['path_mediaobjects'].'disp/a/',
                            $_MG_CONF['path_mediaobjects'].'tn/a/',
                            $_MG_CONF['path_mediaobjects'].'orig/b/',
                            $_MG_CONF['path_mediaobjects'].'disp/b/',
                            $_MG_CONF['path_mediaobjects'].'tn/b/',
                            $_MG_CONF['path_mediaobjects'].'orig/c/',
                            $_MG_CONF['path_mediaobjects'].'disp/c/',
                            $_MG_CONF['path_mediaobjects'].'tn/c/',
                            $_MG_CONF['path_mediaobjects'].'orig/d/',
                            $_MG_CONF['path_mediaobjects'].'disp/d/',
                            $_MG_CONF['path_mediaobjects'].'tn/d/',
                            $_MG_CONF['path_mediaobjects'].'orig/e/',
                            $_MG_CONF['path_mediaobjects'].'disp/e/',
                            $_MG_CONF['path_mediaobjects'].'tn/e/',
                            $_MG_CONF['path_mediaobjects'].'orig/f/',
                            $_MG_CONF['path_mediaobjects'].'disp/f/',
                            $_MG_CONF['path_mediaobjects'].'tn/f/',
                            $_MG_CONF['path_html'].'watermarks/',
                        );
    
        $fm_file_list = array(
                            $filemgmt_FileStore,
                            $filemgmt_FileStore.'tmp/',
                            $filemgmt_SnapStore,
                            $filemgmt_SnapStore.'tmp/',
                            $filemgmt_SnapCat,
                            $filemgmt_SnapCat.'tmp/',
                        );
    
        $forum_file_list = array(
                            $_FF_CONF['uploadpath'].'/',
                            $_FF_CONF['uploadpath'].'/tn/',
                          );
    
    
        if (in_array('mediagallery', $_PLUGINS)) {
            $file_list = array_merge($file_list, $mg_file_list);
        }
        if (in_array('filemgmt', $_PLUGINS)) {
            $file_list = array_merge($file_list, $fm_file_list);
        }
        if (in_array('forum', $_PLUGINS)) {
            $file_list = array_merge($file_list, $forum_file_list);
        }
    */
    $T->set_block('page', 'perms', 'perm');
    foreach ($file_list as $path) {
        $ok = _isWritable($path);
        if (!$ok) {
            $status = $ok ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>';
            $data_arr[] = array('location' => $path, 'status' => $status);
            if (!$ok) {
                $permError = 1;
            }
        }
        /* --- debug code ---
                else {
                    $status = $ok ? '<span class="yes">'.$LANG_ENVCHECK['ok'].'</span>' : '<span class="notwriteable">'.$LANG_ENVCHECK['not_writable'].'</span>';
                    $data_arr[] = array(
                        'location' => $path,
                        'status' => $status
                    );
                }
        ----------------------- */
    }
    // special test to see if we can create a directory under layout_cache...
    $rc = @mkdir($_CONF['path_data'] . 'layout_cache/test/');
    if (!$rc) {
        $location = $_CONF['path_data'] . 'layout_cache/';
        $status = '<span class="notwriteable">' . $LANG_ENVCHECK['unable_mkdir'] . '</span>';
        $data_arr[] = array('location' => $location, 'status' => $status);
        $permError = 1;
        @rmdir($_CONF['path_data'] . 'layout_cache/test/');
    } else {
        $ok = _isWritable($_CONF['path_data'] . 'layout_cache/test/');
        if (!$ok) {
            $status = $ok ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>';
            $data_arr[] = array('location' => $path, 'status' => $status);
            if (!$ok) {
                $permError = 1;
            }
        }
        @rmdir($_CONF['path_data'] . 'layout_cache/test/');
    }
    // special test to see if existing cache files exist and are writable...
    $rc = _checkCacheDir($_CONF['path_data'] . 'layout_cache/', $data_arr);
    if ($rc > 0) {
        $permError = 1;
    }
    if (!$permError) {
        $recheck = '';
        $status = 1 ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>';
        $data_arr[] = array('location' => $LANG_ENVCHECK['directory_permissions'], 'status' => $status);
        $status = 1 ? '<span class="yes">' . $LANG_ENVCHECK['ok'] . '</span>' : '<span class="notwriteable">' . $LANG_ENVCHECK['not_writable'] . '</span>';
        $data_arr[] = array('location' => $LANG_ENVCHECK['file_permissions'], 'status' => $status);
    }
    $admin_list = ADMIN_simpleList('', $header_arr, $text_arr, $data_arr);
    $T->set_var('filesystem_list', $admin_list);
    // ***********************************************
    // Current PHP Settings
    $T->set_var(array('lang_current_php_settings' => $LANG_ENVCHECK['current_php_settings'], 'lang_showhide_phpinfo' => $LANG_ENVCHECK['showhide_phpinfo'], 'phpinfo' => _phpinfo()));
    /*
    if ( !defined('DEMO_MODE') ) {
        $T->set_var(array(
            'phpinfo'       => _phpinfo(),
        ));
    } else {
        $T->set_var('phpinfo','');
    }
    */
    $T->set_var('phpinfo', _phpinfo());
    $T->parse('output', 'page');
    $retval .= $T->finish($T->get_var('output'));
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    return $retval;
}
예제 #13
0
/**
* Shows the statistics for the plugin on stats.php.  If
* $showsitestats is 1 then we are to only print the overall stats in the 'site
* statistics' box otherwise we show the detailed stats for the plugin
*
* Universal Plugin:  Modify/uncomment use it
*
* @param    int showsitestate   Flag to let us know which stats to get
* @return   string  returns formatted HTML to insert in stats page
*
*/
function _mg_showstats($showsitestats)
{
    global $_CONF, $_MG_CONF, $_TABLES, $LANG_MG00, $MG_albums, $_USER;
    if (COM_isAnonUser() && $_MG_CONF['loginrequired'] == 1) {
        return;
    }
    $previd = -1;
    $loopcounter = 0;
    $retval = '';
    if ($showsitestats == 1) {
        // This shows in the summary box
        $total_pages = DB_count($_TABLES['mg_media']);
        $summary_label = $LANG_MG00['items_in'] . ' ' . $LANG_MG00['plugin'];
        $retval = "<table border = '0' width='100%' cellspacing='0' cellpadding='0'>";
        $retval .= "<tr><td>{$summary_label}</td>";
        $retval .= "<td align='right'>" . $total_pages . "&nbsp;&nbsp </td></tr></table>";
    } else {
        $header_arr = array(array('text' => $LANG_MG00['media_col_header'], 'field' => 'title', 'header_class' => 'stats-header-title'), array('text' => $LANG_MG00['rating'], 'field' => 'rating', 'field_class' => 'stats-list-count'));
        $data_arr = array();
        $text_arr = array('has_menu' => false, 'title' => $LANG_MG00['stats_rate_title']);
        $sql = "SELECT a.album_id,m.media_original_filename,m.media_title,m.media_id,m.media_rating FROM {$_TABLES['mg_albums']} as a LEFT JOIN {$_TABLES['mg_media_albums']} as ma\n                on a.album_id=ma.album_id LEFT JOIN {$_TABLES['mg_media']} as m on ma.media_id=m.media_id WHERE\n                m.media_rating <> 0 AND a.hidden=0 " . COM_getPermSQL('and') . " ORDER BY m.media_rating DESC LIMIT 10";
        $result = DB_query($sql);
        $numrows = DB_numRows($result);
        if ($numrows > 0) {
            for ($i = 0; $i < $numrows && $i < 10; $i++) {
                $A = DB_fetchArray($result);
                $aid = $A['album_id'];
                if ($A['media_title'] == '' || $A['media_title'] == " ") {
                    if ($A['media_original_filename'] == '') {
                        $title = '<b>' . $LANG_MG00['album'] . '</b>' . '<em>' . strip_tags($MG_albums[$aid]->title) . ' - ' . $LANG_MG00['no_title'] . '</em>';
                    } else {
                        $title = $A['media_original_filename'];
                    }
                } else {
                    $title = strip_tags($A['media_title']);
                }
                $S['title'] = '<a href="' . $_MG_CONF['site_url'] . '/media.php?s=' . $A['media_id'] . '">' . $title . '</a>';
                $S['rating'] = @number_format($A['media_rating'], 2);
                $data_arr[$i] = $S;
            }
            $retval .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
        }
        $loopcounter = 0;
        $previd = '';
        $header_arr = array(array('text' => $LANG_MG00['media_col_header'], 'field' => 'title', 'header_class' => 'stats-header-title'), array('text' => $LANG_MG00['hitsmsg'], 'field' => 'views', 'field_class' => 'stats-list-count'));
        $data_arr = array();
        $text_arr = array('has_menu' => false, 'title' => $LANG_MG00['stats_title']);
        $sql = "SELECT DISTINCT m.media_id,m.media_title,ma.album_id,m.media_original_filename,m.media_views\n                    FROM " . $_TABLES['mg_media'] . " as m" . " LEFT JOIN " . $_TABLES['mg_media_albums'] . " as ma" . " ON m.media_id=ma.media_id " . " WHERE m.media_views > 0 " . " ORDER BY m.media_views DESC LIMIT 10";
        $result = DB_query($sql);
        $numrows = DB_numRows($result);
        if ($numrows > 0) {
            for ($i = 0; $i < $numrows; $i++) {
                $A = DB_fetchArray($result);
                if ($A['media_id'] == $previd) {
                    continue;
                }
                $aid = $A['album_id'];
                $previd = $A['media_id'];
                if ($A['media_id'] != '' && isset($MG_albums[$aid]) && $MG_albums[$aid]->access > 0) {
                    if ($A['media_title'] == '' || $A['media_title'] == " ") {
                        if ($A['media_original_filename'] == '') {
                            $title = '<b>' . $LANG_MG00['album'] . '</b>' . '<em>' . strip_tags($MG_albums[$aid]->title) . ' - ' . $LANG_MG00['no_title'] . '</em>';
                        } else {
                            $title = $A['media_original_filename'];
                        }
                    } else {
                        $title = strip_tags($A['media_title']);
                    }
                    $S['title'] = '<a href="' . $_MG_CONF['site_url'] . '/media.php?s=' . $A['media_id'] . '">' . $title . '</a>';
                    $S['views'] = $A['media_views'];
                    $data_arr[$loopcounter] = $S;
                    $loopcounter++;
                }
                if ($loopcounter > 10) {
                    break;
                }
            }
            $retval .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
        }
    }
    return $retval;
}
예제 #14
0
/**
* Displays items needing moderation
*
* Displays the moderation list of items from the submission tables
*
* @type     string      Type of object to build list for
*
*/
function MODERATE_itemList($type = '', $token)
{
    global $_CONF, $_TABLES, $LANG01, $LANG24, $LANG29, $LANG_ADMIN, $_IMAGE_TYPE;
    $retval = '';
    if (empty($type)) {
        COM_errorLog("Submissions Error: Attempted to generate a moderation list for a null item type.");
    } else {
        switch ($type) {
            case 'user':
                // user -----------------------------------------------
                $result = DB_query("SELECT uid,username,fullname,email,UNIX_TIMESTAMP(regdate) AS day FROM {$_TABLES['users']} WHERE status = 2");
                $nrows = DB_numRows($result);
                if ($nrows > 0) {
                    $data_arr = array();
                    for ($i = 0; $i < $nrows; $i++) {
                        $A = DB_fetchArray($result);
                        $A['edit'] = $_CONF['site_admin_url'] . '/user.php?edit=x&amp;uid=' . $A['uid'];
                        $A['fullname'] = $A['fullname'];
                        $A['email'] = $A['email'];
                        $A['_type_'] = 'user';
                        $A['_key_'] = 'uid';
                        $data_arr[$i] = $A;
                    }
                    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 0, 'align' => 'center', 'width' => '25px'), array('text' => $LANG29[16], 'field' => 1, 'nowrap' => true), array('text' => $LANG29[17], 'field' => 2), array('text' => $LANG29[18], 'field' => 3, 'nowrap' => true), array('text' => $LANG29[47], 'field' => 4, 'align' => 'center'), array('text' => $LANG29[1], 'field' => 'approve', 'align' => 'center', 'width' => '35px'), array('text' => $LANG_ADMIN['delete'], 'field' => 'delete', 'align' => 'center', 'width' => '35px'));
                    $text_arr = array('has_menu' => false, 'title' => $LANG29[40], 'help_url' => 'ccusersubmission.html', 'no_data' => '', 'form_url' => "{$_CONF['site_admin_url']}/moderation.php");
                    $actions = '<input name="approve" type="image" src="' . $_CONF['layout_url'] . '/images/admin/accept.' . $_IMAGE_TYPE . '" style="vertical-align:bottom;" title="' . $LANG29[44] . '" onclick="return confirm(\'' . $LANG29[45] . '\');"' . '/>&nbsp;' . $LANG29[1];
                    $actions .= '&nbsp;&nbsp;&nbsp;&nbsp;';
                    $actions .= '<input name="delbutton" type="image" src="' . $_CONF['layout_url'] . '/images/admin/delete.' . $_IMAGE_TYPE . '" style="vertical-align:text-bottom;" title="' . $LANG01[124] . '" onclick="return confirm(\'' . $LANG01[125] . '\');"' . '/>&nbsp;' . $LANG_ADMIN['delete'];
                    $options = array('chkselect' => true, 'chkfield' => 'uid', 'chkname' => 'selitem', 'chkminimum' => 0, 'chkall' => false, 'chkactions' => $actions);
                    $form_arr['bottom'] = '<input type="hidden" name="type" value="user"/>' . LB . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"/>' . LB . '<input type="hidden" name="moderation" value="x"/>' . LB . '<input type="hidden" name="count" value="' . $nrows . '"/>';
                    $retval = ADMIN_simpleList('MODERATE_getListField', $header_arr, $text_arr, $data_arr, $options, $form_arr, $token);
                }
                break;
            case 'draftstory':
                // draft story ----------------------------------
                $result = DB_query("SELECT sid AS id,title,UNIX_TIMESTAMP(date) AS day,tid,uid FROM {$_TABLES['stories']} WHERE (draft_flag = 1)" . COM_getTopicSQL('AND') . COM_getPermSQL('AND', 0, 3) . " ORDER BY date ASC");
                $nrows = DB_numRows($result);
                if ($nrows > 0) {
                    $data_arr = array();
                    for ($i = 0; $i < $nrows; $i++) {
                        $A = DB_fetchArray($result);
                        $A['edit'] = $_CONF['site_admin_url'] . '/story.php?draft=x&amp;sid=' . $A['id'];
                        $A['title'] = $A['title'];
                        $A['tid'] = $A['tid'];
                        $A['_type_'] = 'draftstory';
                        $A['_key_'] = 'sid';
                        $data_arr[$i] = $A;
                    }
                    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 0, 'align' => 'center', 'width' => '25px'), array('text' => $LANG29[10], 'field' => 'title'), array('text' => $LANG29[14], 'field' => 'day', 'align' => 'center', 'width' => '15%'), array('text' => $LANG29[15], 'field' => 'tid', 'width' => '20%'), array('text' => $LANG29[46], 'field' => 'uid', 'width' => '15%', 'nowrap' => true), array('text' => $LANG29[1], 'field' => 'approve', 'align' => 'center', 'width' => '35px'), array('text' => $LANG_ADMIN['delete'], 'field' => 'delete', 'align' => 'center', 'width' => '35px'));
                    $text_arr = array('has_menu' => false, 'title' => $LANG29[35] . ' (' . $LANG24[34] . ')', 'help_url' => '', 'no_data' => $LANG29[39], 'form_url' => "{$_CONF['site_admin_url']}/moderation.php");
                    $actions = '<input name="approve" type="image" src="' . $_CONF['layout_url'] . '/images/admin/accept.' . $_IMAGE_TYPE . '" style="vertical-align:bottom;" title="' . $LANG29[44] . '" onclick="return confirm(\'' . $LANG29[45] . '\');"' . '/>&nbsp;' . $LANG29[1];
                    $actions .= '&nbsp;&nbsp;&nbsp;&nbsp;';
                    $actions .= '<input name="delbutton" type="image" src="' . $_CONF['layout_url'] . '/images/admin/delete.' . $_IMAGE_TYPE . '" style="vertical-align:text-bottom;" title="' . $LANG01[124] . '" onclick="return confirm(\'' . $LANG01[125] . '\');"' . '/>&nbsp;' . $LANG_ADMIN['delete'];
                    $options = array('chkselect' => true, 'chkfield' => 'id', 'chkname' => 'selitem', 'chkminimum' => 0, 'chkall' => false, 'chkactions' => $actions);
                    $form_arr['bottom'] = '<input type="hidden" name="type" value="draftstory"/>' . LB . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"/>' . LB . '<input type="hidden" name="count" value="' . $nrows . '"/>';
                    $retval .= ADMIN_simpleList('MODERATE_getListField', $header_arr, $text_arr, $data_arr, $options, $form_arr, $token);
                }
                break;
                // draftstory
            // draftstory
            default:
                // plugin -------------------------------------------------
                $function = 'plugin_itemlist_' . $type;
                if (function_exists($function)) {
                    $plugin = new Plugin();
                    $plugin = $function($token);
                    // if the plugin returns a string, it wants to control it's own
                    // moderation.  as far as I can tell - no plugin has used this yet
                    // it appears to be a feature that was added in glFusion 1.1.0rc1
                    // but never actually used
                    if (is_string($plugin) && !empty($plugin)) {
                        return '<div class="block-box">' . $plugin . '</div>';
                        // otherwise this is a plugin object (historical approach)
                    } elseif (is_object($plugin)) {
                        $helpfile = $plugin->submissionhelpfile;
                        $sql = $plugin->getsubmissionssql;
                        $H = $plugin->submissionheading;
                        $section_title = $plugin->submissionlabel;
                        $section_help = $helpfile;
                        $isplugin = true;
                    }
                }
                // this needs to be removed when story moves into a plugin
                if ($type == 'story') {
                    $isplugin = false;
                }
                // we really only need the id from this list, so that we know key/id field name
                list($key, $table, $fields, $submissiontable) = PLG_getModerationValues($type);
                // the first 4 columns default to Title, Date, Topic and Submitted By unless otherwise
                // specified.  not sure I like this approach - but whatever - it's not
                // breaking anything at the momemnt
                if (!isset($H[0]) || empty($H[0])) {
                    $H[0] = $LANG29[10];
                }
                if (!isset($H[1]) || empty($H[1])) {
                    $H[1] = $LANG29[14];
                }
                if (!isset($H[2]) || empty($H[2])) {
                    $H[2] = $LANG29[15];
                }
                if (!isset($H[3]) || empty($H[3])) {
                    $H[3] = $LANG29[46];
                }
                // run SQL but this time ignore any errors.  note that the max items for
                // each type that can be moderated is limited to 50
                if (!empty($sql)) {
                    $sql .= ' LIMIT 50';
                    // quick'n'dirty workaround to prevent timeouts
                    $result = DB_query($sql, 1);
                }
                if (empty($sql) || DB_error()) {
                    $nrows = 0;
                    // more than likely a plugin that doesn't need moderation
                } else {
                    $nrows = DB_numRows($result);
                }
                if ($nrows > 0) {
                    // only generate list html if there are items to moderate
                    $data_arr = array();
                    for ($i = 0; $i < $nrows; $i++) {
                        $A = DB_fetchArray($result);
                        if ($isplugin) {
                            $A['edit'] = $_CONF['site_admin_url'] . '/plugins/' . $type . '/index.php?moderate=x' . '&amp;' . $key . '=' . $A[0];
                        } else {
                            $A['edit'] = $_CONF['site_admin_url'] . '/' . $type . '.php?moderate=x' . '&amp;' . $key . '=' . $A[0];
                        }
                        $A['_type_'] = $type;
                        // type of item
                        $A['_key_'] = $key;
                        // name of key/id field
                        $data_arr[$i] = $A;
                        // push row data into array
                    }
                    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 0, 'align' => 'center', 'width' => '25px'), array('text' => $H[0], 'field' => 1), array('text' => $H[1], 'field' => 2, 'align' => 'center', 'width' => '15%'), array('text' => $H[2], 'field' => 3, 'width' => '20%'), array('text' => $H[3], 'field' => 4, 'width' => '15%', 'nowrap' => true), array('text' => $LANG29[1], 'field' => 'approve', 'align' => 'center', 'width' => '35px'), array('text' => $LANG_ADMIN['delete'], 'field' => 'delete', 'align' => 'center', 'width' => '35px'));
                    $text_arr = array('has_menu' => false, 'title' => $section_title, 'help_url' => $section_help, 'no_data' => $LANG29[39], 'form_url' => "{$_CONF['site_admin_url']}/moderation.php");
                    $actions = '<input name="approve" type="image" src="' . $_CONF['layout_url'] . '/images/admin/accept.' . $_IMAGE_TYPE . '" style="vertical-align:bottom;" title="' . $LANG29[44] . '" onclick="return confirm(\'' . $LANG29[45] . '\');"' . '/>&nbsp;' . $LANG29[1];
                    $actions .= '&nbsp;&nbsp;&nbsp;&nbsp;';
                    $actions .= '<input name="delbutton" type="image" src="' . $_CONF['layout_url'] . '/images/admin/delete.' . $_IMAGE_TYPE . '" style="vertical-align:text-bottom;" title="' . $LANG01[124] . '" onclick="return confirm(\'' . $LANG01[125] . '\');"' . '/>&nbsp;' . $LANG_ADMIN['delete'];
                    $options = array('chkselect' => true, 'chkfield' => 'id', 'chkname' => 'selitem', 'chkminimum' => 0, 'chkall' => false, 'chkactions' => $actions);
                    $form_arr['bottom'] = '<input type="hidden" name="type" value="' . $type . '"/>' . LB . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"/>' . LB . '<input type="hidden" name="moderation" value="x"/>' . LB . '<input type="hidden" name="count" value="' . $nrows . '"/>';
                    $retval .= ADMIN_simpleList('MODERATE_getListField', $header_arr, $text_arr, $data_arr, $options, $form_arr, $token);
                }
                break;
                // plugin
        }
        // switch ($type)
    }
    // !empty($type)
    return $retval;
}
예제 #15
0
    } else {
        $display .= COM_startBlock($LANG10[25]);
        $display .= $LANG10[26];
        $display .= COM_endBlock();
    }
}
// Top Ten Emailed Stories
$sql = "SELECT sid,title,numemails\n    FROM {$_TABLES['stories']}, {$_TABLES['topic_assignments']} ta\n    WHERE ta.type = 'article' AND ta.id = sid\n    AND (numemails > 0) AND (draft_flag = 0) AND (date <= NOW())" . COM_getPermSQL('AND') . $topicsql . " ORDER BY numemails DESC LIMIT 10";
$result = DB_query($sql);
$nrows = DB_numRows($result);
if ($nrows > 0) {
    $header_arr = array(array('text' => $LANG10[8], 'field' => 'sid', 'header_class' => 'stats-header-title'), array('text' => $LANG10[23], 'field' => 'numemails', 'header_class' => 'stats-header-count', 'field_class' => 'stats-list-count'));
    $data_arr = array();
    $text_arr = array('has_menu' => false, 'title' => $LANG10[22], 'form_url' => $_CONF['site_url'] . '/stats.php');
    for ($i = 0; $i < $nrows; $i++) {
        $A = DB_fetchArray($result);
        $A['title'] = stripslashes(str_replace('$', '&#36;', $A['title']));
        $A['sid'] = COM_createLink($A['title'], COM_buildUrl($_CONF['site_url'] . "/article.php?story={$A['sid']}"));
        $A['numemails'] = COM_NumberFormat($A['numemails']);
        $data_arr[$i] = $A;
    }
    $display .= ADMIN_simpleList('', $header_arr, $text_arr, $data_arr);
} else {
    $display .= COM_startBlock($LANG10[22]);
    $display .= $LANG10[24];
    $display .= COM_endBlock();
}
// Now show stats for any plugins that want to be included
$display .= PLG_getPluginStats(2);
$display = COM_createHTMLDocument($display, array('pagetitle' => $LANG10[1]));
COM_output($display);
예제 #16
0
/**
 * Display two lists of blocks, separated by left and right
 *
 * @return   string  HTML for the two lists
 */
function listblocks($position = BLOCK_ALL_POSITIONS)
{
    global $_CONF, $_TABLES, $LANG_ADMIN, $LANG21, $_IMAGE_TYPE;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $token = SEC_createToken();
    // writing the menu on top
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/block.php?mode=edit', 'text' => $LANG_ADMIN['create_new']), array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']));
    $retval .= COM_startBlock($LANG21[19], '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG21[25], $_CONF['layout_url'] . '/images/icons/block.' . $_IMAGE_TYPE);
    reorderblocks();
    // Regular Blocks
    switch ($position) {
        case BLOCK_NONE_POSITION:
        case BLOCK_LEFT_POSITION:
        case BLOCK_RIGHT_POSITION:
            break;
        default:
            $position = BLOCK_ALL_POSITIONS;
            break;
    }
    $show_position = '';
    $position_filter = '<option value="' . BLOCK_ALL_POSITIONS . '" title="' . $LANG21[7] . '"';
    if ($position == BLOCK_ALL_POSITIONS) {
        $position_filter .= ' selected="selected"';
    } else {
        $show_position = ' AND onleft = ' . $position;
    }
    $position_filter .= '>' . $LANG21[7] . '</option>';
    $position_filter .= '<option value="' . BLOCK_LEFT_POSITION . '" title="' . $LANG21[40] . '"';
    if ($position == BLOCK_LEFT_POSITION) {
        $position_filter .= ' selected="selected"';
    }
    $position_filter .= '>' . $LANG21[40] . '</option>';
    $position_filter .= '<option value="' . BLOCK_RIGHT_POSITION . '" title="' . $LANG21[41] . '"';
    if ($position == BLOCK_RIGHT_POSITION) {
        $position_filter .= ' selected="selected"';
    }
    $position_filter .= '>' . $LANG21[41] . '</option>';
    $position_filter .= '<option value="' . BLOCK_NONE_POSITION . '" title="' . $LANG21[47] . '"';
    if ($position == BLOCK_NONE_POSITION) {
        $position_filter .= ' selected="selected"';
    }
    $position_filter .= '>' . $LANG21[47] . '</option>';
    $filter = $LANG21['position'] . ': <select name="position" style="width: 125px" onchange="this.form.submit()">' . $position_filter . '</select>';
    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 'edit', 'sort' => false), array('text' => $LANG21['position'], 'field' => 'onleft', 'sort' => false), array('text' => $LANG21[65], 'field' => 'blockorder', 'sort' => true, 'sort_field' => 'onleft DESC, blockorder'), array('text' => $LANG21[46], 'field' => 'move', 'sort' => false), array('text' => $LANG_ADMIN['device'], 'field' => 'device', 'sort' => true), array('text' => $LANG_ADMIN['title'], 'field' => 'title', 'sort' => true), array('text' => $LANG21[48], 'field' => 'name', 'sort' => true), array('text' => $LANG_ADMIN['type'], 'field' => 'type', 'sort' => true), array('text' => $LANG_ADMIN['topic'], 'field' => 'topic', 'sort' => true), array('text' => $LANG_ADMIN['enabled'], 'field' => 'is_enabled', 'sort' => true));
    // Sort by position and then order for default
    $defsort_arr = array('field' => 'onleft DESC, blockorder', 'direction' => 'asc');
    $text_arr = array('has_extras' => true, 'title' => $LANG21[20], 'form_url' => $_CONF['site_admin_url'] . '/block.php');
    $query_arr = array('table' => 'blocks', 'sql' => "SELECT * FROM {$_TABLES['blocks']} WHERE 1=1 ", 'query_fields' => array('title', 'content'), 'default_filter' => $show_position . COM_getPermSQL('AND'));
    // this is a dummy variable so we know the form has been used if all blocks
    // should be disabled on one side in order to disable the last one.
    // The value is the onleft var
    $form_arr = array('top' => '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"' . XHTML . '>', 'bottom' => '<input type="hidden" name="blockenabler" value="1"' . XHTML . '>');
    // Add in position filter so it is remembered with paging
    $pagenavurl = '&amp;position=' . $position;
    $retval .= ADMIN_list('blocks', 'ADMIN_getListField_blocks', $header_arr, $text_arr, $query_arr, $defsort_arr, $filter, $token, '', $form_arr, true, $pagenavurl);
    // Dynamic blocks
    $dyn_header_arr = array(array('text' => $LANG21['position'], 'field' => 'onleft'), array('text' => $LANG21[65], 'field' => 'blockorder'), array('text' => $LANG21[69], 'field' => 'plugin'), array('text' => $LANG_ADMIN['title'], 'field' => 'title'), array('text' => $LANG21[48], 'field' => 'name'), array('text' => $LANG_ADMIN['type'], 'field' => 'type'), array('text' => $LANG_ADMIN['topic'], 'field' => 'topic'), array('text' => $LANG_ADMIN['enabled'], 'field' => 'is_enabled'));
    $dyn_text_arr = array('title' => $LANG21[22], 'form_url' => $_CONF['site_admin_url'] . '/block.php');
    $leftblocks = PLG_getBlocksConfig('left', '');
    // Sort Dynamic Blocks on Block Order
    usort($leftblocks, "cmpDynamicBlocks");
    $rightblocks = PLG_getBlocksConfig('right', '');
    // Sort Dynamic Blocks on Block Order
    usort($rightblocks, "cmpDynamicBlocks");
    $dynamicblocks = array_merge($leftblocks, $rightblocks);
    $retval .= ADMIN_simpleList('ADMIN_getListField_dynamicblocks', $dyn_header_arr, $dyn_text_arr, $dynamicblocks, '', $form_arr);
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    return $retval;
}
예제 #17
0
function makeProjectFileList($lid)
{
    global $_CONF, $_TABLES, $LANG01, $_DLM_CONF, $LANG_DLM, $LANG_ADMIN;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $project = DB_getItem($_TABLES['downloads'], 'project', "lid = '" . addslashes($lid) . "'");
    if ($project == false) {
        return '';
    }
    $permsql = $_DLM_CONF['has_edit_rights'] ? '' : COM_getPermSQL('AND', 0, 2, 'b');
    $result = DB_query("SELECT a.lid, a.title, a.url, a.version, a.size, a.date, a.cid " . "FROM {$_TABLES['downloads']} a " . "LEFT JOIN {$_TABLES['downloadcategories']} b ON a.cid=b.cid " . "WHERE a.project='" . addslashes($project) . "' " . "AND a.project<>'' " . "AND a.is_released=1 " . $permsql . " ORDER BY a.date DESC LIMIT 10");
    $header_arr = array(array('text' => $LANG_ADMIN['title'], 'field' => 'title'), array('text' => $LANG_DLM['file'], 'field' => 'url'), array('text' => $LANG_DLM['ver'], 'field' => 'version'), array('text' => $LANG_DLM['size'], 'field' => 'size'), array('text' => $LANG_DLM['submitdate'], 'field' => 'date'));
    $data_arr = array();
    $text_arr = array('has_menu' => false, 'title' => sprintf($LANG_DLM['projectfilelist'], $project));
    while ($A = DB_fetchArray($result)) {
        if (!matchLanguage($A['cid'])) {
            continue;
        }
        $data_arr[] = array('title' => COM_createLink($A['title'], COM_buildURL($_CONF['site_url'] . '/downloads/index.php?id=' . $A['lid'])), 'url' => COM_createLink($A['url'], COM_buildURL($_CONF['site_url'] . '/downloads/visit.php?id=' . $A['lid'])), 'version' => $A['version'], 'size' => $A['size'], 'date' => strftime($_DLM_CONF['date_format'], $A['date']));
    }
    $retval .= ADMIN_simpleList('', $header_arr, $text_arr, $data_arr);
    return $retval;
}
예제 #18
0
파일: list.php 프로젝트: spacequad/glfusion
function FF_lastx()
{
    global $_CONF, $_TABLES, $_USER, $_FF_CONF, $LANG_GF01, $LANG_GF02, $LANG_GF92;
    $retval = '';
    $pageTitle = $LANG_GF01['LASTX'];
    USES_lib_admin();
    USES_lib_html2text();
    $T = new Template($_CONF['path'] . 'plugins/forum/templates/');
    $T->set_file('list', 'lists.thtml');
    $dt = new Date('now', $_USER['tzid']);
    $header_arr = array(array('text' => $LANG_GF01['FORUM'], 'field' => 'forum'), array('text' => $LANG_GF01['TOPIC'], 'field' => 'subject'), array('text' => $LANG_GF92['sb_latestposts'], 'field' => 'date', 'nowrap' => true));
    $data_arr = array();
    $text_arr = array();
    if ($_FF_CONF['usermenu'] == 'navbar') {
        $T->set_var('navbar', FF_NavbarMenu($LANG_GF01['LASTX']));
    }
    $T->set_var('block_start', COM_startBlock($LANG_GF01['LASTX'], '', COM_getBlockTemplate('_admin_block', 'header')));
    $groups = array();
    $usergroups = SEC_getUserGroups();
    foreach ($usergroups as $group) {
        $groups[] = $group;
    }
    $grouplist = implode(',', $groups);
    if (!COM_isAnonUser() && $_FF_CONF['enable_user_rating_system']) {
        $grade = (int) _ff_getUserRating((int) $_USER['uid']);
        $ratingSQL = ' AND b.rating_view <= ' . $grade . ' ';
    } else {
        $ratingSQL = '';
    }
    $sql = "SELECT * ";
    $sql .= "FROM {$_TABLES['ff_topic']} a ";
    $sql .= "LEFT JOIN {$_TABLES['ff_forums']} b ON a.forum=b.forum_id ";
    $sql .= "WHERE pid=0 AND b.grp_id IN ({$grouplist}) AND b.no_newposts = 0 " . $ratingSQL;
    $sql .= "ORDER BY lastupdated DESC LIMIT {$_FF_CONF['show_last_post_count']}";
    $result = DB_query($sql);
    $nrows = DB_numRows($result);
    $displayrecs = 0;
    for ($i = 1; $i <= $nrows; $i++) {
        $P = DB_fetchArray($result);
        if ($_FF_CONF['use_censor']) {
            $P['subject'] = COM_checkWords($P['subject']);
            $P['comment'] = COM_checkWords($P['comment']);
        }
        $topic_id = $P['id'];
        $displayrecs++;
        $dt->setTimestamp($P['date']);
        $firstdate = $dt->format($_FF_CONF['default_Datetime_format'], true);
        $dt->setTimestamp($P['lastupdated']);
        $lastdate = $dt->format($_FF_CONF['default_Datetime_format'], true);
        if ($P['uid'] > 1) {
            $topicinfo = "{$LANG_GF01['STARTEDBY']} " . COM_getDisplayName($P['uid']) . ', ';
        } else {
            $topicinfo = "{$LANG_GF01['STARTEDBY']} {$P['name']},";
        }
        $topicinfo .= "{$firstdate}<br/>{$LANG_GF01['VIEWS']}:{$P['views']}, {$LANG_GF01['REPLIES']}:{$P['replies']}<br/>";
        if (empty($P['last_reply_rec']) || $P['last_reply_rec'] < 1) {
            $lastid = $P['id'];
            $testText = FF_formatTextBlock($P['comment'], 'text', 'text', $P['status']);
            $testText = strip_tags($testText);
            $html2txt = new html2text($testText, false);
            $testText = trim($html2txt->get_text());
            $lastpostinfogll = @htmlspecialchars(preg_replace('#\\r?\\n#', '<br>', strip_tags(substr($testText, 0, $_FF_CONF['contentinfo_numchars']) . '...')), ENT_QUOTES, COM_getEncodingt());
        } else {
            $qlreply = DB_query("SELECT id,uid,name,comment,date,status FROM {$_TABLES['ff_topic']} WHERE id={$P['last_reply_rec']}");
            $B = DB_fetchArray($qlreply);
            $lastid = $B['id'];
            $lastcomment = $B['comment'];
            $P['date'] = $B['date'];
            if ($B['uid'] > 1) {
                $topicinfo .= sprintf($LANG_GF01['LASTREPLYBY'], COM_getDisplayName($B['uid']));
            } else {
                $topicinfo .= sprintf($LANG_GF01['LASTREPLYBY'], $B['name']);
            }
            $testText = FF_formatTextBlock($B['comment'], 'text', 'text', $B['status']);
            $testText = strip_tags($testText);
            $html2txt = new html2text($testText, false);
            $testText = trim($html2txt->get_text());
            $lastpostinfogll = @htmlspecialchars(preg_replace('#\\r?\\n#', '<br>', strip_tags(substr($testText, 0, $_FF_CONF['contentinfo_numchars']) . '...')), ENT_QUOTES, COM_getEncodingt());
        }
        $link = '<a class="' . COM_getTooltipStyle() . '" style="text-decoration:none; white-space:nowrap;" href="' . $_CONF['site_url'] . '/forum/viewtopic.php?showtopic=' . $topic_id . '&amp;lastpost=true#' . $lastid . '" title="' . @htmlspecialchars($P['subject'], ENT_QUOTES, COM_getEncodingt()) . '::' . $lastpostinfogll . '" rel="nofollow">';
        $topiclink = '<a class="' . COM_getTooltipStyle() . '" style="text-decoration:none;" href="' . $_CONF['site_url'] . '/forum/viewtopic.php?showtopic=' . $topic_id . '" title="' . @htmlspecialchars($P['subject'], ENT_QUOTES, COM_getEncodingt()) . '::' . $topicinfo . '">' . $P['subject'] . '</a>';
        $dt->setTimestamp($P['date']);
        $tdate = $dt->format($_FF_CONF['default_Datetime_format'], true);
        $data_arr[] = array('forum' => $P['forum_name'], 'subject' => $topiclink, 'date' => $link . $tdate . '</a>');
        if ($displayrecs >= $_FF_CONF['show_last_post_count']) {
            break;
        }
    }
    $T->set_var('list_data', ADMIN_simpleList("", $header_arr, $text_arr, $data_arr));
    $T->set_var('block_end', COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer')));
    $T->parse('output', 'list');
    $retval = $T->finish($T->get_var('output'));
    return array($pageTitle, $retval);
}
예제 #19
0
function FILECHECK_scan()
{
    global $_CONF, $LANG_ADMIN, $LANG_FILECHECK, $data_arr;
    $retval = false;
    $data_arr = array();
    $form_arr = array();
    // detect unbundled plugins
    FILECHECK_addPlugins();
    FILECHECK_foldArrays();
    // begin timing scan process
    $start_time = FILECHECK_timer('start');
    if (FILECHECK_scanPositive(substr($_CONF['path'], 0, -1), 'private') && FILECHECK_scanPositive(substr($_CONF['path_html'], 0, -1), 'public_html') && FILECHECK_scanNegative()) {
        // scanning succeeded, sort the array and then capture the elapsed time
        sort($data_arr);
        $elapsed_time = FILECHECK_timer('stop');
        // build the menu
        $retval = FILECHECK_scanMenu();
        // build the list of results
        $header_arr = array(array('text' => $LANG_FILECHECK['where'], 'field' => 'where', 'align' => 'center'), array('text' => $LANG_FILECHECK['type'], 'field' => 'type', 'align' => 'center'), array('text' => $LANG_FILECHECK['delta'], 'field' => 'delta', 'align' => 'center'), array('text' => $LANG_FILECHECK['location'], 'field' => 'location'));
        $text_arr = array('form_url' => $_CONF['site_admin_url'] . '/filecheck.php');
        $option_arr = array('chkselect' => true, 'chkall' => false, 'chkfield' => 'location', 'chkname' => 'actionitem', 'chkfunction' => 'FILECHECK_chkListField');
        //        $top = sprintf($LANG_FILECHECK['elapsed'], $elapsed_time);
        //        $form_arr = array('top' => $top);
        $retval .= ADMIN_simpleList("FILECHECK_getListField", $header_arr, $text_arr, $data_arr, $option_arr, $form_arr);
    }
    return $retval;
}
예제 #20
0
/**
* List all backups, i.e. all files ending in .sql
*
* @return   string      HTML for the list of files or an error when not writable
*
*/
function DBADMIN_list()
{
    global $_CONF, $_TABLES, $_IMAGE_TYPE, $LANG08, $LANG_ADMIN, $LANG_DB_BACKUP;
    $retval = '';
    if (is_writable($_CONF['backup_path'])) {
        $backups = array();
        $fd = opendir($_CONF['backup_path']);
        $index = 0;
        while (false !== ($file = @readdir($fd))) {
            if ($file != '.' && $file != '..' && $file != 'CVS' && preg_match('/\\.sql(\\.gz)?$/i', $file)) {
                $index++;
                clearstatcache();
                $backups[] = $file;
            }
        }
        usort($backups, 'DBADMIN_compareBackupFiles');
        $data_arr = array();
        $thisUrl = $_CONF['site_admin_url'] . '/database.php';
        $diskIconUrl = $_CONF['layout_url'] . '/images/admin/disk.' . $_IMAGE_TYPE;
        $attr['title'] = $LANG_DB_BACKUP['download'];
        $alt = $LANG_DB_BACKUP['download'];
        $num_backups = count($backups);
        for ($i = 0; $i < $num_backups; $i++) {
            $downloadUrl = $thisUrl . '?download=x&amp;file=' . urlencode($backups[$i]);
            $downloadLink = COM_createLink(COM_createImage($diskIconUrl, $alt, $attr), $downloadUrl, $attr);
            $downloadLink .= '&nbsp;&nbsp;';
            $attr['style'] = 'vertical-align:top;';
            $downloadLink .= COM_createLink($backups[$i], $downloadUrl, $attr);
            $backupfile = $_CONF['backup_path'] . $backups[$i];
            $backupfilesize = COM_numberFormat(filesize($backupfile)) . ' <b>' . $LANG_DB_BACKUP['bytes'] . '</b>';
            $data_arr[$i] = array('file' => $downloadLink, 'size' => $backupfilesize, 'filename' => $backups[$i]);
        }
        $token = SEC_createToken();
        $menu_arr = array();
        $allInnoDB = DBADMIN_innodbStatus();
        $menu_arr[] = array('url' => $_CONF['site_admin_url'] . '/database.php?backupdb=x', 'text' => $LANG_DB_BACKUP['create_backup']);
        $menu_arr[] = array('url' => $_CONF['site_admin_url'] . '/database.php?optimize=x', 'text' => $LANG_DB_BACKUP['optimize_menu']);
        if (!$allInnoDB && DBADMIN_supported_engine('InnoDB')) {
            $menu_arr[] = array('url' => $_CONF['site_admin_url'] . '/database.php?innodb=x', 'text' => $LANG_DB_BACKUP['convert_menu']);
        }
        if ($allInnoDB && DBADMIN_supported_engine('MyISAM')) {
            $menu_arr[] = array('url' => $_CONF['site_admin_url'] . '/database.php?myisam=x', 'text' => $LANG_DB_BACKUP['convert_myisam_menu']);
        }
        $menu_arr[] = array('url' => $_CONF['site_admin_url'] . '/database.php?config=x', 'text' => $LANG_DB_BACKUP['configure']);
        $menu_arr[] = array('url' => $_CONF['site_admin_url'], 'text' => $LANG_ADMIN['admin_home']);
        $retval .= COM_startBlock($LANG_DB_BACKUP['database_admin'], '', COM_getBlockTemplate('_admin_block', 'header'));
        $retval .= ADMIN_createMenu($menu_arr, "<p>{$LANG_DB_BACKUP['db_explanation']}</p>" . '<p>' . sprintf($LANG_DB_BACKUP['total_number'], $index) . '</p>', $_CONF['layout_url'] . '/images/icons/database.' . $_IMAGE_TYPE);
        $header_arr = array(array('text' => $LANG_DB_BACKUP['backup_file'], 'field' => 'file'), array('text' => $LANG_DB_BACKUP['size'], 'field' => 'size'));
        $text_arr = array('form_url' => $thisUrl);
        $form_arr = array('bottom' => '', 'top' => '');
        if ($num_backups > 0) {
            $form_arr['bottom'] = '<input type="hidden" name="delete" value="x">' . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '">' . LB;
        }
        $options = array('chkdelete' => true, 'chkminimum' => 0, 'chkfield' => 'filename');
        $retval .= ADMIN_simpleList('', $header_arr, $text_arr, $data_arr, $options, $form_arr);
        $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    } else {
        $retval .= COM_startBlock($LANG08[06], '', COM_getBlockTemplate('_msg_block', 'header'));
        $retval .= $LANG_DB_BACKUP['no_access'];
        COM_errorLog($_CONF['backup_path'] . ' is not writable.', 1);
        $retval .= COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer'));
    }
    return $retval;
}
예제 #21
0
/**
* Shows the statistics for the plugin on stats.php.  If
* $showsitestats is 1 then we are to only print the overall stats in the 'site
* statistics' box otherwise we show the detailed stats for the plugin
*
* Universal Plugin:  Modify/uncomment use it
*
* @param    int showsitestate   Flag to let us know which stats to get
* @return   string  returns formatted HTML to insert in stats page
*
*/
function MG_showstats($showsitestats)
{
    global $_CONF, $_MG_CONF, $_TABLES, $LANG_MG00, $_USER;
    if (COM_isAnonUser() && $_MG_CONF['loginrequired'] == 1) {
        return;
    }
    $retval = '';
    $sql = "SELECT a.album_id,m.media_original_filename,m.media_title,m.media_id,m.media_rating " . "FROM {$_TABLES['mg_albums']} AS a " . "LEFT JOIN {$_TABLES['mg_media_albums']} AS ma ON a.album_id=ma.album_id " . "LEFT JOIN {$_TABLES['mg_media']} AS m ON ma.media_id=m.media_id " . "WHERE m.media_rating <> 0 AND a.hidden=0 " . COM_getPermSQL('and') . " ORDER BY m.media_rating DESC LIMIT 10";
    $result = DB_query($sql);
    $numrows = DB_numRows($result);
    if ($numrows > 0) {
        $header_arr = array(array('text' => $LANG_MG00['media_col_header'], 'field' => 'title', 'header_class' => 'stats-header-title'), array('text' => $LANG_MG00['rating'], 'field' => 'rating', 'field_class' => 'stats-list-count'));
        $data_arr = array();
        $text_arr = array('has_menu' => false, 'title' => $LANG_MG00['stats_rate_title']);
        for ($i = 0; $i < $numrows; $i++) {
            $A = DB_fetchArray($result);
            if ($A['media_title'] == '' || $A['media_title'] == " ") {
                if ($A['media_original_filename'] == '') {
                    $album_data = MG_getAlbumData($A['album_id'], array('album_title'));
                    $title = '<b>' . $LANG_MG00['album'] . '</b>' . '<em>' . strip_tags($album_data['album_title']) . ' - ' . $LANG_MG00['no_title'] . '</em>';
                } else {
                    $title = $A['media_original_filename'];
                }
            } else {
                $title = strip_tags($A['media_title']);
            }
            $S['title'] = '<a href="' . $_MG_CONF['site_url'] . '/media.php?s=' . $A['media_id'] . '">' . $title . '</a>';
            $S['rating'] = @number_format($A['media_rating'] / 2, 2) . '/5.00';
            $data_arr[] = $S;
        }
        $retval .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
    }
    $sql = "SELECT DISTINCT m.media_id,m.media_title,ma.album_id,m.media_original_filename,m.media_views " . "FROM {$_TABLES['mg_media']} AS m " . "LEFT JOIN {$_TABLES['mg_media_albums']} AS ma ON m.media_id=ma.media_id " . "WHERE m.media_views > 0 " . "ORDER BY m.media_views DESC LIMIT 10";
    $result = DB_query($sql);
    $numrows = DB_numRows($result);
    if ($numrows > 0) {
        $header_arr = array(array('text' => $LANG_MG00['media_col_header'], 'field' => 'title', 'header_class' => 'stats-header-title'), array('text' => $LANG_MG00['hitsmsg'], 'field' => 'views', 'field_class' => 'stats-list-count'));
        $data_arr = array();
        $text_arr = array('has_menu' => false, 'title' => $LANG_MG00['stats_title']);
        for ($i = 0; $i < $numrows; $i++) {
            $A = DB_fetchArray($result);
            $album_data = MG_getAlbumData($A['album_id'], array('album_title'), true);
            if ($A['media_id'] != '' && $album_data['access'] > 0) {
                if ($A['media_title'] == '' || $A['media_title'] == " ") {
                    if ($A['media_original_filename'] == '') {
                        $title = '<b>' . $LANG_MG00['album'] . '</b>' . '<em>' . strip_tags($album_data['album_title']) . ' - ' . $LANG_MG00['no_title'] . '</em>';
                    } else {
                        $title = $A['media_original_filename'];
                    }
                } else {
                    $title = strip_tags($A['media_title']);
                }
                $S['title'] = '<a href="' . $_MG_CONF['site_url'] . '/media.php?s=' . $A['media_id'] . '">' . $title . '</a>';
                $S['views'] = $A['media_views'];
                $data_arr[] = $S;
            }
        }
        $retval .= ADMIN_simpleList("", $header_arr, $text_arr, $data_arr);
    }
    return $retval;
}
예제 #22
0
파일: index.php 프로젝트: JohnToro/lglib
/**
*   List all backups, i.e. all files ending in .sql or .sql.gz
*
*   @return string  HTML for the list of files or an error when not writable
*/
function DBADMIN_list()
{
    global $_CONF, $_TABLES, $_IMAGE_TYPE, $LANG08, $LANG_ADMIN, $LANG_DB_BACKUP;
    global $token;
    USES_lib_admin();
    $retval = '';
    if (is_writable($_CONF['backup_path'])) {
        $backups = array();
        $fd = opendir($_CONF['backup_path']);
        $index = 0;
        while (false !== ($file = @readdir($fd))) {
            if ($file != '.' && $file != '..' && $file != 'CVS' && preg_match('/\\.sql(\\.gz)?$/i', $file)) {
                $index++;
                clearstatcache();
                $backups[] = $file;
            }
        }
        // AS, 2004-03-29 - Sort backup files by date, newest first.
        // Order given by 'readdir' might not be correct.
        usort($backups, 'DBADMIN_compareBackupFiles');
        $data_arr = array();
        $diskIconUrl = $_CONF['layout_url'] . '/images/admin/disk.' . $_IMAGE_TYPE;
        $attr['title'] = $LANG_DB_BACKUP['download'];
        $alt = $LANG_DB_BACKUP['download'];
        $num_backups = count($backups);
        $icon_img = COM_createImage($diskIconUrl, $alt, $attr);
        for ($i = 0; $i < $num_backups; $i++) {
            $downloadUrl = LGLIB_ADMIN_URL . '/index.php?download=x&amp;file=' . urlencode($backups[$i]);
            $downloadLink = COM_createLink($icon_img, $downloadUrl, $attr);
            $downloadLink .= '&nbsp;&nbsp;';
            $attr['style'] = 'vertical-align:top;';
            $downloadLink .= COM_createLink($backups[$i], $downloadUrl, $attr);
            $backupfile = $_CONF['backup_path'] . $backups[$i];
            $backupfilesize = COM_numberFormat(filesize($backupfile)) . ' <b>' . $LANG_DB_BACKUP['bytes'] . '</b>';
            $data_arr[$i] = array('file' => $downloadLink, 'size' => $backupfilesize, 'filename' => $backups[$i]);
        }
        $retval .= DBADMIN_menu("<p>{$LANG_DB_BACKUP['db_explanation']}</p><p>" . sprintf($LANG_DB_BACKUP['total_number'], $index) . '</p>');
        $header_arr = array(array('text' => $LANG_DB_BACKUP['backup_file'], 'field' => 'file'), array('text' => $LANG_DB_BACKUP['size'], 'field' => 'size'));
        $text_arr = array('form_url' => LGLIB_ADMIN_URL . '/index.php');
        $form_arr = array('bottom' => '', 'top' => '');
        if ($num_backups > 0) {
            $form_arr['bottom'] = '<input type="hidden" name="delete" value="x" />' . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '" />' . LB;
        }
        $options = array('chkselect' => true, 'chkminimum' => 0, 'chkfield' => 'filename');
        $retval .= ADMIN_simpleList('', $header_arr, $text_arr, $data_arr, $options, $form_arr);
        $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    } else {
        $retval .= COM_startBlock($LANG08[06], '', COM_getBlockTemplate('_msg_block', 'header'));
        $retval .= $LANG_DB_BACKUP['no_access'];
        COM_errorLog($_CONF['backup_path'] . ' is not writable.', 1);
        $retval .= COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer'));
    }
    return $retval;
}
예제 #23
0
/**
* Displays new user submissions
*
* When enabled, this will list all the new users which have applied for a
* site membership. When approving an application, an email containing the
* password is sent out immediately.
*
* @param    string  $token  CSRF token
* @return   string          HTML for the list of users
*
*/
function userlist($token)
{
    global $_CONF, $_TABLES, $LANG29, $LANG_ADMIN;
    require_once $_CONF['path_system'] . 'lib-admin.php';
    $retval = '';
    $sql = "SELECT uid as id,username,fullname,email FROM {$_TABLES['users']} WHERE status = 2";
    $result = DB_query($sql);
    $nrows = DB_numRows($result);
    $data_arr = array();
    for ($i = 0; $i < $nrows; $i++) {
        $A = DB_fetchArray($result);
        $A['edit'] = $_CONF['site_admin_url'] . '/user.php?mode=edit&amp;uid=' . $A['id'];
        $A['row'] = $i;
        $A['fullname'] = stripslashes($A['fullname']);
        $A['email'] = stripslashes($A['email']);
        $data_arr[$i] = $A;
    }
    $header_arr = array(array('text' => $LANG_ADMIN['edit'], 'field' => 0), array('text' => $LANG29[16], 'field' => 1), array('text' => $LANG29[17], 'field' => 2), array('text' => $LANG29[18], 'field' => 3), array('text' => $LANG29[2], 'field' => 'delete'), array('text' => $LANG29[1], 'field' => 'approve'));
    $text_arr = array('has_menu' => false, 'title' => $LANG29[40], 'help_url' => 'ccusersubmission.html', 'no_data' => $LANG29[39], 'form_url' => "{$_CONF['site_admin_url']}/moderation.php");
    $listoptions = array('chkdelete' => true, 'chkfield' => 'id');
    $form_arr = array("bottom" => '', "top" => '');
    if ($nrows > 0) {
        $form_arr['bottom'] = '<input type="hidden" name="type" value="user"' . XHTML . '>' . LB . '<input type="hidden" name="' . CSRF_TOKEN . '" value="' . $token . '"' . XHTML . '>' . LB . '<input type="hidden" name="mode" value="moderation"' . XHTML . '>' . LB . '<input type="hidden" name="count" value="' . $nrows . '"' . XHTML . '>' . '<p align="center"><input type="submit" value="' . $LANG_ADMIN['submit'] . '"' . XHTML . '></p>' . LB;
    }
    $table = ADMIN_simpleList('ADMIN_getListField_moderation', $header_arr, $text_arr, $data_arr, $listoptions, $form_arr);
    $retval .= $table;
    return $retval;
}
예제 #24
0
파일: menu.php 프로젝트: spacequad/glfusion
function MB_displayTree($menu_id)
{
    global $_CONF, $LANG_MB01, $LANG_MB_ADMIN, $LANG_ADMIN;
    $retval = '';
    $menu = menu::getInstance($menu_id);
    $menu_arr = array(array('url' => $_CONF['site_admin_url'] . '/menu.php?mode=new&amp;menuid=' . (int) $menu_id, 'text' => $LANG_MB01['create_element']), array('url' => $_CONF['site_admin_url'] . '/menu.php', 'text' => $LANG_MB01['menu_list']));
    $retval .= COM_startBlock($LANG_MB01['menu_builder'] . ' :: ' . $menu->name, '', COM_getBlockTemplate('_admin_block', 'header'));
    $retval .= ADMIN_createMenu($menu_arr, $LANG_MB_ADMIN[3], $_CONF['layout_url'] . '/images/icons/menubuilder.png');
    $data_arr = array();
    $text_arr = array();
    $options = array();
    $header_arr = array(array('text' => $LANG_MB01['menu_element'], 'field' => 'label'), array('text' => $LANG_MB01['info'], 'field' => 'info', 'align' => 'center'), array('text' => $LANG_MB01['enabled'], 'field' => 'enabled', 'align' => 'center'), array('text' => $LANG_MB01['edit'], 'field' => 'edit', 'align' => 'center'), array('text' => $LANG_MB01['delete'], 'field' => 'delete', 'align' => 'center'), array('text' => $LANG_MB01['order'], 'field' => 'order', 'align' => 'center'));
    $text_arr = array('has_menu' => false, 'title' => '', 'help_url' => '', 'no_data' => $LANG_MB01['no_elements'], 'form_url' => "{$_CONF['site_admin_url']}/menu.php");
    $form_arr['bottom'] = '<input type="hidden" id="menu" name="menu" value="' . $menu_id . '"/>' . LB . '<input type="hidden" name="mode" value="activate"/>' . LB . '<script type="text/javascript">' . LB . '    document.getElementById(\'menubuilder\').style.display=\'\'' . LB . '</script>';
    $data_arr = $menu->editTree();
    $retval .= ADMIN_simpleList("_mb_getListField_menu", $header_arr, $text_arr, $data_arr, $options, $form_arr);
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    $outputHandle = outputHandler::getInstance();
    $outputHandle->addLinkScript($_CONF['site_url'] . '/javascript/admin.js', HEADER_PRIO_NORMAL, 'text/javascript');
    return $retval;
}
예제 #25
0
 /**
  * Display file voting information
  */
 function _showVotes_anon($lid)
 {
     global $_CONF, $_TABLES, $_USER, $LANG_DLM;
     require_once $_CONF['path_system'] . 'lib-admin.php';
     // Show Registered Users Votes
     $sql = "SELECT ratingid, ratinguser, rating, ratinghostname, ratingtimestamp " . "FROM {$_TABLES['downloadvotes']} " . "WHERE lid = '" . addslashes($lid) . "' AND ratinguser = 1 " . "ORDER BY ratingtimestamp DESC";
     $result = DB_query($sql);
     $votes = DB_numRows($result);
     $header_arr = array(array('text' => $LANG_DLM['ip'], 'field' => 'ratinghostname'), array('text' => $LANG_DLM['rating'], 'field' => 'rating'), array('text' => $LANG_DLM['votedate'], 'field' => 'date'));
     $data_arr = array();
     $text_arr = array('has_menu' => false, 'title' => sprintf($LANG_DLM['anonuservotes'], $votes));
     while ($A = DB_fetchArray($result)) {
         $formatted_date = COM_getUserDateTimeFormat($A['ratingtimestamp']);
         $data_arr[] = array('ratinghostname' => $A['ratinghostname'], 'rating' => $A['rating'], 'date' => $formatted_date[0]);
     }
     return ADMIN_simpleList('', $header_arr, $text_arr, $data_arr);
 }