/** Return $menus as an associative array */ function &getSitemaps() { $db =& JFactory::getDBO(); $query = "SELECT id FROM #__xmap_sitemap"; $db->setQuery($query); $ids = $db->loadResultArray(); $sitemaps = array(); foreach ($ids as $id) { $sitemap = new XmapSitemap($db); $sitemap->load($id); $sitemaps[] = $sitemap; } return $sitemaps; }
function xmapShowNavigatorLinks($config) { require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'classes' . DS . 'XmapNav.php'; require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'classes' . DS . 'XmapPlugins.php'; require_once JPATH_SITE . DS . 'includes' . DS . 'application.php'; # DEBUG ini_set('display_errors', 1); error_reporting(E_ALL); # DEBUG $sitemapid = JRequest::getInt('sitemap', 0); $link = urldecode(JRequest::getVar('link', '')); $name = JRequest::getCmd('e_name', ''); $Itemid = JRequest::getInt('Itemid'); if (!$sitemapid) { $sitemapid = $config->sitemap_default; } $sitemap = new XmapSitemap($database); if (!$sitemap->load($sitemapid)) { echo _XMAP_INVALID_SITEMAP; return false; } $menus = $sitemap->getMenus(); $list = array(); // Show the menu items if (!$link && !$Itemid) { foreach ($menus as $menutype => $menu) { $node = new stdclass(); $menu->id = 0; $menu->menutype = $menutype; $node->uid = $menu->uid = "menu" . $menu->id; $node->menutype = $menutype; $node->ordering = $menu->ordering; $node->priority = $menu->priority; $node->changefreq = $menu->changefreq; $node->browserNav = 3; $node->type = 'separator'; if (!($node->name = getMenuTitle($menutype, @$menu->module))) { $node->name = $menutype; } $node->link = '-menu-' . $menutype; $node->expandible = true; $node->selectable = false; //$node->name = $this->getMenuTitle($menutype,@$menu->module); // get the mod_mainmenu title from modules table $list[] = $node; } } else { $nav = new XmapNav($config, $sitemap); $extensions = XmapPlugins::loadAvailablePlugins(); $parent = new stdClass(); if ($Itemid) { $items =& JSite::getMenu(); $item =& $items->getItem($Itemid); if (isset($menus[$item->menutype])) { $parent->name = $item->name; $parent->id = $item->id; $parent->uid = 'itemid' . $item->id; $parent->link = $link; $parent->type = $item->type; $parent->browserNav = $item->browserNav; $parent->priority = $menus[$item->menutype]->priority; $parent->changefreq = $menus[$item->menutype]->changefreq; $parent->menutype = $item->menutype; $parent->selectable = false; $parent->expandible = true; } } else { $parent->id = 0; $parent->link = $link; } $list = $nav->expandLink($parent, $extensions); } XmapAdminHtml::showNavigatorLinks($sitemapid, $list, $name); }
require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'classes' . DS . 'XmapSitemap.php'; require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'classes' . DS . 'XmapPlugins.php'; require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'classes' . DS . 'XmapCache.php'; $user =& JFactory::getUser(); global $xSitemap, $xConfig; $xConfig = new XmapConfig(); $xConfig->load(); // This is an AJAX request to modify a item of the sitemap if ($task == 'editElement') { if ($user->get('gid') != "25") { die('Invalid request!'); } $sitemapid = JRequest::getInt('sitemap', 0); if ($sitemapid) { $sitemap = new XmapSitemap($database); if ($sitemap->load($sitemapid)) { $action = JRequest::getCmd('action', ''); $uid = JRequest::getCmd('uid', ''); $itemid = JRequest::getInt('itemid', ''); switch ($action) { case 'toggleElement': if ($uid && $itemid) { $state = $sitemap->toggleItem($uid, $itemid); } break; case 'changeProperty': $uid = JRequest::getCmd('uid', ''); $property = JRequest::getCmd('property', ''); $value = JRequest::getCmd('value', ''); if ($uid && $itemid && $uid && $property) { $state = $sitemap->chageItemPropery($uid, $itemid, 'xml', $property, $value);
// Firts lets try to get the sitemap's id from the menu's params if ($Itemid) { $menu = new mosMenu($database); $menu->load($Itemid); $params = new mosParameters($menu->params); $sitemapid = intval($params->get('sitemap', '')); } if (!$sitemapid) { //If the is no sitemap id specificated $sitemapid = intval(mosGetParam($_REQUEST, 'sitemap', '')); } if (!$sitemapid && $xConfig->sitemap_default) { $sitemapid = $xConfig->sitemap_default; } $xSitemap = new XmapSitemap(); $xSitemap->load($sitemapid); if (!$xSitemap->id) { echo _XMAP_MSG_NO_SITEMAP; return; } if ($view == 'xml') { Header("Content-type: text/xml; charset=UTF-8"); Header("Content-encoding: UTF-8"); } global $xmap; $xmapCache = XmapCache::getCache($xSitemap); if ($xSitemap->usecache) { $xmapCache->call('xmapCallShowSitemap', $view, $xSitemap->id, $mosConfig_locale, $mosConfig_sef); // call plugin's handler function } else { xmapCallShowSitemap($view, $xSitemap->id);
$changefreq[] = JHTML::_('select.option', 'monthly', _XMAP_CFG_CHANGEFREQ_MONTHLY); $changefreq[] = JHTML::_('select.option', 'yearly', _XMAP_CFG_CHANGEFREQ_YEARLY); $changefreq[] = JHTML::_('select.option', 'never', _XMAP_CFG_CHANGEFREQ_NEVER); $lists['changefreq'] = JHTML::_('select.genericlist', $changefreq, 'changefreq', 'class="inputbox" size="1"', 'value', 'text', $menu->changefreq); $priority = array(); for ($i = 0; $i <= 9; $i++) { $priority[] = JHTML::_('select.option', '0.' . $i, '0.' . $i); } $priority[] = JHTML::_('select.option', '1', '1'); $lists['priority'] = JHTML::_('select.genericlist', $priority, 'priority', 'class="inputbox" size="1"', 'value', 'text', $menu->priority); XmapAdminHtml::showMenuOptions($sitemap, $menu, $lists); break; case 'save_menu_options': $id = intval(JRequest::getVar('sitemap', '', "REQUEST")); $sitemap = new XmapSitemap($database); if (!$sitemap->load($id)) { die('Cannot load sitemap'); } $menutype = JRequest::getVar('menutype', '', "REQUEST"); $menus = $sitemap->getMenus(); if (!empty($menus[$menutype])) { $menu =& $menus[$menutype]; $menu->show = JRequest::getVar('show', '', "POST"); $menu->showXML = JRequest::getVar('showXML', '', "POST"); $menu->priority = JRequest::getVar('priority', '', "POST"); $menu->changefreq = JRequest::getVar('changefreq', '', "POST"); $menu->module = JRequest::getVar('module', '', "POST"); # Clean the cache of the sitemap $sitemap->setMenus($menus); if ($sitemap->save()) { if ($sitemap->usecache) {