public function alumni_getSearchFrom($andor, $queries, $mids, $mid, $bycat) { $xoops = Xoops::getInstance(); $alumni = Alumni::getInstance(); // create form parent::__construct(XoopsLocale::SEARCH, 'alumni', 'search.php', 'get'); // create form elements $this->addElement(new XoopsFormText(XoopsLocale::KEYWORDS, 'query', 30, 255, htmlspecialchars(stripslashes(implode(' ', $queries)), ENT_QUOTES)), true); $type_select = new XoopsFormSelect(XoopsLocale::TYPE, 'andor', $andor); $type_select->addOptionArray(array('AND' => XoopsLocale::ALL_AND, 'OR' => XoopsLocale::ANY_OR, 'exact' => XoopsLocale::EXACT_MATCH)); $this->addElement($type_select); $by_cat = Request::getInt('by_cat', 0); $categoriesHandler = $xoops->getModuleHandler('category', 'alumni'); $search = Search::getInstance(); $module_id = $xoops->module->getVar('mid'); $groups = $xoops->isUser() ? $xoops->user->getGroups() : '3'; $alumni_ids = $alumni->getGrouppermHandler()->getItemIds('alumni_view', $groups, $module_id); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('cid', '(' . implode(', ', $alumni_ids) . ')', 'IN')); $criteria->setOrder($xoops->getModuleConfig('alumni_csortorder')); $category_arr = $categoriesHandler->getall($criteria); foreach (array_keys($category_arr) as $i) { $cid = $category_arr[$i]->getVar('cid'); $pid = $category_arr[$i]->getVar('pid'); $title = $category_arr[$i]->getVar('title'); } $categories = $alumni->getCategoryHandler()->getCategoriesForSearch(); $category_select = new XoopsFormSelect(AlumniLocale::L_ALUMNI_CATEGORIES, 'by_cat', $by_cat); foreach ($categories as $cid => $title) { $category_select->addOption('0', XoopsLocale::ALL); $category_select->addOptionArray(array($cid => $title)); } $this->addElement($category_select); if (!empty($mids)) { $mods_checkbox = new XoopsFormCheckBox(XoopsLocale::SEARCH_IN, 'mids[]', $mids); } else { $mods_checkbox = new XoopsFormCheckBox(XoopsLocale::SEARCH_IN, 'mids[]', $mid); } if (empty($modules)) { $gperm_handler = $xoops->getHandlerGroupPermission(); $available_modules = $gperm_handler->getItemIds('module_read', $xoops->getUserGroups()); $available_plugins = Xoops\Module\Plugin::getPlugins('search'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('dirname', '(\'' . implode('\',\'', array_keys($available_plugins)) . '\')', 'IN')); if (isset($available_modules) && !empty($available_modules)) { $criteria->add(new Criteria('mid', '(' . implode(',', $available_modules) . ')', 'IN')); } $module_handler = $xoops->getHandlerModule(); $mods_checkbox->addOptionArray($module_handler->getNameList($criteria)); } else { /* @var $module XoopsModule */ $module_array = array(); foreach ($modules as $mid => $module) { $module_array[$mid] = $module->getVar('name'); } $mods_checkbox->addOptionArray($module_array); } $this->addElement($mods_checkbox); if ($search->getConfig('keyword_min') > 0) { $this->addElement(new XoopsFormLabel(XoopsLocale::SEARCH_RULE, sprintf(XoopsLocale::EF_KEYWORDS_MUST_BE_GREATER_THAN, $search->getConfig('keyword_min')))); } $this->addElement(new XoopsFormHidden('action', 'results')); $this->addElement(new XoopsFormHiddenToken('id')); $this->addElement(new XoopsFormButton('', 'submit', XoopsLocale::SEARCH, 'submit')); return $this; }
$dimension = getimagesize($xoops->path($imgPath)); $tpl->assign('image_width', $dimension[0]); $tpl->assign('image_height', $dimension[1]); $items = array(); if ($xoops->isModule()) { /* @var $plugin SystemPluginInterface */ $plugin = Xoops\Module\Plugin::getPlugin($dirname, 'system'); $res = $plugin->backend(10); if (is_array($res) && count($res) > 0) { foreach ($res as $item) { $date[] = array('date' => $item['date']); $items[] = array('date' => XoopsLocale::formatTimestamp($item['date'], 'rss'), 'title' => $myts->htmlSpecialChars($item['title']), 'content' => $myts->htmlSpecialChars($item['content']), 'link' => $item['link'], 'guid' => $item['link']); } } } else { $plugins = Xoops\Module\Plugin::getPlugins('system'); /* @var $plugin SystemPluginInterface */ foreach ($plugins as $plugin) { $res = $plugin->backend(10); if (is_array($res) && count($res) > 0) { foreach ($res as $item) { $date[] = array('date' => $item['date']); $items[] = array('date' => XoopsLocale::formatTimestamp($item['date'], 'rss'), 'title' => $myts->htmlSpecialChars($item['title']), 'content' => $myts->htmlSpecialChars($item['content']), 'link' => $item['link'], 'guid' => $item['link']); } } } } array_multisort($date, SORT_DESC, $items); $tpl->assign('items', $items); } $tpl->display('module:' . $dirname . '/system_rss.tpl');