Пример #1
0
function mod_userfiles($module_id, $cfg)
{
    $inDB = cmsDatabase::getInstance();
    if (!isset($cfg['sw_stats'])) {
        $cfg['sw_stats'] = 1;
    }
    if (!isset($cfg['sw_latest'])) {
        $cfg['sw_latest'] = 1;
    }
    if (!isset($cfg['sw_popular'])) {
        $cfg['sw_popular'] = 1;
    }
    if (!isset($cfg['num_latest'])) {
        $cfg['num_latest'] = 5;
    }
    if (!isset($cfg['num_popular'])) {
        $cfg['num_popular'] = 5;
    }
    $latest = array();
    $popular = array();
    $stats = array();
    //-------------------------- Новые файлы --------------------------------------
    if ($cfg['sw_latest'] && $cfg['num_latest']) {
        $sql = "SELECT f.*,\n                       u.nickname as user_nickname, u.login as user_login\n                FROM cms_user_files f, cms_users u\n                WHERE f.user_id = u.id AND f.allow_who = 'all'\n                ORDER BY f.pubdate desc\n                LIMIT {$cfg['num_latest']}";
        $latest = fetchFiles($sql);
    }
    //-------------------------- Популярные файлы ---------------------------------
    if ($cfg['sw_popular'] && $cfg['num_popular']) {
        $sql = "SELECT f.*,\n                       u.nickname as user_nickname, u.login as user_login\n                FROM cms_user_files f, cms_users u\n                WHERE f.user_id = u.id AND f.allow_who = 'all'\n                ORDER BY f.hits desc\n                LIMIT {$cfg['num_popular']}";
        $popular = fetchFiles($sql);
    }
    //----------------------------- Статистика ------------------------------------
    if ($cfg['sw_stats']) {
        $stats['total_files'] = $inDB->rows_count('cms_user_files', "allow_who='all'");
        $stats['total_size'] = 0;
        $sql = "SELECT SUM(f.filesize) as bytes\n                FROM cms_user_files f\n                WHERE f.allow_who = 'all'";
        $result = $inDB->query($sql);
        if ($inDB->num_rows($result)) {
            $size = $inDB->fetch_assoc($result);
            $stats['total_size'] = round($size['bytes'] / 1024 / 1024, 2);
        }
    }
    //-----------------------------------------------------------------------------
    if (!$popular && !$latest) {
        return false;
    }
    cmsPage::initTemplate('modules', 'mod_userfiles')->assign('latest', $latest)->assign('popular', $popular)->assign('stats', $stats)->assign('cfg', $cfg)->display('mod_userfiles.tpl');
    return true;
}
Пример #2
0
function mod_userfiles($mod, $cfg) {
    $cfg = array_merge(array(
        'sw_stats'    => 1,
        'sw_latest'   => 1,
        'sw_popular'  => 1,
        'num_latest'  => 5,
        'num_popular' => 5
    ), $cfg);

    $latest     = array();
    $popular    = array();
    $stats      = array();

    //-------------------------- Новые файлы --------------------------------------

    if ($cfg['sw_latest'] && $cfg['num_latest']) {
        $sql = "SELECT f.*,
                       u.nickname as user_nickname, u.login as user_login
                FROM cms_user_files f, cms_users u
                WHERE f.user_id = u.id AND f.allow_who = 'all'
                ORDER BY f.pubdate desc
                LIMIT ". $cfg['num_latest'];

        $latest = fetchFiles($sql);
    }

    //-------------------------- Популярные файлы ---------------------------------

    if ($cfg['sw_popular'] && $cfg['num_popular']) {
        $sql = "SELECT f.*,
                       u.nickname as user_nickname, u.login as user_login
                FROM cms_user_files f, cms_users u
                WHERE f.user_id = u.id AND f.allow_who = 'all'
                ORDER BY f.hits desc
                LIMIT ". $cfg['num_popular'];

        $popular = fetchFiles($sql);
    }

    //----------------------------- Статистика ------------------------------------

    if ($cfg['sw_stats']) {
        $stats['total_files'] = cmsCore::c('db')->rows_count('cms_user_files', "allow_who='all'");
        $stats['total_size']  = 0;

        $sql = "SELECT SUM(f.filesize) as bytes
                FROM cms_user_files f
                WHERE f.allow_who = 'all'";

        $result = cmsCore::c('db')->query($sql);

        if (cmsCore::c('db')->num_rows($result)) {
            $size                = cmsCore::c('db')->fetch_assoc($result);
            $stats['total_size'] = round(($size['bytes'] / 1024) / 1024, 2);
        }
    }

    //-----------------------------------------------------------------------------

    if (!$popular && !$latest) {
        return false;
    }

    cmsPage::initTemplate('modules', $cfg['tpl'])->
        assign('latest', $latest)->
        assign('popular', $popular)->
        assign('stats', $stats)->
        assign('cfg', $cfg)->
        display();

    return true;
}