function search_in_article($article, $find) { if (!class_exists('articles')) { return false; } $out = array(); $articles = new articles(); $articles->setWorkContainer($article); $categories = $articles->getCategories(); if (!empty($categories)) { foreach ($categories as $catkey => $katval) { if (access_chk($katval['accesslevel'])) { to_result($katval['description'], $find, '?module=articles&c=' . $article . '&b=' . $katval['id'], $out); to_result($katval['title'], $find, '?module=articles&c=' . $article . '&b=' . $katval['id'], $out); $articls = $articles->getArticles($katval, true, true, true); if (!empty($articls)) { foreach ($articls as $akey => $aval) { $link = '?module=articles&c=' . $article . '&b=' . $aval['catid'] . '&a=' . $aval['id']; to_result($aval['text'], $find, $link, $out); to_result($aval['desc'], $find, $link, $out); to_result($aval['keywords'], $find, $link, $out); to_result($aval['sef_desc'], $find, $link, $out); to_result($aval['title'], $find, $link, $out); to_result($aval['author_nick'], $find, $link, $out); } } } } } return $out; }
function _nav_modifier_article_m($input) { global $articles; if (!is_a($articles, 'articles')) { $arts = new articles(); } else { $arts =& $articles; } $data = explode('/', $input, 3); $mode = sizeof($data); $containers = $arts->getContainers(0); switch ($mode) { case 1: if (!empty($containers[$data[0]])) { return array('?module=articles&c=' . urlencode($data[0]), $containers[$data[0]]); } break; case 2: if ($arts->setWorkContainer($data[0])) { $categories = $arts->getCategories(true, false, false); if ($data[0] == '#hidden' || $data[0] == '#root' && ($article = $arts->getArticle(0, (int) $data[1], false, false, false, false))) { return array('?module=articles&c=' . urlencode($data[0]) . '&a=' . (int) $data[1], $article['title']); } elseif ($categories && !empty($categories[(int) $data[1]])) { return array('?module=articles&c=' . urlencode($data[0]) . '&b=' . (int) $data[1], $categories[$data[1]]); } } break; case 3: if ($arts->setWorkContainer($data[0])) { if ($article = $arts->getArticle((int) $data[1], (int) $data[2], false, false, false, false)) { return array('?module=articles&c=' . urlencode($data[0]) . '&b=' . (int) $data[1] . '&a=' . (int) $data[2], $article['title']); } } break; } return false; }
function rcms_parse_dynamik_menu($format) { global $system; function convertArray($ar) { $var = '{ '; foreach ($ar as $key => $val) { $var .= '"' . $key . '" : '; if (is_array($val)) { $var .= convertArray($val) . ', '; } else { $var .= '"' . $val . '", '; } } if ($var[strlen($var) - 2] == ',') { $var[strlen($var) - 2] = ' '; } return $var . '} '; } $pic_right = ' <b>�</b> '; //Commented becouse f*****g IE, Microsoft, Gates and his mother... //$pic_right = ' <img src = \''.SKIN_PATH.'arrow_right.gif\'>'; //$pic_down = '<img src = \''.SKIN_PATH.'arrow_down.gif\'>'; $pic_down = ''; $navigation = parse_ini_file(CONFIG_PATH . 'navigation.ini', true); $dyna = parse_ini_file(CONFIG_PATH . 'dynamik.ini', true); $result = array(); foreach ($navigation as $link) { if (substr($link['url'], 0, 9) == 'external:') { $target = '_blank'; $link['url'] = substr($link['url'], 9); } else { $target = ''; } $tdata = explode(':', $link['url'], 2); if (count($tdata) == 2) { list($modifier, $value) = $tdata; } else { $modifier = $tdata[0]; } if (!empty($value) && !empty($system->navmodifiers[$modifier])) { if ($clink = call_user_func($system->navmodifiers[$modifier]['m'], $value)) { $result[] = array($clink[0], empty($link['name']) ? $clink[1] : __($link['name']), $target); } } else { $result[] = array($link['url'], __($link['name'])); } } $menu = ' <script type="text/javascript" src="modules/jsc/navigation.js"></script> <div class="dhtml_menu"> <div class="horz_menu"> '; foreach ($result as $item) { if (empty($item[2])) { $item[2] = '_top'; } if (empty($item[4])) { $item[4] = ''; } // Begin of Icons support by Migel //$arr = array(); if ($item[0] == '?module=articles') { if (!isset($dyna['use_art'])) { $articles = new articles(); $containers = $articles->getContainers(); $count = 0; if (is_array($containers)) { $item[1] .= ' ' . $pic_down; $containers = array_reverse($containers); foreach ($containers as $conkey => $conval) { $count++; if ($count != $dyna['max']) { $arr['ddm_article'][' ' . cut_text($conval) . ' '] = '?module=articles&c=' . $conkey; if (!isset($dyna['min'])) { $articles->setWorkContainer($conkey); $art = $articles->getCategories(); $count2 = 0; if (is_array($art)) { unset($arr['ddm_article'][' ' . cut_text($conval) . ' ']); $arr['ddm_article'][$pic_right . ' ' . cut_text($conval) . ' '] = array('-' => '?module=articles&c=' . $conkey); $art = array_reverse($art); foreach ($art as $artkey => $artval) { $count2++; if ($count2 != $dyna['max']) { $arr['ddm_article'][$pic_right . ' ' . cut_text($conval) . ' '][' ' . cut_text($artval['title']) . ' '] = '?module=articles&c=' . $conkey . '&b=' . $artval['id']; $art2 = $articles->getArticles($artval['id']); $count3 = 0; if (count($art2) > 0) { unset($arr['ddm_article'][$pic_right . ' ' . cut_text($conval) . ' '][' ' . cut_text($artval['title']) . ' ']); $arr['ddm_article'][$pic_right . ' ' . cut_text($conval) . ' '][$pic_right . ' ' . cut_text($artval['title']) . ' '] = array('-' => '?module=articles&c=' . $conkey . '&b=' . $artval['id']); $art2 = array_reverse($art2); foreach ($art2 as $art2key => $art2val) { $count3++; if ($count3 != $dyna['max']) { $arr['ddm_article'][$pic_right . ' ' . cut_text($conval) . ' '][$pic_right . ' ' . cut_text($artval['title']) . ' '][' ' . cut_text($art2val['title']) . ' '] = '?module=articles&c=' . $conkey . '&b=' . $artval['id'] . '&a=' . $art2val['id']; } } } } } } } } } } $item[4] = 'ddm_article'; } $item[3] = 'articles.png'; } elseif ($item[0] == '?module=gallery') { if (!isset($dyna['use_gal'])) { $gallery = new gallery(); $kw = $gallery->getAvaiableValues('keywords'); $count = 0; if (is_array($kw)) { $kw = array_reverse($kw); $count++; if (!isset($dyna['min'])) { foreach ($kw as $key => $val) { if ($count != $dyna['max']) { $arr['ddm_gallery'][$pic_right . ' ' . __('By keywords') . ' '][$pic_right . ' ' . cut_text($val) . ' '] = array('-' => '?module=gallery&keyword=' . $val); $kw2 = $gallery->getLimitedImagesList('keywords', $val); $kw2 = array_reverse($kw2); $count2 = 0; foreach ($kw2 as $key2 => $val2) { $count2++; if ($count2 != $dyna['max']) { $arr['ddm_gallery'][$pic_right . ' ' . __('By keywords') . ' '][$pic_right . ' ' . cut_text($val) . ' '][' ' . cut_text($val2) . ' '] = '?module=gallery&id=' . $val2; } } } } } } $kw = $gallery->getAvaiableValues('size'); $count = 0; if (is_array($kw)) { $kw = array_reverse($kw); $count++; $item[1] .= ' ' . $pic_down; if (!isset($dyna['min'])) { foreach ($kw as $key => $val) { if ($count != $dyna['max']) { $arr['ddm_gallery'][$pic_right . ' ' . __('By size') . ' '][$pic_right . ' ' . cut_text($val) . ' '] = array('-' => '?module=gallery&size=' . $val); $kw2 = $gallery->getLimitedImagesList('size', $val); $kw2 = array_reverse($kw2); $count2 = 0; foreach ($kw2 as $key2 => $val2) { $count2++; if ($count2 != $dyna['max']) { $arr['ddm_gallery'][$pic_right . ' ' . __('By size') . ' '][$pic_right . ' ' . cut_text($val) . ' '][' ' . cut_text($val2) . ' '] = '?module=gallery&id=' . $val2; } } } } } } $kw = $gallery->getAvaiableValues('type'); $count = 0; if (is_array($kw)) { $kw = array_reverse($kw); $count++; if (!isset($dyna['min'])) { foreach ($kw as $key => $val) { if ($count != $dyna['max']) { $arr['ddm_gallery'][$pic_right . ' ' . __('By type') . ' '][$pic_right . ' ' . cut_text($val) . ' '] = array('-' => '?module=gallery&type=' . $val); $kw2 = $gallery->getLimitedImagesList('type', $val); $kw2 = array_reverse($kw2); $count2 = 0; foreach ($kw2 as $key2 => $val2) { $count2++; if ($count2 != $dyna['max']) { $arr['ddm_gallery'][$pic_right . ' ' . __('By type') . ' '][$pic_right . ' ' . cut_text($val) . ' '][' ' . cut_text($val2) . ' '] = '?module=gallery&id=' . $val2; } } } } } } $kw = $gallery->getFullImagesList(); $count = 0; if (count($kw) > 0) { $kw = array_reverse($kw); $count++; foreach ($kw as $key => $val) { if ($count != $dyna['max']) { $arr['ddm_gallery'][' ' . cut_text($val) . ' '] = '?module=gallery&id=' . $val; } } } $item[4] = 'ddm_gallery'; } $item[3] = 'gallery.png'; } elseif ($item[0] == '?module=user.list') { if (!isset($dyna['use_mem'])) { $userlist = $system->getUserList('*', 'nickname'); $count = 0; if (count($userlist) > 0) { $item[1] .= ' ' . $pic_down; $userlist = array_reverse($userlist); foreach ($userlist as $conkey => $conval) { $count++; if ($count != $dyna['max']) { $arr['ddm_users'][' ' . cut_text($conval['nickname']) . ' '] = '?module=user.list&user='******'username']; } } } $item[4] = 'ddm_users'; } $item[3] = 'userlist.png'; } elseif ($item[0] == '?module=filesdb') { if (!isset($dyna['use_fdb'])) { $filesdb = new linksdb(DOWNLOADS_DATAFILE); $count = 0; if (!empty($filesdb->data)) { $item[1] .= ' ' . $pic_down; $fdb = array_reverse($filesdb->data); foreach ($fdb as $conkey => $conval) { $count++; if ($count != $dyna['max']) { $arr['ddm_filesdb'][' ' . cut_text($conval['name']) . ' '] = '?module=filesdb&id=' . (sizeof($fdb) - ($count - 1)); if (count($conval['files']) > 0) { if (!isset($dyna['min'])) { unset($arr['ddm_filesdb'][' ' . cut_text($conval['name']) . ' ']); $arr['ddm_filesdb'][$pic_right . ' ' . cut_text($conval['name']) . ' '] = array('-' => '?module=filesdb&id=' . (sizeof($fdb) - ($count - 1))); $count2 = 0; $conval['files'] = array_reverse($conval['files']); foreach ($conval['files'] as $artkey => $artval) { $count2++; if ($count2 != $dyna['max']) { $arr['ddm_filesdb'][$pic_right . ' ' . cut_text($conval['name']) . ' '][' ' . cut_text($artval['name']) . ' '] = '?module=filesdb&id=' . (sizeof($fdb) - ($count - 1)) . '&fid=' . (sizeof($conval['files']) - ($count2 - 1)); } } } } } } } $item[4] = 'ddm_filesdb'; } $item[3] = 'files.png'; } elseif ($item[0] == '?module=forum') { if (!isset($dyna['use_for'])) { $topics = @unserialize(@file_get_contents(FORUM_PATH . 'topic_index.dat')); $count = 0; if (count($topics) > 0) { $item[1] .= ' ' . $pic_down; if (is_array($topics)) { $topics = array_reverse($topics); foreach ($topics as $conkey => $conval) { $count++; if ($count != $dyna['max']) { $arr['ddm_forum'][' ' . cut_text($conval['title']) . ' '] = '?module=forum&id=' . (sizeof($topics) - $count) . '&action=topic'; } } } } $item[4] = 'ddm_forum'; } $item[3] = 'forum.png'; } elseif ($item[1] == 'CUSTOM1') { $item[1] = __(file_get_contents(CONFIG_PATH . 'custom_menu_title_1.txt')) . ' ' . $pic_down; $arr['ddm_custom1'] = arr2ddm(unserialize(file_get_contents(CONFIG_PATH . 'custom_menu_1.dat'))); $item[4] = 'ddm_custom1'; $item[3] = 'custom1.png'; } elseif ($item[1] == 'CUSTOM2') { $item[1] = __(file_get_contents(CONFIG_PATH . 'custom_menu_title_2.txt')) . ' ' . $pic_down; $arr['ddm_custom2'] = arr2ddm(unserialize(file_get_contents(CONFIG_PATH . 'custom_menu_2.dat'))); $item[4] = 'ddm_custom2'; $item[3] = 'custom2.png'; } elseif ($item[1] == 'CUSTOM3') { $item[1] = __(file_get_contents(CONFIG_PATH . 'custom_menu_title_3.txt')) . ' ' . $pic_down; $arr['ddm_custom3'] = arr2ddm(unserialize(file_get_contents(CONFIG_PATH . 'custom_menu_3.dat'))); $item[4] = 'ddm_custom3'; $item[3] = 'custom3.png'; } else { $item[3] = 'default.png'; } if (isset($dyna['ico'])) { $item[3] = '<img src="skins/icons/' . $item[3] . '">'; } else { $item[3] = ''; } $menu .= str_replace('{link}', $item[0], str_replace('{title}', $item[1], str_replace('{target}', @$item[2], str_replace('{icon}', $item[3], str_replace('{id}', $item[4], $format))))); // End of Icons support by Migel } $menu .= ' <br clear="both" /> </div>'; $result = $menu . ' <script type="text/javascript"> dhtmlmenu_build(' . convertArray($arr, 'arr') . ');</script></div>'; return $result; }
} } else { rcms_redirect(RCMS_ROOT_PATH . '?module=articles&c=' . $c . '&b=' . $b . '&a=' . $a); } } } /****************************************************************************** * Interface * ******************************************************************************/ // Show container selector $frm = new InputForm('', 'post', __('Submit')); $frm->addrow(__('Select section'), $frm->select_tag('c', $articles->getContainers(2), $c), 'top'); // Show category selector if (!empty($c) && $c != '#hidden' && $c != '#root') { if ($articles->setWorkContainer($c)) { $frm->addrow(__('Select category'), $frm->select_tag('b', $articles->getCategories(true, false), $b), 'top'); } else { rcms_showAdminMessage($articles->last_error); } } $frm->show(); if (!empty($_POST['tc']) && !empty($_POST['tb']) && !empty($_POST['ms']) && $_POST['ms'] == '2') { if (!$articles->moveArticleToContainer($_POST['mc'], $_POST['mb'], $_POST['ma'], $_POST['tc'], $_POST['tb'])) { rcms_showAdminMessage($articles->last_error); } else { rcms_showAdminMessage(__('Article moved')); } } elseif (!empty($_POST['tc']) && !empty($_POST['ms']) && $_POST['ms'] == '1') { if ($_POST['mc'] == $_POST['tc']) { rcms_showAdminMessage(__('Cannot move article to source section')); } elseif (!$articles->setWorkContainer($_POST['tc'])) {
<?php //////////////////////////////////////////////////////////////////////////////// // Copyright (C) ReloadCMS Development Team // // http://reloadcms.com // // This product released under GNU General Public License v2 // //////////////////////////////////////////////////////////////////////////////// $name_module = __('Articles'); $articles = new articles(); $containers = $articles->getContainers(); if (!empty($containers) && is_array($containers)) { foreach (array_keys($containers) as $c) { if ($c != '#hidden') { if ($articles->setWorkContainer($c)) { if (is_array($articles->getCategories())) { foreach ($articles->getCategories() as $b) { foreach ($articles->getArticles($b['id'], true) as $article) { $loc = $directory . '?module=articles&c=' . str_replace('#', '%23', $c) . '&b=' . $b['id'] . '&a=' . $article['id']; $sitemap->addUrl($loc, rcms_format_time('Y-m-d', $article['time']), $chfr, $prio); } } } } } } }
if (!$articles->setWorkContainer($c) || !$articles->saveArticle($b, 0, $_POST['title'], $_POST['source'], $_POST['keywords'], $_POST['sef_desc'], $_POST['description'], $_POST['text'], $_POST['mode'], $_POST['comments'])) { show_error($articles->last_error); } elseif ($system->checkForRight('ARTICLES-EDITOR')) { $frm = new InputForm(ADMIN_FILE . '?show=module&id=articles.articles', 'post', __('Edit it')); $frm->hidden('c', $c); $frm->hidden('b', $b); $frm->hidden('a', $_SESSION['art_id']); $frm->addrow(__('Article added')); show_window('', $frm->show(true)); } else { show_error(__('Article added')); } } if (!empty($c)) { if ($articles->setWorkContainer($c)) { if ($c !== '#root' && $c !== '#hidden' && ($categories_list = $articles->getCategories(true, false)) === false) { show_error($articles->last_error); } else { $frm = new InputForm('', 'post', __('Submit'), '', '', '', 'artadd'); $frm->hidden('save', '1'); $frm->hidden('c', $c); if ($c !== '#root' && $c !== '#hidden') { $frm->addrow(__('Select category'), $frm->select_tag('b', $categories_list), 'top'); } $frm->addrow(__('Title'), $frm->text_box('title', ''), 'top'); $frm->addrow(__('Author/source'), $frm->text_box('source', ''), 'top'); $frm->addrow(__('Keywords'), $frm->text_box('keywords', ''), 'top'); $frm->addrow(__('Description for search engines'), $frm->text_box('sef_desc', ''), 'top'); $frm->addrow('', rcms_show_bbcode_panel('artadd.description')); $frm->addrow(__('Short description'), $frm->textarea('description', '', 70, 5), 'top'); $frm->addrow('', rcms_show_bbcode_panel('artadd.text'));
} } } } if ($c !== '#root') { $title = '<a class="winheader" href="?module=' . $module . '">' . __('Sections') . '</a> → ' . '<a class="winheader" href="?module=' . $module . '&c=' . str_replace('#', '%23', $c) . '">' . $containers[$c] . '</a> → ' . (mb_strlen($category['title']) > $articles->config['category'] ? mb_substr($category['title'], 0, $articles->config['category']) . '...' : $category['title']); } else { $title = '<a class="winheader" href="?module=' . $module . '">' . __('Sections') . '</a> → ' . $containers[$c]; } show_window($title, $result); } } elseif (!empty($c)) { if (!$articles->setWorkContainer($c)) { show_error($articles->last_error); } else { if (($categories = $articles->getCategories(false, true, true)) === false) { show_error($articles->last_error); } else { $containers = $articles->getContainers(); $result = ''; foreach ($categories as $category) { $result .= rcms_parse_module_template('art-category.tpl', $category + array('link' => '?module=' . $module . '&c=' . str_replace('#', '%23', $c) . '&b=' . $category['id'])); } show_window('<a class="winheader" href="?module=' . $module . '">' . __('Sections') . '</a> → ' . $containers[$c], $result); //Show list container $system->config['pagename'] = $containers[$c]; } } } else { $result = ''; $containers = $articles->getContainers();
$frm->hidden('c', $_POST['c']); $frm->addrow(__('Title'), $frm->text_box('ctitle', $category['title']), 'top'); $frm->addrow(rcms_show_bbcode_panel('mainfrm.cdesc')); $frm->addrow(__('Description'), $frm->textarea('cdesc', $category['description'], 70, 5), 'top'); $frm->addrow(__('Minimum access level'), $frm->text_box('caccess', $category['accesslevel']), 'top'); if (!$category['icon']) { $frm->addrow(__('Icon for category'), $frm->file('cicon')); } else { $frm->addrow(__('Icon for category') . ' - ' . $category['icon'] . '<br />' . __('Delete') . '?', $frm->checkbox('ckillicon', '1', '')); } $frm->show(); } elseif (!empty($_POST['c'])) { $frm = new InputForm('', 'post', '<<< ' . __('Back')); $frm->show(); if ($articles->setWorkContainer($_POST['c'])) { if (($categories = $articles->getCategories()) !== false) { $frm = new InputForm('', 'post', __('Add category')); $frm->hidden('new', $_POST['c']); $frm->hidden('c', $_POST['c']); $frm->show(); $frm = new InputForm('', 'post', __('Submit'), __('Reset')); $frm->hidden('c', $_POST['c']); if (!empty($categories)) { foreach ($categories as $cat_data) { $frm->addrow($cat_data['title'], $frm->checkbox('delete[' . $cat_data['id'] . ']', '1', __('Delete')) . ' ' . $frm->radio_button('b', array($cat_data['id'] => __('Edit')), 0), 'top'); } } $frm->show(); } else { rcms_showAdminMessage($articles->last_error); }