function b_news_randomnews_show($options) { include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; $myts =& MyTextSanitizer::getInstance(); $block = array(); $block['sort'] = $options[0]; $tmpstory = new NewsStory(); $restricted = news_getmoduleoption('restrictindex'); $dateformat = news_getmoduleoption('dateformat'); $infotips = news_getmoduleoption('infotips'); if ($dateformat == '') { $dateformat = 's'; } if ($options[4] == 0) { $stories = $tmpstory->getRandomNews($options[1], 0, $restricted, 0, 1, $options[0]); } else { $topics = array_slice($options, 4); $stories = $tmpstory->getRandomNews($options[1], 0, $restricted, $topics, 1, $options[0]); } unset($tmpstory); if (count($stories) == 0) { return ''; } foreach ($stories as $story) { $news = array(); $title = $story->title(); if (strlen($title) > $options[2]) { $title = xoops_substr($title, 0, $options[2] + 3); } $news['title'] = $title; $news['id'] = $story->storyid(); $news['date'] = formatTimestamp($story->published(), $dateformat); $news['hits'] = $story->counter(); $news['rating'] = $story->rating(); $news['votes'] = $story->votes(); $news['author'] = sprintf("%s %s", _POSTEDBY, $story->uname()); $news['topic_title'] = $story->topic_title(); $news['topic_color'] = '#' . $myts->displayTarea($story->topic_color); if ($options[3] > 0) { $html = $story->nohtml() == 1 ? 0 : 1; $news['teaser'] = news_truncate_tagsafe($myts->displayTarea($story->hometext, $html), $options[3] + 3); $news['infotips'] = ''; } else { $news['teaser'] = ''; if ($infotips > 0) { $news['infotips'] = ' title="' . news_make_infotips($story->hometext()) . '"'; } else { $news['infotips'] = ''; } } $block['stories'][] = $news; } $block['lang_read_more'] = _MB_READMORE; return $block; }
function b_news_topics_show() { global $storytopic; // Don't know why this is used and where it's coming from .... include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newstopic.php'; include_once XOOPS_ROOT_PATH . "/modules/news/class/tree.php"; $jump = XOOPS_URL . '/modules/news/index.php?storytopic='; $storytopic = !empty($storytopic) ? intval($storytopic) : 0; $restricted = news_getmoduleoption('restrictindex'); $xt = new NewsTopic(); $allTopics = $xt->getAllTopics($restricted); $topic_tree = new MyXoopsObjectTree($allTopics, 'topic_id', 'topic_pid'); $additional = " onchange='location=\"" . $jump . "\"+this.options[this.selectedIndex].value'"; $block['selectbox'] = $topic_tree->makeSelBox('storytopic', 'topic_title', '-- ', '', true, 0, $additional); return $block; }
function b_news_topicsnav_show($options) { include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newstopic.php'; $myts =& MyTextSanitizer::getInstance(); $block = array(); $newscountbytopic = array(); $perms = ''; $xt = new NewsTopic(); $restricted = news_getmoduleoption('restrictindex'); if ($restricted) { global $xoopsUser; $module_handler =& xoops_gethandler('module'); $newsModule =& $module_handler->getByDirname('news'); $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS; $gperm_handler =& xoops_gethandler('groupperm'); $topics = $gperm_handler->getItemIds('news_view', $groups, $newsModule->getVar('mid')); if (count($topics) > 0) { $topics = implode(',', $topics); $perms = ' AND topic_id IN (' . $topics . ') '; } else { return ''; } } $topics_arr = $xt->getChildTreeArray(0, 'topic_title', $perms); if ($options[0] == 1) { $newscountbytopic = $xt->getNewsCountByTopic(); } if (is_array($topics_arr) && count($topics_arr)) { foreach ($topics_arr as $onetopic) { if ($options[0] == 1) { $count = 0; if (array_key_exists($onetopic['topic_id'], $newscountbytopic)) { $count = $newscountbytopic[$onetopic['topic_id']]; } } else { $count = ''; } $block['topics'][] = array('id' => $onetopic['topic_id'], 'news_count' => $count, 'topic_color' => '#' . $onetopic['topic_color'], 'title' => $myts->displayTarea($onetopic['topic_title'])); } } return $block; }
/** * Dispay a block where news moderators can show news that need to be moderated. */ function b_news_topics_moderate() { include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; $block = array(); $dateformat = news_getmoduleoption('dateformat'); $infotips = news_getmoduleoption('infotips'); $storyarray = NewsStory::getAllSubmitted(0, true, news_getmoduleoption('restrictindex')); if (count($storyarray) > 0) { $block['lang_story_title'] = _MB_TITLE; $block['lang_story_date'] = _MB_POSTED; $block['lang_story_author'] = _MB_POSTER; $block['lang_story_action'] = _MB_ACTION; $block['lang_story_topic'] = _MB_TOPIC; $myts =& MyTextSanitizer::getInstance(); foreach ($storyarray as $newstory) { $title = $newstory->title(); $htmltitle = ''; if ($infotips > 0) { $story['infotips'] = news_make_infotips($newstory->hometext()); $htmltitle = ' title="' . $story['infotips'] . '"'; } if (!isset($title) || $title == '') { $linktitle = "<a href='" . XOOPS_URL . "/modules/news/index.php?op=edit&storyid=" . $newstory->storyid() . "' target='_blank'" . $htmltitle . ">" . _AD_NOSUBJECT . "</a>"; } else { $linktitle = "<a href='" . XOOPS_URL . "/modules/news/submit.php?op=edit&storyid=" . $newstory->storyid() . "' target='_blank'" . $htmltitle . ">" . $title . "</a>"; } $story = array(); $story['title'] = $linktitle; $story['date'] = formatTimestamp($newstory->created(), $dateformat); $story['author'] = "<a href='" . XOOPS_URL . "/userinfo.php?uid=" . $newstory->uid() . "'>" . $newstory->uname() . "</a>"; $story['action'] = "<a href='" . XOOPS_URL . "/modules/news/admin/index.php?op=edit&storyid=" . $newstory->storyid() . "'>" . _EDIT . "</a> - <a href='" . XOOPS_URL . "/modules/news/admin/index.php?op=delete&storyid=" . $newstory->storyid() . "'>" . _MB_DELETE . "</a>"; $story['topic_title'] = $newstory->topic_title(); $story['topic_color'] = '#' . $myts->displayTarea($newstory->topic_color); $block['stories'][] =& $story; unset($story); } } return $block; }
function b_news_bigstory_show() { include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; $myts =& MyTextSanitizer::getInstance(); $restricted = news_getmoduleoption('restrictindex'); $dateformat = news_getmoduleoption('dateformat'); $infotips = news_getmoduleoption('infotips'); $block = array(); $onestory = new NewsStory(); $stories = $onestory->getBigStory(1, 0, $restricted, 0, 1, true, 'counter'); if (count($stories) == 0) { $block['message'] = _MB_NEWS_NOTYET; } else { foreach ($stories as $key => $story) { $htmltitle = ''; if ($infotips > 0) { $block['infotips'] = news_make_infotips($story->hometext()); $htmltitle = ' title="' . $block['infotips'] . '"'; } $block['htmltitle'] = $htmltitle; $block['message'] = _MB_NEWS_TMRSI; $block['story_title'] = $story->title('Show'); $block['story_id'] = $story->storyid(); $block['story_date'] = formatTimestamp($story->published(), $dateformat); $block['story_hits'] = $story->counter(); $block['story_rating'] = $story->rating(); $block['story_votes'] = $story->votes(); $block['story_author'] = $story->uname(); $block['story_text'] = $story->hometext(); $block['story_topic_title'] = $story->topic_title(); $block['story_topic_color'] = '#' . $myts->displayTarea($story->topic_color); } } return $block; }
* Created on 28 oct. 2006 * * This file is responsible for creating micro summaries for Firefox 2 web navigator * For more information, see this page : http://wiki.mozilla.org/Microsummaries * * @package News * @author Instant Zero (http://xoops.instant-zero.com) * @copyright (c) Instant Zero * * NOTE : If you use this code, please make credit. * */ include_once '../../mainfile.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; if (!news_getmoduleoption('firefox_microsummaries')) { exit; } $story = new NewsStory(); $restricted = news_getmoduleoption('restrictindex'); $sarray = array(); // Get the last news from all topics according to the module's restrictions $sarray = $story->getAllPublished(1, 0, $restricted, 0); if (count($sarray) > 0) { $laststory = null; $laststory = $sarray[0]; if (is_object($laststory)) { header('Content-Type:text;'); echo $laststory->title() . ' - ' . $xoopsConfig['sitename']; } }
include_once '../../mainfile.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; // We verify that the user can post comments ********************************** if (!isset($xoopsModuleConfig)) { die; } if ($xoopsModuleConfig['com_rule'] == 0) { // Comments are deactivate die; } if ($xoopsModuleConfig['com_anonpost'] == 0 && !is_object($xoopsUser)) { // Anonymous users can't post die; } // **************************************************************************** $com_itemid = isset($_GET['com_itemid']) ? intval($_GET['com_itemid']) : 0; if ($com_itemid > 0) { $article = new NewsStory($com_itemid); if ($article->storyid > 0) { $com_replytext = _POSTEDBY . ' <b>' . $article->uname() . '</b> ' . _DATE . ' <b>' . formatTimestamp($article->published(), news_getmoduleoption('dateformat')) . '</b><br /><br />' . $article->hometext(); $bodytext = $article->bodytext(); if ($bodytext != '') { $com_replytext .= '<br /><br />' . $bodytext . ''; } $com_replytitle = $article->title(); include_once XOOPS_ROOT_PATH . '/include/comment_new.php'; } else { exit; } }
include_once XOOPS_ROOT_PATH . '/header.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; include_once XOOPS_ROOT_PATH . '/language/' . $xoopsConfig['language'] . '/calendar.php'; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; $lastyear = 0; $lastmonth = 0; $months_arr = array(1 => _CAL_JANUARY, 2 => _CAL_FEBRUARY, 3 => _CAL_MARCH, 4 => _CAL_APRIL, 5 => _CAL_MAY, 6 => _CAL_JUNE, 7 => _CAL_JULY, 8 => _CAL_AUGUST, 9 => _CAL_SEPTEMBER, 10 => _CAL_OCTOBER, 11 => _CAL_NOVEMBER, 12 => _CAL_DECEMBER); $fromyear = isset($_GET['year']) ? intval($_GET['year']) : 0; $frommonth = isset($_GET['month']) ? intval($_GET['month']) : 0; $pgtitle = ''; if ($fromyear && $frommonth) { $pgtitle = sprintf(" - %d - %d", $fromyear, $frommonth); } $infotips = news_getmoduleoption('infotips'); $restricted = news_getmoduleoption('restrictindex'); $dateformat = news_getmoduleoption('dateformat'); if ($dateformat == '') { $dateformat = 'm'; } $myts =& MyTextSanitizer::getInstance(); $xoopsTpl->assign('xoops_pagetitle', $myts->htmlSpecialChars(_NW_NEWSARCHIVES) . $pgtitle . ' - ' . $xoopsModule->name('s')); $useroffset = ''; if (is_object($xoopsUser)) { $timezone = $xoopsUser->timezone(); if (isset($timezone)) { $useroffset = $xoopsUser->timezone(); } else { $useroffset = $xoopsConfig['default_TZ']; } } $result = $xoopsDB->query('SELECT published FROM ' . $xoopsDB->prefix('stories') . ' WHERE (published>0 AND published<=' . time() . ') AND (expired = 0 OR expired <= ' . time() . ') ORDER BY published DESC');
/** * Returns the content of the summary and the titles requires for the list selector */ function auto_summary($text, &$titles) { $auto_summary = ''; if (news_getmoduleoption('enhanced_pagenav')) { $expr_matches = array(); $posdeb = preg_match_all('/(\\[pagebreak:|\\[pagebreak).*\\]/iU', $text, $expr_matches); if (count($expr_matches) > 0) { $delimiters = $expr_matches[0]; $arr_search = array('[pagebreak:', '[pagebreak', ']'); $arr_replace = array('', '', ''); $cpt = 1; if (isset($titles) && is_array($titles)) { $titles[] = strip_tags(sprintf(_NW_PAGE_AUTO_SUMMARY, 1, $this->title())); } $item = "<a href='" . XOOPS_URL . '/modules/news/article.php?storyid=' . $this->storyid() . "&page=0'>" . sprintf(_NW_PAGE_AUTO_SUMMARY, 1, $this->title()) . '</a><br />'; $auto_summary .= $item; foreach ($delimiters as $item) { $cpt++; $item = str_replace($arr_search, $arr_replace, $item); if (xoops_trim($item) == '') { $item = $cpt; } $titles[] = strip_tags(sprintf(_NW_PAGE_AUTO_SUMMARY, $cpt, $item)); $item = "<a href='" . XOOPS_URL . '/modules/news/article.php?storyid=' . $this->storyid() . '&page=' . ($cpt - 1) . "'>" . sprintf(_NW_PAGE_AUTO_SUMMARY, $cpt, $item) . '</a><br />'; $auto_summary .= $item; } } } return $auto_summary; }
/** * Create an infotip * * @package News * @author Instant Zero (http://xoops.instant-zero.com) * @copyright (c) Instant Zero */ function news_make_infotips($text) { $infotips = news_getmoduleoption('infotips'); if ($infotips > 0) { $myts =& MyTextSanitizer::getInstance(); return $myts->htmlSpecialChars(xoops_substr(strip_tags($text), 0, $infotips)); } }
function PrintPage() { global $xoopsConfig, $xoopsModule, $story, $xoops_meta_keywords, $xoops_meta_description; $myts =& MyTextSanitizer::getInstance(); $datetime = formatTimestamp($story->published(), news_getmoduleoption('dateformat')); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo _LANGCODE; ?> " lang="<?php echo _LANGCODE; ?> "> <?php echo "<head>\n"; echo '<title>' . $myts->htmlSpecialChars($story->title()) . ' - ' . _NW_PRINTER . ' - ' . $myts->htmlSpecialChars($story->topic_title()) . ' - ' . $xoopsConfig['sitename'] . '</title>'; echo '<meta http-equiv="Content-Type" content="text/html; charset=' . _CHARSET . '" />'; echo '<meta name="AUTHOR" content="' . $xoopsConfig['sitename'] . '" />'; echo '<meta name="keywords" content="' . $xoops_meta_keywords . '" />'; echo '<meta name="COPYRIGHT" content="Copyright (c) 2006 by ' . $xoopsConfig['sitename'] . '" />'; echo '<meta name="DESCRIPTION" content="' . $xoops_meta_description . '" />'; echo '<meta name="GENERATOR" content="XOOPS" />'; $supplemental = ''; if (news_getmoduleoption('footNoteLinks')) { $supplemental = "footnoteLinks('content','content'); "; ?> <script type="text/javascript"> // <![CDATA[ /*------------------------------------------------------------------------------ Function: footnoteLinks() Author: Aaron Gustafson (aaron at easy-designs dot net) Creation Date: 8 May 2005 Version: 1.3 Homepage: http://www.easy-designs.net/code/footnoteLinks/ License: Creative Commons Attribution-ShareAlike 2.0 License http://creativecommons.org/licenses/by-sa/2.0/ Note: This version has reduced functionality as it is a demo of the script's development ------------------------------------------------------------------------------*/ function footnoteLinks(containerID,targetID) { if (!document.getElementById || !document.getElementsByTagName || !document.createElement) return false; if (!document.getElementById(containerID) || !document.getElementById(targetID)) return false; var container = document.getElementById(containerID); var target = document.getElementById(targetID); var h2 = document.createElement('h2'); addClass.apply(h2,['printOnly']); var h2_txt = document.createTextNode('<?php echo _NW_LINKS; ?> '); h2.appendChild(h2_txt); var coll = container.getElementsByTagName('*'); var ol = document.createElement('ol'); addClass.apply(ol,['printOnly']); var myArr = []; var thisLink; var num = 1; for (var i=0; i<coll.length; i++) { if ( coll[i].getAttribute('href') || coll[i].getAttribute('cite') ) { thisLink = coll[i].getAttribute('href') ? coll[i].href : coll[i].cite; var note = document.createElement('sup'); addClass.apply(note,['printOnly']); var note_txt; var j = inArray.apply(myArr,[thisLink]); if ( j || j===0 ) { // if a duplicate // get the corresponding number from // the array of used links note_txt = document.createTextNode(j+1); } else { // if not a duplicate var li = document.createElement('li'); var li_txt = document.createTextNode(thisLink); li.appendChild(li_txt); ol.appendChild(li); myArr.push(thisLink); note_txt = document.createTextNode(num); num++; } note.appendChild(note_txt); if (coll[i].tagName.toLowerCase() == 'blockquote') { var lastChild = lastChildContainingText.apply(coll[i]); lastChild.appendChild(note); } else { coll[i].parentNode.insertBefore(note, coll[i].nextSibling); } } } target.appendChild(h2); target.appendChild(ol); return true; } // ]]> </script> <script type="text/javascript"> // <![CDATA[ /*------------------------------------------------------------------------------ Excerpts from the jsUtilities Library Version: 2.1 Homepage: http://www.easy-designs.net/code/jsUtilities/ License: Creative Commons Attribution-ShareAlike 2.0 License http://creativecommons.org/licenses/by-sa/2.0/ Note: If you change or improve on this script, please let us know. ------------------------------------------------------------------------------*/ if(Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }; }; // --------------------------------------------------------------------- // function.apply (if unsupported) // Courtesy of Aaron Boodman - http://youngpup.net // --------------------------------------------------------------------- if (!Function.prototype.apply) { Function.prototype.apply = function(oScope, args) { var sarg = []; var rtrn, call; if (!oScope) oScope = window; if (!args) args = []; for (var i = 0; i < args.length; i++) { sarg[i] = "args["+i+"]"; }; call = "oScope.__applyTemp__(" + sarg.join(",") + ");"; oScope.__applyTemp__ = this; rtrn = eval(call); oScope.__applyTemp__ = null; return rtrn; }; }; function inArray(needle) { for (var i=0; i < this.length; i++) { if (this[i] === needle) { return i; } } return false; } function addClass(theClass) { if (this.className != '') { this.className += ' ' + theClass; } else { this.className = theClass; } } function lastChildContainingText() { var testChild = this.lastChild; var contentCntnr = ['p','li','dd']; while (testChild.nodeType != 1) { testChild = testChild.previousSibling; } var tag = testChild.tagName.toLowerCase(); var tagInArr = inArray.apply(contentCntnr, [tag]); if (!tagInArr && tagInArr!==0) { testChild = lastChildContainingText.apply(testChild); } return testChild; } // ]]> </script> <style type="text/css" media="screen"> .printOnly { display: none; } </style> <?php } echo '</head>'; echo '<body bgcolor="#ffffff" text="#000000" onload="' . $supplemental . ' window.print()"> <div id="content"> <table border="0"><tr><td align="center"> <table border="0" width="100%" cellpadding="0" cellspacing="1" bgcolor="#000000"><tr><td> <table border="0" width="100%" cellpadding="20" cellspacing="1" bgcolor="#ffffff"><tr><td align="center"> <img src="' . XOOPS_URL . '/images/logo.gif" border="0" alt="" /><br /><br /> <h3>' . $story->title() . '</h3> <small><b>' . _NW_DATE . '</b> ' . $datetime . ' | <b>' . _NW_TOPICC . '</b> ' . $myts->htmlSpecialChars($story->topic_title()) . '</small><br /><br /></td></tr>'; echo '<tr valign="top" style="font:12px;"><td>' . $story->hometext() . '<br />'; $bodytext = $story->bodytext(); $bodytext = str_replace('[pagebreak]', "<br style=\"page-break-after:always;\" />", $bodytext); if ($bodytext != '') { echo $bodytext . '<br /><br />'; } echo '</td></tr></table></td></tr></table> <br /><br />'; printf(_NW_THISCOMESFROM, htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES)); echo '<br /><a href="' . XOOPS_URL . '/">' . XOOPS_URL . '</a><br /><br /> ' . _NW_URLFORSTORY . ' <!-- Tag below can be used to display Permalink image --><!--img src="' . XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/images/x.gif" /--><br /> <a class="ignore" href="' . XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/article.php?storyid=' . $story->storyid() . '">' . XOOPS_URL . '/modules/news/article.php?storyid=' . $story->storyid() . '</a> </td></tr></table></div> </body> </html> '; }
$i++; } } unset($xt); } } $modversion['sub'][$i]['name'] = _MI_NEWS_SMNAME2; $modversion['sub'][$i]['url'] = "archive.php"; if ($cansubmit) { $i++; $modversion['sub'][$i]['name'] = _MI_NEWS_SMNAME1; $modversion['sub'][$i]['url'] = "submit.php"; } unset($cansubmit); include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; if (news_getmoduleoption('newsbythisauthor')) { $i++; $modversion['sub'][$i]['name'] = _MI_NEWS_WHOS_WHO; $modversion['sub'][$i]['url'] = "whoswho.php"; } $i++; $modversion['sub'][$i]['name'] = _MI_NEWS_TOPICS_DIRECTORY; $modversion['sub'][$i]['url'] = "topics_directory.php"; // Search $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.inc.php"; $modversion['search']['func'] = "news_search"; // Comments $modversion['hasComments'] = 1; $modversion['comments']['pageName'] = 'article.php'; $modversion['comments']['itemName'] = 'storyid';
function my_highlighter($matches) { $color = news_getmoduleoption('highlightcolor'); if (substr($color, 0, 1) != '#') { $color = '#' . $color; } return '<span style="font-weight: bolder; background-color: ' . $color . ';">' . $matches[0] . '</span>'; }
include_once XOOPS_ROOT_PATH . '/class/template.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php'; include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newstopic.php'; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; if (!news_getmoduleoption('topicsrss')) { exit; } $topicid = isset($_GET['topicid']) ? intval($_GET['topicid']) : 0; if ($topicid == 0) { exit; } if (function_exists('mb_http_output')) { mb_http_output('pass'); } $restricted = news_getmoduleoption('restrictindex'); $newsnumber = news_getmoduleoption('storyhome'); $charset = 'utf-8'; header('Content-Type:text/xml; charset=' . $charset); $story = new NewsStory(); $tpl = new XoopsTpl(); $tpl->xoops_setCaching(2); $tpl->xoops_setCacheTime(3600); // Change this to the value you want if (!$tpl->is_cached('db:news_rss.html', $topicid)) { $xt = new NewsTopic($topicid); $sarray = $story->getAllPublished($newsnumber, 0, $restricted, $topicid); if (is_array($sarray) && count($sarray) > 0) { $sitename = htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES); $slogan = htmlspecialchars($xoopsConfig['slogan'], ENT_QUOTES); $tpl->assign('channel_title', xoops_utf8_encode($sitename)); $tpl->assign('channel_link', XOOPS_URL . '/');
/** * Statistics about stories, topics and authors * * You can reach the statistics from the admin part of the news module by clicking on the "Statistics" tabs * The number of visible elements in each table is equal to the module's option called "storycountadmin" * There are 3 kind of different statistics : * - Topics statistics * For each topic you can see its number of articles, the number of time each topics was viewed, the number * of attached files, the number of expired articles and the number of unique authors. * - Articles statistics * This part is decomposed in 3 tables : * a) Most readed articles * This table resumes, for all the news in your database, the most readed articles. * The table contains, for each news, its topic, its title, the author and the number of views. * b) Less readed articles * That's the opposite action of the previous table and its content is the same * c) Best rated articles * You will find here the best rated articles, the content is the same that the previous tables, the last column is just changing and contains the article's rating * - Authors statistics * This part is also decomposed in 3 tables * a) Most readed authors * To create this table, the program compute the total number of reads per author and displays the most readed author and the number of views * b) Best rated authors * To created this table's content, the program compute the rating's average of each author and create a table * c) Biggest contributors * The goal of this table is to know who is creating the biggest number of articles. */ function Stats() { global $xoopsModule, $xoopsConfig; xoops_cp_header(); $myts =& MyTextSanitizer::getInstance(); if (file_exists(XOOPS_ROOT_PATH . '/modules/news/language/' . $xoopsConfig['language'] . '/main.php')) { include_once XOOPS_ROOT_PATH . '/modules/news/language/' . $xoopsConfig['language'] . '/main.php'; } else { include_once XOOPS_ROOT_PATH . '/modules/news/language/english/main.php'; } adminmenu(6); $news = new NewsStory(); $stats = array(); $stats = $news->GetStats(news_getmoduleoption('storycountadmin')); $totals = array(0, 0, 0, 0, 0); printf("<h1>%s</h1>\n", _AM_NEWS_STATS); // First part of the stats, everything about topics $storiespertopic = $stats['storiespertopic']; $readspertopic = $stats['readspertopic']; $filespertopic = $stats['filespertopic']; $expiredpertopic = $stats['expiredpertopic']; $authorspertopic = $stats['authorspertopic']; $class = ''; echo "<div style='text-align: center;'><b>" . _AM_NEWS_STATS0 . "</b><br />\n"; echo "<table border='0' width='100%'><tr class='bg3'><td align='center'>" . _AM_TOPIC . "</td><td align='center'>" . _NW_ARTICLES . "</td><td>" . _NW_VIEWS . "</td><td>" . _AM_UPLOAD_ATTACHFILE . "</td><td>" . _AM_EXPARTS . "</td><td>" . _AM_NEWS_STATS1 . "</td></tr>"; foreach ($storiespertopic as $topicid => $data) { $url = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/index.php?storytopic=' . $topicid; $views = 0; if (array_key_exists($topicid, $readspertopic)) { $views = $readspertopic[$topicid]; } $attachedfiles = 0; if (array_key_exists($topicid, $filespertopic)) { $attachedfiles = $filespertopic[$topicid]; } $expired = 0; if (array_key_exists($topicid, $expiredpertopic)) { $expired = $expiredpertopic[$topicid]; } $authors = 0; if (array_key_exists($topicid, $authorspertopic)) { $authors = $authorspertopic[$topicid]; } $articles = $data['cpt']; $totals[0] += $articles; $totals[1] += $views; $totals[2] += $attachedfiles; $totals[3] += $expired; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='right'>%u</td><td align='right'>%u</td><td align='right'>%u</td><td align='right'>%u</td><td align='right'>%u</td></tr>\n", $url, $myts->displayTarea($data['topic_title']), $articles, $views, $attachedfiles, $expired, $authors); } $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='center'><b>%s</b></td><td align='right'><b>%u</b></td><td align='right'><b>%u</b></td><td align='right'><b>%u</b></td><td align='right'><b>%u</b></td><td> </td>\n", _AM_NEWS_STATS2, $totals[0], $totals[1], $totals[2], $totals[3]); echo '</table></div><br /><br /><br />'; // Second part of the stats, everything about stories // a) Most readed articles $mostreadednews = $stats['mostreadednews']; echo "<div style='text-align: center;'><b>" . _AM_NEWS_STATS3 . '</b><br /><br />' . _AM_NEWS_STATS4 . "<br />\n"; echo "<table border='0' width='100%'><tr class='bg3'><td align='center'>" . _AM_TOPIC . "</td><td align='center'>" . _AM_TITLE . "</td><td>" . _AM_POSTER . "</td><td>" . _NW_VIEWS . "</td></tr>\n"; foreach ($mostreadednews as $storyid => $data) { $url1 = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/index.php?storytopic=' . $data['topicid']; $url2 = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/article.php?storyid=' . $storyid; $url3 = XOOPS_URL . '/userinfo.php?uid=' . $data['uid']; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='left'><a href='%s' target='_blank'>%s</a></td><td><a href='%s' target='_blank'>%s</a></td><td align='right'>%u</td></tr>\n", $url1, $myts->displayTarea($data['topic_title']), $url2, $myts->displayTarea($data['title']), $url3, $myts->htmlSpecialChars($news->uname($data['uid'])), $data['counter']); } echo '</table>'; // b) Less readed articles $lessreadednews = $stats['lessreadednews']; echo '<br /><br />' . _AM_NEWS_STATS5; echo "<table border='0' width='100%'><tr class='bg3'><td align='center'>" . _AM_TOPIC . "</td><td align='center'>" . _AM_TITLE . "</td><td>" . _AM_POSTER . "</td><td>" . _NW_VIEWS . "</td></tr>\n"; foreach ($lessreadednews as $storyid => $data) { $url1 = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/index.php?storytopic=' . $data['topicid']; $url2 = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/article.php?storyid=' . $storyid; $url3 = XOOPS_URL . '/userinfo.php?uid=' . $data['uid']; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='left'><a href='%s' target='_blank'>%s</a></td><td><a href='%s' target='_blank'>%s</a></td><td align='right'>%u</td></tr>\n", $url1, $myts->displayTarea($data['topic_title']), $url2, $myts->displayTarea($data['title']), $url3, $myts->htmlSpecialChars($news->uname($data['uid'])), $data['counter']); } echo '</table>'; // c) Best rated articles (this is an average) $besratednews = $stats['besratednews']; echo '<br /><br />' . _AM_NEWS_STATS6; echo "<table border='0' width='100%'><tr class='bg3'><td align='center'>" . _AM_TOPIC . "</td><td align='center'>" . _AM_TITLE . "</td><td>" . _AM_POSTER . "</td><td>" . _NW_RATING . "</td></tr>\n"; foreach ($besratednews as $storyid => $data) { $url1 = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/index.php?storytopic=' . $data['topicid']; $url2 = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/article.php?storyid=' . $storyid; $url3 = XOOPS_URL . '/userinfo.php?uid=' . $data['uid']; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='left'><a href='%s' target='_blank'>%s</a></td><td><a href='%s' target='_blank'>%s</a></td><td align='right'>%s</td></tr>\n", $url1, $myts->displayTarea($data['topic_title']), $url2, $myts->displayTarea($data['title']), $url3, $myts->htmlSpecialChars($news->uname($data['uid'])), number_format($data['rating'], 2)); } echo '</table></div><br /><br /><br />'; // Last part of the stats, everything about authors // a) Most readed authors $mostreadedauthors = $stats['mostreadedauthors']; echo "<div style='text-align: center;'><b>" . _AM_NEWS_STATS10 . '</b><br /><br />' . _AM_NEWS_STATS7 . "<br />\n"; echo "<table border='0' width='100%'><tr class='bg3'><td>" . _AM_POSTER . '</td><td>' . _NW_VIEWS . "</td></tr>\n"; foreach ($mostreadedauthors as $uid => $reads) { $url = XOOPS_URL . '/userinfo.php?uid=' . $uid; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='right'>%u</td></tr>\n", $url, $myts->htmlSpecialChars($news->uname($uid)), $reads); } echo '</table>'; // b) Best rated authors $bestratedauthors = $stats['bestratedauthors']; echo '<br /><br />' . _AM_NEWS_STATS8; echo "<table border='0' width='100%'><tr class='bg3'><td>" . _AM_POSTER . "</td><td>" . _NW_RATING . "</td></tr>\n"; foreach ($bestratedauthors as $uid => $rating) { $url = XOOPS_URL . '/userinfo.php?uid=' . $uid; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='right'>%u</td></tr>\n", $url, $myts->htmlSpecialChars($news->uname($uid)), $rating); } echo '</table>'; // c) Biggest contributors $biggestcontributors = $stats['biggestcontributors']; echo '<br /><br />' . _AM_NEWS_STATS9; echo "<table border='0' width='100%'><tr class='bg3'><td>" . _AM_POSTER . "</td><td>" . _AM_NEWS_STATS11 . "</td></tr>\n"; foreach ($biggestcontributors as $uid => $count) { $url = XOOPS_URL . '/userinfo.php?uid=' . $uid; $class = $class == 'even' ? 'odd' : 'even'; printf("<tr class='" . $class . "'><td align='left'><a href='%s' target ='_blank'>%s</a></td><td align='right'>%u</td></tr>\n", $url, $myts->htmlSpecialChars($news->uname($uid)), $count); } echo '</table></div><br />'; }
$xoopsDB->query($sql) or $eh('0013'); //All is well. Calculate Score & Add to Summary (for quick retrieval & sorting) to DB. news_updaterating($storyid); $ratemessage = _NW_VOTEAPPRE . '<br />' . sprintf(_NW_THANKYOU, $xoopsConfig['sitename']); redirect_header(XOOPS_URL . '/modules/news/article.php?storyid=' . $storyid, 4, $ratemessage); exit; } else { // Display the form to vote $xoopsOption['template_main'] = 'news_ratenews.html'; include_once XOOPS_ROOT_PATH . '/header.php'; $news = null; $news = new NewsStory($storyid); if (is_object($news)) { $title = $news->title('Show'); } else { redirect_header(XOOPS_URL . '/modules/news/index.php', 3, _ERRORS); exit; } $xoopsTpl->assign('advertisement', news_getmoduleoption('advertisement')); $xoopsTpl->assign('news', array('storyid' => $storyid, 'title' => $title)); $xoopsTpl->assign('lang_voteonce', _NW_VOTEONCE); $xoopsTpl->assign('lang_ratingscale', _NW_RATINGSCALE); $xoopsTpl->assign('lang_beobjective', _NW_BEOBJECTIVE); $xoopsTpl->assign('lang_donotvote', _NW_DONOTVOTE); $xoopsTpl->assign('lang_rateit', _NW_RATEIT); $xoopsTpl->assign('lang_cancel', _CANCEL); $xoopsTpl->assign('xoops_pagetitle', $title . ' - ' . _NW_RATETHISNEWS . ' - ' . $xoopsModule->name('s')); news_CreateMetaDatas(); include_once XOOPS_ROOT_PATH . '/footer.php'; } include_once XOOPS_ROOT_PATH . '/footer.php';
function news_search($queryarray, $andor, $limit, $offset, $userid) { global $xoopsDB, $xoopsUser; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; $restricted = news_getmoduleoption('restrictindex'); $highlight = false; $highlight = news_getmoduleoption('keywordshighlight'); // keywords highlighting $module_handler =& xoops_gethandler('module'); $module =& $module_handler->getByDirname('news'); $modid = $module->getVar('mid'); $searchparam = ''; $gperm_handler =& xoops_gethandler('groupperm'); if (is_object($xoopsUser)) { $groups = $xoopsUser->getGroups(); } else { $groups = XOOPS_GROUP_ANONYMOUS; } $sql = "SELECT storyid, topicid, uid, title, created FROM " . $xoopsDB->prefix("stories") . " WHERE (published>0 AND published<=" . time() . ") AND (expired = 0 OR expired > " . time() . ') '; if ($userid != 0) { $sql .= " AND uid=" . $userid . " "; } // because count() returns 1 even if a supplied variable // is not an array, we must check if $querryarray is really an array if (is_array($queryarray) && ($count = count($queryarray))) { $sql .= " AND ((hometext LIKE '%{$queryarray['0']}%' OR bodytext LIKE '%{$queryarray['0']}%' OR title LIKE '%{$queryarray['0']}%' OR keywords LIKE '%{$queryarray['0']}%' OR description LIKE '%{$queryarray['0']}%')"; for ($i = 1; $i < $count; $i++) { $sql .= " {$andor} "; $sql .= "(hometext LIKE '%{$queryarray[$i]}%' OR bodytext LIKE '%{$queryarray[$i]}%' OR title LIKE '%{$queryarray[$i]}%' OR keywords LIKE '%{$queryarray[$i]}%' OR description LIKE '%{$queryarray[$i]}%')"; } $sql .= ") "; // keywords highlighting if ($highlight) { $searchparam = '&keywords=' . urlencode(trim(implode(' ', $queryarray))); } } $sql .= "ORDER BY created DESC"; $result = $xoopsDB->query($sql, $limit, $offset); $ret = array(); $i = 0; while ($myrow = $xoopsDB->fetchArray($result)) { $display = true; if ($modid && $gperm_handler) { if ($restricted && !$gperm_handler->checkRight("news_view", $myrow['topicid'], $groups, $modid)) { $display = false; } } if ($display) { $ret[$i]['image'] = "images/forum.gif"; $ret[$i]['link'] = "article.php?storyid=" . $myrow['storyid'] . "" . $searchparam; $ret[$i]['title'] = $myrow['title']; $ret[$i]['time'] = $myrow['created']; $ret[$i]['uid'] = $myrow['uid']; $i++; } } include_once XOOPS_ROOT_PATH . '/modules/news/config.php'; $searchincomments = $cfg['config_search_comments']; if ($searchincomments && (isset($limit) && $i <= $limit)) { include_once XOOPS_ROOT_PATH . '/include/comment_constants.php'; $ind = $i; $sql = "SELECT com_id, com_modid, com_itemid, com_created, com_uid, com_title, com_text, com_status FROM " . $xoopsDB->prefix("xoopscomments") . " WHERE (com_id>0) AND (com_modid={$modid}) AND (com_status=" . XOOPS_COMMENT_ACTIVE . ") "; if ($userid != 0) { $sql .= " AND com_uid=" . $userid . " "; } if (is_array($queryarray) && ($count = count($queryarray))) { $sql .= " AND ((com_title LIKE '%{$queryarray['0']}%' OR com_text LIKE '%{$queryarray['0']}%')"; for ($i = 1; $i < $count; $i++) { $sql .= " {$andor} "; $sql .= "(com_title LIKE '%{$queryarray[$i]}%' OR com_text LIKE '%{$queryarray[$i]}%')"; } $sql .= ") "; } $i = $ind; $sql .= "ORDER BY com_created DESC"; $result = $xoopsDB->query($sql, $limit, $offset); while ($myrow = $xoopsDB->fetchArray($result)) { $display = true; if ($modid && $gperm_handler) { if ($restricted && !$gperm_handler->checkRight("news_view", $myrow['com_itemid'], $groups, $modid)) { $display = false; } } if ($i + 1 > $limit) { $display = false; } if ($display) { $ret[$i]['image'] = "images/forum.gif"; $ret[$i]['link'] = "article.php?storyid=" . $myrow['com_itemid'] . "" . $searchparam; $ret[$i]['title'] = $myrow['com_title']; $ret[$i]['time'] = $myrow['com_created']; $ret[$i]['uid'] = $myrow['com_uid']; $i++; } } } return $ret; }
if (isset($_POST['delupload']) && count($_POST['delupload']) > 0) { foreach ($_POST['delupload'] as $onefile) { $sfiles = new sFiles($onefile); $sfiles->delete(); } } if (isset($_POST['xoops_upload_file'])) { $fldname = $_FILES[$_POST['xoops_upload_file'][0]]; $fldname = get_magic_quotes_gpc() ? stripslashes($fldname['name']) : $fldname['name']; if (xoops_trim($fldname != '')) { $sfiles = new sFiles(); $destname = $sfiles->createUploadName(XOOPS_UPLOAD_PATH, $fldname); /** * You can attach files to your news */ $permittedtypes = explode("\n", str_replace("\r", '', news_getmoduleoption('mimetypes'))); array_walk($permittedtypes, 'trim'); $uploader = new XoopsMediaUploader(XOOPS_UPLOAD_PATH, $permittedtypes, $xoopsModuleConfig['maxuploadsize']); $uploader->setTargetFileName($destname); if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) { if ($uploader->upload()) { $sfiles->setFileRealName($uploader->getMediaName()); $sfiles->setStoryid($story->storyid()); $sfiles->setMimetype($sfiles->giveMimetype(XOOPS_UPLOAD_PATH . '/' . $uploader->getMediaName())); $sfiles->setDownloadname($destname); if (!$sfiles->store()) { echo _AM_UPLOAD_DBERROR_SAVE; } } else { echo _AM_UPLOAD_ERROR . ' ' . $uploader->getErrors(); }
/** * Notes about the spotlight : * If you have restricted topics on index page (in fact if the program must completly respect the permissions) and if * the news you have selected to be viewed in the spotlight can't be viewed by someone then the spotlight is not visible ! * This is available in the classical and in the tabbed view. * But if you have uncheck the option "Restrict topics on index page", then the news will be visible but users without * permissions will be rejected when they will try to read news content. * * Also, if you have selected a tabbed view and wanted to use the Spotlight but did not choosed a story, then the block * will switch to the "most recent news" mode (the visible news will be searched according to the permissions) */ function b_news_top_show($options) { global $xoopsConfig; include_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; $myts =& MyTextSanitizer::getInstance(); $block = array(); $displayname = news_getmoduleoption('displayname'); $tabskin = news_getmoduleoption('tabskin'); if (file_exists(XOOPS_ROOT_PATH . '/modules/news/language/' . $xoopsConfig['language'] . '/main.php')) { include_once XOOPS_ROOT_PATH . '/modules/news/language/' . $xoopsConfig['language'] . '/main.php'; } else { include_once XOOPS_ROOT_PATH . '/modules/news/language/english/main.php'; } $block['displayview'] = $options[8]; $block['tabskin'] = $tabskin; $block['imagesurl'] = XOOPS_URL . '/modules/news/images/'; $restricted = news_getmoduleoption('restrictindex'); $dateformat = news_getmoduleoption('dateformat'); $infotips = news_getmoduleoption('infotips'); $newsrating = news_getmoduleoption('ratenews'); if ($dateformat == '') { $dateformat = 's'; } $perm_verified = false; $news_visible = true; // Is the spotlight visible ? if ($options[4] == 1 && $restricted && $options[5] == 0) { $perm_verified = true; $permittedtopics = news_MygetItemIds(); $permstory = new NewsStory($options[6]); if (!in_array($permstory->topicid(), $permittedtopics)) { $usespotlight = false; $news_visible = false; $topicstitles = array(); } $options[4] == 0; } // Try to see what tabs are visibles (if we are in restricted view of course) if ($options[8] == 2 && $restricted && $options[14] != 0) { $topics2 = array(); $permittedtopics = news_MygetItemIds(); $topics = array_slice($options, 14); foreach ($topics as $onetopic) { if (in_array($onetopic, $permittedtopics)) { $topics2[] = $onetopic; } } $before = array_slice($options, 0, 14); $options = array_merge($before, $topics2); } if ($options[8] == 2) { // Tabbed view ******************************************************************************************** $defcolors[1] = array('#F90', '#FFFFFF', '#F90', '#C60', '#999'); // Bar Style $defcolors[2] = array('#F90', '#FFFFFF', '#F90', '#AAA', '#666'); // Beveled $defcolors[3] = array('#F90', '#FFFFFF', '', '#789', '#789'); // Classic $defcolors[4] = array('#F90', '#FFFFFF', '', '', ''); // Folders $defcolors[5] = array('#F90', '#FFFFFF', '#CCC', 'inherit', '#999'); // MacOs $defcolors[6] = array('#F90', '#FFFFFF', '#FFF', '#DDD', '#999'); // Plain $defcolors[7] = array('#F90', '#FFFFFF', '', '', ''); // Rounded $defcolors[8] = array('#F90', '#FFFFFF', '#F90', '#930', '#C60'); // ZDnet $myurl = $_SERVER['PHP_SELF']; if (substr($myurl, strlen($myurl) - 1, 1) == '/') { $myurl .= 'index.php'; } $myurl .= '?'; foreach ($_GET as $key => $value) { if ($key != 'NewsTab') { $myurl .= $key . '=' . $value . '&'; } } $block['url'] = $myurl; $tabscount = 0; $usespotlight = false; if (isset($_GET['NewsTab'])) { $_SESSION['NewsTab'] = intval($_GET['NewsTab']); $currenttab = intval($_GET['NewsTab']); } elseif (isset($_SESSION['NewsTab'])) { $currenttab = intval($_SESSION['NewsTab']); } else { $currenttab = 0; } $tmpstory = new NewsStory(); $topic = new NewsTopic(); $topicstitles = array(); if ($options[4] == 1) { // Spotlight enabled $topicstitles[0] = _MB_NEWS_SPOTLIGHT_TITLE; $tabscount++; $usespotlight = true; } if ($options[5] == 0 && $restricted) { // Use a specific news and we are in restricted mode if (!$perm_verified) { $permittedtopics = news_MygetItemIds(); $permstory = new NewsStory($options[6]); if (!in_array($permstory->topicid(), $permittedtopics)) { $usespotlight = false; $topicstitles = array(); } //unset($permstory); } else { if (!$news_visible) { $usespotlight = false; $topicstitles = array(); } } } $block['use_spotlight'] = $usespotlight; if (isset($options[14]) && $options[14] != 0) { // Topic to use $topics = array_slice($options, 14); $tabscount += count($topics); $topicstitles = $topic->getTopicTitleFromId($topics, $topicstitles); } $tabs = array(); if ($usespotlight) { $tabs[] = array('id' => 0, 'title' => _MB_NEWS_SPOTLIGHT_TITLE); } if (count($topics) > 0) { foreach ($topics as $onetopic) { if (isset($topicstitles[$onetopic])) { $tabs[] = array('id' => $onetopic, 'title' => $topicstitles[$onetopic]['title'], 'picture' => $topicstitles[$onetopic]['picture']); } } } $block['tabs'] = $tabs; $block['current_is_spotlight'] = false; $block['current_tab'] = $currenttab; $block['use_rating'] = $newsrating; if ($currenttab == 0 && $usespotlight) { // Spotlight or not ? $block['current_is_spotlight'] = true; if ($options[5] == 0 && $options[6] == 0) { // If the story to use was no selected then we switch to the "recent news" mode. $options[5] = 1; } if ($options[5] == 0) { // Use a specific news if (!isset($permstory)) { $tmpstory->NewsStory($options[6]); } else { $tmpstory = $permstory; } } else { // Use the most recent news $stories = array(); $stories = $tmpstory->getAllPublished(1, 0, $restricted, 0, 1, true, $options[0]); if (count($stories) > 0) { $firststory = $stories[0]; $tmpstory->NewsStory($firststory->storyid()); } else { $block['use_spotlight'] = false; } } $spotlight = array(); $spotlight['title'] = $tmpstory->title(); if ($options[7] != '') { $spotlight['image'] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $tmpstory->storyid(), $myts->displayTarea($options[7], $tmpstory->nohtml)); } $spotlight['text'] = $tmpstory->hometext(); // Added 16 february 2007 ***************************************** $story_user = null; $story_user = new XoopsUser($tmpstory->uid()); if (is_object($story_user)) { $spotlight['avatar'] = XOOPS_UPLOAD_URL . '/' . $story_user->getVar('user_avatar'); } // **************************************************************** $spotlight['id'] = $tmpstory->storyid(); $spotlight['date'] = formatTimestamp($tmpstory->published(), $dateformat); $spotlight['hits'] = $tmpstory->counter(); $spotlight['rating'] = number_format($tmpstory->rating(), 2); $spotlight['votes'] = $tmpstory->votes(); if (strlen(xoops_trim($tmpstory->bodytext())) > 0) { $spotlight['read_more'] = true; } else { $spotlight['read_more'] = false; } $spotlight['readmore'] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $tmpstory->storyid(), _MB_READMORE); $spotlight['title_with_link'] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $tmpstory->storyid(), $tmpstory->title()); if ($tmpstory->votes() == 1) { $spotlight['number_votes'] = _NW_ONEVOTE; } else { $spotlight['number_votes'] = sprintf(_NW_NUMVOTES, $tmpstory->votes()); } $spotlight['votes_with_text'] = sprintf(_NW_NUMVOTES, $tmpstory->votes()); $spotlight['topicid'] = $tmpstory->topicid(); $spotlight['topic_title'] = $tmpstory->topic_title(); // Added, topic's image and description $spotlight['topic_image'] = XOOPS_URL . '/modules/news/images/topics/' . $tmpstory->topic_imgurl(); $spotlight['topic_description'] = $myts->displayTarea($tmpstory->topic_description, 1); if ($displayname != 3) { $spotlight['author'] = sprintf("%s %s", _POSTEDBY, $tmpstory->uname()); $spotlight['author_with_link'] = sprintf("%s <a href='%s'>%s</a>", _POSTEDBY, XOOPS_URL . '/userinfo.php?uid=' . $tmpstory->uid(), $tmpstory->uname()); } else { $spotlight['author'] = ''; $spotlight['author_with_link'] = ''; } $spotlight['author_id'] = $tmpstory->uid(); // Create the summary table under the spotlight text if (isset($options[14]) && $options[14] == 0) { // Use all topics $stories = $tmpstory->getAllPublished($options[1], 0, $restricted, 0, 1, true, $options[0]); } else { // Use some topics $topics = array_slice($options, 14); $stories = $tmpstory->getAllPublished($options[1], 0, $restricted, $topics, 1, true, $options[0]); } if (count($stories) > 0) { foreach ($stories as $key => $story) { $news = array(); $title = $story->title(); if (strlen($title) > $options[2]) { $title = xoops_substr($title, 0, $options[2] + 3); } $news['title'] = $title; $news['id'] = $story->storyid(); $news['date'] = formatTimestamp($story->published(), $dateformat); $news['hits'] = $story->counter(); $news['rating'] = number_format($story->rating(), 2); $news['votes'] = $story->votes(); $news['topicid'] = $story->topicid(); $news['topic_title'] = $story->topic_title(); $news['topic_color'] = '#' . $myts->displayTarea($story->topic_color); if ($displayname != 3) { $news['author'] = sprintf("%s %s", _POSTEDBY, $story->uname()); } else { $news['author'] = ''; } if ($options[3] > 0) { $html = $story->nohtml() == 1 ? 0 : 1; $news['teaser'] = news_truncate_tagsafe($myts->displayTarea($story->hometext(), $html), $options[3] + 3); } else { $news['teaser'] = ''; } if ($infotips > 0) { $news['infotips'] = ' title="' . news_make_infotips($story->hometext()) . '"'; } else { $news['infotips'] = ''; } $news['title_with_link'] = sprintf("<a href='%s'%s>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $story->storyid(), $news['infotips'], $title); $spotlight['news'][] = $news; } } $block['spotlight'] = $spotlight; } else { if ($tabscount > 0) { $topics = array_slice($options, 14); $thetopic = $currenttab; $stories = $tmpstory->getAllPublished($options[1], 0, $restricted, $thetopic, 1, true, $options[0]); $topic->getTopic($thetopic); // Added, topic's image and description $block['topic_image'] = XOOPS_URL . '/modules/news/images/topics/' . $topic->topic_imgurl(); $block['topic_description'] = $topic->topic_description(); $smallheader = array(); $stats = $topic->getTopicMiniStats($thetopic); $smallheader[] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/index.php?storytopic=' . $thetopic, _MB_READMORE); $smallheader[] = sprintf("%u %s", $stats['count'], _NW_ARTICLES); $smallheader[] = sprintf("%u %s", $stats['reads'], _READS); if (count($stories) > 0) { foreach ($stories as $key => $story) { $news = array(); $title = $story->title(); if (strlen($title) > $options[2]) { $title = news_truncate_tagsafe($title, $options[2] + 3); } if ($options[7] != '') { $news['image'] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $story->storyid(), $myts->displayTarea($options[7], $story->nohtml)); } if ($options[3] > 0) { $html = $story->nohtml() == 1 ? 0 : 1; $news['text'] = news_truncate_tagsafe($myts->displayTarea($story->hometext(), $html), $options[3] + 3); } else { $news['text'] = ''; } if ($story->votes() == 1) { $news['number_votes'] = _NW_ONEVOTE; } else { $news['number_votes'] = sprintf(_NW_NUMVOTES, $story->votes()); } if ($infotips > 0) { $news['infotips'] = ' title="' . news_make_infotips($story->hometext()) . '"'; } else { $news['infotips'] = ''; } $news['title'] = sprintf("<a href='%s' %s>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $story->storyid(), $news['infotips'], $title); $news['id'] = $story->storyid(); $news['date'] = formatTimestamp($story->published(), $dateformat); $news['hits'] = $story->counter(); $news['rating'] = number_format($story->rating(), 2); $news['votes'] = $story->votes(); $news['topicid'] = $story->topicid(); $news['topic_title'] = $story->topic_title(); $news['topic_color'] = '#' . $myts->displayTarea($story->topic_color); if ($displayname != 3) { $news['author'] = sprintf("%s %s", _POSTEDBY, $story->uname()); } else { $news['author'] = ''; } $news['title_with_link'] = sprintf("<a href='%s'%s>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $story->storyid(), $news['infotips'], $title); $block['news'][] = $news; } $block['smallheader'] = $smallheader; } } } $block['lang_on'] = _ON; // on $block['lang_reads'] = _READS; // reads // Default values $block['color1'] = $defcolors[$tabskin][0]; $block['color2'] = $defcolors[$tabskin][1]; $block['color3'] = $defcolors[$tabskin][2]; $block['color4'] = $defcolors[$tabskin][3]; $block['color5'] = $defcolors[$tabskin][4]; if (xoops_trim($options[9]) != '') { $block['color1'] = $options[9]; } if (xoops_trim($options[10]) != '') { $block['color2'] = $options[10]; } if (xoops_trim($options[11]) != '') { $block['color3'] = $options[11]; } if (xoops_trim($options[12]) != '') { $block['color4'] = $options[12]; } if (xoops_trim($options[13]) != '') { $block['color5'] = $options[13]; } } else { // ************************ Classical view ************************************************************************************************************** $tmpstory = new NewsStory(); if (isset($options[14]) && $options[14] == 0) { $stories = $tmpstory->getAllPublished($options[1], 0, $restricted, 0, 1, true, $options[0]); } else { $topics = array_slice($options, 14); $stories = $tmpstory->getAllPublished($options[1], 0, $restricted, $topics, 1, true, $options[0]); } if (!count($stories)) { return ''; } $topic = new NewsTopic(); foreach ($stories as $key => $story) { $news = array(); $title = $story->title(); if (strlen($title) > $options[2]) { $title = xoops_substr($title, 0, $options[2] + 3); } //if spotlight is enabled and this is either the first article or the selected one if ($options[5] == 0 && $options[4] == 1 && ($options[6] > 0 && $options[6] == $story->storyid() || $options[6] == 0 && $key == 0)) { $spotlight = array(); $visible = true; if ($restricted) { $permittedtopics = news_MygetItemIds(); if (!in_array($story->topicid(), $permittedtopics)) { $visible = false; } } if ($visible) { $spotlight['title'] = $title; if ($options[7] != '') { $spotlight['image'] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $story->storyid(), $myts->displayTarea($options[7], $story->nohtml)); } // Added 16 february 2007 ***************************************** $story_user = null; $story_user = new XoopsUser($story->uid()); if (is_object($story_user)) { $spotlight['avatar'] = XOOPS_UPLOAD_URL . '/' . $story_user->getVar('user_avatar'); } // **************************************************************** $spotlight['text'] = $story->hometext(); $spotlight['id'] = $story->storyid(); $spotlight['date'] = formatTimestamp($story->published(), $dateformat); $spotlight['hits'] = $story->counter(); $spotlight['rating'] = $story->rating(); $spotlight['votes'] = $story->votes(); $spotlight['topicid'] = $story->topicid(); $spotlight['topic_title'] = $story->topic_title(); $spotlight['topic_color'] = '#' . $myts->displayTarea($story->topic_color); // Added, topic's image and description $spotlight['topic_image'] = XOOPS_URL . '/modules/news/images/topics/' . $story->topic_imgurl(); $spotlight['topic_description'] = $myts->displayTarea($story->topic_description, 1); if (strlen(xoops_trim($story->bodytext())) > 0) { $spotlight['read_more'] = true; } else { $spotlight['read_more'] = false; } if ($displayname != 3) { $spotlight['author'] = sprintf("%s %s", _POSTEDBY, $story->uname()); } else { $spotlight['author'] = ''; } } $block['spotlight'] = $spotlight; } else { $news['title'] = $title; $news['id'] = $story->storyid(); $news['date'] = formatTimestamp($story->published(), $dateformat); $news['hits'] = $story->counter(); $news['rating'] = $story->rating(); $news['votes'] = $story->votes(); $news['topicid'] = $story->topicid(); $news['topic_title'] = $story->topic_title(); $news['topic_color'] = '#' . $myts->displayTarea($story->topic_color); if ($displayname != 3) { $news['author'] = sprintf("%s %s", _POSTEDBY, $story->uname()); } else { $news['author'] = ''; } if ($options[3] > 0) { $html = $story->nohtml() == 1 ? 0 : 1; $news['teaser'] = news_truncate_tagsafe($myts->displayTarea($story->hometext(), $html), $options[3] + 3); $news['infotips'] = ''; } else { $news['teaser'] = ''; if ($infotips > 0) { $news['infotips'] = ' title="' . news_make_infotips($story->hometext()) . '"'; } else { $news['infotips'] = ''; } } $block['stories'][] = $news; } } // If spotlight article was not in the fetched stories if (!isset($spotlight) && $options[4]) { $block['use_spotlight'] = true; $visible = true; if ($options[5] == 0 && $restricted) { // Use a specific news and we are in restricted mode $permittedtopics = news_MygetItemIds(); $permstory = new NewsStory($options[6]); if (!in_array($permstory->topicid(), $permittedtopics)) { $visible = false; } unset($permstory); } if ($options[5] == 0) { // Use a specific news if ($visible) { $spotlightArticle = new NewsStory($options[6]); } else { $block['use_spotlight'] = false; } } else { // Use the most recent news $stories = array(); $stories = $tmpstory->getAllPublished(1, 0, $restricted, 0, 1, true, $options[0]); if (count($stories) > 0) { $firststory = $stories[0]; $spotlightArticle = new NewsStory($firststory->storyid()); } else { $block['use_spotlight'] = false; } } if ($block['use_spotlight'] == true) { $spotlight = array(); $spotlight['title'] = xoops_substr($spotlightArticle->title(), 0, $options[2] - 1); if ($options[7] != '') { $spotlight['image'] = sprintf("<a href='%s'>%s</a>", XOOPS_URL . '/modules/news/article.php?storyid=' . $spotlightArticle->storyid(), $myts->displayTarea($options[7], $spotlightArticle->nohtml)); } // Added 16 february 2007 ***************************************** $story_user = null; $story_user = new XoopsUser($spotlightArticle->uid()); if (is_object($story_user)) { $spotlight['avatar'] = XOOPS_UPLOAD_URL . '/' . $story_user->getVar('user_avatar'); } // **************************************************************** $spotlight['topicid'] = $spotlightArticle->topicid(); $spotlight['topic_title'] = $spotlightArticle->topic_title(); $spotlight['topic_color'] = '#' . $myts->displayTarea($spotlightArticle->topic_color); $spotlight['text'] = $spotlightArticle->hometext(); $spotlight['id'] = $spotlightArticle->storyid(); $spotlight['date'] = formatTimestamp($spotlightArticle->published(), $dateformat); $spotlight['hits'] = $spotlightArticle->counter(); $spotlight['rating'] = $spotlightArticle->rating(); $spotlight['votes'] = $spotlightArticle->votes(); // Added, topic's image and description $spotlight['topic_image'] = XOOPS_URL . '/modules/news/images/topics/' . $spotlightArticle->topic_imgurl(); $spotlight['topic_description'] = $myts->displayTarea($spotlightArticle->topic_description, 1); if ($displayname != 3) { $spotlight['author'] = sprintf("%s %s", _POSTEDBY, $spotlightArticle->uname()); } else { $spotlight['author'] = ''; } if (strlen(xoops_trim($spotlightArticle->bodytext())) > 0) { $spotlight['read_more'] = true; } else { $spotlight['read_more'] = false; } $block['spotlight'] = $spotlight; } } } if (isset($permstory)) { unset($permstory); } $block['lang_read_more'] = $myts->htmlSpecialChars(_MB_READMORE); // Read More... $block['lang_orderby'] = $myts->htmlSpecialChars(_MB_NEWS_ORDER); // "Order By" $block['lang_orderby_date'] = $myts->htmlSpecialChars(_MB_NEWS_DATE); // Published date $block['lang_orderby_hits'] = $myts->htmlSpecialChars(_MB_NEWS_HITS); // Number of Hits $block['lang_orderby_rating'] = $myts->htmlSpecialChars(_MB_NEWS_RATE); // Rating $block['sort'] = $options[0]; // "published" or "counter" or "rating" return $block; }
$sform->addElement(new XoopsFormText(_NW_AUTHOR_ID, 'author', 10, 10, $newsauthor), false); } } $editor = news_getWysiwygForm(_NW_THESCOOP, 'hometext', $hometext, 15, 60, 'hometext_hidden'); $sform->addElement($editor, true); //Extra info //If admin -> if submit privilege if ($approveprivilege) { $editor2 = news_getWysiwygForm(_AM_EXTEXT, 'bodytext', $bodytext, 15, 60, 'bodytext_hidden'); $sform->addElement($editor2, false); if (news_getmoduleoption('tags')) { $itemIdForTag = isset($storyid) ? $storyid : 0; require_once XOOPS_ROOT_PATH . '/modules/tag/include/formtag.php'; $sform->addElement(new XoopsFormTag('item_tag', 60, 255, $itemIdForTag, 0)); } if (news_getmoduleoption('metadata')) { $sform->addElement(new xoopsFormText(_NW_META_DESCRIPTION, 'description', 50, 255, $description), false); $sform->addElement(new xoopsFormText(_NW_META_KEYWORDS, 'keywords', 50, 255, $keywords), false); } } // Manage upload(s) $allowupload = false; switch ($xoopsModuleConfig['uploadgroups']) { case 1: //Submitters and Approvers $allowupload = true; break; case 2: //Approvers only $allowupload = $approveprivilege ? true : false; break;
$submit_btn->setExtra('accesskey="s"'); $button_tray->addElement($submit_btn); $sform->addElement($button_tray); //Hidden variables if (isset($storyid)) { $sform->addElement(new XoopsFormHidden('storyid', $storyid)); } if (!isset($returnside)) { $returnside = isset($_POST['returnside']) ? intval($_POST['returnside']) : 0; if (empty($returnside)) { $returnside = isset($_GET['returnside']) ? intval($_GET['returnside']) : 0; } } if (!isset($returnside)) { $returnside = 0; } $sform->addElement(new XoopsFormHidden('returnside', $returnside), false); if (!isset($type)) { if ($approveprivilege) { $type = "admin"; } else { $type = "user"; } } $type_hidden = new XoopsFormHidden('type', $type); $sform->addElement($type_hidden); echo '<h1>' . _NW_SUBMITNEWS . '</h1>'; if (xoops_trim(news_getmoduleoption('submitintromsg')) != '') { echo "<div class='infotext'><br /><br />" . nl2br(news_getmoduleoption('submitintromsg')) . "<br /><br /></div>"; } $sform->display();
// // // You may not change or alter any portion of this comment or credits // // of supporting developers from this source code or any supporting // // source code which is considered copyrighted (c) material of the // // original comment or credit authors. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------ // /* * Created on 03/12/2008 * * This page will display a list of articles which belong to a tag * * @package News * @author Hervé Thouzard of Instant Zero * @copyright (c) Instant Zero - http://www.instant-zero.com */ require_once 'header.php'; require_once XOOPS_ROOT_PATH . '/modules/news/include/functions.php'; if (!news_getmoduleoption('tags')) { redirect_header('index.php', 2, _ERRORS); exit; } require_once XOOPS_ROOT_PATH . '/modules/tag/list.tag.php';