/** Create the settings table for Xmap and add initial default values */ function create() { $db =& JFactory::getDBO(); jimport('joomla.filesystem.file'); $fields = array(); $fields[] = "`name` varchar(30) not null primary key"; $fields[] = "`value` varchar(100)"; $query = "CREATE TABLE IF NOT EXISTS #__xmap (" . implode(', ', $fields) . ")"; $db->setQuery($query); if ($db->query() === FALSE) { echo _XMAP_ERR_NO_CREATE . "<br />\n"; echo stripslashes($db->getErrorMsg()); return false; } $fields = array(); $fields[] = "`id` int not null primary key auto_increment"; $fields[] = "`extension` varchar(100) not null"; $fields[] = "`published` int(1) default 0"; $fields[] = "`params` text"; $query = "CREATE TABLE IF NOT EXISTS #__xmap_ext (" . implode(', ', $fields) . ")"; $db->setQuery($query); if ($db->query() === FALSE) { echo _XMAP_ERR_NO_CREATE . "<br />\n"; echo stripslashes($db->getErrorMsg()); return false; } $extensions = array(array('com_agora', 1), array('com_content', 1), array('com_eventlist', 1), array('com_g2bridge', 1), array('com_glossary', 1), array('com_hotproperty', 1), array('com_jcalpro', 1), array('com_jdownloads', 1), array('com_jevents', 1), array('com_jomres', 1), array('com_kb', 1), array('com_kunena', 1), array('com_mtree', 1), array('com_myblog', 1), array('com_remository', 1), array('com_resource', 1), array('com_rokdownloads', 1), array('com_rsgallery2', 1), array('com_sectionex', 1), array('com_sobi2', 1), array('com_virtuemart', 1)); foreach ($extensions as $ext) { $query = "SELECT COUNT(*) FROM `#__xmap_ext` WHERE extension='{$ext['0']}'"; $db->setQuery($query); if ($db->loadResult() == 0) { $extension = new XmapPlugin($db); $extension->extension = $ext[0]; $extension->published = $ext[1]; $xmlfile = $extension->getXmlPath(); JFile::move("{$xmlfile}.txt", $xmlfile); $extension->setParams($extension->loadDefaultsParams(true), '-1'); $extension->store(); } } $vars = get_class_vars('XmapSitemap'); $fields = ''; foreach ($vars as $name => $value) { if ($name[0] !== '_') { if ($name == 'id') { $fields[] = 'id INT NOT NULL PRIMARY KEY AUTO_INCREMENT'; } else { switch (gettype($value)) { case 'integer': $fields[] = "`{$name}` INTEGER NULL"; break; case 'string': if ($name == 'menus') { $fields[] = "`{$name}` TEXT NULL"; } else { $fields[] = "`{$name}` VARCHAR(255) NULL"; } break; } } } } $query = "CREATE TABLE IF NOT EXISTS #__xmap_sitemap (" . implode(', ', $fields) . ")"; $db->setQuery($query); if ($db->query() === FALSE) { echo _XMAP_ERR_NO_CREATE . "<br />\n"; echo stripslashes($db->getErrorMsg()); return false; } $query = "CREATE TABLE IF NOT EXISTS #__xmap_items ( uid varchar(100) not null, itemid int not null, view varchar(10) not null, sitemap_id int not null, properties varchar(300), primary key (uid,itemid,view,sitemap_id),index (uid,itemid),index (view));"; $db->setQuery($query); if ($db->query() === FALSE) { echo _XMAP_ERR_NO_CREATE . "<br />\n"; echo stripslashes($db->getErrorMsg()); return false; } echo _XMAP_MSG_SET_DB_CREATED . "<br />\n"; // Insert default Settings $query = "SELECT COUNT(*) from `#__xmap_sitemap`"; $db->setQuery($query); if ($db->loadResult() == 0) { $sitemap = new XmapSitemap($db); $sitemap->save(); } $query = "SELECT COUNT(*) from `#__xmap`"; $db->setQuery($query); if ($db->loadResult() == 0) { $fields = array(); $vars = get_class_vars('XmapConfig'); foreach ($vars as $name => $value) { if ($name == 'sitemap_default') { $value = $sitemap->id; } $query = "INSERT INTO #__xmap (`name`,`value`) values ('{$name}','{$value}')"; $db->setQuery($query); if ($db->query() === FALSE) { echo _XMAP_ERR_NO_DEFAULT_SET . "<br />\n"; echo stripslashes($db->getErrorMsg()); return false; } } } echo _XMAP_MSG_SET_DEF_INSERT . "<br />\n"; return true; }
$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) { XmapCache::cleanCache($sitemap); } echo 1; } else { echo $database->getErrorMsg(); } } break; case 'uninstallplugin': $id = intval(JRequest::getVar('plugin', '', "REQUEST")); if ($id != JRequest::getVar('plugin', '', "REQUEST")) { //Security Check! die('Cannot load plugin'); }