本文整理汇总了PHP中COM_getTopicSql函数的典型用法代码示例。如果您正苦于以下问题:PHP COM_getTopicSql函数的具体用法?PHP COM_getTopicSql怎么用?PHP COM_getTopicSql使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了COM_getTopicSql函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: DIR_displayAll
/**
* Display main view (list of years)
*
* Displays an overview of all the years and months, starting with the first
* year for which a story has been posted. Can optionally display a list of
* the stories for the current month at the top of the page.
*
* @param ref &$template reference of the template
* @param string $dir_topic current topic
* @return string list of all the years in the db
*
*/
function DIR_displayAll(&$template, $dir_topic)
{
global $_TABLES, $LANG_DIR;
$retval = '';
$yearsql = array();
$yearsql['mysql'] = "SELECT DISTINCT YEAR(date) AS year,date\n FROM {$_TABLES['stories']}, {$_TABLES['topic_assignments']} ta\n WHERE (draft_flag = 0) AND (date <= NOW())\n AND ta.type = 'article' AND ta.id = sid\n " . COM_getTopicSql('AND', 0, 'ta') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND');
$yearsql['mssql'] = "SELECT YEAR(date) AS year\n FROM {$_TABLES['stories']}, {$_TABLES['topic_assignments']} ta\n WHERE (draft_flag = 0) AND (date <= NOW())\n AND ta.type = 'article' AND ta.id = sid\n " . COM_getTopicSql('AND', 0, 'ta') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND');
$yearsql['pgsql'] = "SELECT EXTRACT( YEAR from date) AS year\n FROM {$_TABLES['stories']}, {$_TABLES['topic_assignments']} ta\n WHERE (draft_flag = 0) AND (date <= NOW())\n AND ta.type = 'article' AND ta.id = sid\n " . COM_getTopicSql('AND', 0, 'ta') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND');
$ysql = array();
$ysql['mysql'] = $yearsql['mysql'] . " GROUP BY YEAR(date) ORDER BY date DESC";
$ysql['mssql'] = $yearsql['mssql'] . " GROUP BY YEAR(date) ORDER BY YEAR(date) DESC";
$ysql['pgsql'] = $yearsql['pgsql'] . " GROUP BY year,date ORDER BY year DESC";
$yresult = DB_query($ysql);
$numyears = DB_numRows($yresult);
if ($numyears > 0) {
for ($i = 0; $i < $numyears; $i++) {
$Y = DB_fetchArray($yresult);
if (TEMPLATE_EXISTS) {
$template->set_var('section_title', $Y['year']);
$retval .= $template->parse('title', 'section-title') . LB;
} else {
$retval .= '<h3>' . $Y['year'] . '</h3>' . LB;
}
$retval .= DIR_displayYear($template, $dir_topic, $Y['year']);
}
} else {
if (TEMPLATE_EXISTS) {
$retval .= $template->parse('message', 'no-articles') . LB;
} else {
$retval .= '<p>' . $LANG_DIR['no_articles'] . '</p>' . LB;
}
}
return $retval;
}
示例2: SITEMAPMENU_listStory
/**
* Returns a list of stories with a give topic id
*/
function SITEMAPMENU_listStory($tid)
{
global $_CONF, $_TABLES, $LANG_DIR;
$retval = '';
$sql = "SELECT sid, title, UNIX_TIMESTAMP(date) AS day " . "FROM {$_TABLES['stories']} " . "WHERE (draft_flag = 0) AND (date <= NOW())";
if ($tid != 'all') {
$sql .= " AND (tid = '{$tid}')";
}
$sql .= COM_getTopicSql('AND') . COM_getPermSql('AND') . " ORDER BY date DESC";
$result = DB_query($sql);
$numrows = DB_numRows($result);
if ($numrows > 0) {
$entries = array();
for ($i = 0; $i < $numrows; $i++) {
$A = DB_fetchArray($result);
$url = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . $A['sid']);
$entries[] = '<a class="nav-link" href="' . $url . '">' . SITEMAPMENU_esc(stripslashes($A['title'])) . '</a>';
}
$retval .= COM_makeList($entries) . LB;
}
return $retval;
}
示例3: COM_whatsNewBlock
/**
* Shows any new information in a block
*
* Return the HTML that shows any new stories, comments, etc
*
* @param string $help Help file for block
* @param string $title Title used in block header
* @param string $position Position in which block is being rendered 'left', 'right' or blank (for centre)
* @return string Return the HTML that shows any new stories, comments, etc
*
*/
function COM_whatsNewBlock($help = '', $title = '', $position = '')
{
global $_CONF, $_TABLES, $_USER, $LANG01, $LANG_WHATSNEW, $page, $newstories;
$retval = COM_startBlock($title, $help, COM_getBlockTemplate('whats_new_block', 'header', $position));
$topicsql = '';
if ($_CONF['hidenewstories'] == 0 || $_CONF['hidenewcomments'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0) {
$topicsql = COM_getTopicSql('AND', 0, $_TABLES['stories']);
}
if ($_CONF['hidenewstories'] == 0) {
$archsql = '';
$archivetid = DB_getItem($_TABLES['topics'], 'tid', "archive_flag=1");
if (!empty($archivetid)) {
$archsql = " AND (tid <> '" . addslashes($archivetid) . "')";
}
// Find the newest stories
$sql = "SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE (date >= (date_sub(NOW(), INTERVAL {$_CONF['newstoriesinterval']} SECOND))) AND (date <= NOW()) AND (draft_flag = 0)" . $archsql . COM_getPermSQL('AND') . $topicsql . COM_getLangSQL('sid', 'AND');
$result = DB_query($sql);
$A = DB_fetchArray($result);
$nrows = $A['count'];
if (empty($title)) {
$title = DB_getItem($_TABLES['blocks'], 'title', "name='whats_new_block'");
}
// Any late breaking news stories?
$retval .= '<h3>' . $LANG01[99] . '</h3>';
if ($nrows > 0) {
$newmsg = COM_formatTimeString($LANG_WHATSNEW['new_string'], $_CONF['newstoriesinterval'], $LANG01[11], $nrows);
if ($newstories && $page < 2) {
$retval .= $newmsg . '<br' . XHTML . '>';
} else {
$retval .= COM_createLink($newmsg, $_CONF['site_url'] . '/index.php?display=new') . '<br' . XHTML . '>';
}
} else {
$retval .= $LANG01[100] . '<br' . XHTML . '>';
}
if ($_CONF['hidenewcomments'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0 || $_CONF['hidenewplugins'] == 0) {
$retval .= '<br' . XHTML . '>';
}
}
if ($_CONF['hidenewcomments'] == 0) {
// Go get the newest comments
$retval .= '<h3>' . $LANG01[83] . ' <small>' . COM_formatTimeString($LANG_WHATSNEW['new_last'], $_CONF['newcommentsinterval']) . '</small></h3>';
$stwhere = '';
if (!COM_isAnonUser()) {
$stwhere .= "({$_TABLES['stories']}.owner_id IS NOT NULL AND {$_TABLES['stories']}.perm_owner IS NOT NULL) OR ";
$stwhere .= "({$_TABLES['stories']}.group_id IS NOT NULL AND {$_TABLES['stories']}.perm_group IS NOT NULL) OR ";
$stwhere .= "({$_TABLES['stories']}.perm_members IS NOT NULL)";
} else {
$stwhere .= "({$_TABLES['stories']}.perm_anon IS NOT NULL)";
}
$sql = "SELECT DISTINCT COUNT(*) AS dups, type, {$_TABLES['stories']}.title, {$_TABLES['stories']}.sid, max({$_TABLES['comments']}.date) AS lastdate FROM {$_TABLES['comments']} LEFT JOIN {$_TABLES['stories']} ON (({$_TABLES['stories']}.sid = {$_TABLES['comments']}.sid)" . COM_getPermSQL('AND', 0, 2, $_TABLES['stories']) . " AND ({$_TABLES['stories']}.draft_flag = 0) AND ({$_TABLES['stories']}.commentcode >= 0)" . $topicsql . COM_getLangSQL('sid', 'AND', $_TABLES['stories']) . ") WHERE ({$_TABLES['comments']}.date >= (DATE_SUB(NOW(), INTERVAL {$_CONF['newcommentsinterval']} SECOND))) AND ((({$stwhere}))) GROUP BY {$_TABLES['comments']}.sid,type, {$_TABLES['stories']}.title, {$_TABLES['stories']}.title, {$_TABLES['stories']}.sid ORDER BY 5 DESC LIMIT 15";
$result = DB_query($sql);
$nrows = DB_numRows($result);
if ($nrows > 0) {
$newcomments = array();
for ($x = 0; $x < $nrows; $x++) {
$A = DB_fetchArray($result);
if ($A['type'] == 'article' || empty($A['type'])) {
$url = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . $A['sid']) . '#comments';
}
$title = COM_undoSpecialChars(stripslashes($A['title']));
$titletouse = COM_truncate($title, $_CONF['title_trim_length'], '...');
if ($title != $titletouse) {
$attr = array('title' => htmlspecialchars($title));
} else {
$attr = array();
}
$acomment = str_replace('$', '$', $titletouse);
$acomment = str_replace(' ', ' ', $acomment);
if ($A['dups'] > 1) {
$acomment .= ' [+' . $A['dups'] . ']';
}
$newcomments[] = COM_createLink($acomment, $url, $attr);
}
$retval .= COM_makeList($newcomments, 'list-new-comments');
} else {
$retval .= $LANG01[86] . '<br' . XHTML . '>' . LB;
}
if ($_CONF['hidenewplugins'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0) {
$retval .= '<br' . XHTML . '>';
}
}
if ($_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0) {
$retval .= '<h3>' . $LANG01[114] . ' <small>' . COM_formatTimeString($LANG_WHATSNEW['new_last'], $_CONF['newtrackbackinterval']) . '</small></h3>';
$sql = "SELECT DISTINCT COUNT(*) AS count,{$_TABLES['stories']}.title,t.sid,max(t.date) AS lastdate FROM {$_TABLES['trackback']} AS t,{$_TABLES['stories']} WHERE (t.type = 'article') AND (t.sid = {$_TABLES['stories']}.sid) AND (t.date >= (DATE_SUB(NOW(), INTERVAL {$_CONF['newtrackbackinterval']} SECOND)))" . COM_getPermSQL('AND', 0, 2, $_TABLES['stories']) . " AND ({$_TABLES['stories']}.draft_flag = 0) AND ({$_TABLES['stories']}.trackbackcode = 0)" . $topicsql . COM_getLangSQL('sid', 'AND', $_TABLES['stories']) . " GROUP BY t.sid, {$_TABLES['stories']}.title ORDER BY lastdate DESC LIMIT 15";
$result = DB_query($sql);
$nrows = DB_numRows($result);
if ($nrows > 0) {
$newcomments = array();
for ($i = 0; $i < $nrows; $i++) {
//.........这里部分代码省略.........
示例4: DB_getItem
$totalhits = DB_getItem($_TABLES['vars'], 'value', "name = 'totalhits'");
$data_arr[] = array('title' => $LANG10[2], 'stats' => COM_NumberFormat($totalhits));
if ($_CONF['lastlogin']) {
// if we keep track of the last login date, count the number of users
// that have logged in during the last 4 weeks
$result = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['users']} AS u,{$_TABLES['userinfo']} AS i WHERE (u.uid > 1) AND (u.uid = i.uid) AND (lastlogin <> '') AND (lastlogin >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 28 DAY)))");
list($active_users) = DB_fetchArray($result);
} else {
// otherwise, just count all users with status 'active'
// (i.e. those that logged in at least once and have not been banned since)
$active_users = DB_count($_TABLES['users'], 'status', 3);
$active_users--;
// don't count the anonymous user account
}
$data_arr[] = array('title' => $LANG10[27], 'stats' => COM_NumberFormat($active_users));
$topicsql = COM_getTopicSql('AND');
$id = array('draft_flag', 'date');
$values = array('0', 'NOW()');
$result = DB_query("SELECT COUNT(*) AS count,SUM(comments) AS ccount FROM {$_TABLES['stories']} WHERE (draft_flag = 0) AND (date <= NOW())" . COM_getPermSQL('AND') . $topicsql);
$A = DB_fetchArray($result);
if (empty($A['ccount'])) {
$A['ccount'] = 0;
}
$data_arr[] = array('title' => $LANG10[3], 'stats' => COM_NumberFormat($A['count']) . " (" . COM_NumberFormat($A['ccount']) . ")");
// new stats plugin API call
$plg_stats = PLG_getPluginStats(3);
if (count($plg_stats) > 0) {
foreach ($plg_stats as $pstats) {
if (is_array($pstats[0])) {
foreach ($pstats as $pmstats) {
$data_arr[] = array('title' => $pmstats[0], 'stats' => $pmstats[1]);
示例5: mailstoryform
/**
* Display form to email a story to someone.
*
* @param string $sid ID of article to email
* @return string HTML for email story form
*
*/
function mailstoryform($sid, $to = '', $toemail = '', $from = '', $fromemail = '', $shortmsg = '', $msg = 0)
{
global $_CONF, $_TABLES, $_USER, $LANG03, $LANG08, $LANG_LOGIN;
$retval = '';
if (COM_isAnonUser() && ($_CONF['loginrequired'] == 1 || $_CONF['emailstoryloginrequired'] == 1)) {
$display = COM_siteHeader('menu', $LANG_LOGIN[1]);
$display .= SEC_loginRequiredForm();
$display .= COM_siteFooter();
echo $display;
exit;
}
$result = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE sid = '" . DB_escapeString($sid) . "'" . COM_getTopicSql('AND') . COM_getPermSql('AND'));
$A = DB_fetchArray($result);
if ($A['count'] == 0) {
return COM_refresh($_CONF['site_url'] . '/index.php');
}
if ($msg > 0) {
$retval .= COM_showMessage($msg, '', '', 0, 'info');
}
if (empty($from) && empty($fromemail)) {
if (!COM_isAnonUser()) {
$from = COM_getDisplayName($_USER['uid'], $_USER['username'], $_USER['fullname']);
$fromemail = DB_getItem($_TABLES['users'], 'email', "uid = {$_USER['uid']}");
}
}
$postmode = $_CONF['mailuser_postmode'];
$mail_template = new Template($_CONF['path_layout'] . 'profiles');
$mail_template->set_file('form', 'contactauthorform.thtml');
if ($postmode == 'html') {
$mail_template->set_var('show_htmleditor', true);
} else {
$mail_template->unset_var('show_htmleditor');
}
$mail_template->set_var('lang_postmode', $LANG03[2]);
$mail_template->set_var('postmode', $postmode);
$mail_template->set_var('start_block_mailstory2friend', COM_startBlock($LANG08[17]));
$mail_template->set_var('lang_fromname', $LANG08[20]);
$mail_template->set_var('name', $from);
$mail_template->set_var('lang_fromemailaddress', $LANG08[21]);
$mail_template->set_var('email', $fromemail);
$mail_template->set_var('lang_toname', $LANG08[18]);
$mail_template->set_var('toname', $to);
$mail_template->set_var('lang_toemailaddress', $LANG08[19]);
$mail_template->set_var('toemail', $toemail);
$mail_template->set_var('lang_shortmessage', $LANG08[27]);
$mail_template->set_var('shortmsg', @htmlspecialchars($shortmsg, ENT_COMPAT, COM_getEncodingt()));
$mail_template->set_var('lang_warning', $LANG08[22]);
$mail_template->set_var('lang_sendmessage', $LANG08[16]);
$mail_template->set_var('story_id', $sid);
PLG_templateSetVars('emailstory', $mail_template);
$mail_template->set_var('end_block', COM_endBlock());
$mail_template->parse('output', 'form');
$retval .= $mail_template->finish($mail_template->get_var('output'));
return $retval;
}
示例6: COM_setArgNames
}
}
COM_setArgNames(array('id', 'type'));
$id = COM_applyFilter(COM_getArgument('id'));
$type = COM_applyFilter(COM_getArgument('type'));
if (empty($id)) {
TRB_sendTrackbackResponse(1, $TRB_ERROR['illegal_request']);
exit;
}
if (empty($type)) {
$type = 'article';
}
if ($type == 'article') {
// check if they have access to this story
$sid = DB_escapeString($id);
$result = DB_query("SELECT trackbackcode FROM {$_TABLES['stories']} WHERE (sid = '{$sid}') AND (date <= NOW()) AND (draft_flag = 0)" . COM_getPermSql('AND') . COM_getTopicSql('AND'));
if (DB_numRows($result) == 1) {
$A = DB_fetchArray($result);
if ($A['trackbackcode'] == 0) {
TRB_handleTrackbackPing($id, $type);
} else {
TRB_sendTrackbackResponse(1, $TRB_ERROR['no_access']);
}
} else {
TRB_sendTrackbackResponse(1, $TRB_ERROR['no_access']);
}
} else {
if (PLG_handlePingComment($type, $id, 'acceptByID') === true) {
TRB_handleTrackbackPing($id, $type);
} else {
TRB_sendTrackbackResponse(1, $TRB_ERROR['no_access']);
示例7: getItemsByDate
/**
* Returns an array of (
* 'id' => $id (string),
* 'title' => $title (string),
* 'uri' => $uri (string),
* 'date' => $date (int: Unix timestamp),
* 'image_uri' => $image_uri (string)
* )
*/
public function getItemsByDate($tid = '', $all_langs = FALSE)
{
global $_CONF, $_TABLES;
$entries = array();
if (empty(Dataproxy::$startDate) or empty(Dataproxy::$endDate)) {
return $entries;
}
$sql = "SELECT sid, title, UNIX_TIMESTAMP(date) AS day " . " FROM {$_TABLES['stories']} " . "WHERE (draft_flag = 0) AND (date <= NOW()) " . " AND (UNIX_TIMESTAMP(date) BETWEEN '" . Dataproxy::$startDate . "' AND '" . Dataproxy::$endDate . "') ";
if (!empty($tid)) {
$sql .= "AND (tid = '" . addslashes($tid) . "') ";
}
if (!Dataproxy::isRoot()) {
$sql .= COM_getTopicSql('AND', Dataproxy::uid()) . COM_getPermSql('AND', Dataproxy::uid());
if (function_exists('COM_getLangSQL') and $all_langs === FALSE) {
$sql .= COM_getLangSQL('sid', 'AND');
}
}
$result = DB_query($sql);
if (DB_error()) {
return $entries;
}
while (($A = DB_fetchArray($result, FALSE)) !== FALSE) {
$entry = array();
$entry['id'] = stripslashes($A['sid']);
$entry['title'] = stripslashes($A['title']);
$entry['uri'] = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . stripslashes($A['sid']));
$entry['date'] = $A['day'];
$entry['imageurl'] = FALSE;
$entries[] = $entry;
}
return $entries;
}
示例8: initSubmission
/**
* Sets up basic data for a new user submission story
*/
public function initSubmission()
{
global $_USER, $_CONF, $_TABLES, $topic;
if (COM_isAnonUser()) {
$this->_uid = 1;
} else {
$this->_uid = $_USER['uid'];
}
// initialize the GLText version to the latest version
$this->_text_version = GLTEXT_LATEST_VERSION;
$this->_postmode = $_CONF['postmode'];
// If a topic has been specified, use it, if permitted
// otherwise, fall back to the default permitted topic.
// if we still don't have one...
// Have we specified a permitted topic?
if (!empty($topic)) {
$allowed = DB_getItem($_TABLES['topics'], 'tid', "tid = '" . DB_escapeString($topic) . "'" . COM_getTopicSql('AND'));
if ($allowed != $topic) {
$topic = '';
}
}
// Do we now not have a topic?
if (empty($topic)) {
// Get default permitted:
$topic = DB_getItem($_TABLES['topics'], 'tid', 'is_default = 1' . COM_getPermSQL('AND'));
}
// Use what we have:
$this->_tid = $topic;
$this->_date = time();
}
示例9: TRB_allowDelete
/**
* Check if the current user is allowed to delete trackback comments.
*
* @param string $sid ID of the parent object of the comment
* @param string $type type of the parent object ('article' = story, etc.)
* @return boolean true = user can delete the comment, false = nope
*
*/
function TRB_allowDelete($sid, $type)
{
global $_TABLES;
$allowed = false;
if ($type == 'article') {
$sid = addslashes($sid);
$result = DB_query("SELECT owner_id,group_id,perm_owner,perm_group,perm_members,perm_anon FROM {$_TABLES['stories']} WHERE sid = '{$sid}'" . COM_getPermSql('AND', 0, 3) . COM_getTopicSql('AND'));
$A = DB_fetchArray($result);
if (SEC_hasRights('story.edit') && SEC_hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']) == 3) {
$allowed = true;
} else {
$allowed = false;
}
} else {
$allowed = PLG_handlePingComment($type, $sid, 'delete');
}
return $allowed;
}
示例10: STORY_edit
/**
* Shows story editor
*
* Displays the story entry form
*
* @param string $sid ID of story to edit
* @param string $action 'preview', 'edit', 'moderate', 'draft'
* @param string $errormsg a message to display on top of the page
* @param string $currenttopic topic selection for drop-down menu
* @return string HTML for story editor
*
*/
function STORY_edit($sid = '', $action = '', $errormsg = '', $currenttopic = '')
{
global $_CONF, $_GROUPS, $_TABLES, $_USER, $LANG24, $LANG33, $LANG_ACCESS, $LANG_ADMIN, $MESSAGE, $_IMAGE_TYPE;
USES_lib_admin();
$display = '';
switch ($action) {
case 'clone':
case 'edit':
case 'preview':
case 'error':
$title = $LANG24[5];
$saveoption = $LANG_ADMIN['save'];
$submission = false;
break;
case 'moderate':
$title = $LANG24[90];
$saveoption = $LANG_ADMIN['moderate'];
$submission = true;
break;
case 'draft':
$title = $LANG24[91];
$saveoption = $LANG_ADMIN['save'];
$submission = true;
$action = 'edit';
break;
default:
$title = $LANG24[5];
$saveoption = $LANG_ADMIN['save'];
$submission = false;
$action = 'edit';
break;
}
// Load HTML templates
$story_templates = new Template($_CONF['path_layout'] . 'admin/story');
$story_templates->set_file(array('editor' => 'storyeditor.thtml'));
if (!isset($_CONF['hour_mode'])) {
$_CONF['hour_mode'] = 12;
}
if (!empty($errormsg)) {
$display .= COM_showMessageText($errormsg, $LANG24[25], true);
}
if (!empty($currenttopic)) {
$allowed = DB_getItem($_TABLES['topics'], 'tid', "tid = '" . DB_escapeString($currenttopic) . "'" . COM_getTopicSql('AND'));
if ($allowed != $currenttopic) {
$currenttopic = '';
}
}
$story = new Story();
if ($action == 'preview' || $action == 'error') {
while (list($key, $value) = each($_POST)) {
if (!is_array($value)) {
$_POST[$key] = $value;
} else {
while (list($subkey, $subvalue) = each($value)) {
$value[$subkey] = $subvalue;
}
}
}
$result = $story->loadFromArgsArray($_POST);
} else {
$result = $story->loadFromDatabase($sid, $action);
}
if ($result == STORY_PERMISSION_DENIED || $result == STORY_NO_ACCESS_PARAMS) {
$display .= COM_showMessageText($LANG24[42], $LANG_ACCESS['accessdenied'], true);
COM_accessLog("User {$_USER['username']} tried to access story {$sid}. - STORY_PERMISSION_DENIED or STORY_NO_ACCESS_PARAMS - " . $result);
return $display;
} elseif ($result == STORY_EDIT_DENIED || $result == STORY_EXISTING_NO_EDIT_PERMISSION) {
$display .= COM_showMessageText($LANG24[41], $LANG_ACCESS['accessdenied'], true);
$display .= STORY_renderArticle($story, 'p');
COM_accessLog("User {$_USER['username']} tried to illegally edit story {$sid}. - STORY_EDIT_DENIED or STORY_EXISTING_NO_EDIT_PERMISSION");
return $display;
} elseif ($result == STORY_INVALID_SID) {
if ($action == 'moderate') {
// that submission doesn't seem to be there any more (may have been
// handled by another Admin) - take us back to the moderation page
echo COM_refresh($_CONF['site_admin_url'] . '/moderation.php');
} else {
echo COM_refresh($_CONF['site_admin_url'] . '/story.php');
}
} elseif ($result == STORY_DUPLICATE_SID) {
$story_templates->set_var('error_message', $LANG24[24]);
} elseif ($result == STORY_EMPTY_REQUIRED_FIELDS) {
$story_templates->set_var('error_message', $LANG24[31]);
}
if (empty($currenttopic) && $story->EditElements('tid') == '') {
$story->setTid(DB_getItem($_TABLES['topics'], 'tid', 'is_default = 1' . COM_getPermSQL('AND')));
} else {
if ($story->EditElements('tid') == '') {
//.........这里部分代码省略.........
示例11: COM_whatsNewBlock
/**
* Shows any new information in a block
*
* Return the HTML that shows any new stories, comments, etc
*
* @param string $help Help file for block
* @param string $title Title used in block header
* @param string $position Position in which block is being rendered 'left', 'right' or blank (for centre)
* @return string Return the HTML that shows any new stories, comments, etc
*
*/
function COM_whatsNewBlock($help = '', $title = '', $position = '')
{
global $_CONF, $_TABLES, $_USER, $_PLUGINS, $LANG01, $LANG_WHATSNEW, $page, $newstories;
if (!isset($_CONF['whatsnew_cache_time'])) {
$_CONF['whatsnew_cache_time'] = 3600;
}
$cacheInstance = 'whatsnew__' . CACHE_security_hash() . '__' . $_USER['theme'];
$retval = CACHE_check_instance($cacheInstance, 0);
if ($retval) {
$lu = CACHE_get_instance_update($cacheInstance, 0);
$now = time();
if ($now - $lu < $_CONF['whatsnew_cache_time']) {
return $retval;
}
}
$T = new Template($_CONF['path_layout'] . 'blocks');
$T->set_file('block', 'whatsnew.thtml');
$items_found = 0;
$header = COM_startBlock($title, $help, COM_getBlockTemplate('whats_new_block', 'header', $position), 'whats_new_block');
$T->set_var('block_start', $header);
$topicsql = '';
if ($_CONF['hidenewstories'] == 0 || $_CONF['hidenewcomments'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0) {
$topicsql = COM_getTopicSql('AND', 0, $_TABLES['stories']);
}
if ($_CONF['hidenewstories'] == 0) {
$archsql = '';
$archivetid = DB_getItem($_TABLES['topics'], 'tid', "archive_flag=1");
if (!empty($archivetid)) {
$archsql = " AND (tid <> '" . DB_escapeString($archivetid) . "')";
}
// Find the newest stories
$sql = "SELECT * FROM {$_TABLES['stories']} WHERE (date >= (date_sub(NOW(), INTERVAL {$_CONF['newstoriesinterval']} SECOND))) AND (date <= NOW()) AND (draft_flag = 0)" . $archsql . COM_getPermSQL('AND') . $topicsql . COM_getLangSQL('sid', 'AND') . ' ORDER BY date DESC';
$result = DB_query($sql);
$nrows = DB_numRows($result);
if (empty($title)) {
$title = DB_getItem($_TABLES['blocks'], 'title', "name='whats_new_block'");
}
$T->set_block('block', 'section', 'sectionblock');
if ($nrows > 0) {
// Any late breaking news stories?
$T->set_var('section_title', $LANG01[99]);
$T->set_var('interval', COM_formatTimeString($LANG_WHATSNEW['new_last'], $_CONF['newcommentsinterval']));
$newstory = array();
$T->set_block('block', 'datarow', 'datablock');
while ($A = DB_fetchArray($result)) {
$title = COM_undoSpecialChars($A['title']);
$title = str_replace(' ', ' ', $title);
$titletouse = COM_truncate($title, $_CONF['title_trim_length'], '...');
$attr = array('title' => htmlspecialchars($title, ENT_COMPAT, COM_getEncodingt()));
$url = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . $A['sid']);
$storyitem = COM_createLink($titletouse, $url, $attr);
$newstory[] = $storyitem;
$T->set_var('data_item', $storyitem);
$T->parse('datablock', 'datarow', true);
$items_found++;
}
$T->parse('sectionblock', 'section', true);
}
}
$T->unset_var('datablock');
if ($_CONF['hidenewcomments'] == 0) {
// Go get the newest comments
$commentHeader = 0;
$newcomments = array();
$commentrow = array();
// get story whats new
$stwhere = '';
if (!COM_isAnonUser()) {
$stwhere .= "({$_TABLES['stories']}.owner_id IS NOT NULL AND {$_TABLES['stories']}.perm_owner IS NOT NULL) OR ";
$stwhere .= "({$_TABLES['stories']}.group_id IS NOT NULL AND {$_TABLES['stories']}.perm_group IS NOT NULL) OR ";
$stwhere .= "({$_TABLES['stories']}.perm_members IS NOT NULL)";
} else {
$stwhere .= "({$_TABLES['stories']}.perm_anon IS NOT NULL)";
}
$sql = "SELECT DISTINCT COUNT(*) AS dups, type, {$_TABLES['stories']}.title, {$_TABLES['stories']}.sid, UNIX_TIMESTAMP(max({$_TABLES['comments']}.date)) AS lastdate FROM {$_TABLES['comments']} LEFT JOIN {$_TABLES['stories']} ON (({$_TABLES['stories']}.sid = {$_TABLES['comments']}.sid)" . COM_getPermSQL('AND', 0, 2, $_TABLES['stories']) . " AND ({$_TABLES['stories']}.draft_flag = 0) AND ({$_TABLES['stories']}.commentcode >= 0)" . $topicsql . COM_getLangSQL('sid', 'AND', $_TABLES['stories']) . ") WHERE ({$_TABLES['comments']}.date >= (DATE_SUB(NOW(), INTERVAL {$_CONF['newcommentsinterval']} SECOND))) AND ((({$stwhere}))) GROUP BY {$_TABLES['comments']}.sid,type, {$_TABLES['stories']}.title, {$_TABLES['stories']}.title, {$_TABLES['stories']}.sid ORDER BY 5 DESC LIMIT 15";
$result = DB_query($sql);
$nrows = DB_numRows($result);
if ($nrows > 0) {
$T->set_var('section_title', $LANG01[83]);
$T->set_var('interval', COM_formatTimeString($LANG_WHATSNEW['new_last'], $_CONF['newcommentsinterval']));
$commentHeader = 1;
for ($x = 0; $x < $nrows; $x++) {
$A = DB_fetchArray($result);
$A['url'] = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . $A['sid']) . '#comments';
$commentrow[] = $A;
}
}
$pluginComments = PLG_getWhatsNewComment();
$commentrow = array_merge($pluginComments, $commentrow);
//.........这里部分代码省略.........
示例12: getItemsByDate
/**
* Returns an array of (
* 'id' => $id (string),
* 'title' => $title (string),
* 'uri' => $uri (string),
* 'date' => $date (int: Unix timestamp),
* 'image_uri' => $image_uri (string)
* )
*/
public function getItemsByDate($tid = '', $all_langs = FALSE)
{
global $_CONF, $_TABLES;
$retval = array();
if (empty(Dataproxy::$startDate) or empty(Dataproxy::$endDate)) {
return $retval;
}
// Collects sids
$sql = "SELECT id " . " FROM {$_TABLES['topic_assignments']} " . "WHERE (type= 'article') AND (tdefault = 1) ";
if (!empty($tid)) {
$sql .= " AND (tid = '" . addslashes($tid) . "') ";
}
if (!Dataproxy::isRoot()) {
$sql .= COM_getTopicSql('AND', Dataproxy::uid());
}
$result = DB_query($sql);
if (DB_error()) {
return $retval;
} else {
$sids = array();
while (($A = DB_fetchArray($result, FALSE)) !== FALSE) {
$sids[] = addslashes($A['id']);
}
if (count($sids) === 0) {
return $retval;
}
}
$sql = "SELECT sid, title, UNIX_TIMESTAMP(date) AS day " . " FROM {$_TABLES['stories']} " . "WHERE (draft_flag = 0) AND (date <= NOW()) " . " AND (UNIX_TIMESTAMP(date) BETWEEN '" . Dataproxy::$startDate . "' AND '" . Dataproxy::$endDate . "') " . " AND (sid IN ('" . implode("', '", $sids) . "')) ";
if (!Dataproxy::isRoot()) {
$sql .= COM_getPermSql('AND', Dataproxy::uid());
if ($all_langs === FALSE) {
$sql .= COM_getLangSQL('sid', 'AND');
}
}
$sql .= " ORDER BY date DESC ";
$result = DB_query($sql);
if (DB_error()) {
return $retval;
}
while (($A = DB_fetchArray($result, FALSE)) !== FALSE) {
$entry = array();
$entry['id'] = stripslashes($A['sid']);
$entry['title'] = stripslashes($A['title']);
$entry['uri'] = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . stripslashes($A['sid']));
$entry['date'] = $A['day'];
$entry['imageurl'] = FALSE;
$retval[] = $entry;
}
return $retval;
}
示例13: DIR_displayAll
/**
* Display main view (list of years)
*
* Displays an overview of all the years and months, starting with the first
* year for which a story has been posted. Can optionally display a list of
* the stories for the current month at the top of the page.
*
* @param string $topic current topic
* @param boolean $list_current_month true = list stories f. current month
* @return string list of all the years in the db
*
*/
function DIR_displayAll($topic, $list_current_month = false)
{
global $_TABLES, $LANG_DIR;
$retval = '';
if ($list_current_month) {
$currentyear = date('Y', time());
$currentmonth = date('n', time());
$retval .= DIR_displayMonth($topic, $currentyear, $currentmonth);
$retval .= '<hr' . XHTML . '>' . LB;
}
$retval .= '<div><h1 style="display:inline">' . $LANG_DIR['title'] . '</h1> ' . DIR_topicList($topic) . '</div>' . LB;
$yearsql = array();
$yearsql['mysql'] = "SELECT DISTINCT YEAR(date) AS year,date FROM {$_TABLES['stories']} WHERE (draft_flag = 0) AND (date <= NOW())" . COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND');
$yearsql['mssql'] = "SELECT YEAR(date) AS year FROM {$_TABLES['stories']} WHERE (draft_flag = 0) AND (date <= NOW())" . COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND');
$yearsql['pgsql'] = "SELECT EXTRACT( YEAR from date) AS year FROM {$_TABLES['stories']} WHERE (draft_flag = 0) AND (date <= NOW())" . COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND');
$ysql = array();
$ysql['mysql'] = $yearsql['mysql'] . " GROUP BY YEAR(date) ORDER BY date DESC";
$ysql['mssql'] = $yearsql['mssql'] . " GROUP BY YEAR(date) ORDER BY YEAR(date) DESC";
$ysql['pgsql'] = $yearsql['pgsql'] . " GROUP BY year,date ORDER BY year DESC";
$yresult = DB_query($ysql);
$numyears = DB_numRows($yresult);
for ($i = 0; $i < $numyears; $i++) {
$Y = DB_fetchArray($yresult);
$retval .= DIR_displayYear($topic, $Y['year']);
}
return $retval;
}
示例14: STORY_getItemInfo
/**
* Return information for a story
*
* This is the story equivalent of PLG_getItemInfo. See lib-plugins.php for
* details.
*
* @param string $sid story ID or '*'
* @param string $what comma-separated list of story properties
* @param int $uid user ID or 0 = current user
* @return mixed string or array of strings with the information
*
*/
function STORY_getItemInfo($sid, $what, $uid = 0, $options = array())
{
global $_CONF, $_TABLES, $LANG09;
$properties = explode(',', $what);
$fields = array();
foreach ($properties as $p) {
switch ($p) {
case 'date-created':
$fields[] = 'UNIX_TIMESTAMP(date) AS unixdate';
break;
case 'description':
case 'raw-description':
$fields[] = 'introtext';
$fields[] = 'bodytext';
break;
case 'excerpt':
$fields[] = 'introtext';
break;
case 'feed':
$fields[] = 'tid';
break;
case 'id':
$fields[] = 'sid';
break;
case 'title':
$fields[] = 'title';
break;
case 'url':
case 'label':
$fields[] = 'sid';
break;
case 'status':
$fields[] = 'draft_flag';
break;
case 'author':
$fields[] = 'uid';
break;
default:
break;
}
}
$fields = array_unique($fields);
if (count($fields) == 0) {
$retval = array();
return $retval;
}
if ($sid == '*') {
$where = ' WHERE';
} else {
$where = " WHERE (sid = '" . DB_escapeString($sid) . "') AND";
}
$where .= ' (date <= NOW())';
if ($uid > 0) {
$permSql = COM_getPermSql('AND', $uid) . COM_getTopicSql('AND', $uid);
} else {
$permSql = COM_getPermSql('AND') . COM_getTopicSql('AND');
}
$sql = "SELECT " . implode(',', $fields) . " FROM {$_TABLES['stories']}" . $where . $permSql;
if ($sid != '*') {
$sql .= ' LIMIT 1';
}
$result = DB_query($sql);
$numRows = DB_numRows($result);
$retval = array();
for ($i = 0; $i < $numRows; $i++) {
$A = DB_fetchArray($result);
$props = array();
foreach ($properties as $p) {
switch ($p) {
case 'date-created':
$props['date-created'] = $A['unixdate'];
break;
case 'description':
$props['description'] = trim(PLG_replaceTags($A['introtext'] . ' ' . $A['bodytext'], 'glfusion', 'story'));
break;
case 'raw-description':
$props['raw-description'] = trim($A['introtext'] . ' ' . $A['bodytext']);
break;
case 'excerpt':
$excerpt = $A['introtext'];
$props['excerpt'] = trim(PLG_replaceTags($excerpt, 'glfusion', 'story'));
break;
case 'feed':
$feedfile = DB_getItem($_TABLES['syndication'], 'filename', "topic = '::all'");
if (empty($feedfile)) {
$feedfile = DB_getItem($_TABLES['syndication'], 'filename', "topic = '::frontpage'");
}
if (empty($feedfile)) {
//.........这里部分代码省略.........
示例15: COM_whatsNewBlock
/**
* Shows any new information in a block
*
* Return the HTML that shows any new stories, comments, etc
*
* @param string $help Help file for block
* @param string $title Title used in block header
* @param string $position Position in which block is being rendered 'left', 'right' or blank (for centre)
* @return string Return the HTML that shows any new stories, comments, etc
*
*/
function COM_whatsNewBlock($help = '', $title = '', $position = '')
{
global $_CONF, $_TABLES, $LANG01, $LANG_WHATSNEW, $page, $newstories;
$retval = COM_startBlock($title, $help, COM_getBlockTemplate('whats_new_block', 'header', $position));
$topicsql = '';
if ($_CONF['hidenewstories'] == 0 || $_CONF['hidenewcomments'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0) {
$topicsql = COM_getTopicSql('AND', 0, $_TABLES['stories']);
}
if ($_CONF['hidenewstories'] == 0) {
$archsql = '';
$archivetid = DB_getItem($_TABLES['topics'], 'tid', "archive_flag=1");
if (!empty($archivetid)) {
$archsql = " AND (tid <> '" . addslashes($archivetid) . "')";
}
// Find the newest stories
$sql['mssql'] = "SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE (date >= (date_sub(NOW(), INTERVAL {$_CONF['newstoriesinterval']} SECOND))) AND (date <= NOW()) AND (draft_flag = 0)" . $archsql . COM_getPermSQL('AND') . $topicsql . COM_getLangSQL('sid', 'AND');
$sql['mysql'] = "SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE (date >= (date_sub(NOW(), INTERVAL {$_CONF['newstoriesinterval']} SECOND))) AND (date <= NOW()) AND (draft_flag = 0)" . $archsql . COM_getPermSQL('AND') . $topicsql . COM_getLangSQL('sid', 'AND');
$sql['pgsql'] = "SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE (date >= (NOW() - INTERVAL '{$_CONF['newstoriesinterval']} SECOND')) AND (date <= NOW()) AND (draft_flag = 0)" . $archsql . COM_getPermSQL('AND') . $topicsql . COM_getLangSQL('sid', 'AND');
$result = DB_query($sql);
$A = DB_fetchArray($result);
$nrows = $A['count'];
if (empty($title)) {
$title = DB_getItem($_TABLES['blocks'], 'title', "name='whats_new_block'");
}
// Any late breaking news stories?
$retval .= '<h3>' . $LANG01[99] . '</h3>';
if ($nrows > 0) {
$newmsg = COM_formatTimeString($LANG_WHATSNEW['new_string'], $_CONF['newstoriesinterval'], $LANG01[11], $nrows);
if ($newstories && $page < 2) {
$retval .= $newmsg . '<br' . XHTML . '>';
} else {
$retval .= COM_createLink($newmsg, $_CONF['site_url'] . '/index.php?display=new') . '<br' . XHTML . '>';
}
} else {
$retval .= $LANG01[100] . '<br' . XHTML . '>';
}
if ($_CONF['hidenewcomments'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0 || $_CONF['hidenewplugins'] == 0) {
$retval .= '<br' . XHTML . '>';
}
}
if ($_CONF['hidenewcomments'] == 0) {
// Go get the newest comments
$retval .= '<h3>' . $LANG01[83] . ' <small>' . COM_formatTimeString($LANG_WHATSNEW['new_last'], $_CONF['newcommentsinterval']) . '</small></h3>';
$new_plugin_comments = array();
$new_plugin_comments = PLG_getWhatsNewComment();
if (!empty($new_plugin_comments)) {
// Sort array by element lastdate newest to oldest
foreach ($new_plugin_comments as $k => $v) {
$b[$k] = strtolower($v['lastdate']);
}
arsort($b);
foreach ($b as $key => $val) {
$temp[] = $new_plugin_comments[$key];
}
$new_plugin_comments = $temp;
$newcomments = array();
$count = 0;
foreach ($new_plugin_comments as $A) {
$count .= +1;
$url = '';
$info = PLG_getItemInfo($A['type'], $A['sid'], 'url');
if (!empty($info)) {
$url = $info . '#comments';
}
// Check to see if url (plugin may not support PLG_getItemInfo
if (!empty($url)) {
$title = COM_undoSpecialChars(stripslashes($A['title']));
$titletouse = COM_truncate($title, $_CONF['title_trim_length'], '...');
if ($title != $titletouse) {
$attr = array('title' => htmlspecialchars($title));
} else {
$attr = array();
}
$acomment = str_replace('$', '$', $titletouse);
$acomment = str_replace(' ', ' ', $acomment);
if ($A['dups'] > 1) {
$acomment .= ' [+' . $A['dups'] . ']';
}
$newcomments[] = COM_createLink($acomment, $url, $attr);
if ($count == 15) {
break;
}
}
}
$retval .= COM_makeList($newcomments, 'list-new-comments');
} else {
$retval .= $LANG01[86] . '<br' . XHTML . '>' . LB;
}
if ($_CONF['hidenewplugins'] == 0 || $_CONF['trackback_enabled'] && $_CONF['hidenewtrackbacks'] == 0) {
//.........这里部分代码省略.........