private static function _GetCategoryBases() { static $categoryids = null; static $categoryBases = null; if (is_null($categoryBases)) { $categoryids = array(); $categoryBases = array(); $categories = new Model_News_Category(); foreach ($categories->select() as $category) { $categoryids[] = $category['id']; } $pages = new Model_Page(); $pages->where('application = ?', 'News'); foreach ($pages->select() as $page) { if (isset($page['settings']['categoryid']) && is_array($page['settings']['categoryid']) && !in_array(0, $page['settings']['categoryid'])) { foreach ($page['settings']['categoryid'] as $id) { if (!isset($categoryBases[$id])) { $categoryBases[$id] = array(); } $categoryBases[$id][] = TYPEF_WEB_DIR . $page['uri']; } } else { if (!isset($categoryBases[0])) { $categoryBases[0] = array(); } $categoryBases[0][] = TYPEF_WEB_DIR . $page['uri']; foreach ($categoryids as $id) { if (!isset($categoryBases[$id])) { $categoryBases[$id] = array(); } $categoryBases[$id][] = TYPEF_WEB_DIR . $page['uri']; } } } } return $categoryBases; }
$categories = array(); $allselected = true; $pm->setVariable('settingstemplate', '/admin/news/settings.html'); if (isset($_REQUEST['pageid'])) { //$rs = $db->prepare('SELECT * FROM #__page WHERE pageid = ?'); //$rs->execute($_REQUEST['pageid']); $row = Model_Page::Get($_REQUEST['pageid']); if ($row->exists()) { $pm->setVariable('settings', $row['settings']); $categories = isset($settings['categoryid']) ? $settings['categoryid'] : array(); if (!is_array($categories)) { $categories = array(); } if (in_array(0, $categories)) { $allselected = true; } else { $allselected = false; } } } //$rs = $db->execute('SELECT * FROM #__news_category ORDER BY categoryname'); $categories = new Model_News_Category(); $categories->order('categoryname'); foreach ($categories->select() as $row) { if (!$allselected && isset($row['categoryid']) && is_array($row['categoryid']) && in_array($row['categoryid'], $categories)) { $row['selected'] = 'selected'; } else { $row['selected'] = ''; } $pm->addLoop('categories', $row); }