예제 #1
0
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 . '&nbsp;<b>' . $article->uname() . '</b>&nbsp;' . _DATE . '&nbsp;<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;
    }
}
예제 #2
0
/**
 * 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;
}
예제 #3
0
$article_title = news_html2text($myts->undoHtmlSpecialChars($article_title));
$forumdata['topic_title'] = $article_title;
$pdf_data['title'] = $article->title();
$topic_title = $article->topic_title();
$topic_title = news_html2text($myts->undoHtmlSpecialChars($topic_title));
$pdf_data['subtitle'] = $topic_title;
$pdf_data['subsubtitle'] = '';
$pdf_data['date'] = formatTimestamp($article->published(), $dateformat);
$pdf_data['filename'] = preg_replace("/[^0-9a-z\\-_\\.]/i", '', $myts->htmlSpecialChars($article->topic_title()) . ' - ' . $article->title());
$pdf_data['filename'] = 'test';
$hometext = $article->hometext();
$bodytext = $article->bodytext();
$content = $myts->undoHtmlSpecialChars($hometext) . '<br /><br />' . $myts->undoHtmlSpecialChars($bodytext);
$content = str_replace('[pagebreak]', '<br /><br />', $content);
$pdf_data['content'] = $content;
$pdf_data['author'] = $article->uname();
//Other stuff
$puff = '<br />';
$puffer = '<br /><br /><br />';
//create the A4-PDF...
$pdf_config['slogan'] = $xoopsConfig['sitename'] . ' - ' . $xoopsConfig['slogan'];
$pdf = new PDF();
if (method_exists($pdf, 'encoding')) {
    $pdf->encoding($pdf_data, _CHARSET);
}
$pdf->SetCreator($pdf_config['creator']);
$pdf->SetTitle($pdf_data['title']);
$pdf->SetAuthor($pdf_config['url']);
$pdf->SetSubject($pdf_data['author']);
$out = $pdf_config['url'] . ', ' . $pdf_data['author'] . ', ' . $pdf_data['title'] . ', ' . $pdf_data['subtitle'] . ', ' . $pdf_data['subsubtitle'];
$pdf->SetKeywords($out);
예제 #4
0
/**
 * 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, $xoopsModuleConfig;
    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($xoopsModuleConfig['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='1' 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>&nbsp;</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='1' 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='1' 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='1' 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='1' 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='1' 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='1' 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 />";
}
예제 #5
0
{
    $color = news_getmoduleoption('highlightcolor');
    if (substr($color, 0, 1) != '#') {
        $color = '#' . $color;
    }
    return '<span style="font-weight: bolder; background-color: ' . $color . ';">' . $matches[0] . '</span>';
}
$highlight = false;
$highlight = news_getmoduleoption('keywordshighlight');
if ($highlight && isset($_GET['keywords'])) {
    $keywords = $myts->htmlSpecialChars(trim(urldecode($_GET['keywords'])));
    $h = new keyhighlighter($keywords, true, 'my_highlighter');
    $story['text'] = $h->highlight($story['text']);
}
// ****************************************************************************************************************
$story['poster'] = $article->uname();
if ($story['poster']) {
    $story['posterid'] = $article->uid();
    $story['poster'] = '<a href="' . XOOPS_URL . '/userinfo.php?uid=' . $story['posterid'] . '">' . $story['poster'] . '</a>';
    $tmp_user = new XoopsUser($article->uid());
    $story['poster_avatar'] = XOOPS_UPLOAD_URL . '/' . $tmp_user->getVar('user_avatar');
    $story['poster_signature'] = $tmp_user->getVar('user_sig');
    $story['poster_email'] = $tmp_user->getVar('email');
    $story['poster_url'] = $tmp_user->getVar('url');
    $story['poster_from'] = $tmp_user->getVar('user_from');
    unset($tmp_user);
} else {
    $story['poster'] = '';
    $story['posterid'] = 0;
    $story['poster_avatar'] = '';
    $story['poster_signature'] = '';
예제 #6
0
//  it under the terms of the GNU General Public License as published by     //
//  the Free Software Foundation; either version 2 of the License, or        //
//  (at your option) any later version.                                      //
//                                                                           //
//  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 //
//  ------------------------------------------------------------------------ //
include '../../mainfile.php';
include_once XOOPS_ROOT_PATH . '/modules/news/class/class.newsstory.php';
$com_itemid = isset($HTTP_GET_VARS['com_itemid']) ? intval($HTTP_GET_VARS['com_itemid']) : 0;
if ($com_itemid > 0) {
    $article = new NewsStory($com_itemid);
    $com_replytext = _POSTEDBY . '&nbsp;<b>' . $article->uname() . '</b>&nbsp;' . _DATE . '&nbsp;<b>' . formatTimestamp($article->published()) . '</b><br /><br />' . $article->hometext();
    $bodytext = $article->bodytext();
    if ($bodytext != '') {
        $com_replytext .= '<br /><br />' . $bodytext . '';
    }
    $com_replytitle = $article->title();
    include XOOPS_ROOT_PATH . '/include/comment_new.php';
}
예제 #7
0
파일: pdf.php 프로젝트: severnaya99/Sg-2010
require_once XOOPS_ROOT_PATH . '/modules/news/pdf/tcpdf.php';
$filename = XOOPS_ROOT_PATH . '/modules/news/language/' . $xoopsConfig['language'] . '/main.php';
if (file_exists($filename)) {
    include_once $filename;
} else {
    include_once XOOPS_ROOT_PATH . '/modules/news/language/english/main.php';
}
$filename = XOOPS_ROOT_PATH . '/modules/news/pdf/config/lang/' . _LANGCODE . '.php';
if (file_exists($filename)) {
    include_once $filename;
} else {
    include_once XOOPS_ROOT_PATH . '/modules/news/pdf/config/lang/en.php';
}
$dateformat = news_getmoduleoption('dateformat');
$content = '';
$content .= '<b><i><u>' . $myts->undoHtmlSpecialChars($article->title()) . '</u></i></b><br /><b>' . $myts->undoHtmlSpecialChars($article->topic_title()) . '</b><br />' . _POSTEDBY . ' : ' . $myts->undoHtmlSpecialChars($article->uname()) . '<br />' . _MD_POSTEDON . ' ' . formatTimestamp($article->published(), $dateformat) . '<br /><br /><br />';
$content .= $myts->undoHtmlSpecialChars($article->hometext()) . '<br />' . $myts->undoHtmlSpecialChars($article->bodytext());
$content = str_replace('[pagebreak]', '<br />', $content);
$content = news_unhtml($content);
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true);
$doc_title = $myts->undoHtmlSpecialChars($article->title());
$doc_keywords = 'XOOPS';
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle($doc_title);
$pdf->SetSubject($doc_title);
$pdf->SetKeywords($doc_keywords);
$firstLine = news_unhtml($article->title());
$secondLine = news_unhtml(XOOPS_URL . '/modules/news/article.php?storyid=1' . $storyid);
$pdf->SetHeaderData('', '', $firstLine, $secondLine);