· $title2
\n";
}
if (!empty($site_link)) {
$content .= "
"._HREADMORE.'';
}
// The named character reference ' (the apostrophe, U+0027)
// was introduced in XML 1.0 but does not appear in HTML. Authors
// should therefore use ' instead of ' to work as expected
// in HTML 4 user agents.
$content = str_replace(''', ''', $content);
return $content;
}
return false;
}
function blocks_visible($side, $special=false) {
// $showblocks is a bitwise integer value where: 0=none, 1=left, 2=right
// so 1+2 = 3 = both
// blocks are swapped from left to right and right to left depending on language _TEXT_DIR
// for example arabic is RTL so the left blocks are shown on the right
global $showblocks, $MAIN_CFG;
$side = strtolower($side[0]);
if (!$special && defined('MEMBER_BLOCK')) {
if (!$showblocks || !(blocks('l', true) || blocks('r', true))) return true;
if (($showblocks == 1 && $side == 'l' && !blocks($side, true)) ||
($showblocks == 2 && $side == 'r' && !blocks($side, true))) {
return true;
}
}
if (!$special && $side == 'l' && (defined('ADMIN_PAGES') && $MAIN_CFG['global']['admingraphic'] & 2)) {
return true;
}
if (!$showblocks || isset($_GET['hideallblocks']) || !blocks($side, true)) {
return false;
}
if ($side == 'l') {
return ($showblocks & 1);
} else if ($side == 'r') {
return ($showblocks & 2);
}
return true;
}
function blocks($side, $count=false) {
global $db, $prefix, $multilingual, $currentlang, $showblocks, $CLASS, $themeblockside, $module_name;
static $blocks;
$side = strtolower($side[0]);
if (!$count) {
if ($side == 'l') {
$themeblockside = 'left';
} else if ($side == 'r') {
$themeblockside = 'right';
}
if (!defined('SPECIAL_BLOCKS') && ($showblocks == 0 || blocks_visible($side))) {
if (defined('ADMIN_PAGES') && is_admin()) {
require_once(CORE_PATH.'classes/cpg_adminmenu.php');
$CLASS['adminmenu']->display();
} else if (defined('MEMBER_BLOCK')) {
member_block();
}
define('SPECIAL_BLOCKS', 1);
}
if (!blocks_visible($side, true)) {
$themeblockside = '';
return;
}
}
$querylang = ($multilingual) ? "AND (blanguage='$currentlang' OR blanguage='')" : '';
if (!is_array($blocks)) {
//global $home;
//if (!$home) $querylang .= " AND (bposition='l' OR bposition='r')";
$result = $db->sql_query('SELECT bid, bposition, bkey, title, content, url, blockfile, view, refresh, time FROM '.$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC");
while($row = $db->sql_fetchrow($result)) {
$blocks[$row['bposition']][] = $row;
}
$db->sql_freeresult($result);
}
if ($count) {
return (isset($blocks[$side]) ? count($blocks[$side]) : 0);
}
if (defined('ADMIN_PAGES') && (isset($_GET['op']) && $_GET['op'] == 'blocks') && isset($_GET['show']) && intval($_GET['show'])) {
foreach ($blocks as $side => $pos) {
foreach ($pos as $duplicate => $data) {
if ($data['bid'] == $_GET['show']) unset($blocks[$side][$duplicate]);
}
}
}
$module_block = defined('ADMIN_PAGES') ? 'Admin' : $module_name;
$blocks_list = blocks_list();
if (isset($blocks[$side])) {
foreach($blocks[$side] AS $row) {
if (!isset($blocks_list[$module_block][$row['bid']])) continue;
// $blockqueries = $db->num_queries;
// for multilingual block titles 8/28/2004 3:04PM akamu use: _SELECTLANGUAGE for title of block
$row['title'] = (defined($row['title']) ? constant($row['title']) : $row['title']);
if ($row['bkey'] == 'admin') {
adminblock($row['bid'], $row['title'], $row['content']);
} elseif ($row['bkey'] == 'userbox') {
userblock($row['bid']);
} elseif ($row['bkey'] == '') {
if (is_admin() || ($row['view'] == 0) ||
($row['view'] == 1 && is_user()) ||
($row['view'] == 3 && !is_user()) ||
($row['view'] > 3 && in_group($row['view']-3))) {
render_blocks($side, $row);
}
}
// echo "block queries: ".($db->num_queries - $blockqueries);
}
}
$themeblockside = '';
}
function render_blocks($side, &$block) {
require_once(CORE_PATH.'nbbcode.php');
if ($block['url'] == '') {
if ($block['blockfile'] == '') {
if ($side == 'c' || $side == 'd') {
themecenterbox($block['title'], decode_bbcode($block['content'], 1, true), $side);
} else {
themesidebox($block['title'], decode_bbcode($block['content'], 1, true), $block['bid']);
}
} else {
blockfileinc($block['title'], $block['blockfile'], $side, $block['bid']);
}
} else {
headlines($block['bid'], $side, $block);
}
}
function blockfileinc($title, $blockfile, $side=1, $bid) {
if (!file_exists("blocks/$blockfile")) {
trigger_error($blockfile._BLOCKPROBLEM, E_USER_WARNING);
return;
} else {
include("blocks/$blockfile");
}
if (!isset($content) || empty($content)) {
trigger_error($blockfile._BLOCKPROBLEM2, E_USER_WARNING);
return; // new debugger handles why no content;
} else if ($content == 'ERROR') { return; }
if ($side == 'l' || $side == 'r') {
themesidebox($title, $content, $bid);
} else {
themecenterbox($title, $content, $side);
}
}
function headlines($bid, $side=0, $row='') {
global $prefix, $db;
$bid = intval($bid);
if (!is_array($row)) {
$result = $db->sql_query('SELECT title, content, url, refresh, time FROM '.$prefix."_blocks WHERE bid='$bid'");
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
}
$content =& $row['content'];
if ($row['time'] < (gmtime()-$row['refresh'])) {
$content = rss_content($row['url']);
$btime = gmtime();
$db->sql_query('UPDATE '.$prefix.'_blocks SET content=\''.Fix_Quotes($content)."', time='$btime' WHERE bid='$bid'");
}
if (empty($content)) {
trigger_error(_RSSPROBLEM.' ('.$row['title'].')', E_USER_WARNING);
return;
}
$content = ''.$content.'';
if ($side == 'c' || $side == 'd') {
themecenterbox($row['title'], $content, $side);
} else {
themesidebox($row['title'], $content, $bid);
}
}
function adminblock($bid, $title, $content='') {
if (is_admin()) {
$imgcontent = '';
global $prefix, $db, $MAIN_CFG, $waitlist;
if (!defined('ADMIN_PAGES') && $MAIN_CFG['global']['admingraphic'] & 1) {
global $CLASS;
require_once(CORE_PATH.'classes/cpg_adminmenu.php');
$imgcontent = $CLASS['adminmenu']->display('all', 'blockgfx').'
';
}
themesidebox($title, $imgcontent.$content, $bid);
$title = _WAITINGCONT;
$content = '';
$waitlist = array();
// Contributed by sengsara
if (!Cache::array_load('waitlist')) {
if ($waitdir = dir('admin/wait')) {
while($waitfile = $waitdir->read()) {
if (preg_match('/^wait_(.*?)\.php$/', $waitfile, $match)) {
$waitlist[$match[1]] = "admin/wait/$waitfile";
}
}
$waitdir->close();
}
// Dragonfly system
$waitdir = dir('modules');
while($module = $waitdir->read()) {
if (!is_active($module)) continue;
if (!ereg('[.]',$module) && $module != 'CVS' && file_exists("modules/$module/admin/adwait.inc")) {
$waitlist[$module] = "modules/$module/admin/adwait.inc";
}
}
$waitdir->close();
Cache::array_save('waitlist');
}
ksort($waitlist);
foreach($waitlist as $module => $file) {
require($file);
}
if ($content != '') themesidebox($title, $content, $bid."a");
}
}
function userblock($bid) {
require_once(CORE_PATH.'nbbcode.php');
global $userinfo;
if (is_user() && $userinfo['ublockon']) {
$title = _MENUFOR." $userinfo[username]";
themesidebox($title, decode_bbcode($userinfo['ublock'], 1, true), $bid);
}
}
function themecenterbox($title, $content, $side=0) {
global $cpgtpl;
$side = ($side == 'c') ? 'center' : 'bottom';
$cpgtpl->assign_block_vars($side.'block', array(
'S_TITLE' => $title,
'S_CONTENT' => $content
));
}
function title($text) {
# obsolete
}
function hideblock($id) {
static $hiddenblocks;
if (!isset($hiddenblocks)) {
$hiddenblocks = array();
if (isset($_COOKIE['hiddenblocks'])) {
$tmphidden = explode(':', $_COOKIE['hiddenblocks']);
for($i=0; $i0) ? 1 : 0;
if (function_exists('theme_yesno_option')) {
return theme_yesno_option($name, $value);
} else {
$sel[$value] = ' checked="checked"';
return ' ';
}
}
function select_option($name, $default, $options) {
if (function_exists('theme_select_option')) {
return theme_select_option($name, $default, $options);
} else {
$select = '';
}
}
function select_box($name, $default, $options) {
if (function_exists('theme_select_box')) {
return theme_select_box($name, $default, $options);
} else {
$select = '';
}
}
function viewbanner() {
//if (is_admin()) { return ''; }
global $prefix, $db;
$result = $db->sql_query("SELECT * FROM ".$prefix."_banner WHERE type='0' AND active='1' ORDER BY RAND() LIMIT 0,1");
if ($db->sql_numrows($result) < 1) return;
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
foreach($row as $var => $value) {
if (isset($$var)) unset($$var);
$$var = $value;
}
if (!is_admin()) {
$db->sql_query('UPDATE '.$prefix.'_banner SET impmade=' . $impmade . "+1 WHERE bid='$bid'");
}
/* Check if this impression is the last one and print the banner */
if ($imptotal <= $impmade && $imptotal != 0) {
global $sitename, $nukeurl, $user_prefix;
$db->sql_query('UPDATE '.$prefix."_banner SET active='0' WHERE bid='$bid'");
$result = $db->sql_query('SELECT username, user_email FROM '.$user_prefix."_users WHERE user_id='$cid'");
$row = $db->sql_fetchrow($result);
$to_name = $row['username'];
$message = _HELLO." $to_name,\n\n"
._THISISAUTOMATED."\n\n"
._THERESULTS."\n\n"
.BANNER_ID.": $bid\n"
._TOTALIMPRESSIONS." $imptotal\n"
._CLICKSRECEIVED." $clicks\n"
._IMAGEURL." $imageurl\n"
._CLICKURL." $clickurl\n"
._ALTERNATETEXT." $alttext\n\n"
._TEXT_TITLE.": $text_title\n\n"
._HOPEYOULIKED."\n\n"
._THANKSUPPORT."\n\n"
."- $sitename "._TEAM."\n".$nukeurl;
send_mail($mailer_message, $message,0, "$sitename: "._BANNERSFINNISHED, $row['user_email'], $row['username']);
$db->sql_freeresult($result);
}
if ($textban) {
return '';
} else {
return '
';
}
}
function show_tooltip($tip) {
global $MAIN_CFG;
return $MAIN_CFG['global']['admin_help'] ? ' onmouseover="tip(\''.$tip.'\')" onmouseout="untip()"' : '';
//
}
function open_form($link='', $form_name=false, $legend=false, $tborder=false) {
if (function_exists('theme_open_form')) {
return theme_open_form($link, $form_name, $legend, $tborder);
} else {
$leg = ($legend ? "" : '');
$bord = ($tborder ? $tborder : '');
$form_name = ($form_name ? ' name="'.$form_name.'" id="'.$form_name.'"' : '');
return '';
}
}
function generate_secimg($chars=6) {
global $CPG_SESS;
mt_srand((double)microtime()*1000000);
$id = mt_rand(0, 1000000);
$time = explode(' ', microtime());
$CPG_SESS['gfx'][$id] = substr(dechex($time[0]*3581692740), 0, $chars);
return '
';
}
function validate_secimg($chars=6) {
global $CPG_SESS;
if (!isset($_POST['gfx_check']) || !isset($_POST['gfxid'])) { return false; }
$code = $CPG_SESS['gfx'][$_POST['gfxid']];
return (strlen($code) == $chars && $code == $_POST['gfx_check']);
}
function group_selectbox($fieldname, $current=0, $mvanon=false, $all=true) {
static $groups;
if (!isset($groups)) {
global $db, $prefix;
$groups = array(0=>_MVALL, 1=>_MVUSERS, 2=>_MVADMIN, 3=>_MVANON);
$groupsResult = $db->sql_query('SELECT group_id, group_name FROM '.$prefix.'_bbgroups WHERE group_single_user=0');
while (list($groupID, $groupName) = $db->sql_fetchrow($groupsResult)) {
$groups[($groupID+3)] = $groupName;
}
}
$tmpgroups = $groups;
if (!$all) { unset($tmpgroups[0]); }
if (!$mvanon) { unset($tmpgroups[3]); }
return select_box($fieldname, $current, $tmpgroups);
}
function cpg_delete_msg($link, $msg, $hidden='') {
require_once('header.php');
OpenTable();
if (function_exists('theme_delete_msg')) {
echo theme_delete_msg($link, $msg, $hidden);
}
global $cpgtpl;
$cpgtpl->assign_vars(array(
'MESSAGE_TITLE' => 'Confirm',
'MESSAGE_TEXT' => $msg,
'L_YES' => _YES,
'L_NO' => _NO,
'S_CONFIRM_ACTION' => $link,
'S_HIDDEN_FIELDS' => $hidden
));
$cpgtpl->set_filenames(array('confirm' => 'confirm_body.html'));
$cpgtpl->display('confirm');
CloseTable();
require('footer.php');
}
function pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext=TRUE)
{
function pagination_page($page, $url, $first=false) {
global $cpgtpl;
$cpgtpl->assign_block_vars('pagination', array('PAGE' => $page, 'URL' => $url, 'FIRST' => $first));
}
function pagination_link($url) {
if (defined('ADMIN_PAGES')) { return adminlink($url); }
return getlink($url);
}
global $cpgtpl, $home;
$total_pages = ceil($num_items/$per_page);
$on_page = floor($start_item / $per_page);
if ($total_pages < 2) { return $cpgtpl->assign_var('B_PAGINATION', false); }
$cpgtpl->assign_vars(array(
'B_PAGINATION' => ($home) ? false : true,
'PAGINATION_PREV' => ($add_prevnext && $on_page > 1) ? pagination_link($base_url.(($on_page-1)*$per_page)) : false,
'PAGINATION_NEXT' => ($add_prevnext && $on_page < $total_pages) ? pagination_link($base_url.($on_page+$per_page)) : false,
'L_PREVIOUS' => _PREVIOUSPAGE,
'L_NEXT' => _NEXTPAGE,
'L_GOTO_PAGE' => 'Go to:',
));
if ($total_pages > 10) {
$init_page_max = ($total_pages > 3) ? 3 : $total_pages;
for ($i = 1; $i <= $init_page_max; $i++) {
pagination_page($i, ($i == $on_page) ? false : pagination_link($base_url.($i*$per_page)), ($i == 1));
}
if ($total_pages > 3) {
if ($on_page > 1 && $on_page < $total_pages) {
if ($on_page > 5) { pagination_page(' ... ', false, true); }
$init_page_min = ($on_page > 4) ? $on_page : 5;
$init_page_max = ($on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
for ($i = $init_page_min - 1; $i < $init_page_max + 2; $i++) {
pagination_page($i, ($i == $on_page) ? false : pagination_link($base_url.($i*$per_page)), ($on_page <= 5 && $i == $init_page_min-1));
}
if ($on_page < $total_pages-4) { pagination_page(' ... ', false, true); }
} else {
pagination_page(' ... ', false, true);
}
for ($i = $total_pages - 2; $i <= $total_pages; $i++) {
pagination_page($i, ($i == $on_page) ? false : pagination_link($base_url.($i*$per_page)));
}
}
} else {
for ($i = 1; $i <= $total_pages; $i++) {
pagination_page($i, ($i == $on_page) ? false : pagination_link($base_url.($i*$per_page)));
}
}
}