http://code.google.com/p/web-optimizator/downloads/list to the wp-content/plugins/ directory.'; $messages = array( 'curl_not_installed' => 'Curl isn\'t installed. Please ' . $download_package, 'directory_not_writable' => 'Can\'t write to the current directory. Please chmod ' . @dirname(__FILE__) . ' to 0775.', 'connection_error' => 'Can\'t download files list. It seems there are some troubles with Web Optimizer repository. Please try again later or ' . $download_package, 'dir_not_writable' => 'Can\'t write to the directory (please chmod it to 0775): ', 'file_not_writable' => 'Can\'t write to the file (please chmod it to 0664): ' ); /* check if directory already exists */ if (!is_dir($install_directory) || !is_file($install_directory . 'web.optimizer.php')) { /* check for curl installed */ if (in_array('curl', $loaded_modules) && function_exists('curl_init')) { @mkdir($install_directory); if (!is_dir($install_directory)) { /* try to make current directory writable for group */ @chmod("./", 0775); } @mkdir($install_directory); if (is_dir($install_directory)) { /* get list of files */ web_optimizer_download('files', $install_directory); if (is_file($install_directory . 'files')) { $files = split("\r?\n", file_get_contents($install_directory . 'files')); foreach ($files as $file) { if (!empty($file) && !is_file($install_directory . $file)) { web_optimizer_download($file, $install_directory); } } /* check if download was succsessful */ if (!is_file($install_directory . 'web.optimizer.php')) { $error = $messages['connection_error']; } } else { $error = $messages['connection_error']; } } else { $error = $messages['directory_not_writable']; } } else { $error = $messages['curl_not_installed']; } } $config_file = $install_directory . 'config.webo.php'; /* activate application */ if (is_dir($install_directory) && is_file($install_directory . 'web.optimizer.php') && is_file($config_file)) { /* include generic libraries */ require($install_directory . "controller/admin.php"); require($install_directory . "libs/php/view.php"); /* Con. the view library */ $view = new compressor_view(); $view->set_paths(substr(0, strlen(ABSPATH) - strlen(preg_replace("!/wp-admin/[^/]*\?.*$!", "/", $_SERVER['REQUEST_URI'])), ABSPATH)); $view->paths['full']['current_directory'] = $install_directory; /* Con. the admin controller */ $admin = new admin(array( 'view' => $view, 'basepath' => $install_directory, 'skip_render' => 1) ); require($config_file); /* calculate default directories, it fixes cases with manual Web Optimizer directory creation */ $compress_options['css_cachedir'] = empty($compress_options['css_cachedir']) ? $install_directory . 'cache/' : $compress_options['css_cachedir']; $compress_options['javascript_cachedir'] = empty($compress_options['javascript_cachedir']) ? $install_directory . 'cache/' : $compress_options['javascript_cachedir']; $compress_options['html_cachedir'] = empty($compress_options['html_cachedir']) ? $install_directory . 'cache/' : $compress_options['html_cachedir']; $compress_options['website_root'] = empty($compress_options['website_root']) ? $view->paths['absolute']['document_root'] : $compress_options['website_root']; $compress_options['document_root'] = empty($compress_options['document_root']) ? $view->paths['full']['document_root'] : $compress_options['document_root']; /* check if CSS cache directory is writable */ if (is_dir($compress_options['css_cachedir']) && is_writable($compress_options['css_cachedir'])) { @copy($install_directory . 'images/web.optimizer.stamp.png', $compress_options['css_cachedir'] . 'web.optimizer.stamp.png'); /* check if JavaScript cache directory is writable */ if (is_dir($compress_options['javascript_cachedir']) && is_writable($compress_options['javascript_cachedir'])) { @copy($install_directory . 'libs/js/wo.cookie.php', $compress_options['javascript_cachedir'] . 'wo.cookie.php'); @copy($install_directory . 'libs/js/yass.loader.js', $compress_options['javascript_cachedir'] . 'yass.loader.js'); /* check if HTML cache directory is writable */ if (is_dir($compress_options['html_cachedir']) && is_writable($compress_options['html_cachedir'])) { /* check if we can change config file */ if (is_file($config_file) && is_writable($config_file)) { if (empty($compress_options['username'])) { /* generate random username/password to protect web access */ $compress_options['username'] = md5(web_optimizer_random_string()); $compress_options['password'] = md5(web_optimizer_random_string()); } $admin->input['user'] = $compress_options; $admin->input['user']['minify']['with'] = $compress_options['minify']['with_jsmin'] ? 'with_jsmin' : ($compress_options['minify']['with_yui'] ? 'with_yui' : ($compress_options['minify']['with_packer'] ? 'with_packer' : 0)); /* define all restrictions for current config */ $admin->compress_options = $compress_options; $admin->set_options(1); /* write all rules to .htaccess file */ $htaccess = $admin->write_htaccess(1); if (empty($htaccess)) { $error = $messages['file_not_writable'] . ABSPATH . '.htaccess'; } else { $admin->view->paths['full']['current_directory'] = $install_directory; /* download initial website state */ web_optimizer_download('http://webo.name/check/index2.php?url=' . $_SERVER['HTTP_HOST'] . '&mode=xml&source=wo', $install_directory, 1); /* download favicon if it doesn't exist, for website */ if (!is_file($compress_options['website_root'] . 'favicon.ico')) { web_optimizer_download('favicon.ico', $compress_options['website_root']); } /* download favicon if it doesn't exist, for document root */ if (!is_file($compress_options['document_root'] . 'favicon.ico')) { web_optimizer_download('favicon.ico', $compress_options['document_root']); } /* activate Web Optimizer */ $admin->save_option('[\'active\']', 1, 0); } } else { $error = $messages['file_not_writable'] . $config_file; } } else { $error = $messages['dir_not_writable'] . $compress_options['html_cachedir']; } } else { $error = $messages['dir_not_writable'] . $compress_options['javascript_cachedir']; } } else { $error = $messages['dir_not_writable'] . $compress_options['css_cachedir']; } } else { $error = $messages['curl_not_installed']; } if (!empty($error)) { echo '' . $error . ''; die(); } } } /* download full Web Optimizer package inside plugins directory and activate it */ register_activation_hook(__FILE__, 'web_optimizer_activate'); if (!function_exists('web_optimizer_deactivate')) { /* main deactivation function */ function web_optimizer_deactivate () { $install_directory = ABSPATH . 'wp-content/plugins/web-optimizer/'; if (is_file($install_directory . "controller/admin.php")) { /* include generic libraries */ require($install_directory . "controller/admin.php"); require($install_directory . "libs/php/view.php"); /* Con. the view library */ $view = new compressor_view(); $view->set_paths(substr(0, strlen(ABSPATH) - strlen(preg_replace("!/wp-admin/[^/]*\?.*$!", "/", $_SERVER['REQUEST_URI'])), ABSPATH)); $view->paths['full']['current_directory'] = $install_directory; /* Con. the admin controller */ $admin = new admin(array( 'view' => $view, 'basepath' => $install_directory, 'skip_render' => 1) ); /* clean all rules from .htaccess file */ $content = $admin->clean_htaccess(); $htaccess = $admin->detect_htaccess(); $admin->write_file($htaccess, $content); /* deactivate Web Optimizer */ $admin->save_option('[\'active\']', 0, 0); } } } /* deactivate Web Optimizer */ register_deactivation_hook(__FILE__, 'web_optimizer_deactivate'); if (!function_exists('web_optimizer_settings_link')) { /* add settings link on plugin page */ function web_optimizer_settings_link ($links, $file) { if ($file == 'web.optimizer.wordpress.php') { $settings_link = '' . __('Settings') . ''; /* before other links */ array_unshift($links, $settings_link); } return $links; } } if (!function_exists('web_optimizer_add_menu')) { /* general function to add all items to admin section */ function web_optimizer_add_menu () { add_filter("plugin_action_links", 'web_optimizer_settings_link', 10, 2); add_options_page('Web Optimizer', 'Web Optimizer', 'manage_options', 'weboptimizer', 'web_optimizer_manager'); } } /* add hook to admin panel */ if (is_admin()) { add_action('admin_menu', 'web_optimizer_add_menu'); } if (!function_exists('web_optimizer_shutdown')) { /* envelope output buffer with optimization actions */ function web_optimizer_shutdown ($content) { if (!empty($content)) { $not_buffered = 1; $web_optimizer; @ini_set("display_errors", "On"); @error_reporting(E_ALL); @set_error_handler('web_optimizer_exception'); try { if (is_file(ABSPATH . '/wp-content/plugins/web-optimizer/web.optimizer.php')) { require(ABSPATH . '/wp-content/plugins/web-optimizer/web.optimizer.php'); /* fix for directories detecting, thx to Jeromy Darling */ } elseif (dirname(__FILE__) . '/web.optimizer.php') { require(dirname(__FILE__) . '/web.optimizer.php'); } } catch (Exception $e) { $fp = @fopen(ABSPATH . '/web.optimizer.debug.txt', "w"); if ($fp) { @fwrite($fp, "Web Optimizer failed to be initialized\n\n" . $e); @fclose($fp); } } try { if (!empty($web_optimizer)) { $content = $web_optimizer->finish($content); } } catch (Exception $e) { $fp = @fopen(ABSPATH . '/web.optimizer.debug.txt', "w"); if ($fp) { @fwrite($fp, "Web Optimizer failed to parse content\n\n" . $e . "\n\nWeb Optimizer Object\n" . var_dump($web_optimizer)); @fclose($fp); } } return $content; } } } if (!function_exists('web_optimizer_init') && function_exists('web_optimizer_shutdown')) { /* main function for every page execution */ function web_optimizer_init() { if (!is_admin() && !strpos($_SERVER['REQUEST_URI'], 'wp-login.php')) { ob_start('web_optimizer_shutdown'); } } } /* add init and finish hook */ add_action('plugins_loaded', 'web_optimizer_init'); if (!function_exists('web_optimizer_manager')) { /* manage all options through WP interface */ function web_optimizer_manager () { $basepath = ABSPATH . 'wp-content/plugins/web-optimizer/'; /* We need these */ require($basepath . "controller/admin.php"); require($basepath . "libs/php/view.php"); /* include language file */ $language = strtolower(preg_replace("/[-,;].*/", "", empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? '' : $_SERVER["HTTP_ACCEPT_LANGUAGE"])); if (is_file($basepath . "libs/php/lang/" . $language . ".php")) { require($basepath . "libs/php/lang/" . $language . ".php"); } else { require($basepath . "libs/php/lang/en.php"); } /* Con. the view library */ $view = new compressor_view(); $view->set_paths($_SERVER['DOCUMENT_ROOT']); $view->paths['full']['current_directory'] = $basepath; if (!empty($_POST['Submit'])) { $input = $_POST; } /* Con. the admin controller */ $web_optimizer_admin = new admin(array( 'view' => $view, 'input' => $input, 'basepath' => $basepath, 'skip_render' => 1) ); echo ''; echo '
Web Optimizer

' . __('Settings') . ' Web Optimizer ' . $web_optimizer_admin->version . '

Best with Hyper Cache plugin'; if (!empty($_POST['Submit'])) { /* set configuration options */ $web_optimizer_admin->set_options(); /* write all rules to .htaccess file */ $htaccess = $web_optimizer_admin->write_htaccess(1); /* reload options */ include($basepath . 'config.webo.php'); $web_optimizer_admin->compress_options = $compress_options; } /* get configuration options */ $web_optimizer_admin->get_options(); foreach ($web_optimizer_admin->page_variables as $key => $val) { $$key = $val; } /* unset auto-rewrite option, it is not used for native plugin */ unset($options['auto_rewrite']); /* unset username/password for Web Optimizer, are not used */ unset($compress_options['username']); unset($compress_options['password']); if (empty($premium)) { echo '

' . _WEBO_GENERAL_BUYNOW . '

'; } /* start output */ ob_start(); require($basepath . "view/install_stage_2.php"); $content = ob_get_clean(); $content = str_replace('?page=install_stage_3', '', $content); $content = preg_replace('@

.*?

@', '

', $content); echo $content . "
"; } } ?>