本文整理汇总了PHP中get_table_prefix函数的典型用法代码示例。如果您正苦于以下问题:PHP get_table_prefix函数的具体用法?PHP get_table_prefix怎么用?PHP get_table_prefix使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_table_prefix函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: word_filter_get
function word_filter_get($uid, &$word_filter_array)
{
if (!($db = db::get())) {
return false;
}
if (!is_numeric($uid)) {
return false;
}
if (!is_array($word_filter_array)) {
$word_filter_array = array();
}
if (!($table_prefix = get_table_prefix())) {
return false;
}
$sql = "SELECT FID, MATCH_TEXT, REPLACE_TEXT, FILTER_TYPE ";
$sql .= "FROM `{$table_prefix}WORD_FILTER` ";
$sql .= "WHERE UID = '{$uid}' AND FILTER_ENABLED = 1 ";
$sql .= "ORDER BY FID ";
if ($uid != 0) {
$sql .= "LIMIT 0, 20";
}
if (!($result = $db->query($sql))) {
return false;
}
if ($result->num_rows == 0) {
return false;
}
while ($word_filter_data = $result->fetch_assoc()) {
$word_filter_array[] = $word_filter_data;
}
return true;
}
示例2: run
/**
* Standard modular run function.
*
* @return tempcode Results
*/
function run()
{
$out = new ocp_tempcode();
$tables = $GLOBALS['SITE_DB']->query_select('db_meta', array('DISTINCT m_table'));
if (count($GLOBALS['SITE_DB']->connection_write) > 4) {
$GLOBALS['SITE_DB']->connection_write = call_user_func_array(array($GLOBALS['SITE_DB']->static_ob, 'db_get_connection'), $GLOBALS['SITE_DB']->connection_write);
_general_db_init();
}
list($db, $db_name) = $GLOBALS['SITE_DB']->connection_write;
mysql_select_db($db_name, $db);
foreach ($tables as $table) {
if ($table['m_table'] == 'sessions') {
continue;
}
// HEAP, so can't be repaired
$table = get_table_prefix() . $table['m_table'];
// Check/Repair
$result = mysql_query('CHECK TABLE ' . $table . ' FAST', $db);
echo mysql_error($db);
mysql_data_seek($result, mysql_num_rows($result) - 1);
$status_row = mysql_fetch_assoc($result);
if ($status_row['Msg_type'] != 'status') {
$out->attach(paragraph(do_lang_tempcode('TABLE_ERROR', escape_html($table), escape_html($status_row['Msg_type']), array(escape_html($status_row['Msg_text']))), 'dfsdgdsgfgd'));
$result2 = mysql_query('REPAIR TABLE ' . $table, $db);
mysql_data_seek($result2, mysql_num_rows($result2) - 1);
$status_row_2 = mysql_fetch_assoc($result2);
$out->attach(paragraph(do_lang_tempcode('TABLE_FIXED', escape_html($table), escape_html($status_row_2['Msg_type']), array(escape_html($status_row_2['Msg_text']))), 'dfsdfgdst4'));
}
// Optimise
mysql_unbuffered_query('OPTIMIZE TABLE ' . $table, $db);
}
return $out;
}
示例3: mods_list_forum_leaders
function mods_list_forum_leaders()
{
if (!($db = db::get())) {
return false;
}
$mod_list_array = array();
if (!($table_prefix = get_table_prefix())) {
return false;
}
if (!($forum_fid = get_forum_fid())) {
return false;
}
$user_perm_admin_tools = USER_PERM_ADMIN_TOOLS;
$sql = "SELECT USERS.UID, USERS.LOGON, COALESCE(USER_PEER.PEER_NICKNAME, USERS.NICKNAME) AS NICKNAME ";
$sql .= "FROM ((SELECT DISTINCT USER.UID, USER.LOGON, USER.NICKNAME FROM USER INNER JOIN GROUP_USERS ";
$sql .= "ON (GROUP_USERS.UID = USER.UID) INNER JOIN GROUP_PERMS ON (GROUP_PERMS.GID = GROUP_USERS.GID) ";
$sql .= "INNER JOIN GROUPS ON (GROUPS.GID = GROUP_PERMS.GID) WHERE GROUPS.FORUM IN (0, {$forum_fid}) ";
$sql .= "AND GROUP_PERMS.FID IN (0) AND GROUP_PERMS.PERM & {$user_perm_admin_tools}) UNION ALL ";
$sql .= "(SELECT DISTINCT USER.UID, USER.LOGON, USER.NICKNAME FROM USER INNER JOIN USER_PERM ";
$sql .= "ON (USER_PERM.UID = USER.UID) WHERE USER_PERM.FORUM IN (0, {$forum_fid}) AND USER_PERM.FID IN (0) ";
$sql .= "AND USER_PERM.PERM & {$user_perm_admin_tools} > 0)) AS USERS LEFT JOIN `{$table_prefix}USER_PEER` USER_PEER ";
$sql .= "ON (USER_PEER.PEER_UID = USERS.UID AND USER_PEER.UID = {$_SESSION['UID']})";
if (!($result = $db->query($sql))) {
return false;
}
if ($result->num_rows == 0) {
return false;
}
while (($mod_list_data = $result->fetch_assoc()) !== null) {
$mod_list_array[$mod_list_data['UID']] = $mod_list_data;
}
return $mod_list_array;
}
示例4: run
/**
* Standard modular run function for RSS hooks.
*
* @param string A list of categories we accept from
* @param TIME Cutoff time, before which we do not show results from
* @param string Prefix that represents the template set we use
* @set RSS_ ATOM_
* @param string The standard format of date to use for the syndication type represented in the prefix
* @param integer The maximum number of entries to return, ordering by date
* @return ?array A pair: The main syndication section, and a title (NULL: error)
*/
function run($_filters, $cutoff, $prefix, $date_string, $max)
{
require_lang('activities');
require_code('activities');
list(, $whereville) = find_activities(get_member(), $_filters == '' ? 'all' : 'some_members', $_filters == '' ? NULL : array_map('intval', explode(',', $_filters)));
$rows = $GLOBALS['SITE_DB']->query('SELECT * FROM ' . get_table_prefix() . 'activities WHERE (' . $whereville . ') AND a_time>' . strval($cutoff) . ' ORDER BY a_time DESC', $max, 0);
$content = new ocp_tempcode();
foreach ($rows as $row) {
$id = strval($row['id']);
$author = $GLOBALS['FORUM_DRIVER']->get_username($row['a_member_id']);
if (is_null($author)) {
$author = do_lang('UNKNOWN');
}
$news_date = date($date_string, $row['a_time']);
$edit_date = '';
list($_title, ) = render_activity($row);
$news_title = xmlentities($_title->evaluate());
$summary = xmlentities('');
$news = '';
$category = '';
$category_raw = '';
$view_url = build_url(array('page' => 'members', 'type' => 'view', 'id' => $row['a_member_id']), get_module_zone('members'), NULL, false, false, true);
$if_comments = new ocp_tempcode();
$content->attach(do_template($prefix . 'ENTRY', array('VIEW_URL' => $view_url, 'SUMMARY' => $summary, 'EDIT_DATE' => $edit_date, 'IF_COMMENTS' => $if_comments, 'TITLE' => $news_title, 'CATEGORY_RAW' => $category_raw, 'CATEGORY' => $category, 'AUTHOR' => $author, 'ID' => $id, 'NEWS' => $news, 'DATE' => $news_date)));
}
return array($content, do_lang('ACTIVITIES_TITLE'));
}
示例5: user_get_relationship
function user_get_relationship($uid, $peer_uid)
{
if (!($db = db::get())) {
return 0;
}
if (!is_numeric($uid)) {
return 0;
}
if (!is_numeric($peer_uid)) {
return 0;
}
if (!($table_prefix = get_table_prefix())) {
return 0;
}
$sql = "SELECT RELATIONSHIP FROM `{$table_prefix}USER_PEER` ";
$sql .= "WHERE UID = '{$uid}' AND PEER_UID = '{$peer_uid}'";
if (!($result = $db->query($sql))) {
return 0;
}
if ($result->num_rows == 0) {
return 0;
}
list($peer_relationship) = $result->fetch_row();
return $peer_relationship;
}
示例6: run
/**
* Standard modular run function for OcCLE notification hooks.
*
* @param ?integer The "current" time on which to base queries (NULL: now)
* @return ~array Array of section, type and message responses (false: nothing)
*/
function run($timestamp = NULL)
{
if (!addon_installed('chat')) {
return false;
}
if (!is_null(get_value('occle_watched_chatroom'))) {
require_lang('chat');
if (is_null($timestamp)) {
$timestamp = time();
}
$room = intval(get_value('occle_watched_chatroom'));
$room_messages = $GLOBALS['SITE_DB']->query('SELECT COUNT(*) AS cnt FROM ' . get_table_prefix() . 'chat_messages WHERE room_id=' . strval($room) . ' AND date_and_time>=' . strval((int) $timestamp));
if (!array_key_exists(0, $room_messages)) {
return false;
}
if ($room_messages[0]['cnt'] > 0) {
$rooms = array();
$messages = $room_messages[0]['cnt'];
$room_data = $GLOBALS['SITE_DB']->query_value_null_ok('chat_rooms', 'room_name', array('id' => $room));
if (is_null($room_data)) {
return false;
}
// Selected room deleted
$rooms[$room_data] = build_url(array('page' => 'chat', 'type' => 'room', 'id' => $room), get_module_zone('chat'));
return array(do_lang('SECTION_CHAT'), do_lang('NEW_MESSAGES'), do_template('OCCLE_CHAT_NOTIFICATION', array('MESSAGE_COUNT' => integer_format($messages), 'ROOMS' => $rooms)));
} else {
return false;
}
} else {
return false;
}
}
示例7: run
/**
* Standard modular run function for CRON hooks. Searches for tasks to perform.
*/
function run()
{
if (!addon_installed('stats')) {
return;
}
$GLOBALS['SITE_DB']->query('DELETE FROM ' . get_table_prefix() . 'stats WHERE date_and_time<' . strval(time() - 60 * 60 * 24 * intval(get_option('stats_store_time'))));
}
示例8: run
/**
* Standard modular run function for newsletter hooks.
*
* @param TIME The time that the entries found must be newer than
* @param LANGUAGE_NAME The language the entries found must be in
* @param string Category filter to apply
* @param BINARY Whether to use full article instead of summary
* @return array Tuple of result details
*/
function run($cutoff_time, $lang, $filter, $in_full = 1)
{
if (!addon_installed('news')) {
return array();
}
require_lang('news');
$new = new ocp_tempcode();
require_code('ocfiltering');
$or_list = ocfilter_to_sqlfragment($filter, 'news_category');
$or_list_2 = ocfilter_to_sqlfragment($filter, 'news_entry_category');
$rows = $GLOBALS['SITE_DB']->query('SELECT title,news,news_article,id,date_and_time,submitter FROM ' . get_table_prefix() . 'news LEFT JOIN ' . get_table_prefix() . 'news_category_entries ON news_entry=id WHERE validated=1 AND date_and_time>' . strval((int) $cutoff_time) . ' AND ((' . $or_list . ') OR (' . $or_list_2 . ')) ORDER BY date_and_time DESC', 300);
if (count($rows) == 300) {
return array();
}
$rows = remove_duplicate_rows($rows, 'id');
foreach ($rows as $row) {
$_url = build_url(array('page' => 'news', 'type' => 'view', 'id' => $row['id']), get_module_zone('news'), NULL, false, false, true);
$url = $_url->evaluate();
$name = get_translated_text($row['title'], NULL, $lang);
$description = get_translated_text($row[$in_full == 1 ? 'news_article' : 'news'], NULL, $lang);
if ($description == '') {
$description = get_translated_text($row[$in_full == 1 ? 'news' : 'news_article'], NULL, $lang);
}
$member_id = is_guest($row['submitter']) ? NULL : strval($row['submitter']);
$new->attach(do_template('NEWSLETTER_NEW_RESOURCE_FCOMCODE', array('_GUID' => '4eaf5ec00db1f0b89cef5120c2486521', 'MEMBER_ID' => $member_id, 'URL' => $url, 'NAME' => $name, 'DESCRIPTION' => $description)));
}
return array($new, do_lang('NEWS', '', '', '', $lang));
}
示例9: run
/**
* Standard modular run function for snippet hooks. Generates XHTML to insert into a page using AJAX.
*
* @return tempcode The snippet
*/
function run()
{
$sup = get_param('block_map_sup', '', true);
$_map = get_param('block_map', false, true);
if ($sup != '') {
$_map .= ',' . $sup;
}
require_code('blocks');
$map = block_params_str_to_arr($_map);
if (!array_key_exists('block', $map)) {
return new ocp_tempcode();
}
$auth_key = get_param_integer('auth_key');
// Check permissions
$test = $GLOBALS['SITE_DB']->query_value_null_ok('temp_block_permissions', 'p_block_constraints', array('p_session_id' => get_session_id(), 'id' => $auth_key));
if (is_null($test) || !block_signature_check(block_params_str_to_arr($test), $map)) {
require_lang('permissions');
return paragraph(do_lang_tempcode('ACCESS_DENIED__ACCESS_DENIED', escape_html($map['block'])));
}
// Cleanup
$GLOBALS['SITE_DB']->query('DELETE FROM ' . get_table_prefix() . 'temp_block_permissions WHERE p_time<' . strval(time() - 60 * 60 * intval(get_option('session_expiry_time'))));
// Return block snippet
global $CSSS, $JAVASCRIPTS;
$CSSS = array();
$JAVASCRIPTS = array();
$out = new ocp_tempcode();
$out->attach(symbol_tempcode('CSS_TEMPCODE'));
$out->attach(symbol_tempcode('JS_TEMPCODE'));
$out->attach(do_block($map['block'], $map));
return $out;
}
示例10: run
/**
* Standard modular run function.
*
* @param array A map of parameters.
* @return tempcode The result of execution.
*/
function run($map)
{
require_code('downloads');
require_css('downloads');
require_lang('downloads');
require_code('ocfiltering');
$number = array_key_exists('param', $map) ? intval($map['param']) : 10;
$filter = array_key_exists('filter', $map) ? $map['filter'] : '*';
$zone = array_key_exists('zone', $map) ? $map['zone'] : get_module_zone('downloads');
$sql_filter = ocfilter_to_sqlfragment($filter, 'p.category_id', 'download_categories', 'parent_id', 'p.category_id', 'id');
// Note that the parameters are fiddled here so that category-set and record-set are the same, yet SQL is returned to deal in an entirely different record-set (entries' record-set)
$rows = $GLOBALS['SITE_DB']->query('SELECT * FROM ' . get_table_prefix() . 'download_downloads p WHERE validated=1 AND (' . $sql_filter . ') ORDER BY add_date DESC', $number);
$title = do_lang_tempcode('RECENT', make_string_tempcode(integer_format($number)), do_lang_tempcode('SECTION_DOWNLOADS'));
if (array_key_exists('title', $map) && $map['title'] != '') {
$title = protect_from_escaping(escape_html($map['title']));
}
$out = new ocp_tempcode();
foreach ($rows as $i => $row) {
if ($i != 0) {
$out->attach(do_template('BLOCK_SEPARATOR'));
}
$out->attach(get_download_html($row, true, true, $zone));
}
if ($out->is_empty()) {
if (has_actual_page_access(NULL, 'cms_downloads', NULL, NULL) && has_submit_permission('mid', get_member(), get_ip_address(), 'cms_downloads')) {
$submit_url = build_url(array('page' => 'cms_downloads', 'type' => 'ad', 'redirect' => SELF_REDIRECT), get_module_zone('cms_downloads'));
} else {
$submit_url = new ocp_tempcode();
}
return do_template('BLOCK_NO_ENTRIES', array('_GUID' => '74399763a51102bdd6e6d92c2c11354f', 'HIGH' => false, 'TITLE' => $title, 'MESSAGE' => do_lang_tempcode('NO_DOWNLOADS_YET'), 'ADD_NAME' => do_lang_tempcode('ADD_DOWNLOAD'), 'SUBMIT_URL' => $submit_url));
}
return do_template('BLOCK_MAIN_RECENT_DOWNLOADS', array('_GUID' => '257fa1b83d1b6fe3acbceb2b618e6d7f', 'TITLE' => $title, 'CONTENT' => $out, 'NUMBER' => integer_format($number)));
}
示例11: run
/**
* Standard modular run function for newsletter hooks.
*
* @param TIME The time that the entries found must be newer than
* @param LANGUAGE_NAME The language the entries found must be in
* @param string Category filter to apply
* @return array Tuple of result details
*/
function run($cutoff_time, $lang, $filter)
{
$new = new ocp_tempcode();
require_code('ocfiltering');
if ($filter == '') {
$filter = ',';
}
// Just welcome zone
$or_list = ocfilter_to_sqlfragment($filter, 'b.the_zone', NULL, NULL, NULL, NULL, false);
$_rows = $GLOBALS['SITE_DB']->query('SELECT a.* FROM ' . get_table_prefix() . 'cached_comcode_pages a JOIN ' . get_table_prefix() . 'comcode_pages b ON a.the_page=b.the_page AND a.the_zone=b.the_zone WHERE p_add_date>' . strval($cutoff_time) . ' AND (' . $or_list . ')', 300);
if (count($_rows) == 300) {
return array();
}
$rows = array();
foreach ($_rows as $row) {
$rows[$row['the_zone'] . ':' . $row['the_page']] = $row;
}
$_rows2 = $GLOBALS['SITE_DB']->query_select('seo_meta', array('*'), array('meta_for_type' => 'comcode_page'));
$rows2 = array();
foreach ($_rows2 as $row) {
$rows2[$row['meta_for_id']] = $row;
}
$zones = explode(',', $filter);
//find_all_zones();
foreach ($zones as $zone) {
if ($zone == 'cms') {
continue;
}
if ($zone == 'adminzone') {
continue;
}
$pages = find_all_pages($zone, 'comcode_custom/' . get_site_default_lang(), 'txt', false, $cutoff_time);
foreach (array_keys($pages) as $page) {
if (!is_string($page)) {
$page = strval($page);
}
// PHP can be weird when things like '404' are put in arrays
if (substr($page, 0, 6) == 'panel_') {
continue;
}
$id = $zone . ':' . $page;
$_url = build_url(array('page' => $page), $zone, NULL, false, false, true);
$url = $_url->evaluate();
$name = ucfirst(str_replace('_', ' ', $page));
if (array_key_exists($id, $rows)) {
$_name = get_translated_text($rows[$id]['cc_page_title'], NULL, NULL, true);
if (!is_null($_name)) {
$name = $_name;
}
}
$description = '';
$member_id = NULL;
if (array_key_exists($id, $rows2)) {
$description = get_translated_text($rows2[$id]['meta_description']);
}
$new->attach(do_template('NEWSLETTER_NEW_RESOURCE_FCOMCODE', array('_GUID' => '67f165847dacd54d2965686d561b57ee', 'MEMBER_ID' => $member_id, 'URL' => $url, 'NAME' => $name, 'DESCRIPTION' => $description)));
}
}
return array($new, do_lang('PAGES', '', '', '', $lang));
}
示例12: run
/**
* Standard modular run function for RSS hooks.
*
* @param string A list of categories we accept from
* @param TIME Cutoff time, before which we do not show results from
* @param string Prefix that represents the template set we use
* @set RSS_ ATOM_
* @param string The standard format of date to use for the syndication type represented in the prefix
* @param integer The maximum number of entries to return, ordering by date
* @return ?array A pair: The main syndication section, and a title (NULL: error)
*/
function run($_filters, $cutoff, $prefix, $date_string, $max)
{
if (!addon_installed('galleries')) {
return NULL;
}
if (!has_actual_page_access(get_member(), 'galleries')) {
return NULL;
}
$filters_1 = ocfilter_to_sqlfragment($_filters, 'name', 'galleries', 'parent_id', 'name', 'name', false, false);
// Note that the parameters are fiddled here so that category-set and record-set are the same, yet SQL is returned to deal in an entirely different record-set (entries' record-set)
$filters = ocfilter_to_sqlfragment($_filters, 'cat', 'galleries', 'parent_id', 'cat', 'name', false, false);
// Note that the parameters are fiddled here so that category-set and record-set are the same, yet SQL is returned to deal in an entirely different record-set (entries' record-set)
require_lang('galleries');
$content = new ocp_tempcode();
$_galleries = array();
if ($GLOBALS['SITE_DB']->query_value_null_ok_full('SELECT COUNT(*) FROM ' . get_table_prefix() . 'galleries WHERE ' . $filters_1) < 3000) {
$_galleries = $GLOBALS['SITE_DB']->query('SELECT fullname,name FROM ' . get_table_prefix() . 'galleries WHERE ' . $filters_1);
foreach ($_galleries as $i => $_gallery) {
$_galleries[$i]['text_original'] = get_translated_text($_gallery['fullname']);
}
}
$galleries = collapse_2d_complexity('name', 'text_original', $_galleries);
$rows1 = $GLOBALS['SITE_DB']->query('SELECT * FROM ' . $GLOBALS['SITE_DB']->get_table_prefix() . 'videos WHERE add_date>' . strval((int) $cutoff) . ' AND ' . $filters . (!has_specific_permission(get_member(), 'see_unvalidated') ? ' AND validated=1 ' : '') . ' ORDER BY add_date DESC', $max);
$rows2 = $GLOBALS['SITE_DB']->query('SELECT * FROM ' . $GLOBALS['SITE_DB']->get_table_prefix() . 'images WHERE add_date>' . strval((int) $cutoff) . ' AND ' . $filters . (!has_specific_permission(get_member(), 'see_unvalidated') ? ' AND validated=1 ' : '') . ' ORDER BY add_date DESC', $max);
$rows = array_merge($rows1, $rows2);
foreach ($rows as $row) {
$id = strval($row['id']);
$author = $GLOBALS['FORUM_DRIVER']->get_username($row['submitter']);
if (is_null($author)) {
$author = '';
}
$news_date = date($date_string, $row['add_date']);
$edit_date = is_null($row['edit_date']) ? '' : date($date_string, $row['edit_date']);
$news_title = xmlentities(do_lang('THIS_WITH_SIMPLE', array_key_exists('video_views', $row) ? do_lang('VIDEO') : do_lang('IMAGE'), strval($row['id'])));
$_summary = get_translated_tempcode($row['comments']);
$summary = xmlentities($_summary->evaluate());
$news = '';
if (!array_key_exists($row['cat'], $galleries)) {
$_fullname = $GLOBALS['SITE_DB']->query_value_null_ok('galleries', 'fullname', array('name' => $row['cat']));
if (is_null($_fullname)) {
continue;
}
$galleries[$row['cat']] = get_translated_text($_fullname);
}
$category = $galleries[$row['cat']];
$category_raw = $row['cat'];
$view_url = build_url(array('page' => 'galleries', 'type' => array_key_exists('video_views', $row) ? 'video' : 'image', 'id' => $row['id']), get_module_zone('galleries'), NULL, false, false, true);
if ($prefix == 'RSS_' && get_option('is_on_comments') == '1' && $row['allow_comments'] >= '1') {
$if_comments = do_template('RSS_ENTRY_COMMENTS', array('_GUID' => '65dc0cec8c75f565c58c95fa1667aa1e', 'COMMENT_URL' => $view_url, 'ID' => strval($row['id'])));
} else {
$if_comments = new ocp_tempcode();
}
require_code('images');
$enclosure_url = ensure_thumbnail($row['url'], $row['thumb_url'], 'galleries', array_key_exists('video_views', $row) ? 'videos' : 'images', $row['id']);
list($enclosure_length, $enclosure_type) = get_enclosure_details($row['url'], $enclosure_url);
$content->attach(do_template($prefix . 'ENTRY', array('ENCLOSURE_URL' => $enclosure_url, 'ENCLOSURE_LENGTH' => $enclosure_length, 'ENCLOSURE_TYPE' => $enclosure_type, 'VIEW_URL' => $view_url, 'SUMMARY' => $summary, 'EDIT_DATE' => $edit_date, 'IF_COMMENTS' => $if_comments, 'TITLE' => $news_title, 'CATEGORY_RAW' => $category_raw, 'CATEGORY' => $category, 'AUTHOR' => $author, 'ID' => $id, 'NEWS' => $news, 'DATE' => $news_date)));
}
require_lang('galleries');
return array($content, do_lang('GALLERIES'));
}
示例13: run
/**
* Standard modular run function for RSS hooks.
*
* @param string A list of categories we accept from
* @param TIME Cutoff time, before which we do not show results from
* @param string Prefix that represents the template set we use
* @set RSS_ ATOM_
* @param string The standard format of date to use for the syndication type represented in the prefix
* @param integer The maximum number of entries to return, ordering by date
* @return ?array A pair: The main syndication section, and a title (NULL: error)
*/
function run($_filters, $cutoff, $prefix, $date_string, $max)
{
if (!addon_installed('news')) {
return NULL;
}
if (!has_actual_page_access(get_member(), 'news')) {
return NULL;
}
$filters_1 = ocfilter_to_sqlfragment($_filters, 'p.news_category', 'news_categories', NULL, 'p.news_category', 'id');
// Note that the parameters are fiddled here so that category-set and record-set are the same, yet SQL is returned to deal in an entirely different record-set (entries' record-set)
$filters_2 = ocfilter_to_sqlfragment($_filters, 'd.news_entry_category', 'news_categories', NULL, 'd.news_category', 'id');
// Note that the parameters are fiddled here so that category-set and record-set are the same, yet SQL is returned to deal in an entirely different record-set (entries' record-set)
$filters = '(' . $filters_1 . ' OR ' . $filters_2 . ')';
$rows = $GLOBALS['SITE_DB']->query('SELECT * FROM ' . $GLOBALS['SITE_DB']->get_table_prefix() . 'news p LEFT JOIN ' . get_table_prefix() . 'news_category_entries d ON d.news_entry=p.id WHERE date_and_time>' . strval($cutoff) . (!has_specific_permission(get_member(), 'see_unvalidated') ? ' AND validated=1 ' : '') . ' AND ' . $filters . (can_arbitrary_groupby() ? ' GROUP BY p.id' : '') . ' ORDER BY date_and_time DESC', $max);
$rows = remove_duplicate_rows($rows, 'id');
$_categories = $GLOBALS['SITE_DB']->query_select('news_categories', array('id', 'nc_title'), array('nc_owner' => NULL));
foreach ($_categories as $i => $_category) {
$_categories[$i]['text_original'] = get_translated_text($_category['nc_title']);
}
$categories = collapse_2d_complexity('id', 'text_original', $_categories);
$content = new ocp_tempcode();
foreach ($rows as $row) {
if (has_category_access(get_member(), 'news', strval($row['news_category']))) {
$id = strval($row['id']);
$author = $row['author'];
$news_date = date($date_string, $row['date_and_time']);
$edit_date = is_null($row['edit_date']) ? '' : date($date_string, $row['edit_date']);
$_title = get_translated_tempcode($row['title']);
$news_title = xmlentities($_title->evaluate());
$_summary = get_translated_tempcode($row['news']);
if ($_summary->is_empty()) {
$_summary = get_translated_tempcode($row['news_article']);
}
$summary = xmlentities($_summary->evaluate());
if (!is_null($row['news_article'])) {
$_news = get_translated_tempcode($row['news_article']);
if ($_news->is_empty()) {
$news = '';
} else {
$news = xmlentities($_news->evaluate());
}
} else {
$news = '';
}
if (!array_key_exists($row['news_category'], $categories)) {
$categories[$row['news_category']] = get_translated_text($GLOBALS['SITE_DB']->query_value('news_categories', 'nc_title', array('id' => $row['news_category'])));
}
$category = $categories[$row['news_category']];
$category_raw = strval($row['news_category']);
$view_url = build_url(array('page' => 'news', 'type' => 'view', 'id' => $row['id']), get_module_zone('news'), NULL, false, false, true);
if ($prefix == 'RSS_' && get_option('is_on_comments') == '1' && $row['allow_comments'] >= 1) {
$if_comments = do_template('RSS_ENTRY_COMMENTS', array('_GUID' => 'b4f25f5cf68304f8d402bb06851489d6', 'COMMENT_URL' => $view_url, 'ID' => strval($row['id'])));
} else {
$if_comments = new ocp_tempcode();
}
$content->attach(do_template($prefix . 'ENTRY', array('VIEW_URL' => $view_url, 'SUMMARY' => $summary, 'EDIT_DATE' => $edit_date, 'IF_COMMENTS' => $if_comments, 'TITLE' => $news_title, 'CATEGORY_RAW' => $category_raw, 'CATEGORY' => $category, 'AUTHOR' => $author, 'ID' => $id, 'NEWS' => $news, 'DATE' => $news_date)));
}
}
return array($content, do_lang('NEWS'));
}
示例14: run
/**
* Standard modular run function.
*
* @param array A map of parameters.
* @return tempcode The result of execution.
*/
function run($map)
{
if (!array_key_exists('param', $map)) {
$map['param'] = '';
}
if (!array_key_exists('extra', $map)) {
$map['extra'] = '';
}
$max = array_key_exists('max', $map) ? intval($map['max']) : 100;
require_code('banners');
$b_type = $map['param'];
$myquery = 'SELECT * FROM ' . get_table_prefix() . 'banners WHERE ((((the_type<>1) OR ((campaign_remaining>0) AND ((expiry_date IS NULL) or (expiry_date>' . strval(time()) . ')))) AND ' . db_string_not_equal_to('name', '') . ')) AND validated=1 AND ' . db_string_equal_to('b_type', $b_type) . ' ORDER BY name';
$banners = $GLOBALS['SITE_DB']->query($myquery, 200);
$assemble = new ocp_tempcode();
if (count($banners) > $max) {
shuffle($banners);
$banners = array_slice($banners, 0, $max);
}
foreach ($banners as $i => $banner) {
$bd = show_banner($banner['name'], $banner['b_title_text'], get_translated_tempcode($banner['caption']), $banner['img_url'], '', $banner['site_url'], $banner['b_type']);
$more_coming = $i < count($banners) - 1;
$assemble->attach(do_template('BLOCK_MAIN_BANNER_WAVE_BWRAP', array('EXTRA' => $map['extra'], 'TYPE' => $map['param'], 'BANNER' => $bd, 'MORE_COMING' => $more_coming)));
}
return do_template('BLOCK_MAIN_BANNER_WAVE', array('EXTRA' => $map['extra'], 'TYPE' => $map['param'], 'ASSEMBLE' => $assemble));
}
示例15: get_page_warning_details
/**
* A page is not validated, so show a warning.
*
* @param ID_TEXT The zone the page is being loaded from
* @param ID_TEXT The codename of the page
* @param tempcode The edit URL (blank if no edit access)
* @return tempcode The warning
*/
function get_page_warning_details($zone, $codename, $edit_url)
{
$warning_details = new ocp_tempcode();
if (!has_specific_permission(get_member(), 'jump_to_unvalidated')) {
access_denied('SPECIFIC_PERMISSION', 'jump_to_unvalidated');
}
$uv_warning = do_lang_tempcode(get_param_integer('redirected', 0) == 1 ? 'UNVALIDATED_TEXT_NON_DIRECT' : 'UNVALIDATED_TEXT');
// Wear sun cream
if (!$edit_url->is_empty()) {
$menu_links = $GLOBALS['SITE_DB']->query('SELECT DISTINCT i_menu FROM ' . get_table_prefix() . 'menu_items WHERE ' . db_string_equal_to('i_url', $zone . ':' . $codename) . ' OR ' . db_string_equal_to('i_url', '_SEARCH:' . $codename));
if (count($menu_links) != 0) {
$menu_items_linking = new ocp_tempcode();
foreach ($menu_links as $menu_link) {
if (!$menu_items_linking->is_empty()) {
$menu_items_linking->attach(do_lang_tempcode('LIST_SEP'));
}
$menu_edit_url = build_url(array('page' => 'admin_menus', 'type' => 'edit', 'id' => $menu_link['i_menu']), get_module_zone('admin_menus'));
$menu_items_linking->attach(hyperlink($menu_edit_url, $menu_link['i_menu'], false, true));
}
$uv_warning = do_lang_tempcode('UNVALIDATED_TEXT_STAFF', $menu_items_linking);
}
}
$warning_details->attach(do_template('WARNING_TABLE', array('WARNING' => $uv_warning)));
return $warning_details;
}