示例#1
0
/**
 * Returns all page tags for coTemplate
 *
 * @param mixed $page_data Page Info Array or ID
 * @param string $tag_prefix Prefix for tags
 * @param int $textlength Text truncate
 * @param bool $admin_rights Page Admin Rights
 * @param bool $pagepath_home Add home link for page path
 * @param string $emptytitle Page title text if page does not exist
 * @return array
 * @global CotDB $db
 */
function cot_generate_pagetags($page_data, $tag_prefix = '', $textlength = 0, $admin_rights = null, $pagepath_home = false, $emptytitle = '')
{
    global $db, $cot_extrafields, $cfg, $L, $Ls, $R, $db_pages, $usr, $sys, $cot_yesno, $structure, $db_structure;
    static $extp_first = null, $extp_main = null;
    static $pag_auth = array();
    if (is_null($extp_first)) {
        $extp_first = cot_getextplugins('pagetags.first');
        $extp_main = cot_getextplugins('pagetags.main');
    }
    /* === Hook === */
    foreach ($extp_first as $pl) {
        include $pl;
    }
    /* ===== */
    if (!is_array($page_data)) {
        $sql = $db->query("SELECT * FROM {$db_pages} WHERE page_id = '" . (int) $page_data . "' LIMIT 1");
        $page_data = $sql->fetch();
    }
    if ($page_data['page_id'] > 0 && !empty($page_data['page_title'])) {
        if (is_null($admin_rights)) {
            if (!isset($pag_auth[$page_data['page_cat']])) {
                $pag_auth[$page_data['page_cat']] = cot_auth('page', $page_data['page_cat'], 'RWA1');
            }
            $admin_rights = (bool) $pag_auth[$page_data['page_cat']][2];
        }
        $pagepath = cot_structure_buildpath('page', $page_data['page_cat']);
        $catpath = cot_breadcrumbs($pagepath, $pagepath_home);
        $page_data['page_pageurl'] = empty($page_data['page_alias']) ? cot_url('page', 'c=' . $page_data['page_cat'] . '&id=' . $page_data['page_id']) : cot_url('page', 'c=' . $page_data['page_cat'] . '&al=' . $page_data['page_alias']);
        $page_link[] = array($page_data['page_pageurl'], $page_data['page_title']);
        $page_data['page_fulltitle'] = cot_breadcrumbs(array_merge($pagepath, $page_link), $pagepath_home);
        if (!empty($page_data['page_url']) && $page_data['page_file']) {
            $dotpos = mb_strrpos($page_data['page_url'], ".") + 1;
            $type = mb_strtolower(mb_substr($page_data['page_url'], $dotpos, 5));
            $page_data['page_fileicon'] = cot_rc('page_icon_file_path', array('type' => $type));
            if (!file_exists($page_data['page_fileicon'])) {
                $page_data['page_fileicon'] = cot_rc('page_icon_file_default');
            }
            $page_data['page_fileicon'] = cot_rc('page_icon_file', array('icon' => $page_data['page_fileicon']));
        } else {
            $page_data['page_fileicon'] = '';
        }
        $date_format = 'datetime_medium';
        $text = cot_parse($page_data['page_text'], $cfg['page']['markup'], $page_data['page_parser']);
        $text_cut = cot_cut_more($text);
        if ($textlength > 0 && mb_strlen($text_cut) > $textlength) {
            $text_cut = cot_string_truncate($text_cut, $textlength);
        }
        $cutted = mb_strlen($text) > mb_strlen($text_cut) ? true : false;
        $cat_url = cot_url('page', 'c=' . $page_data['page_cat']);
        $validate_url = cot_url('admin', "m=page&a=validate&id={$page_data['page_id']}&x={$sys['xk']}");
        $unvalidate_url = cot_url('admin', "m=page&a=unvalidate&id={$page_data['page_id']}&x={$sys['xk']}");
        $edit_url = cot_url('page', "m=edit&id={$page_data['page_id']}");
        $delete_url = cot_url('page', "m=edit&a=update&delete=1&id={$page_data['page_id']}&x={$sys['xk']}");
        $page_data['page_status'] = cot_page_status($page_data['page_state'], $page_data['page_begin'], $page_data['page_expire']);
        $temp_array = array('URL' => $page_data['page_pageurl'], 'ID' => $page_data['page_id'], 'TITLE' => $page_data['page_fulltitle'], 'ALIAS' => $page_data['page_alias'], 'STATE' => $page_data['page_state'], 'STATUS' => $page_data['page_status'], 'LOCALSTATUS' => $L['page_status_' . $page_data['page_status']], 'SHORTTITLE' => htmlspecialchars($page_data['page_title'], ENT_COMPAT, 'UTF-8', false), 'CAT' => $page_data['page_cat'], 'CATURL' => $cat_url, 'CATTITLE' => htmlspecialchars($structure['page'][$page_data['page_cat']]['title']), 'CATPATH' => $catpath, 'CATPATH_SHORT' => cot_rc_link($cat_url, htmlspecialchars($structure['page'][$page_data['page_cat']]['title'])), 'CATDESC' => htmlspecialchars($structure['page'][$page_data['page_cat']]['desc']), 'CATICON' => $structure['page'][$page_data['page_cat']]['icon'], 'KEYWORDS' => htmlspecialchars($page_data['page_keywords']), 'DESC' => htmlspecialchars($page_data['page_desc']), 'TEXT' => $text, 'TEXT_CUT' => $text_cut, 'TEXT_IS_CUT' => $cutted, 'DESC_OR_TEXT' => !empty($page_data['page_desc']) ? htmlspecialchars($page_data['page_desc']) : $text, 'MORE' => $cutted ? cot_rc('list_more', array('page_url' => $page_data['page_pageurl'])) : '', 'AUTHOR' => htmlspecialchars($page_data['page_author']), 'OWNERID' => $page_data['page_ownerid'], 'OWNERNAME' => htmlspecialchars($page_data['user_name']), 'DATE' => cot_date($date_format, $page_data['page_date']), 'BEGIN' => cot_date($date_format, $page_data['page_begin']), 'EXPIRE' => cot_date($date_format, $page_data['page_expire']), 'UPDATED' => cot_date($date_format, $page_data['page_updated']), 'DATE_STAMP' => $page_data['page_date'], 'BEGIN_STAMP' => $page_data['page_begin'], 'EXPIRE_STAMP' => $page_data['page_expire'], 'UPDATED_STAMP' => $page_data['page_updated'], 'FILE' => $cot_yesno[$page_data['page_file']], 'FILE_URL' => empty($page_data['page_url']) ? '' : cot_url('page', 'c=' . $page_data['page_cat'] . '&id=' . $page_data['page_id'] . '&a=dl'), 'FILE_SIZE' => $page_data['page_size'] / 1024, 'FILE_SIZE_BYTES' => $page_data['page_size'], 'FILE_SIZE_READABLE' => cot_build_filesize($page_data['page_size'], 1), 'FILE_ICON' => $page_data['page_fileicon'], 'FILE_COUNT' => $page_data['page_filecount'], 'FILE_COUNTTIMES' => cot_declension($page_data['page_filecount'], $Ls['Times']), 'FILE_NAME' => basename($page_data['page_url']), 'COUNT' => $page_data['page_count'], 'ADMIN' => $admin_rights ? cot_rc('list_row_admin', array('unvalidate_url' => $unvalidate_url, 'edit_url' => $edit_url)) : '', 'NOTAVAILABLE' => $page_data['page_begin'] > $sys['now'] ? $L['page_notavailable'] . cot_build_timegap($sys['now'], $pag['page_begin']) : '');
        // Admin tags
        if ($admin_rights) {
            $validate_confirm_url = cot_confirm_url($validate_url, 'page', 'page_confirm_validate');
            $unvalidate_confirm_url = cot_confirm_url($unvalidate_url, 'page', 'page_confirm_unvalidate');
            $delete_confirm_url = cot_confirm_url($delete_url, 'page', 'page_confirm_delete');
            $temp_array['ADMIN_EDIT'] = cot_rc_link($edit_url, $L['Edit']);
            $temp_array['ADMIN_EDIT_URL'] = $edit_url;
            $temp_array['ADMIN_UNVALIDATE'] = $page_data['page_state'] == 1 ? cot_rc_link($validate_confirm_url, $L['Validate'], 'class="confirmLink"') : cot_rc_link($unvalidate_confirm_url, $L['Putinvalidationqueue'], 'class="confirmLink"');
            $temp_array['ADMIN_UNVALIDATE_URL'] = $page_data['page_state'] == 1 ? $validate_confirm_url : $unvalidate_confirm_url;
            $temp_array['ADMIN_DELETE'] = cot_rc_link($delete_confirm_url, $L['Delete'], 'class="confirmLink"');
            $temp_array['ADMIN_DELETE_URL'] = $delete_confirm_url;
        } else {
            if ($usr['id'] == $page_data['page_ownerid']) {
                $temp_array['ADMIN_EDIT'] = cot_rc_link($edit_url, $L['Edit']);
                $temp_array['ADMIN_EDIT_URL'] = $edit_url;
            }
        }
        if (cot_auth('page', 'any', 'W')) {
            $clone_url = cot_url('page', "m=add&c={$page_data['page_cat']}&clone={$page_data['page_id']}");
            $temp_array['ADMIN_CLONE'] = cot_rc_link($clone_url, $L['page_clone']);
            $temp_array['ADMIN_CLONE_URL'] = $clone_url;
        }
        // Extrafields
        if (isset($cot_extrafields[$db_pages])) {
            foreach ($cot_extrafields[$db_pages] as $exfld) {
                $tag = mb_strtoupper($exfld['field_name']);
                $temp_array[$tag . '_TITLE'] = isset($L['page_' . $exfld['field_name'] . '_title']) ? $L['page_' . $exfld['field_name'] . '_title'] : $exfld['field_description'];
                $temp_array[$tag] = cot_build_extrafields_data('page', $exfld, $page_data['page_' . $exfld['field_name']], $page_data['page_parser']);
                $temp_array[$tag . '_VALUE'] = $page_data['page_' . $exfld['field_name']];
            }
        }
        // Extra fields for structure
        if (isset($cot_extrafields[$db_structure])) {
            foreach ($cot_extrafields[$db_structure] as $exfld) {
                $tag = mb_strtoupper($exfld['field_name']);
                $temp_array['CAT_' . $tag . '_TITLE'] = isset($L['structure_' . $exfld['field_name'] . '_title']) ? $L['structure_' . $exfld['field_name'] . '_title'] : $exfld['field_description'];
                $temp_array['CAT_' . $tag] = cot_build_extrafields_data('structure', $exfld, $structure['page'][$page_data['page_cat']][$exfld['field_name']]);
                $temp_array['CAT_' . $tag . '_VALUE'] = $structure['page'][$page_data['page_cat']][$exfld['field_name']];
            }
        }
        /* === Hook === */
        foreach ($extp_main as $pl) {
            include $pl;
        }
        /* ===== */
    } else {
        $temp_array = array('TITLE' => !empty($emptytitle) ? $emptytitle : $L['Deleted'], 'SHORTTITLE' => !empty($emptytitle) ? $emptytitle : $L['Deleted']);
    }
    $return_array = array();
    foreach ($temp_array as $key => $val) {
        $return_array[$tag_prefix . $key] = $val;
    }
    return $return_array;
}
示例#2
0
        } else {
            continue;
        }
    }
    if ($row['is_user']) {
        $count_users++;
        $url_ipsearch = cot_url('admin', 'm=other&p=ipsearch&a=search&id=' . $row['online_ip'] . '&' . cot_xg());
        $t->assign(array('USER_LOCATION' => htmlspecialchars($row['online_location']), 'USER_SUBLOCATION' => htmlspecialchars($row['online_subloc']), 'USER_IP' => $ipsearch ? cot_rc_link($url_ipsearch, $row['online_ip']) : $row['online_ip'], 'USER_IP_URL' => $ipsearch ? $url_ipsearch : '', 'USER_LINK' => cot_build_user($row['online_userid'], htmlspecialchars($row['online_name'])), 'USER_LASTSEEN' => cot_build_timegap($row['online_lastseen'], $sys['now'])));
        $t->assign(cot_generate_usertags($row, 'USER_'));
        /* === Hook - Part2 : Include === */
        foreach ($users_loop_hook as $pl) {
            include $pl;
        }
        /* ===== */
        $t->parse('MAIN.USERS');
    } else {
        $count_guests++;
        $url_ipsearch = cot_url('admin', 'm=other&p=ipsearch&a=search&id=' . $row['online_ip'] . '&' . cot_xg());
        $t->assign(array('GUEST_LOCATION' => htmlspecialchars($row['online_location']), 'GUEST_SUBLOCATION' => htmlspecialchars($row['online_subloc']), 'GUEST_IP' => $ipsearch ? cot_rc_link($url_ipsearch, $row['online_ip']) : $row['online_ip'], 'GUEST_IP_URL' => $ipsearch ? $url_ipsearch : '', 'GUEST_NUMBER' => $count_guests + $guest_start_num, 'GUEST_LASTSEEN' => cot_build_timegap($row['online_lastseen'], $sys['now'])));
        /* === Hook - Part2 : Include === */
        foreach ($guests_loop_hook as $pl) {
            include $pl;
        }
        /* ===== */
        $t->parse('MAIN.GUESTS');
    }
    //if (($count_users + $count_guests) >= $maxuserssperpage) break;
}
$sql_users->closeCursor();
$t->assign(array('WHO_PAGINATION' => $pagenav['main'], 'WHO_PAGEPREV' => $pagenav['prev'], 'WHO_PAGENEXT' => $pagenav['next'], 'WHO_CURRENTPAGE' => $pagenav['current'], 'WHO_TOTALLINES' => $totallines, 'WHO_MAXPERPAGE' => $maxuserssperpage, 'WHO_TOTALPAGES' => $pagenav['total'], 'STAT_MAXUSERS' => $maxusers, 'STAT_COUNT_USERS' => $who_users, 'STAT_COUNT_GUESTS' => $who_guests, 'USERS' => cot_declension($who_users, $Ls['Members'], true), 'GUESTS' => cot_declension($who_guests, $Ls['Guests'], true)));
示例#3
0
/**
 * Generic function for generating a human-readable number with localized units.
 *
 * @param float $number
 *	Input number to convert, based on the unit with size (key) 1.
 * @param array $units
 *	Array of units as $relativesize => $unit.
 *  Example: array('3600' => 'hours', '60' => 'minutes', '1' => 'seconds').
 *	Where 'seconds' is the base unit, since it has a value of 1. Hours has a value of
 *	3600, since one hour contains 3600 seconds. Values can be given as strings or integers.
 * @param int $levels
 *	Number of levels to return.
 *	"3 hours 45 minutes" = 2 levels.
 * @param int $decimals
 *	Number of decimals to show in last level.
 *	"2 minutes 20.5 seconds" = 2 levels, 1 decimals.
 * @param mixed $round
 *	Number of decimals to round the last level up to, can also be negative, see round().
 *	Set false to disable or null to inherit from $decimals.
 * @param string $smallestunit
 *  Key of the smallest unit to show. Any number smaller than this will return 'Less than 1 ...'.
 *  Effectively its a way to cut off $units at a certain key.
 * @return string
 */
function cot_build_friendlynumber($number, $units, $levels = 1, $decimals = 0, $round = null, $smallestunit = null)
{
    global $L;
    if (!is_array($units)) {
        return '';
    }
    $pieces = array();
    // First sort from big to small
    ksort($units, SORT_NUMERIC);
    $units = array_reverse($units, true);
    // Trim units after $smallestunit
    if (array_key_exists($smallestunit, $units)) {
        $offset = array_search($smallestunit, array_keys($units));
        $units = array_slice($units, 0, $offset + 1, true);
    }
    if ($number == 0) {
        // Return smallest possible unit
        $units = array_reverse(array_values($units));
        return cot_declension(0, $units[0]);
    }
    foreach ($units as $size => $expr) {
        $size = floatval($size);
        if ($number >= $size) {
            $levels--;
            $num = $number / $size;
            $number -= floor($num) * $size;
            if ($number > 0 && $levels > 0) {
                // There's more to come, so no decimals yet.
                $pieces[] = cot_declension(floor($num), $expr);
            } else {
                // Last item gets decimals and rounding.
                if ($decimals > 0) {
                    $pieces[] = cot_build_number($num, $decimals, $round) . ' ' . cot_declension($num, $expr, true, true);
                } else {
                    $pieces[] = floor($num) . ' ' . cot_declension(floor($num), $expr, true, true);
                }
                break;
            }
            if ($levels == 0) {
                break;
            }
        }
    }
    if (count($pieces) == 0) {
        // Smaller than smallest possible unit
        $expr = array_reverse(array_values($units));
        return $L['LessThan'] . ' ' . cot_declension(1, $expr[0]);
    }
    return implode(' ', $pieces);
}
示例#4
0
 if ($cfg['debug_mode']) {
     $cot_hooks_fired[] = 'footer.last';
     $cot_hooks_fired[] = 'output';
     $out['hooks'] = '<ol>';
     foreach ($cot_hooks_fired as $hook) {
         $out['hooks'] .= '<li>' . $hook . '</li>';
     }
     $out['hooks'] .= '</ol>';
     $t->assign('FOOTER_HOOKS', $out['hooks']);
 }
 // Creation time statistics
 $i = explode(' ', microtime());
 $sys['endtime'] = $i[1] + $i[0];
 $sys['creationtime'] = round($sys['endtime'] - $sys['starttime'], 3);
 $out['creationtime'] = !$cfg['disablesysinfos'] ? $L['foo_created'] . ' ' . cot_declension($sys['creationtime'], $Ls['Seconds'], $onlyword = false, $canfrac = true) : '';
 $out['sqlstatistics'] = $cfg['showsqlstats'] ? $L['foo_sqltotal'] . ': ' . cot_declension(round($db->timeCount, 3), $Ls['Seconds'], $onlyword = false, $canfrac = true) . ' - ' . $L['foo_sqlqueries'] . ': ' . $db->count . ' - ' . $L['foo_sqlaverage'] . ': ' . cot_declension(round($db->timeCount / $db->count, 5), $Ls['Seconds'], $onlyword = false, $canfrac = true) : '';
 $out['bottomline'] = $cfg['bottomline'];
 $out['bottomline'] .= $cfg['keepcrbottom'] ? $out['copyright'] : '';
 // Development mode SQL query timings
 if ($cfg['devmode'] && cot_auth('admin', 'a', 'A')) {
     $out['devmode'] = "<h4>Dev-mode :</h4><table><tr><td><em>SQL query</em></td><td><em>Duration</em></td><td><em>Timeline</em></td><td><em>Execution stack<br />(file[line]: function)</em></td><td><em>Query</em></td></tr>";
     $out['devmode'] .= "<tr><td colspan=\"2\">BEGIN</td>";
     $out['devmode'] .= "<td style=\"text-align:right;\">0.000 ms</td><td>&nbsp;</td></tr>";
     if (is_array($sys['devmode']['queries'])) {
         foreach ($sys['devmode']['queries'] as $k => $i) {
             $out['devmode'] .= "<tr><td>#" . $i[0] . " &nbsp;</td>";
             $out['devmode'] .= "<td style=\"text-align:right;\">" . sprintf("%.3f", round($i[1] * 1000, 3)) . " ms</td>";
             $out['devmode'] .= "<td style=\"text-align:right;\">" . sprintf("%.3f", round($sys['devmode']['timeline'][$k] * 1000, 3)) . " ms</td>";
             $out['devmode'] .= "<td style=\"text-align:left;\">" . nl2br(htmlspecialchars($i[3])) . "</td>";
             $out['devmode'] .= "<td style=\"text-align:left;\">" . htmlspecialchars($i[2]) . "</td></tr>";
         }
示例#5
0
<?php

/* ====================
[BEGIN_COT_EXT]
Hooks=header.main
Tags=header.tpl:{HEADER_USER_PMS},{HEADER_USER_PMREMINDER}
[END_COT_EXT]
==================== */
/**
 * PM header notices
 *
 * @package PM
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */
defined('COT_CODE') or die('Wrong URL.');
if ($usr['id'] > 0) {
    $out['pms'] = cot_rc_link(cot_url('pm'), $L['Private_Messages']);
    require_once cot_incfile('pm', 'module');
    if ($usr['newpm']) {
        $usr['messages'] = $db->query("SELECT COUNT(*) FROM {$db_pm} WHERE pm_touserid='" . $usr['id'] . "' AND pm_tostate=0")->fetchColumn();
    }
    $out['pmreminder'] = cot_rc_link(cot_url('pm'), $usr['messages'] > 0 ? cot_declension($usr['messages'], $Ls['Privatemessages']) : $L['hea_noprivatemessages']);
    $t->assign(array('HEADER_USER_PM_URL' => cot_url('pm'), 'HEADER_USER_PMS' => $out['pms'], 'HEADER_USER_PMREMINDER' => $out['pmreminder']));
}
if ($cfg['pm']['css'] && $env['ext'] == 'pm') {
    Resources::linkFile($cfg['modules_dir'] . '/pm/tpl/pm.css');
}
示例#6
0
 * @package Cotonti
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */
defined('COT_CODE') or die('Wrong URL');
if ($usr['id'] > 0 && cot_auth('page', 'any', 'A')) {
    require_once cot_incfile('page', 'module');
    $sys['pagesqueued'] = (int) $db->query("SELECT COUNT(*) FROM {$db_pages} WHERE page_state=1")->fetchColumn();
    if ($sys['pagesqueued'] > 0) {
        $out['notices_array'][] = array(cot_url('admin', 'm=page'), cot_declension($sys['pagesqueued'], $Ls['unvalidated_pages']));
    }
} elseif ($usr['id'] > 0 && cot_auth('page', 'any', 'W')) {
    require_once cot_incfile('page', 'module');
    $sys['pagesqueued'] = (int) $db->query("SELECT COUNT(*) FROM {$db_pages} WHERE page_state=1 AND page_ownerid = " . $usr['id'])->fetchColumn();
    if ($sys['pagesqueued'] > 0) {
        $out['notices_array'][] = array(cot_url('page', 'c=unvalidated'), cot_declension($sys['pagesqueued'], $Ls['unvalidated_pages']));
    }
}
if ($usr['id'] > 0 && cot_auth('page', 'any', 'A')) {
    require_once cot_incfile('page', 'module');
    $sys['pagesindrafts'] = (int) $db->query("SELECT COUNT(*) FROM {$db_pages} WHERE page_state=2")->fetchColumn();
    if ($sys['pagesindrafts'] > 0) {
        $out['notices_array'][] = array(cot_url('admin', 'm=page&filter=drafts'), cot_declension($sys['pagesindrafts'], $Ls['pages_in_drafts']));
    }
} elseif ($usr['id'] > 0 && cot_auth('page', 'any', 'W')) {
    require_once cot_incfile('page', 'module');
    $sys['pagesindrafts'] = (int) $db->query("SELECT COUNT(*) FROM {$db_pages} WHERE page_state=2 AND page_ownerid = " . $usr['id'])->fetchColumn();
    if ($sys['pagesindrafts'] > 0) {
        $out['notices_array'][] = array(cot_url('page', 'c=saved_drafts'), cot_declension($sys['pagesindrafts'], $Ls['pages_in_drafts']));
    }
}
示例#7
0
<?php

/* ====================
  [BEGIN_COT_EXT]
  Hooks=header.main
  [END_COT_EXT]
  ==================== */
/**
 * Header notifications
 *
 * @package Contact
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 */
defined('COT_CODE') or die('Wrong URL');
if (cot_auth('plug', 'contact', 'A')) {
    require_once cot_incfile('contact', 'plug');
    $new_contact = $db->query("SELECT COUNT(*) FROM {$db_contact} WHERE contact_val=0")->fetchColumn();
    $notify_contact = $new_contact > 0 ? array(cot_url('admin', 'm=other&p=contact'), cot_declension($new_contact, $Ls['contact_headercontact'])) : '';
    if (!empty($notify_contact)) {
        $out['notices_array'][] = $notify_contact;
    }
}
示例#8
0
    if ($folders_count > 0) {
        $totalitemsf = $folders_count;
        $pagenav = cot_pagenav('pfs', $more, $df, $totalitemsf, $cfg['pfs']['maxpfsperpage'], 'df');
        $t->assign(array('PFF_FOLDERCOUNT_TITLE' => cot_declension($folders_count, $Ls['Folders']), 'PFF_FILESCOUNT_TITLE' => cot_declension($subfiles_count, $Ls['Files']), 'PFF_ONPAGE_FOLDERS_TITLE' => cot_declension($iki, $Ls['Folders']), 'PFF_ONPAGE_FILES_TITLE' => cot_declension($subfiles_count_on_page, $Ls['Files']), 'PFF_FOLDERCOUNT' => $folders_count, 'PFF_FILESCOUNT' => $subfiles_count, 'PFF_ONPAGE_FOLDERS' => $iki, 'PFF_ONPAGE_FILES' => $subfiles_count_on_page, 'PFF_PAGING_PREV' => $pagenav['prev'], 'PFF_PAGING_CURRENT' => $pagenav['main'], 'PFF_PAGING_NEXT' => $pagenav['next']));
    }
    if ($files_count > 0) {
        $thumbspagination = $opt == 'thumbs' ? '&opt=thumbs' : '';
        $totalitems = $files_count;
        $pagnavParams = 'f=' . $f;
        if (!empty($more)) {
            $pagnavParams .= '&' . $more;
        }
        $pagnavParams .= $thumbspagination;
        $pagenav = cot_pagenav('pfs', $pagnavParams, $d, $totalitems, $cfg['pfs']['maxpfsperpage']);
        $filesinfolder .= $f > 0 ? $L['pfs_filesinthisfolder'] : $L['pfs_filesintheroot'];
        $t->assign(array('PFS_FILESCOUNT_TITLE' => cot_declension($files_count, $Ls['Files']), 'PFS_ONPAGE_FILES_TITLE' => cot_declension($iji, $Ls['Files']), 'PFS_FILESCOUNT' => $files_count, 'PFS_INTHISFOLDER' => $filesinfolder, 'PFS_ONPAGE_FILES' => $iji, 'PFS_PAGING_PREV' => $pagenav['prev'], 'PFS_PAGING_CURRENT' => $pagenav['main'], 'PFS_PAGING_NEXT' => $pagenav['next']));
    }
}
// ========== Statistics =========
$showthumbs .= $opt != 'thumbs' && $files_count > 0 && $cfg['pfs']['th_amode'] != 'Disabled' ? cot_rc_link(cot_url('pfs', 'f=' . $f . '&' . $more . '&opt=thumbs'), $L['Thumbnails']) : '';
$t->assign(array('PFS_TOTALSIZE' => cot_build_filesize($pfs_totalsize, 1), 'PFS_TOTALSIZE_BYTES' => $pfs_totalsize, 'PFS_TOTALSIZE_KB' => floor($pfs_totalsize / 1024), 'PFS_MAXTOTAL' => cot_build_filesize($maxtotal, 1), 'PFS_MAXTOTAL_BYTES' => $maxtotal, 'PFS_MAXTOTAL_KB' => $maxtotal / 1024, 'PFS_PERCENTAGE' => $maxtotal > 0 ? round($pfs_totalsize / $maxtotal * 100) : 0, 'PFS_MAXFILESIZE' => cot_build_filesize($maxfile, 1), 'PFS_MAXFILESIZE_BYTES' => $maxfile, 'PFS_MAXFILESIZE_KB' => $maxfile / 1024, 'PFS_SHOWTHUMBS' => $showthumbs));
// ========== Upload =========
$t->assign(array('PFS_UPLOAD_FORM_MAX_SIZE' => $maxfile, 'PFS_UPLOAD_FORM_USERID' => $userid));
$t->assign(array('PFS_UPLOAD_FORM_ACTION' => cot_url('pfs', "f={$f}&a=upload&{$more}"), 'PFS_UPLOAD_FORM_FOLDERS' => cot_selectbox_folders($userid, '', $f)));
for ($ii = 0; $ii < $cfg['pfs']['pfsmaxuploads']; $ii++) {
    $t->assign(array('PFS_UPLOAD_FORM_ROW_ID' => $ii, 'PFS_UPLOAD_FORM_ROW_NUM' => $ii + 1));
    $t->parse('MAIN.PFS_UPLOAD_FORM.PFS_UPLOAD_FORM_ROW');
}
$t->parse('MAIN.PFS_UPLOAD_FORM');
// ========== Allowed =========
reset($cot_extensions);
示例#9
0
文件: Main.php 项目: ASDAFF/advboard
 /**
  * Просмотр одного объявления
  */
 public function adView()
 {
     global $structure, $Ls;
     list(cot::$usr['auth_read'], cot::$usr['auth_write'], cot::$usr['isadmin']) = cot_auth('advboard', 'any');
     cot_block(cot::$usr['auth_read']);
     $id = cot_import('id', 'G', 'INT');
     $al = cot_import('al', 'G', 'TXT');
     $c = cot_import('c', 'G', 'TXT');
     /* === Hook === */
     foreach (cot_getextplugins('advboard.first') as $pl) {
         include $pl;
     }
     /* ===== */
     if (empty($id) && empty($al)) {
         cot_die_message(404, TRUE);
     }
     if (!empty($al)) {
         $advert = advboard_model_Advert::fetchOne(array(array('alias', $al)));
     } else {
         $advert = advboard_model_Advert::getById($id);
     }
     if (!$advert) {
         cot_die_message(404, TRUE);
     }
     list(cot::$usr['auth_read'], cot::$usr['auth_write'], cot::$usr['isadmin'], cot::$usr['auth_upload']) = cot_auth('advboard', $advert->rawValue('category'), 'RWA1');
     cot_block(cot::$usr['auth_read']);
     $al = empty($advert->alias) ? '' : $advert->alias;
     $id = (int) $advert->id;
     $category = array('config' => array());
     if (isset($structure['advboard'][$advert->rawValue('category')])) {
         $category = $structure['advboard'][$advert->rawValue('category')];
         $category['config'] = cot::$cfg['advboard']['cat_' . $advert->rawValue('category')];
     }
     $category['code'] = $advert->rawValue('category');
     cot::$sys['sublocation'] = $advert->title;
     if (($advert->state == advboard_model_Advert::AWAITING_MODERATION || $advert->state == advboard_model_Advert::DRAFT || $advert->begin > cot::$sys['now'] || $advert->expire > 0 && cot::$sys['now'] > $advert->expire) && !$advert->canEdit()) {
         cot_log("Attempt to directly access an un-validated or future/expired advboard", 'sec');
         cot_die_message(403, TRUE);
     }
     if (!cot::$usr['isadmin'] || cot::$cfg['advboard']['count_admin']) {
         $advert->inc('views');
     }
     $title_params = array('TITLE' => $advert->title, 'CATEGORY' => $category['title']);
     cot::$out['subtitle'] = cot_title(cot::$cfg['page']['title_page'], $title_params);
     cot::$out['desc'] = $advert->description;
     cot::$out['keywords'] = strip_tags($category['config']['keywords']);
     // Building the canonical URL
     cot::$out['canonical_uri'] = $advert->url;
     $template = array('advboard', 'advert', $category['tpl']);
     if (!empty($advert->updated)) {
         cot::$env['last_modified'] = strtotime($advert->updated);
     }
     $allowComments = cot_plugin_active('comments');
     if ($allowComments) {
         if (!isset(cot::$cfg['advboard']['cat_' . $advert->category])) {
             $allowComments = false;
         }
         $allowComments = cot::$cfg['advboard']['cat_' . $advert->category]['enable_comments'];
     }
     /* === Hook === */
     foreach (cot_getextplugins('advboard.main') as $pl) {
         include $pl;
     }
     /* ===== */
     // Сообщение об истечении срока публикации
     $expDays = null;
     if ($advert->expire > 0 && $advert->state == advboard_model_Advert::PUBLISHED) {
         $diff = $advert->expire - cot::$sys['now'];
         $expDays = floor($diff / 86400);
         if ($advert->canEdit()) {
             if (cot::$cfg['advboard']['expNotifyPeriod'] > 0) {
                 if ($diff < 86400 * cot::$cfg['advboard']['expNotifyPeriod'] && $diff > 0) {
                     if ($expDays >= 1) {
                         cot_message(sprintf(cot::$L['advboard_expire_soon'], cot_declension($expDays, $Ls['Days'], false, true)), 'warning');
                     } else {
                         cot_message(cot::$L['advboard_expire_today'], 'warning');
                     }
                 } elseif ($diff <= 0) {
                     cot_message(cot::$L['advboard_expired'], 'warning');
                 }
             }
         }
     }
     // Если незарег может редактировать объявление, не кешировать эту страницу
     if (cot::$usr['id'] == 0 && !empty($_SESSION['advboard']) && in_array($advert->id, $_SESSION['advboard'])) {
         cot::$cfg['cache_advert'] = cot::$cfg['cache_index'] = false;
     }
     $crumbs = cot_structure_buildpath('advboard', $advert->category);
     if (cot::$cfg['advboard']['firstCrumb']) {
         array_unshift($crumbs, array(cot_url('advboard'), cot::$L['advboard_ads']));
     }
     $crumbs[] = !empty($advert->title) ? $advert->title : cot::$L['advboard_advert'] . " #" . $advert->id;
     $urlParams = array('c' => $advert->category);
     if ($advert->alias != '') {
         $urlParams['al'] = $advert->alias;
     } else {
         $urlParams['id'] = $advert->id;
     }
     $view = new View();
     $view->breadcrumbs = cot_breadcrumbs($crumbs, cot::$cfg['homebreadcrumb'], true);
     $view->page_title = $advert->title;
     $view->advert = $advert;
     $view->category = $category;
     $view->allowComments = $allowComments;
     $view->daysLeft = $expDays;
     $view->urlParams = $urlParams;
     /* === Hook === */
     foreach (cot_getextplugins('advboard.view') as $pl) {
         include $pl;
     }
     /* ===== */
     return $view->render($template);
 }
示例#10
0
    $id = cot_import('id', 'G', 'INT');
    $db->delete($db_banlist, "banlist_id={$id}") ? cot_message('alreadydeletednewentry') : cot_message('Error');
}
$totalitems = $db->countRows($db_banlist);
$pagenav = cot_pagenav('admin', 'm=other&p=banlist', $d, $totalitems, $maxperpage, 'd', '', $cfg['jquery'] && $cfg['turnajax']);
$sql = $db->query("SELECT * FROM {$db_banlist} ORDER by banlist_expire DESC, banlist_ip LIMIT {$d}, " . $maxperpage);
$ii = 0;
/* === Hook - Part1 : Set === */
$extp = cot_getextplugins('banlist.admin.loop');
/* ===== */
foreach ($sql->fetchAll() as $row) {
    $tt->assign(array('ADMIN_BANLIST_ROW_ID' => $row['banlist_id'], 'ADMIN_BANLIST_ROW_URL' => cot_url('admin', 'm=other&p=banlist&a=update&id=' . $row['banlist_id'] . '&d=' . $durl), 'ADMIN_BANLIST_ROW_DELURL' => cot_url('admin', 'm=other&p=banlist&a=delete&id=' . $row['banlist_id'] . '&' . cot_xg()), 'ADMIN_BANLIST_ROW_EXPIRE' => $row['banlist_expire'] > 0 ? cot_date('datetime_medium', $row['banlist_expire']) : $L['banlist_neverexpire'], 'ADMIN_BANLIST_ROW_EXPIRE_STAMP' => $row['banlist_expire'] > 0 ? $row['banlist_expire'] : '', 'ADMIN_BANLIST_ROW_IP' => cot_inputbox('text', 'rbanlistip', $row['banlist_ip'], 'size="18" maxlength="16"'), 'ADMIN_BANLIST_ROW_EMAIL' => cot_inputbox('text', 'rbanlistemail', $row['banlist_email'], 'size="10" maxlength="64"'), 'ADMIN_BANLIST_ROW_REASON' => cot_inputbox('text', 'rbanlistreason', $row['banlist_reason'], 'size="22" maxlength="64"'), 'ADMIN_BANLIST_ROW_ODDEVEN' => cot_build_oddeven($ii)));
    /* === Hook - Part2 : Include === */
    foreach ($extp as $pl) {
        include $pl;
    }
    /* ===== */
    $tt->parse('MAIN.ADMIN_BANLIST_ROW');
    $ii++;
}
$time_array = array('0', '3600', '7200', '14400', '28800', '57600', '86400', '172800', '345600', '604800', '1209600', '1814400', '2592000');
$time_values = array($L['banlist_neverexpire'], cot_declension(1, $Ls['Hours']), cot_declension(2, $Ls['Hours']), cot_declension(4, $Ls['Hours']), cot_declension(8, $Ls['Hours']), cot_declension(16, $Ls['Hours']), cot_declension(1, $Ls['Days']), cot_declension(2, $Ls['Days']), cot_declension(4, $Ls['Days']), cot_declension(1, $Ls['Weeks']), cot_declension(2, $Ls['Weeks']), cot_declension(3, $Ls['Weeks']), cot_declension(1, $Ls['Months']));
$tt->assign(array('ADMIN_BANLIST_PAGINATION_PREV' => $pagenav['prev'], 'ADMIN_BANLIST_PAGNAV' => $pagenav['main'], 'ADMIN_BANLIST_PAGINATION_NEXT' => $pagenav['next'], 'ADMIN_BANLIST_TOTALITEMS' => $totalitems, 'ADMIN_BANLIST_COUNTER_ROW' => $ii, 'ADMIN_BANLIST_URLFORMADD' => cot_url('admin', 'm=other&p=banlist&a=add'), 'ADMIN_BANLIST_EXPIRE' => cot_selectbox('0', 'nexpire', $time_array, $time_values, false), 'ADMIN_BANLIST_IP' => cot_inputbox('text', 'nbanlistip', '', 'size="18" maxlength="16"'), 'ADMIN_BANLIST_EMAIL' => cot_inputbox('text', 'nbanlistemail', '', 'size="24" maxlength="64"'), 'ADMIN_BANLIST_REASON' => cot_inputbox('text', 'nbanlistreason', '', 'size="48" maxlength="64"')));
cot_display_messages($tt);
/* === Hook  === */
foreach (cot_getextplugins('banlist.admin.tags') as $pl) {
    include $pl;
}
/* ===== */
$tt->parse('MAIN');
$plugin_body = $tt->text('MAIN');
示例#11
0
$t->assign(cot_generate_usertags($pag, 'PAGE_OWNER_'));
$pag['page_file'] = intval($pag['page_file']);
if ($pag['page_file'] > 0) {
    if ($sys['now'] > $pag['page_begin']) {
        if (!empty($pag['page_url'])) {
            $dotpos = mb_strrpos($pag['page_url'], ".") + 1;
            $type = mb_strtolower(mb_substr($pag['page_url'], $dotpos, 5));
            $pag['page_fileicon'] = cot_rc('page_icon_file_path');
            if (!file_exists($pag['page_fileicon'])) {
                $pag['page_fileicon'] = cot_rc('page_icon_file_default');
            }
            $pag['page_fileicon'] = cot_rc('page_icon_file', array('icon' => $pag['page_fileicon']));
        } else {
            $pag['page_fileicon'] = '';
        }
        $t->assign(array('PAGE_FILE_SIZE' => $pag['page_size'] / 1024, 'PAGE_FILE_SIZE_BYTES' => $pag['page_size'], 'PAGE_FILE_SIZE_READABLE' => cot_build_filesize($pag['page_size'], 1), 'PAGE_FILE_COUNT' => $pag['page_filecount'], 'PAGE_FILE_ICON' => $pag['page_fileicon'], 'PAGE_FILE_NAME' => basename($pag['page_url']), 'PAGE_FILE_COUNTTIMES' => cot_declension($pag['page_filecount'], $Ls['Times'])));
        if ($pag['page_file'] === 2 && $usr['id'] == 0 || $pag['page_file'] === 2 && !$usr['auth_download']) {
            $t->assign(array('PAGE_FILETITLE' => $L['Members_download'], 'PAGE_FILE_URL' => cot_url('users', 'm=register')));
        } else {
            $t->assign(array('PAGE_FILETITLE' => $pag['page_title'], 'PAGE_FILE_URL' => cot_url('page', array('c' => $pag['page_cat'], 'id' => $id, 'a' => 'dl'))));
        }
    }
}
// Multi tabs
$pag['page_tabs'] = explode('[newpage]', $t->vars['PAGE_TEXT'], 99);
$pag['page_totaltabs'] = count($pag['page_tabs']);
if ($pag['page_totaltabs'] > 1) {
    if (empty($pag['page_tabs'][0])) {
        $remove = array_shift($pag['page_tabs']);
        $pag['page_totaltabs']--;
    }
示例#12
0
<?php

defined('COT_CODE') or die('Wrong URL');
/* ====================
[BEGIN_COT_EXT]
Hooks=header.main
[END_COT_EXT]
==================== */
if (cot_auth('market', 'any', 'A')) {
    $prd_moderated = $db->query("SELECT COUNT(*) FROM {$db_market} WHERE item_state=2")->fetchColumn();
    $notifymarket_moderated = $prd_moderated > 0 ? array(cot_url('admin', 'm=market&state=2'), cot_declension($prd_moderated, $Ls['market_headermoderated'])) : '';
    if (!empty($notifymarket_moderated)) {
        $out['notices_array'][] = $notifymarket_moderated;
    }
}
示例#13
0
     $popup_body .= karma_error('karma_ms_ok', $L['karma_del_ok'], true);
     break;
 case 'show':
 default:
     list($pg, $kn) = cot_import_pagenav('kn', $cfg['plugin']['karma']['karma_maxpage']);
     $tmp = $db->query("SELECT COUNT(*),SUM(karma_value) AS karma FROM cot_karma WHERE karma_recipient = {$fp}")->fetch();
     $total_p = $tmp['COUNT(*)'];
     if (cot_plugin_active('comments')) {
         $sql = $db->query("SELECT u.*, k.*,c.com_code,c.com_id FROM cot_karma k LEFT JOIN {$db_users} u ON (u.user_id=k.karma_rater) LEFT JOIN {$db_com} c ON (c.com_id=k.karma_fp) WHERE k.karma_recipient = {$fp}  ORDER BY k.karma_id DESC LIMIT {$kn}, " . $cfg['plugin']['karma']['karma_maxpage'] . "");
     } else {
         $sql = $db->query("SELECT u.*, k.* FROM cot_karma k LEFT JOIN {$db_users} u ON (u.user_id=k.karma_rater)  WHERE k.karma_recipient = {$fp}  ORDER BY k.karma_id DESC LIMIT {$kn}, " . $cfg['plugin']['karma']['karma_maxpage'] . "");
     }
     $sql1 = $db->query("SELECT * FROM {$db_users} WHERE user_id = {$fp} LIMIT 1");
     $thiss = $sql1->fetch();
     $karmaarr = explode(":", $thiss['user_karma_auth']);
     $kr->assign(array("KARMA_NAME_USER" => $thiss['user_name'], "KARMA_USER_VALUE" => number_format($tmp['karma'], '1', '.', ' '), "KARMA_USER_KARMA_FULL" => number_format($thiss['user_karma'], '1', '.', ' '), "KARMA_USERS" => cot_declension($total_p, $L['userkarma']), "KARMA_ADMIN" => cot_auth('plug', 'karma', 'A') ? true : "", "KARMA_AUTH_VALUE" => number_format($karmaarr[1], '1', '.', ' '), "KARMA_AUTH_COUNT" => $karmaarr[2] ? cot_declension($karmaarr[2], $L['user_auth_dec']) : ''));
     if ($cfg['plugin']['karma']['karma_profile']) {
         $kr->assign(cot_generate_usertags($thiss, "KARMA_USER_PROFILE_"));
     }
     if ($total_p == 0 && $thiss['user_karma_auth'] == 0) {
         $popup_body .= karma_error('karma_ms_error', $L['no_karma_user']);
         break;
     }
     if ($total_p > 0) {
         //=== NAV ====
         $knav = cot_pagenav('plug', 'r=karma&act=show&fp=' . $fp, $kn, $total_p, $cfg['plugin']['karma']['karma_maxpage'], 'kn', '', true, 'karma_popup', 'plug', 'r=karma&act=show&fp=' . $fp . '&aj=1');
         $kr->assign(array("KARMA_PAGEPREV" => $knav['prev'], "KARMA_PAGENEXT" => $knav['next'], "KARMA_PAGINATION" => $knav['main'], 'KARMA_CURRENTPAGE' => $knav['current']));
         //=========
         while ($row = $sql->fetch()) {
             if ($row['karma_locate'] == "frm") {
                 $view_url = cot_url('forums', 'm=posts&id=' . $row['karma_fp']);
示例#14
0
<?php

/* ====================
[BEGIN_COT_EXT]
Hooks=global
Order=9
[END_COT_EXT]
==================== */
defined('COT_CODE') or die('Wrong URL');
$sys['whosonline_all_count'] = $sys['whosonline_reg_count'] + $sys['whosonline_vis_count'];
$out['whosonline'] = $cfg['disablewhosonline'] ? '' : cot_declension($sys['whosonline_reg_count'], $Ls['Members']) . (!$cfg['plugin']['whosonline']['disable_guests'] ? ', ' . cot_declension($sys['whosonline_vis_count'], $Ls['Guests']) : '');
示例#15
0
<?php

defined('COT_CODE') or die('Wrong URL');
/* ====================
[BEGIN_COT_EXT]
Hooks=header.main
[END_COT_EXT]
==================== */
if (cot_auth('folio', 'any', 'A')) {
    $folio_moderated = $db->query("SELECT COUNT(*) FROM {$db_folio} WHERE item_state=2")->fetchColumn();
    $notifyfolio_moderated = $folio_moderated > 0 ? array(cot_url('admin', 'm=folio&state=2'), cot_declension($folio_moderated, $Ls['folio_headermoderated'])) : '';
    if (!empty($notifyfolio_moderated)) {
        $out['notices_array'][] = $notifyfolio_moderated;
    }
}
<?php

defined('COT_CODE') or die('Wrong URL');
/* ====================
[BEGIN_COT_EXT]
Hooks=header.main
[END_COT_EXT]
==================== */
if (cot_auth('projects', 'any', 'A')) {
    $prj_moderated = $db->query("SELECT COUNT(*) FROM {$db_projects} WHERE item_state=2")->fetchColumn();
    $notify_moderated = $prj_moderated > 0 ? array(cot_url('admin', 'm=projects&state=2'), cot_declension($prj_moderated, $Ls['projects_headermoderated'])) : '';
    if (!empty($notify_moderated)) {
        $out['notices_array'][] = $notify_moderated;
    }
}