function deleteEmptyReal($where) { if (!($urls = MijoDatabase::loadResultArray("SELECT url_sef FROM #__mijosef_metadata {$where}"))) { return false; } foreach ($urls as $url) { $url_real = MijoDatabase::loadObject("SELECT url_real FROM #__mijosef_urls WHERE url_sef = '{$url}'"); if (!is_object($url_real)) { MijoDatabase::query("DELETE FROM #__mijosef_metadata WHERE url_sef = '{$url}'"); } } return true; }
function sefStatus() { $type = JRequest::getVar('sefStatusType', '', 'post', 'string'); $value = JRequest::getVar('sefStatusValue', '', 'post', 'string'); $types = array('version_checker', 'sef', 'mod_rewrite', 'live_site', 'jfrouter', 'mijosef', 'plugin', 'languagefilter', 'generate_sef'); $msg = ''; if (in_array($type, $types)) { // Joomla settings if ($type == 'sef' || $type == 'mod_rewrite' || $type == 'live_site') { $JoomlaConfig =& JFactory::getConfig(); if ($type == 'sef') { $JoomlaConfig->set('sef', $value); } elseif ($type == 'mod_rewrite') { $JoomlaConfig->set('sef_rewrite', $value); } elseif ($type == 'live_site') { $live_site = JRequest::getVar('live_site', '', 'post', 'string'); if (!empty($live_site) && strpos($live_site, 'http') === false) { $live_site = 'http://' . $live_site; } $JoomlaConfig->set('live_site', trim($live_site)); } // Store the configuration $file = JPATH_CONFIGURATION . '/configuration.php'; if (!JFile::write($file, $JoomlaConfig->toString('PHP', array('class' => 'JConfig', 'closingtag' => false)))) { $msg = JText::_('Error writing Joomla! configuration, make the changes from Joomla Global Configuration page.'); } } elseif ($type == 'mijosef' || $type == 'generate_sef' || $type == 'version_checker') { // MijoSEF settings $MijosefConfig = Mijosef::getConfig(); if ($type == 'mijosef') { $MijosefConfig->mode = $value; } elseif ($type == 'generate_sef') { $MijosefConfig->generate_sef = $value; } elseif ($type == 'version_checker') { $MijosefConfig->version_checker = $value; } Mijosef::get('utility')->storeConfig($MijosefConfig); } elseif ($type == 'plugin' || $type == 'jfrouter' || $type == 'languagefilter') { if ($type == 'plugin') { $type = 'mijosef'; } if (!MijoDatabase::query("UPDATE `#__extensions` SET `enabled` = '{$value}' WHERE (`element` = '{$type}') AND (`folder` = 'system') LIMIT 1")) { $msg = JText::_('Error writing changing plugin status'); } } } return $msg; }
function deleteURLs($ext_id = "", $action = "") { $rt = false; // Get selections $urls_sef = JRequest::getInt('urls_sef', 0, 'post'); $urls_custom = JRequest::getInt('urls_custom', 0, 'post'); $urls_404 = JRequest::getInt('urls_404', 0, 'post'); $urls_moved = JRequest::getInt('urls_moved', 0, 'post'); $urls_locked = JRequest::getInt('urls_locked', 0, 'post'); $urls_trashed = JRequest::getInt('urls_trashed', 0, 'post'); if (!empty($ext_id)) { $component = MijoDatabase::loadResult("SELECT extension FROM #__mijosef_extensions WHERE id = {$ext_id}"); $where = " WHERE url_real LIKE '%option={$component}%' AND params LIKE '%\"notfound\":0%' AND params LIKE '%\"custom\":0%' AND params LIKE '%\"locked\":0%' AND params LIKE '%\"trashed\":0%'"; MijoDatabase::query("DELETE FROM #__mijosef_urls{$where}"); return true; } if ($urls_sef) { $where = " WHERE params LIKE '%\"notfound\":0%' AND params LIKE '%\"custom\":0%' AND params LIKE '%\"locked\":0%' AND params LIKE '%\"trashed\":0%'"; MijoDatabase::query("DELETE FROM #__mijosef_urls{$where}"); $rt = true; } if ($urls_custom) { $where = " WHERE params LIKE '%\"notfound\":0%' AND params LIKE '%\"custom\":1%' AND params LIKE '%\"locked\":0%' AND params LIKE '%\"trashed\":0%'"; MijoDatabase::query("DELETE FROM #__mijosef_urls{$where}"); $rt = true; } if ($urls_404) { $where = " WHERE params LIKE '%\"notfound\":1%'"; MijoDatabase::query("DELETE FROM #__mijosef_urls{$where}"); $rt = true; } if ($urls_moved) { MijoDatabase::query("DELETE FROM #__mijosef_urls_moved"); $rt = true; } if ($urls_locked) { $where = " WHERE params LIKE '%\"locked\":1%' AND params LIKE '%\"trashed\":0%'"; MijoDatabase::query("DELETE FROM #__mijosef_urls{$where}"); $rt = true; } if ($urls_trashed) { $where = " WHERE params LIKE '%\"notfound\":0%' AND params LIKE '%\"trashed\":1%'"; MijoDatabase::query("DELETE FROM #__mijosef_urls{$where}"); $rt = true; } return $rt; }
function editSave() { // Check token JRequest::checkToken() or jexit('Invalid Token'); // Get post $post = JRequest::get('post'); // Save record if (!parent::saveRecord($post, 'MijosefMovedUrls', $post['id'])) { return JError::raiseWarning(500, JText::_('COM_MIJOSEF_COMMON_RECORD_SAVED_NOT')); } else { $sefid = JRequest::getInt('sefid', 0); if (!empty($sefid)) { MijoDatabase::query("DELETE FROM #__mijosef_urls WHERE id = {$sefid}"); } if ($post['modal'] == '1') { // Display message JFactory::getApplication()->enqueueMessage(JText::_('COM_MIJOSEF_COMMON_RECORD_SAVED')); } else { // Return parent::route(JText::_('COM_MIJOSEF_COMMON_RECORD_SAVED')); } } }
function _saveSitemap($post) { if ($post['id'] == "") { $values = "('{$post['url_sef']}', '{$post['published']}', '{$post['sdate']}', '{$post['frequency']}', '{$post['priority']}')"; MijoDatabase::query("INSERT IGNORE INTO #__mijosef_sitemap (url_sef, published, sdate, frequency, priority) VALUES {$values}"); } else { $fields = "url_sef = '{$post['url_sef']}', published = '{$post['published']}', sdate = '{$post['sdate']}', frequency = '{$post['frequency']}', priority = '{$post['priority']}'"; MijoDatabase::query("UPDATE #__mijosef_sitemap SET {$fields} WHERE id = {$post['id']}"); } }
function plugin($document) { $mainframe =& JFactory::getApplication(); // Meta $url_id = $mainframe->get('mijosef.url.id'); $url_sef = $mainframe->get('mijosef.url.sef'); $auto_desc = Mijosef::get('utility')->replaceSpecialChars($mainframe->get('mijosef.meta.autodesc'), true); $auto_key = Mijosef::get('utility')->replaceSpecialChars($mainframe->get('mijosef.meta.autokey'), true); $meta_title = Mijosef::get('utility')->replaceSpecialChars($mainframe->get('mijosef.meta.title'), true); $meta_desc = Mijosef::get('utility')->replaceSpecialChars($mainframe->get('mijosef.meta.desc'), true); $meta_key = Mijosef::get('utility')->replaceSpecialChars($mainframe->get('mijosef.meta.key'), true); $meta_lang = $mainframe->get('mijosef.meta.lang'); $meta_robots = $mainframe->get('mijosef.meta.robots'); $meta_google = $mainframe->get('mijosef.meta.google'); $link_canonical = $mainframe->get('mijosef.link.canonical'); $generator = $this->MijosefConfig->meta_generator; $abstract = $this->MijosefConfig->meta_abstract; $revisit = $this->MijosefConfig->meta_revisit; $direction = $this->MijosefConfig->meta_direction; $google_key = $this->MijosefConfig->meta_googlekey; $live_key = $this->MijosefConfig->meta_livekey; $yahoo_key = $this->MijosefConfig->meta_yahookey; $alexa_key = $this->MijosefConfig->meta_alexa; $name_1 = $this->MijosefConfig->meta_name_1; $name_2 = $this->MijosefConfig->meta_name_2; $name_3 = $this->MijosefConfig->meta_name_3; $con_1 = $this->MijosefConfig->meta_con_1; $con_2 = $this->MijosefConfig->meta_con_2; $con_3 = $this->MijosefConfig->meta_con_3; // Core tags if ($this->MijosefConfig->meta_core == 1) { // Get original title, desc and keys $org_title = $document->getTitle(); $org_desc = $document->getDescription(); $org_key = $document->getMetaData('keywords'); // Meta that need to be updated $update_meta = array(); // Title $title = self::_pluginTitle($url_id, $org_title, $meta_title); if (!empty($title)) { $document->setTitle($title); if (empty($meta_title) && $this->MijosefConfig->meta_title == '1') { $update_meta['title'] = $title; } if ($this->MijosefConfig->meta_title_tag == 1) { $title_t = str_replace('"', '', $title); $document->setMetaData('title', $title_t); } } // Description $description = self::_pluginDescKey($url_id, $org_desc, $meta_desc, $auto_desc, 'desc'); if (!empty($description)) { $description = str_replace('"', '', $description); $document->setDescription($description); if (empty($meta_desc) && ($this->MijosefConfig->meta_desc == '1' || $this->MijosefConfig->meta_desc == '3')) { $update_meta['description'] = ltrim($description); } } // Keywords $keywords = self::_pluginDescKey($url_id, $org_key, $meta_key, $auto_key, 'key'); if (!empty($keywords)) { $keywords = str_replace('"', '', $keywords); $document->setMetaData('keywords', $keywords); if (empty($meta_key) && ($this->MijosefConfig->meta_key == '1' || $this->MijosefConfig->meta_key == '3')) { $update_meta['keywords'] = $keywords; } } // Update meta $uri = JFactory::getURI(); if (!empty($update_meta) && !Mijosef::get('uri')->_isHomePage($uri)) { $meta_list = Mijosef::get('cache')->checkMetadata($url_sef); if (is_array($meta_list) && !empty($meta_list)) { $metadata = ""; foreach ($update_meta as $field => $value) { $val = Mijosef::get('utility')->cleanText($value); $metadata .= "{$field} = '{$val}', "; } $metadata = rtrim($metadata, ', '); MijoDatabase::query("UPDATE #__mijosef_metadata SET {$metadata} WHERE url_sef = '{$url_sef}'"); } } } // Extra tags if (!empty($meta_robots)) { $document->setMetaData('robots', $meta_robots); } if (!empty($meta_lang)) { $document->setMetaData('language', $meta_lang); } if (!empty($meta_google)) { $document->setMetaData('googlebot', $meta_google); } if (!empty($link_canonical) && $document->getType() == 'html') { $document->addHeadLink($link_canonical, 'canonical'); } if (!empty($generator)) { $document->setGenerator($generator); } if (!empty($abstract)) { $document->setMetaData('abstract', $abstract); } if (!empty($revisit)) { $document->setMetaData('revisit', $revisit); } if (!empty($direction)) { $document->setDirection($direction); } if (!empty($google_key)) { $document->setMetaData('google-site-verification', $google_key); } if (!empty($live_key)) { $document->setMetaData('msvalidate.01', $live_key); } if (!empty($yahoo_key)) { $document->setMetaData('y_key', $yahoo_key); } if (!empty($alexa_key)) { $document->setMetaData('alexaVerifyID', $alexa_key); } if (!empty($name_1)) { $document->setMetaData($name_1, $con_1); } if (!empty($name_2)) { $document->setMetaData($name_2, $con_2); } if (!empty($name_3)) { $document->setMetaData($name_3, $con_3); } }
function _setExtension($option) { static $components = array(); if (!isset($components[$option])) { $filter = Mijosef::get('utility')->getSkippedComponents(); $component = MijoDatabase::loadResult("SELECT `element` FROM `#__extensions` WHERE `type` = 'component' AND `element` NOT IN ({$filter}) AND `element` = '{$option}'"); if (!is_null($component)) { $routed = false; $name = ""; if (!$routed) { if (file_exists(JPATH_MIJOSEF_ADMIN . '/extensions/' . $component . '.php')) { $name = Mijosef::get('utility')->getXmlText(JPATH_MIJOSEF_ADMIN . '/extensions/' . $component . '.xml', 'name'); $router = 3; $routed = true; } } if (!$routed) { if (file_exists(JPATH_SITE . '/components/' . $component . '/router.php')) { $router = 2; $routed = true; } } if (!$routed) { $router = 1; } $prms = array(); $prms['router'] = "{$router}"; $prms['prefix'] = ""; $prms['skip_menu'] = "0"; $reg = new JRegistry($prms); $params = $reg->toString(); MijoDatabase::query("INSERT IGNORE INTO #__mijosef_extensions (name, extension, params) VALUES ('{$name}', '{$component}', '{$params}')"); $components[$option] = $params; } else { $components[$option] = false; } } return $components[$option]; }
function uninstall() { // Get where $where = MijosefController::_buildSelectedWhere(); // Get extensions $extensions = MijoDatabase::loadAssocList("SELECT id, extension, params FROM #__mijosef_extensions {$where}", "id"); // Action foreach ($extensions as $id => $record) { $extension = $record['extension']; // Remove already created URLs for this extension from database if ($this->MijosefConfig->purge_ext_urls == 1) { MijoDatabase::query("DELETE FROM #__mijosef_urls WHERE (url_real LIKE '%option={$extension}&%' OR url_real LIKE '%option={$extension}') AND params LIKE '%\"locked\":0%'"); } if (JFolder::exists(JPATH_SITE . '/components/' . $extension)) { $params = array(); $router = 1; if (file_exists(JPATH_SITE . '/components/' . $extension . '/router.php')) { $router = 2; } $p = new JRegistry($record['params']); $params['router'] = $router; $params['prefix'] = $p->get('prefix', ''); $params['skip_menu'] = $p->get('skip_menu', '0'); Mijosef::get('utility')->storeParams('MijosefExtensions', $id, 'params', $params); Mijosef::get('utility')->setData('MijosefExtensions', $id, 'name', ''); } else { MijoDatabase::query("DELETE FROM #__mijosef_extensions WHERE extension = '{$extension}'"); } // Remove the extension files if (file_exists(JPATH_MIJOSEF_ADMIN . '/extensions/' . $extension . '.php')) { JFile::delete(JPATH_MIJOSEF_ADMIN . '/extensions/' . $extension . '.xml'); JFile::delete(JPATH_MIJOSEF_ADMIN . '/extensions/' . $extension . '.php'); } } return; }
function save() { $config = new stdClass(); // Main $config->mode = JRequest::getVar('mode', 1, 'post', 'int'); $config->generate_sef = JRequest::getVar('generate_sef', 1, 'post', 'int'); $config->version_checker = JRequest::getVar('version_checker', 1, 'post', 'int'); $config->jquery_mode = JRequest::getVar('jquery_mode', 1, 'post', 'int'); $config->pid = JRequest::getVar('pid', '', 'post', 'string'); $config->cache_instant = JRequest::getVar('cache_instant', 1, 'post', 'int'); $config->cache_versions = JRequest::getVar('cache_versions', 1, 'post', 'int'); $config->cache_extensions = JRequest::getVar('cache_extensions', 1, 'post', 'int'); $config->cache_urls = JRequest::getVar('cache_urls', 1, 'post', 'int'); $config->cache_urls_size = JRequest::getVar('cache_urls_size', '10000', 'post', 'string'); $config->cache_metadata = JRequest::getVar('cache_metadata', 1, 'post', 'int'); $config->cache_sitemap = JRequest::getVar('cache_sitemap', 1, 'post', 'int'); $config->cache_urls_moved = JRequest::getVar('cache_urls_moved', 1, 'post', 'int'); $config->cache_tags = JRequest::getVar('cache_tags', 1, 'post', 'int'); $config->cache_ilinks = JRequest::getVar('cache_ilinks', 1, 'post', 'int'); $config->seo_nofollow = JRequest::getVar('seo_nofollow', 0, 'post', 'int'); $config->page404 = JRequest::getVar('page404', 'custom', 'post', 'string'); // URL $config->url_lowercase = JRequest::getVar('url_lowercase', 0, 'post', 'int'); $config->global_smart_itemid = JRequest::getVar('global_smart_itemid', 1, 'post', 'int'); $config->ignore_multi_itemid = JRequest::getVar('ignore_multi_itemid', 0, 'post', 'int'); $config->numeral_duplicated = JRequest::getVar('numeral_duplicated', 0, 'post', 'int'); $config->record_duplicated = JRequest::getVar('record_duplicated', 1, 'post', 'int'); $config->url_suffix = JRequest::getVar('url_suffix', '', 'post', 'string'); $config->replacement_character = JRequest::getVar('replacement_character', '', 'post', 'string'); $config->parent_menus = JRequest::getVar('parent_menus', 0, 'post', 'int'); $config->menu_url_part = JRequest::getVar('menu_url_part', 'title', 'post', 'string'); $config->title_alias = JRequest::getVar('title_alias', 'title', 'post', 'string'); $config->append_itemid = JRequest::getVar('append_itemid', 0, 'post', 'int'); $config->remove_trailing_slash = JRequest::getVar('remove_trailing_slash', 1, 'post', 'int'); $config->tolerant_to_trailing_slash = JRequest::getVar('tolerant_to_trailing_slash', 1, 'post', 'int'); $config->url_strip_chars = JRequest::getVar('url_strip_chars', '', 'post', 'string'); $config->source_tracker = JRequest::getVar('source_tracker', 0, 'post', 'int'); $config->insert_active_itemid = JRequest::getVar('insert_active_itemid', 0, 'post', 'int'); $config->remove_sid = JRequest::getVar('remove_sid', 1, 'post', 'int'); $config->set_query_string = JRequest::getVar('set_query_string', 0, 'post', 'int'); $config->base_href = JRequest::getVar('base_href', 3, 'post', 'int'); $config->append_non_sef = JRequest::getVar('append_non_sef', 1, 'post', 'int'); $config->prevent_dup_error = JRequest::getVar('prevent_dup_error', 1, 'post', 'int'); $config->show_db_errors = JRequest::getVar('show_db_errors', 0, 'post', 'int'); $config->check_url_by_id = JRequest::getVar('check_url_by_id', 1, 'post', 'int'); $config->non_sef_vars = JRequest::getVar('non_sef_vars', '', 'post', 'string'); $config->disable_sef_vars = JRequest::getVar('disable_sef_vars', '', 'post', 'string'); $config->skip_menu_vars = JRequest::getVar('skip_menu_vars', '', 'post', 'string'); $config->db_404_errors = JRequest::getVar('db_404_errors', 1, 'post', 'int'); $config->log_404_errors = JRequest::getVar('log_404_errors', 0, 'post', 'int'); $config->sent_headers_error = JRequest::getVar('sent_headers_error', 0, 'post', 'int'); $config->multilang = JRequest::getVar('multilang', '0', 'post', 'string'); $config->joomfish_main_lang = JRequest::getVar('joomfish_main_lang', '0', 'post', 'string'); $config->joomfish_main_lang_del = JRequest::getVar('joomfish_main_lang_del', 0, 'post', 'int'); $config->joomfish_lang_code = JRequest::getVar('joomfish_lang_code', 1, 'post', 'int'); $config->joomfish_trans_url = JRequest::getVar('joomfish_trans_url', 1, 'post', 'int'); $config->joomfish_cookie = JRequest::getVar('joomfish_cookie', 1, 'post', 'int'); $config->joomfish_browser = JRequest::getVar('joomfish_browser', 1, 'post', 'int'); $config->utf8_url = JRequest::getVar('utf8_url', 0, 'post', 'int'); $config->char_replacements = JRequest::getVar('char_replacements', '', 'post', 'string'); $config->redirect_to_www = JRequest::getVar('redirect_to_www', 0, 'post', 'int'); $config->redirect_to_sef = JRequest::getVar('redirect_to_sef', 1, 'post', 'int'); $config->redirect_to_sef_gen = JRequest::getVar('redirect_to_sef_gen', 0, 'post', 'int'); $config->jsef_to_mijosef = JRequest::getVar('jsef_to_mijosef', 1, 'post', 'int'); $config->force_ssl = JRequest::getVar('force_ssl', array(), 'post', 'array'); $config->url_append_limit = JRequest::getVar('url_append_limit', 0, 'post', 'int'); $config->purge_ext_urls = JRequest::getVar('purge_ext_urls', 1, 'post', 'int'); $config->delete_other_sef = JRequest::getVar('delete_other_sef', 1, 'post', 'int'); // Meta Tags $config->meta_core = JRequest::getVar('meta_core', 1, 'post', 'int'); $config->meta_title = JRequest::getVar('meta_title', 1, 'post', 'int'); $config->meta_title_tag = JRequest::getVar('meta_title_tag', 1, 'post', 'int'); $config->meta_desc = JRequest::getVar('meta_desc', 1, 'post', 'int'); $config->meta_key = JRequest::getVar('meta_key', 1, 'post', 'int'); $config->meta_generator = JRequest::getVar('meta_generator', '', 'post', 'string'); $config->meta_generator_rem = JRequest::getVar('meta_generator_rem', 0, 'post', 'int'); $config->meta_abstract = JRequest::getVar('meta_abstract', '', 'post', 'string'); $config->meta_revisit = JRequest::getVar('meta_revisit', '', 'post', 'string'); $config->meta_direction = JRequest::getVar('meta_direction', '', 'post', 'string'); $config->meta_googlekey = JRequest::getVar('meta_googlekey', '', 'post', 'string'); $config->meta_livekey = JRequest::getVar('meta_livekey', '', 'post', 'string'); $config->meta_yahookey = JRequest::getVar('meta_yahookey', '', 'post', 'string'); $config->meta_alexa = JRequest::getVar('meta_alexa', '', 'post', 'string'); $config->meta_name_1 = JRequest::getVar('meta_name_1', '', 'post', 'string'); $config->meta_name_2 = JRequest::getVar('meta_name_2', '', 'post', 'string'); $config->meta_name_3 = JRequest::getVar('meta_name_3', '', 'post', 'string'); $config->meta_con_1 = JRequest::getVar('meta_con_1', '', 'post', 'string'); $config->meta_con_2 = JRequest::getVar('meta_con_2', '', 'post', 'string'); $config->meta_con_3 = JRequest::getVar('meta_con_3', '', 'post', 'string'); $config->meta_t_seperator = JRequest::getVar('meta_t_seperator', '-', 'post', 'string'); $config->meta_t_sitename = JRequest::getVar('meta_t_sitename', '', 'post', 'string'); $config->meta_t_usesitename = JRequest::getVar('meta_t_usesitename', 2, 'post', 'int'); $config->meta_t_prefix = JRequest::getVar('meta_t_prefix', '', 'post', 'string'); $config->meta_t_suffix = JRequest::getVar('meta_t_suffix', '', 'post', 'string'); $config->meta_key_blacklist = JRequest::getVar('meta_key_blacklist', '', 'post', 'string'); $config->meta_key_whitelist = JRequest::getVar('meta_key_whitelist', '', 'post', 'string'); // Sitemap $config->sm_file = JRequest::getVar('sm_file', 'sitemap', 'post', 'string'); $config->sm_xml_date = JRequest::getVar('sm_xml_date', 1, 'post', 'int'); $config->sm_xml_freq = JRequest::getVar('sm_xml_freq', 1, 'post', 'int'); $config->sm_xml_prior = JRequest::getVar('sm_xml_prior', 1, 'post', 'int'); $config->sm_dot_tree = JRequest::getVar('sm_dot_tree', 0, 'post', 'int'); $config->sm_ping_type = JRequest::getVar('sm_ping_type', 'link', 'post', 'string'); $config->sm_ping = JRequest::getVar('sm_ping', 1, 'post', 'int'); $config->sm_yahoo_appid = JRequest::getVar('sm_yahoo_appid', '', 'post', 'string'); $config->sm_ping_services = JRequest::getVar('sm_ping_services', '', 'post', 'string'); $config->sm_freq = JRequest::getVar('sm_freq', 'weekly', 'post', 'string'); $config->sm_priority = JRequest::getVar('sm_priority', '0.5', 'post', 'string'); $config->sm_auto_mode = JRequest::getVar('sm_auto_mode', 1, 'post', 'int'); $config->sm_auto_components = JRequest::getVar('sm_auto_components', array(), 'post', 'array'); $config->sm_auto_enable_cats = JRequest::getVar('sm_auto_enable_cats', 0, 'post', 'int'); $config->sm_auto_filter_s = JRequest::getVar('sm_auto_filter_s', '', 'post', 'string'); $config->sm_auto_filter_r = JRequest::getVar('sm_auto_filter_r', '', 'post', 'string'); $config->sm_auto_cron_mode = JRequest::getVar('sm_auto_cron_mode', 0, 'post', 'int'); $config->sm_auto_cron_freq = JRequest::getVar('sm_auto_cron_freq', '24', 'post', 'int'); $config->sm_auto_cron_last = JRequest::getVar('sm_auto_cron_last', '', 'post', 'string'); $config->sm_auto_xml = JRequest::getVar('sm_auto_xml', 1, 'post', 'int'); $config->sm_auto_ping_c = JRequest::getVar('sm_auto_ping_c', 0, 'post', 'int'); $config->sm_auto_ping_s = JRequest::getVar('sm_auto_ping_s', 0, 'post', 'int'); // Tags $config->tags_mode = JRequest::getVar('tags_mode', 1, 'post', 'int'); $config->tags_area = JRequest::getVar('tags_area', 1, 'post', 'int'); $config->tags_components = JRequest::getVar('tags_components', array(), 'post', 'array'); $config->tags_enable_cats = JRequest::getVar('tags_enable_cats', 0, 'post', 'int'); $config->tags_in_cats = JRequest::getVar('tags_in_cats', 0, 'post', 'int'); $config->tags_in_page = JRequest::getVar('tags_in_page', 15, 'post', 'int'); $config->tags_order = JRequest::getVar('tags_order', 'ordering', 'post', 'string'); $config->tags_position = JRequest::getVar('tags_position', 2, 'post', 'int'); $config->tags_limit = JRequest::getVar('tags_limit', 20, 'post', 'int'); $config->tags_show_tag_desc = JRequest::getVar('tags_show_tag_desc', 0, 'post', 'int'); $config->tags_show_prefix = JRequest::getVar('tags_show_prefix', 1, 'post', 'int'); $config->tags_show_item_desc = JRequest::getVar('tags_show_item_desc', 1, 'post', 'int'); $config->tags_exp_item_desc = JRequest::getVar('tags_exp_item_desc', 0, 'post', 'int'); $config->tags_published = JRequest::getVar('tags_published', 1, 'post', 'int'); $config->tags_auto_mode = JRequest::getVar('tags_auto_mode', 0, 'post', 'int'); $config->tags_auto_components = JRequest::getVar('tags_auto_components', array(), 'post', 'array'); $config->tags_auto_length = JRequest::getVar('tags_auto_length', 4, 'post', 'int'); $config->tags_auto_filter_s = JRequest::getVar('tags_auto_filter_s', '', 'post', 'string'); $config->tags_auto_filter_r = JRequest::getVar('tags_auto_filter_r', '', 'post', 'string'); $config->tags_auto_blacklist = JRequest::getVar('tags_auto_blacklist', '', 'post', 'string'); // Internal Links $config->ilinks_mode = JRequest::getVar('ilinks_mode', 0, 'post', 'int'); $config->ilinks_area = JRequest::getVar('ilinks_area', 1, 'post', 'int'); $config->ilinks_components = JRequest::getVar('ilinks_components', array(), 'post', 'array'); $config->ilinks_enable_cats = JRequest::getVar('ilinks_enable_cats', 1, 'post', 'int'); $config->ilinks_in_cats = JRequest::getVar('ilinks_in_cats', 0, 'post', 'int'); $config->ilinks_case = JRequest::getVar('ilinks_case', 1, 'post', 'int'); $config->ilinks_published = JRequest::getVar('ilinks_published', 1, 'post', 'int'); $config->ilinks_nofollow = JRequest::getVar('ilinks_nofollow', 0, 'post', 'int'); $config->ilinks_blank = JRequest::getVar('ilinks_blank', 0, 'post', 'int'); $config->ilinks_limit = JRequest::getVar('ilinks_limit', 10, 'post', 'int'); // Social Bookmarks $config->bookmarks_mode = JRequest::getVar('bookmarks_mode', 0, 'post', 'int'); $config->bookmarks_area = JRequest::getVar('bookmarks_area', 1, 'post', 'int'); $config->bookmarks_components = JRequest::getVar('bookmarks_components', array(), 'post', 'array'); $config->bookmarks_enable_cats = JRequest::getVar('bookmarks_enable_cats', 1, 'post', 'int'); $config->bookmarks_in_cats = JRequest::getVar('bookmarks_in_cats', 0, 'post', 'int'); $config->bookmarks_twitter = JRequest::getVar('bookmarks_twitter', '', 'post', 'string'); $config->bookmarks_addthis = JRequest::getVar('bookmarks_addthis', '', 'post', 'string'); $config->bookmarks_taf = JRequest::getVar('bookmarks_taf', '', 'post', 'string'); $config->bookmarks_icons_pos = JRequest::getVar('bookmarks_icons_pos', 2, 'post', 'int'); $config->bookmarks_icons_txt = JRequest::getVar('bookmarks_icons_txt', '', 'post', 'string'); $config->bookmarks_icons_line = JRequest::getVar('bookmarks_icons_line', 35, 'post', 'int'); $config->bookmarks_published = JRequest::getVar('bookmarks_published', 1, 'post', 'int'); $config->bookmarks_type = JRequest::getVar('bookmarks_type', 'icon', 'post', 'string'); // User Interface $config->ui_cpanel = JRequest::getVar('ui_cpanel', 2, 'post', 'int'); $config->ui_sef_language = JRequest::getVar('ui_sef_language', 0, 'post', 'int'); $config->ui_sef_published = JRequest::getVar('ui_sef_published', 1, 'post', 'int'); $config->ui_sef_used = JRequest::getVar('ui_sef_used', 1, 'post', 'int'); $config->ui_sef_locked = JRequest::getVar('ui_sef_locked', 1, 'post', 'int'); $config->ui_sef_blocked = JRequest::getVar('ui_sef_blocked', 0, 'post', 'int'); $config->ui_sef_cached = JRequest::getVar('ui_sef_cached', 1, 'post', 'int'); $config->ui_sef_date = JRequest::getVar('ui_sef_date', 0, 'post', 'int'); $config->ui_sef_hits = JRequest::getVar('ui_sef_hits', 1, 'post', 'int'); $config->ui_sef_id = JRequest::getVar('ui_sef_id', 0, 'post', 'int'); $config->ui_moved_published = JRequest::getVar('ui_moved_published', 1, 'post', 'int'); $config->ui_moved_hits = JRequest::getVar('ui_moved_hits', 1, 'post', 'int'); $config->ui_moved_clicked = JRequest::getVar('ui_moved_clicked', 1, 'post', 'int'); $config->ui_moved_cached = JRequest::getVar('ui_moved_cached', 1, 'post', 'int'); $config->ui_moved_id = JRequest::getVar('ui_moved_id', 1, 'post', 'int'); $config->ui_metadata_keys = JRequest::getVar('ui_metadata_keys', 1, 'post', 'int'); $config->ui_metadata_published = JRequest::getVar('ui_metadata_published', 1, 'post', 'int'); $config->ui_metadata_cached = JRequest::getVar('ui_metadata_cached', 1, 'post', 'int'); $config->ui_metadata_id = JRequest::getVar('ui_metadata_id', 0, 'post', 'int'); $config->ui_sitemap_title = JRequest::getVar('ui_sitemap_title', 1, 'post', 'int'); $config->ui_sitemap_published = JRequest::getVar('ui_sitemap_published', 1, 'post', 'int'); $config->ui_sitemap_id = JRequest::getVar('ui_sitemap_id', 1, 'post', 'int'); $config->ui_sitemap_parent = JRequest::getVar('ui_sitemap_parent', 1, 'post', 'int'); $config->ui_sitemap_order = JRequest::getVar('ui_sitemap_order', 1, 'post', 'int'); $config->ui_sitemap_date = JRequest::getVar('ui_sitemap_date', 1, 'post', 'int'); $config->ui_sitemap_frequency = JRequest::getVar('ui_sitemap_frequency', 1, 'post', 'int'); $config->ui_sitemap_priority = JRequest::getVar('ui_sitemap_priority', 1, 'post', 'int'); $config->ui_sitemap_cached = JRequest::getVar('ui_sitemap_cached', 1, 'post', 'int'); $config->ui_tags_published = JRequest::getVar('ui_tags_published', 1, 'post', 'int'); $config->ui_tags_ordering = JRequest::getVar('ui_tags_ordering', 1, 'post', 'int'); $config->ui_tags_cached = JRequest::getVar('ui_tags_cached', 1, 'post', 'int'); $config->ui_tags_hits = JRequest::getVar('ui_tags_hits', 1, 'post', 'int'); $config->ui_tags_id = JRequest::getVar('ui_tags_id', 0, 'post', 'int'); $config->ui_ilinks_published = JRequest::getVar('ui_ilinks_published', 1, 'post', 'int'); $config->ui_ilinks_nofollow = JRequest::getVar('ui_ilinks_nofollow', 1, 'post', 'int'); $config->ui_ilinks_blank = JRequest::getVar('ui_ilinks_blank', 1, 'post', 'int'); $config->ui_ilinks_limit = JRequest::getVar('ui_ilinks_limit', 1, 'post', 'int'); $config->ui_ilinks_cached = JRequest::getVar('ui_ilinks_cached', 1, 'post', 'int'); $config->ui_ilinks_id = JRequest::getVar('ui_ilinks_id', 1, 'post', 'int'); $config->ui_bookmarks_published = JRequest::getVar('ui_bookmarks_published', 1, 'post', 'int'); $config->ui_bookmarks_id = JRequest::getVar('ui_bookmarks_id', 1, 'post', 'int'); // Save 404 Page $introtext = get_magic_quotes_gpc() ? $_POST['introtext'] : addslashes($_POST['introtext']); if ($id = MijoDatabase::loadResult('SELECT id FROM #__content WHERE `title` = "404"')) { $sql = 'UPDATE #__content SET introtext="' . $introtext . '", modified ="' . date("Y-m-d H:i:s") . '" WHERE `id` = "' . $id . '";'; } else { $attribs = '{\\"show_title\\":\\"0\\",\\"link_titles\\":\\"0\\",\\"show_intro\\":\\"\\",\\"show_category\\":\\"0\\",\\"link_category\\":\\"\\",\\"show_parent_category\\":\\"0\\",\\"link_parent_category\\":\\"\\",\\"show_author\\":\\"0\\",\\"link_author\\":\\"\\",\\"show_create_date\\":\\"0\\",\\"show_modify_date\\":\\"0\\",\\"show_publish_date\\":\\"0\\",\\"show_item_navigation\\":\\"\\",\\"show_icons\\":\\"0\\",\\"show_print_icon\\":\\"0\\",\\"show_email_icon\\":\\"0\\",\\"show_vote\\":\\"0\\",\\"show_hits\\":\\"0\\",\\"show_noauth\\":\\"\\",\\"alternative_readmore\\":\\"\\",\\"article_layout\\":\\"\\"}'; $sql = 'INSERT INTO #__content (title, alias, introtext, `fulltext`, state, sectionid, mask, catid, created, created_by, created_by_alias, modified, modified_by, checked_out, checked_out_time, publish_up, publish_down, images, urls, attribs, version, parentid, ordering, metakey, metadesc, access, hits, language) ' . 'VALUES("404", "404", "' . $introtext . '", "", "1", "0", "0", "9", "2011-06-11 12:44:38", "42", "", "' . date("Y-m-d H:i:s") . '", "42", "0", "2011-06-11 12:45:09", "2011-05-17 00:00:00", "0000-00-00 00:00:00", "", "", "' . $attribs . '", "1", "0", "0", "", "", "1", "0", "*");'; } MijoDatabase::query($sql); Mijosef::get('utility')->storeConfig($config); $rules = JRequest::getVar('rules', array(), 'post', 'array'); if (!empty($rules)) { $rules = new JAccessRules($rules); $asset = JTable::getInstance('asset'); if (!$asset->loadByName('com_mijosef')) { $root = JTable::getInstance('asset'); $root->loadByName('root.1'); $asset->name = 'com_mijosef'; $asset->title = 'com_mijosef'; $asset->setLocation($root->id, 'last-child'); } $asset->rules = (string) $rules; if (!$asset->check() or !$asset->store()) { $this->setError($asset->getError()); return false; } } }
function onContentAfterSave($context, &$article, $isNew) { if ($isNew) { return true; } // Check we are manipulating a valid form. if (!in_array($context, array('com_content.article'))) { return true; } if (!self::_systemCheckup()) { return true; } $id = JRequest::getInt('mijosef_id'); $url_sef = JRequest::getString('mijosef_url_sef'); $title = Mijosef::get('utility')->replaceSpecialChars(JRequest::getString('mijosef_title')); $description = Mijosef::get('utility')->replaceSpecialChars(JRequest::getString('mijosef_desc')); $keywords = Mijosef::get('utility')->replaceSpecialChars(JRequest::getString('mijosef_key')); $lang = JRequest::getString('mijosef_lang'); $robots = JRequest::getString('mijosef_robots'); $googlebot = JRequest::getString('mijosef_googlebot'); if ($id == 0) { MijoDatabase::query("INSERT IGNORE INTO #__mijosef_metadata (url_sef, title, description, keywords, lang, robots, googlebot) VALUES('{$url_sef}', '{$title}', '{$description}', '{$keywords}', '{$lang}', '{$robots}', '{$googlebot}')"); } else { MijoDatabase::query("UPDATE #__mijosef_metadata SET title = '{$title}', description = '{$description}', keywords = '{$keywords}', lang = '{$lang}', robots = '{$robots}', googlebot = '{$googlebot}' WHERE id = {$id}"); } }
function _newVars($old_uri, $sef_url, $query, $lang = null) { $mainframe = JFactory::getApplication(); $vars = array(); // A quick fix for not loading translated menus if (!empty($lang) && strpos($sef_url, $lang . '/', 0) !== 0) { $sef_url = $lang . '/' . $sef_url; } $row = Mijosef::get('cache')->checkURL($sef_url, true); if (is_object($row) && Mijosef::get('utility')->getParam($row->params, 'published') == '1') { // Use the already created URL $url_real = $row->url_real; // Update hits MijoDatabase::query("UPDATE #__mijosef_urls SET hits = (hits+1) WHERE id = '{$row->id}'"); // Set query string $url_real = str_replace('&', '&', $url_real); $QUERY_STRING = str_replace('index.php?', '', $url_real); parse_str($QUERY_STRING, $vars); // Set mainframe vars $mainframe->set('mijosef.url.id', $row->id); $mainframe->set('mijosef.url.sef', $row->url_sef); $mainframe->set('mijosef.url.real', $row->url_real); $mainframe->set('mijosef.url.params', $row->params); $meta = Mijosef::get('cache')->checkMetadata($row->url_sef); if (is_object($meta)) { if (!empty($meta->title)) { $mainframe->set('mijosef.meta.title', $meta->title); } if (!empty($meta->description)) { $mainframe->set('mijosef.meta.desc', $meta->description); } if (!empty($meta->keywords)) { $mainframe->set('mijosef.meta.key', $meta->keywords); } if (!empty($meta->lang)) { $mainframe->set('mijosef.meta.lang', $meta->lang); } if (!empty($meta->robots)) { $mainframe->set('mijosef.meta.robots', $meta->robots); } if (!empty($meta->google)) { $mainframe->set('mijosef.meta.google', $meta->google); } if (!empty($meta->canonical)) { $mainframe->set('mijosef.link.canonical', $meta->canonical); } } } else { // Moved URL $m_url = $sef_url; if (empty($query)) { $row = Mijosef::get('cache')->checkMovedURL($sef_url); } else { $m_url .= '?' . $query; $found_with_query = true; $row = Mijosef::get('cache')->checkMovedURL($m_url); if (!is_object($row)) { $found_with_query = false; $row = Mijosef::get('cache')->checkMovedURL($sef_url); } } if (is_object($row)) { // URL found, update the last hit and hit counter MijoDatabase::query("UPDATE #__mijosef_urls_moved SET last_hit = NOW(), hits = (hits+1) WHERE id = " . $row->id); $root = JURI::root(); $f = $l = ''; if (!headers_sent($f, $l)) { // Let's build absolute URL from our link if (strstr($row->url_new, $root) === false) { if (preg_match("/^(https?|ftps?|itpc|telnet|gopher):\\/\\//i", $row->url_new)) { $url = $row->url_new; } else { $url = $root; if (substr($url, -1) != '/') { $url .= '/'; } if (substr($row->url_new, 0, 1) == '/') { $row->url_new = substr($row->url_new, 1); } $url .= $row->url_new; } } else { $url = $row->url_new; } if (!empty($query) && !$found_with_query) { $url .= '?' . $query; } // Use the link to redirect header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $url); header('Connection: close'); exit; } else { self::_showHeadersSentError($f, $l, __FILE__, __LINE__); } } elseif ($this->MijosefConfig->jsef_to_mijosef == 1) { // Joomla! SEF to MijoSEF $juri = clone $old_uri; $old_sef_url = $old_uri->toString(array('path', 'query', 'fragment')); $router = $mainframe->get('mijosef.global.jrouter'); $router->setMode(JROUTER_MODE_SEF); $jvars = $router->parse($old_uri); $router->setMode(JROUTER_MODE_DONT_PARSE); // Check 404 if (isset($jvars['option']) && $jvars['option'] == 'com_content' && isset($jvars['view']) && isset($jvars['id']) && $jvars['id'] == 0) { $jvars = array(); } if (!empty($jvars) && (!empty($jvars['option']) || !empty($jvars['Itemid']))) { // If Itemid is empty, destroy it if (array_key_exists('Itemid', $jvars) && is_null($jvars['Itemid'])) { unset($jvars['Itemid']); } // Empty query to set the new vars $juri->setQuery(''); // Set new vars if (!empty($jvars)) { $juri->setQuery($jvars); } $juri->setPath('index.php'); // Convert URI to string $real_url = $juri->toString(array('path', 'query', 'fragment')); if (!empty($real_url) && substr($real_url, 0, 10) == 'index.php?') { // Generate the new SEF URL using MijoSEF $new_sef_url = JRoute::_($real_url); //if ($new_sef_url != $old_sef_url) {} // Remove path from the URL that will be stored in db $path = str_replace($juri->getScheme(), '', JURI::root()); $path = str_replace($juri->getHost(), '', $path); $path = str_replace('://', '', $path); //$db_sef_url = str_replace($path, '', $new_sef_url); if ($path != '/') { $db_sef_url = str_replace($path, '', $new_sef_url); } else { $db_sef_url = substr($new_sef_url, 1); // to remove the leading '/' } // Store it to Moved URLs MijoDatabase::query("INSERT IGNORE INTO #__mijosef_urls_moved (url_old, url_new) VALUES (" . MijoDatabase::quote($sef_url) . ", " . MijoDatabase::quote($db_sef_url) . ")"); $f = $l = ''; if (count($_POST) == 0 && !headers_sent($f, $l)) { // Use the link to redirect header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $new_sef_url); header('Connection: close'); exit; } else { if ($this->MijosefConfig->sent_headers_error == 1) { self::_showHeadersSentError($f, $l, __FILE__, __LINE__); } } } } } } return $vars; }
function restoreSh2($line) { $preg = '/^INSERT INTO `?(\\w)+mijosef_urls`?/'; $delete = '"Nbr","Sef url","Non sef url","Hits","Rank","Date added","Page title","Page description","Page keywords","Page language","Robots tag"\\n'; $line = str_replace($delete, " ", $line); $line = trim(str_replace("\n", " ", $line)); if (empty($line)) { return array($preg, ''); } $fields = explode('","', $line); $this->_cleanFields($fields); $this->_shUnEmpty($fields); $real_url = $fields[2]; // Remove lang string if JoomFish not installed : index.php?option=com_banners&bid=3&lang=en&task=click if (!Mijosef::get('utility')->JoomFishInstalled() && !empty($real_url)) { $pos = strpos($real_url, 'lang='); $lang = substr($real_url, $pos, 8); $real_url = str_replace($lang, "", $real_url); } $vars = array(); $vars['url_sef'] = $fields[1]; $vars['url_real'] = $real_url; $vars['mdate'] = $fields[5]; $vars['used'] = 1; $vars['source'] = ''; $vars['published'] = 1; $vars['locked'] = 0; $vars['blocked'] = 0; $vars['notes'] = ''; $line = self::_getMijosefLine($vars); // Metadata $no_meta = empty($fields[6]) && empty($fields[7]) && empty($fields[8]); if (!$no_meta && !is_object(MijoDatabase::loadObject("SELECT url_sef FROM #__mijosef_metadata WHERE url_sef = '{$fields[1]}'"))) { $f = "url_sef, title, description, keywords, lang, robots"; $v = "'{$fields[1]}', '{$fields[6]}', '{$fields[7]}', '{$fields[8]}', '{$fields[9]}', '{$fields[10]}'"; MijoDatabase::query("INSERT INTO #__mijosef_metadata ({$f}) VALUES ({$v})"); } return array($preg, $line); }