$column_count = $xoopsModuleConfig['columnmode']; if ($showclassic) { $xoopsOption['template_main'] = 'news_index.html'; include_once XOOPS_ROOT_PATH . '/header.php'; $xt = new NewsTopic(); $xoopsTpl->assign('columnwidth', intval(1 / $column_count * 100)); if ($xoopsModuleConfig['ratenews']) { $xoopsTpl->assign('rates', true); $xoopsTpl->assign('lang_ratingc', _NW_RATINGC); $xoopsTpl->assign('lang_ratethisnews', _NW_RATETHISNEWS); } else { $xoopsTpl->assign('rates', false); } if ($xoopsOption['storytopic']) { $xt->getTopic($xoopsOption['storytopic']); $xoopsTpl->assign('topic_description', $xt->topic_description('S')); $xoopsTpl->assign('topic_color', '#' . $xt->topic_color('S')); $topictitle = $xt->topic_title(); } if ($xoopsModuleConfig['displaynav'] == 1) { $xoopsTpl->assign('displaynav', true); $allTopics = $xt->getAllTopics($xoopsModuleConfig['restrictindex']); $topic_tree = new XoopsObjectTree($allTopics, 'topic_id', 'topic_pid'); $topic_select = $topic_tree->makeSelBox('storytopic', 'topic_title', '-- ', $xoopsOption['storytopic'], true); $xoopsTpl->assign('topic_select', $topic_select); $storynum_options = ''; for ($i = 5; $i <= 30; $i = $i + 5) { $sel = ''; if ($i == $xoopsOption['storynum']) { $sel = ' selected="selected"'; }
/** * 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; }
function topicsmanager() { global $xoopsDB, $xoopsConfig, $xoopsModule, $xoopsModuleConfig, $myts; include_once XOOPS_ROOT_PATH . "/class/xoopsformloader.php"; xoops_cp_header(); adminmenu(0); $uploadfolder = sprintf(_AM_UPLOAD_WARNING, XOOPS_URL . "/modules/" . $xoopsModule->dirname() . '/images/topics'); $uploadirectory = "/modules/" . $xoopsModule->dirname() . '/images/topics'; $start = isset($_GET['start']) ? intval($_GET['start']) : 0; $xt = new XoopsTree($xoopsDB->prefix("topics"), "topic_id", "topic_pid"); $topics_arr = $xt->getChildTreeArray(0, "topic_title"); $totaltopics = count($topics_arr); $class = ''; echo "<h4>" . _AM_CONFIG . "</h4>"; news_collapsableBar('topicsmanager', 'toptopicsmanager'); echo "<img onclick='toggle('toptable'); toggleIcon('toptableicon');' id='toptopicsmanager' name='toptopicsmanager' src=" . XOOPS_URL . "/modules/news/images/close12.gif alt='' /></a> " . _AM_TOPICSMNGR . ' (' . $totaltopics . ')' . "</h4>"; echo "<div id='topicsmanager'>"; echo "<br />"; echo "<div style='text-align: center;'>"; echo "<table width='100%' cellspacing='1' cellpadding='3' border='0' class='outer'><tr class='bg3'><td align='center'>" . _AM_TOPIC . "</td><td align='left'>" . _AM_TOPICNAME . "</td><td align='center'>" . _AM_PARENTTOPIC . "</td><td align='center'>" . _AM_SUB_MENU_YESNO . "</td><td align='center'>" . _AM_ACTION . "</td></tr>"; if (is_array($topics_arr) && $totaltopics) { $cpt = 1; $tmpcpt = $start; $ok = true; $output = ''; while ($ok) { if ($tmpcpt < $totaltopics) { $linkedit = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/admin/index.php?op=topicsmanager&topic_id=' . $topics_arr[$tmpcpt]['topic_id']; $linkdelete = XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/admin/index.php?op=delTopic&topic_id=' . $topics_arr[$tmpcpt]['topic_id']; $action = sprintf("<a href='%s'>%s</a> - <a href='%s'>%s</a>", $linkedit, _AM_EDIT, $linkdelete, _AM_DELETE); $parent = ' '; if ($topics_arr[$tmpcpt]['topic_pid'] > 0) { $xttmp = new XoopsTopic($xoopsDB->prefix("topics"), $topics_arr[$tmpcpt]['topic_pid']); $parent = $xttmp->topic_title(); unset($xttmp); } if ($topics_arr[$tmpcpt]['topic_pid'] != 0) { $topics_arr[$tmpcpt]['prefix'] = str_replace(".", "-", $topics_arr[$tmpcpt]['prefix']) . ' '; } else { $topics_arr[$tmpcpt]['prefix'] = str_replace(".", "", $topics_arr[$tmpcpt]['prefix']); } $submenu = $topics_arr[$tmpcpt]['menu'] ? _YES : _NO; $class = $class == 'even' ? 'odd' : 'even'; $output = $output . "<tr class='" . $class . "'><td>" . $topics_arr[$tmpcpt]['topic_id'] . "</td><td align='left'>" . $topics_arr[$tmpcpt]['prefix'] . $myts->displayTarea($topics_arr[$tmpcpt]['topic_title']) . "</td><td align='left'>" . $parent . "</td><td>" . $submenu . "</td><td>" . $action . "</td></tr>"; } else { $ok = false; } if ($cpt >= $xoopsModuleConfig['storycountadmin']) { $ok = false; } $tmpcpt++; $cpt++; } echo $output; } $pagenav = new XoopsPageNav($totaltopics, $xoopsModuleConfig['storycountadmin'], $start, 'start', 'op=topicsmanager'); echo "</table><div align='right'>" . $pagenav->renderNav() . '</div><br />'; echo "</div></div><br />\n"; $topic_id = isset($_GET['topic_id']) ? intval($_GET['topic_id']) : 0; if ($topic_id > 0) { $xtmod = new NewsTopic($topic_id); $topic_title = $xtmod->topic_title('E'); $topic_description = $xtmod->topic_description('E'); $topic_rssfeed = $xtmod->topic_rssurl('E'); $op = 'modTopicS'; if (xoops_trim($xtmod->topic_imgurl()) != '') { $topicimage = $xtmod->topic_imgurl(); } else { $topicimage = "blank.png"; } $btnlabel = _AM_MODIFY; $parent = $xtmod->topic_pid(); $formlabel = _AM_MODIFYTOPIC; $submenu = $xtmod->menu(); $topic_frontpage = $xtmod->topic_frontpage(); $topic_color = $xtmod->topic_color(); unset($xtmod); } else { $topic_title = ''; $topic_frontpage = 1; $topic_description = ''; $op = 'addTopic'; $topicimage = 'xoops.gif'; $btnlabel = _AM_ADD; $parent = -1; $submenu = 0; $topic_rssfeed = ''; $formlabel = _AM_ADD_TOPIC; $topic_color = '000000'; } $sform = new XoopsThemeForm($formlabel, "topicform", XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/admin/index.php', 'post'); $sform->setExtra('enctype="multipart/form-data"'); $sform->addElement(new XoopsFormText(_AM_TOPICNAME, 'topic_title', 50, 255, $topic_title), true); $editor = news_getWysiwygForm(_AM_TOPIC_DESCR, 'topic_description', $topic_description, 15, 60, 'hometext_hidden'); if ($editor) { $sform->addElement($editor, false); } $sform->addElement(new XoopsFormHidden('op', $op), false); $sform->addElement(new XoopsFormHidden('topic_id', $topic_id), false); include_once XOOPS_ROOT_PATH . "/modules/news/class/class.newstopic.php"; $xt = new NewsTopic(); $sform->addElement(new XoopsFormLabel(_AM_PARENTTOPIC, $xt->MakeMyTopicSelBox(1, $parent, 'topic_pid', '', false))); // Topic's color // Code stolen to Zoullou, thank you Zoullou ;-) $select_color = "\n<select name='topic_color' onchange='xoopsGetElementById(\"NewsColorSelect\").style.backgroundColor = \"#\" + this.options[this.selectedIndex].value;'>\n<option value='000000'>" . _AM_NEWS_COLOR . "</option>\n"; $color_values = array('000000', '000033', '000066', '000099', '0000CC', '0000FF', '003300', '003333', '003366', '0033CC', '0033FF', '006600', '006633', '006666', '006699', '0066CC', '0066FF', '009900', '009933', '009966', '009999', '0099CC', '0099FF', '00CC00', '00CC33', '00CC66', '00CC99', '00CCCC', '00CCFF', '00FF00', '00FF33', '00FF66', '00FF99', '00FFCC', '00FFFF', '330000', '330033', '330066', '330099', '3300CC', '3300FF', '333300', '333333', '333366', '333399', '3333CC', '3333FF', '336600', '336633', '336666', '336699', '3366CC', '3366FF', '339900', '339933', '339966', '339999', '3399CC', '3399FF', '33CC00', '33CC33', '33CC66', '33CC99', '33CCCC', '33CCFF', '33FF00', '33FF33', '33FF66', '33FF99', '33FFCC', '33FFFF', '660000', '660033', '660066', '660099', '6600CC', '6600FF', '663300', '663333', '663366', '663399', '6633CC', '6633FF', '666600', '666633', '666666', '666699', '6666CC', '6666FF', '669900', '669933', '669966', '669999', '6699CC', '6699FF', '66CC00', '66CC33', '66CC66', '66CC99', '66CCCC', '66CCFF', '66FF00', '66FF33', '66FF66', '66FF99', '66FFCC', '66FFFF', '990000', '990033', '990066', '990099', '9900CC', '9900FF', '993300', '993333', '993366', '993399', '9933CC', '9933FF', '996600', '996633', '996666', '996699', '9966CC', '9966FF', '999900', '999933', '999966', '999999', '9999CC', '9999FF', '99CC00', '99CC33', '99CC66', '99CC99', '99CCCC', '99CCFF', '99FF00', '99FF33', '99FF66', '99FF99', '99FFCC', '99FFFF', 'CC0000', 'CC0033', 'CC0066', 'CC0099', 'CC00CC', 'CC00FF', 'CC3300', 'CC3333', 'CC3366', 'CC3399', 'CC33CC', 'CC33FF', 'CC6600', 'CC6633', 'CC6666', 'CC6699', 'CC66CC', 'CC66FF', 'CC9900', 'CC9933', 'CC9966', 'CC9999', 'CC99CC', 'CC99FF', 'CCCC00', 'CCCC33', 'CCCC66', 'CCCC99', 'CCCCCC', 'CCCCFF', 'CCFF00', 'CCFF33', 'CCFF66', 'CCFF99', 'CCFFCC', 'CCFFFF', 'FF0000', 'FF0033', 'FF0066', 'FF0099', 'FF00CC', 'FF00FF', 'FF3300', 'FF3333', 'FF3366', 'FF3399', 'FF33CC', 'FF33FF', 'FF6600', 'FF6633', 'FF6666', 'FF6699', 'FF66CC', 'FF66FF', 'FF9900', 'FF9933', 'FF9966', 'FF9999', 'FF99CC', 'FF99FF', 'FFCC00', 'FFCC33', 'FFCC66', 'FFCC99', 'FFCCCC', 'FFCCFF', 'FFFF00', 'FFFF33', 'FFFF66', 'FFFF99', 'FFFFCC', 'FFFFFF'); foreach ($color_values as $color_value) { if ($topic_color == $color_value) { $selected = " selected='selected'"; } else { $selected = ""; } $select_color .= "<option" . $selected . " value='" . $color_value . "' style='background-color:#" . $color_value . ";color:#" . $color_value . ";'>#" . $color_value . "</option>\n"; } $select_color .= "</select> \n<span id='NewsColorSelect'> </span>"; $sform->addElement(new XoopsFormLabel(_AM_NEWS_TOPIC_COLOR, $select_color)); // Sub menu ? $sform->addElement(new XoopsFormRadioYN(_AM_SUB_MENU, 'submenu', $submenu, _YES, _NO)); $sform->addElement(new XoopsFormRadioYN(_AM_PUBLISH_FRONTPAGE, 'topic_frontpage', $topic_frontpage, _YES, _NO)); // Unused for this moment... sorry //$sform->addElement(new XoopsFormText(_AM_NEWS_RSS_URL, 'topic_rssfeed', 50, 255, $topic_rssfeed), false); // ********** Picture $imgtray = new XoopsFormElementTray(_AM_TOPICIMG, '<br />'); $imgpath = sprintf(_AM_IMGNAEXLOC, "modules/" . $xoopsModule->dirname() . "/images/topics/"); $imageselect = new XoopsFormSelect($imgpath, 'topic_imgurl', $topicimage); $topics_array = XoopsLists::getImgListAsArray(XOOPS_ROOT_PATH . "/modules/news/images/topics/"); foreach ($topics_array as $image) { $imageselect->addOption("{$image}", $image); } $imageselect->setExtra("onchange='showImgSelected(\"image3\", \"topic_imgurl\", \"" . $uploadirectory . "\", \"\", \"" . XOOPS_URL . "\")'"); $imgtray->addElement($imageselect, false); $imgtray->addElement(new XoopsFormLabel('', "<br /><img src='" . XOOPS_URL . "/" . $uploadirectory . "/" . $topicimage . "' name='image3' id='image3' alt='' />")); $uploadfolder = sprintf(_AM_UPLOAD_WARNING, XOOPS_URL . "/modules/" . $xoopsModule->dirname() . '/images/topics'); $fileseltray = new XoopsFormElementTray('', '<br />'); $fileseltray->addElement(new XoopsFormFile(_AM_TOPIC_PICTURE, 'attachedfile', $xoopsModuleConfig['maxuploadsize']), false); $fileseltray->addElement(new XoopsFormLabel($uploadfolder), false); $imgtray->addElement($fileseltray); $sform->addElement($imgtray); // Submit buttons $button_tray = new XoopsFormElementTray('', ''); $submit_btn = new XoopsFormButton('', 'post', $btnlabel, 'submit'); $button_tray->addElement($submit_btn); $sform->addElement($button_tray); $sform->display(); echo "<script type='text/javascript'>\n"; echo 'xoopsGetElementById("NewsColorSelect").style.backgroundColor = "#' . $topic_color . '";'; echo "</script>\n"; }