diff -r 53cff4b4a802 -r bde1974c263b web/wp-content/plugins/google-sitemap-generator/sitemap.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/wp-content/plugins/google-sitemap-generator/sitemap.php Wed Feb 03 15:37:20 2010 +0000 @@ -0,0 +1,274 @@ +Configuration Page + Version: 3.2 + Author: Arne Brachhold + Author URI: http://www.arnebrachhold.de/ +*/ + +/** + * Loader class for the Google Sitemap Generator + * + * This class takes care of the sitemap plugin and tries to load the different parts as late as possible. + * On normal requests, only this small class is loaded. When the sitemap needs to be rebuild, the generator itself is loaded. + * The last stage is the user interface which is loaded when the administration page is requested. + */ +class GoogleSitemapGeneratorLoader { + /** + * Enabled the sitemap plugin with registering all required hooks + * + * If the sm_command and sm_key GET params are given, the function will init the generator to rebuild the sitemap. + */ + function Enable() { + + //Register the sitemap creator to wordpress... + add_action('admin_menu', array('GoogleSitemapGeneratorLoader', 'RegisterAdminPage')); + + //Nice icon for Admin Menu (requires Ozh Admin Drop Down Plugin) + add_filter('ozh_adminmenu_icon', array('GoogleSitemapGeneratorLoader', 'RegisterAdminIcon')); + + //Additional links on the plugin page + add_filter('plugin_row_meta', array('GoogleSitemapGeneratorLoader', 'RegisterPluginLinks'),10,2); + + //Existing posts was deleted + add_action('delete_post', array('GoogleSitemapGeneratorLoader', 'CallCheckForAutoBuild'),9999,1); + + //Existing post was published + add_action('publish_post', array('GoogleSitemapGeneratorLoader', 'CallCheckForAutoBuild'),9999,1); + + //Existing page was published + add_action('publish_page', array('GoogleSitemapGeneratorLoader', 'CallCheckForAutoBuild'),9999,1); + + //WP Cron hook + add_action('sm_build_cron', array('GoogleSitemapGeneratorLoader', 'CallBuildSitemap'),1,0); + + //External build hook + add_action('sm_rebuild', array('GoogleSitemapGeneratorLoader', 'CallBuildNowRequest'),1,0); + + //Robots.txt request + add_action('do_robots', array('GoogleSitemapGeneratorLoader', 'CallDoRobots'),100,0); + + //Help topics for context sensitive help + add_filter('contextual_help_list', array('GoogleSitemapGeneratorLoader', 'CallHtmlShowHelpList'),9999,2); + + //Check if this is a BUILD-NOW request (key will be checked later) + if(!empty($_GET["sm_command"]) && !empty($_GET["sm_key"])) { + GoogleSitemapGeneratorLoader::CallCheckForManualBuild(); + } + + //Check if the result of a ping request should be shown + if(!empty($_GET["sm_ping_service"])) { + GoogleSitemapGeneratorLoader::CallShowPingResult(); + } + } + + /** + * Registers the plugin in the admin menu system + */ + function RegisterAdminPage() { + + if (function_exists('add_options_page')) { + add_options_page(__('XML-Sitemap Generator','sitemap'), __('XML-Sitemap','sitemap'), 10, GoogleSitemapGeneratorLoader::GetBaseName(), array('GoogleSitemapGeneratorLoader','CallHtmlShowOptionsPage')); + } + } + + function RegisterAdminIcon($hook) { + if ( $hook == GoogleSitemapGeneratorLoader::GetBaseName() && function_exists('plugins_url')) { + return plugins_url('img/icon-arne.gif',GoogleSitemapGeneratorLoader::GetBaseName()); + } + return $hook; + } + + function RegisterPluginLinks($links, $file) { + $base = GoogleSitemapGeneratorLoader::GetBaseName(); + if ($file == $base) { + $links[] = '' . __('Settings') . ''; + $links[] = '' . __('FAQ') . ''; + $links[] = '' . __('Support') . ''; + $links[] = '' . __('Donate') . ''; + } + return $links; + } + + /** + * Invokes the HtmlShowOptionsPage method of the generator + */ + function CallHtmlShowOptionsPage() { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->HtmlShowOptionsPage(); + } + } + + /** + * Invokes the CheckForAutoBuild method of the generator + */ + function CallCheckForAutoBuild($args) { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->CheckForAutoBuild($args); + } + } + + /** + * Invokes the CheckForAutoBuild method of the generator + */ + function CallBuildNowRequest() { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->BuildNowRequest(); + } + } + + /** + * Invokes the BuildSitemap method of the generator + */ + function CallBuildSitemap() { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->BuildSitemap(); + } + } + + /** + * Invokes the CheckForManualBuild method of the generator + */ + function CallCheckForManualBuild() { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->CheckForManualBuild(); + } + } + + /** + * Invokes the ShowPingResult method of the generator + */ + function CallShowPingResult() { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->ShowPingResult(); + } + } + + + function CallHtmlShowHelpList($filterVal,$screen) { + if($screen == "settings_page_sitemap") { + $links = array( + __('Plugin Homepage','sitemap')=>'http://www.arnebrachhold.de/redir/sitemap-help-home/', + __('Sitemap FAQ')=>'http://www.arnebrachhold.de/redir/sitemap-help-faq/' + ); + + $filterVal["settings_page_sitemap"] = ''; + + $i=0; + foreach($links AS $text=>$url) { + $filterVal["settings_page_sitemap"].='' . $text . '' . ($i < (count($links)-1)?'
':'') ; + $i++; + } + } + return $filterVal; + } + + function CallDoRobots() { + if(GoogleSitemapGeneratorLoader::LoadPlugin()) { + $gs = GoogleSitemapGenerator::GetInstance(); + $gs->DoRobots(); + } + } + + /** + * Loads the actual generator class and tries to raise the memory and time limits if not already done by WP + * + * @return boolean true if run successfully + */ + function LoadPlugin() { + + $mem = abs(intval(@ini_get('memory_limit'))); + if($mem && $mem < 32) { + @ini_set('memory_limit', '32M'); + } + + $time = abs(intval(@ini_get("max_execution_time"))); + if($time != 0 && $time < 120) { + @set_time_limit(120); + } + + if(!class_exists("GoogleSitemapGenerator")) { + + $path = trailingslashit(dirname(__FILE__)); + + if(!file_exists( $path . 'sitemap-core.php')) return false; + require_once($path. 'sitemap-core.php'); + } + + GoogleSitemapGenerator::Enable(); + return true; + } + + /** + * Returns the plugin basename of the plugin (using __FILE__) + * + * @return string The plugin basename, "sitemap" for example + */ + function GetBaseName() { + return plugin_basename(__FILE__); + } + + /** + * Returns the name of this loader script, using __FILE__ + * + * @return string The __FILE__ value of this loader script + */ + function GetPluginFile() { + return __FILE__; + } + + /** + * Returns the plugin version + * + * Uses the WP API to get the meta data from the top of this file (comment) + * + * @return string The version like 3.1.1 + */ + function GetVersion() { + if(!function_exists('get_plugin_data')) { + if(file_exists(ABSPATH . 'wp-admin/includes/plugin.php')) require_once(ABSPATH . 'wp-admin/includes/plugin.php'); //2.3+ + else if(file_exists(ABSPATH . 'wp-admin/admin-functions.php')) require_once(ABSPATH . 'wp-admin/admin-functions.php'); //2.1 + else return "0.ERROR"; + } + $data = get_plugin_data(__FILE__); + return $data['Version']; + } + + +} + +//Enable the plugin for the init hook, but only if WP is loaded. Calling this php file directly will do nothing. +if(defined('ABSPATH') && defined('WPINC')) { + add_action("init",array("GoogleSitemapGeneratorLoader","Enable"),1000,0); +} +?> \ No newline at end of file