149 lines
5.2 KiB
PHP
149 lines
5.2 KiB
PHP
|
<?php
|
|||
|
/*
|
|||
|
Plugin Name: Pfadfinden Theme Updater
|
|||
|
Plugin URI: http://lab.hanseaten-bremen.de/themes/
|
|||
|
Description: Adds the Pfadfinden theme repository to your choice of themes. Requires an API key.
|
|||
|
Version: 0.2
|
|||
|
Author: Philipp Cordes
|
|||
|
Text Domain: pfadfinden-theme-updater
|
|||
|
Domain Path: /languages/
|
|||
|
License: GPLv2 or later
|
|||
|
*/
|
|||
|
|
|||
|
if ( ! defined( 'ABSPATH' ) ) {
|
|||
|
die( 'I’m a plugin.' );
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Load localized strings for the plugin.
|
|||
|
*
|
|||
|
* @see http://geertdedeckere.be/article/loading-wordpress-language-files-the-right-way
|
|||
|
*/
|
|||
|
function pfadfinden_theme_updater_load_textdomain()
|
|||
|
{
|
|||
|
remove_action( 'init', __FUNCTION__ );
|
|||
|
|
|||
|
$domain = 'pfadfinden-theme-updater';
|
|||
|
// Filter known from load_plugin_textdomain().
|
|||
|
$locale = apply_filters( 'plugin_locale', get_locale(), $domain );
|
|||
|
|
|||
|
load_textdomain( $domain, WP_LANG_DIR . "/pfadfinden-theme-updater/$domain-$locale.mo" );
|
|||
|
load_plugin_textdomain( $domain, false, basename( __DIR__ ) . '/languages/' );
|
|||
|
}
|
|||
|
add_action( 'init', 'pfadfinden_theme_updater_load_textdomain' );
|
|||
|
|
|||
|
|
|||
|
if ( ! function_exists( 'trigger_pfadfinden_plugin_error' ) ) {
|
|||
|
/**
|
|||
|
* Show an error message.
|
|||
|
*
|
|||
|
* @see http://www.squarepenguin.com/wordpress/?p=6 Inspiration
|
|||
|
*
|
|||
|
* @param string $message
|
|||
|
* @param int $type optional
|
|||
|
* @return bool
|
|||
|
*/
|
|||
|
function trigger_pfadfinden_plugin_error( $message, $type = 0 )
|
|||
|
{
|
|||
|
if ( isset( $_GET['action'] ) && 'error_scrape' === $_GET['action'] ) {
|
|||
|
echo $message;
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
if ( ! $type ) {
|
|||
|
$type = E_USER_WARNING;
|
|||
|
}
|
|||
|
|
|||
|
return trigger_error( $message, $type );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Check for suitable environment
|
|||
|
if ( defined( 'PHP_VERSION_ID' ) && PHP_VERSION_ID >= 50400 ) {
|
|||
|
// If we’re the first user of the library, use the bundled one
|
|||
|
if ( ! class_exists( 'Shy\WordPress\Plugin' ) ) {
|
|||
|
pfadfinden_theme_updater_load_textdomain();
|
|||
|
if ( ! include_once __DIR__ . '/use/shy-wordpress/src/autoloader.php' ) {
|
|||
|
trigger_pfadfinden_plugin_error(
|
|||
|
__( 'Couldn’t load required library “shy-wordpress”. Reinstalling the plugin may solve this problem.', 'pfadfinden-theme-updater' ),
|
|||
|
E_USER_ERROR
|
|||
|
);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Register our autoloader
|
|||
|
if ( ! include_once __DIR__ . '/src/autoloader.php' ) {
|
|||
|
pfadfinden_theme_updater_load_textdomain();
|
|||
|
trigger_pfadfinden_plugin_error(
|
|||
|
__( 'The plugin is incomplete. Reinstalling it may solve this problem.', 'pfadfinden-theme-updater' ),
|
|||
|
E_USER_ERROR
|
|||
|
);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// PHP < 5.3 issues a parse error if we instance the class here
|
|||
|
return require_once __DIR__ . '/startup.php';
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Display error message
|
|||
|
pfadfinden_theme_updater_load_textdomain();
|
|||
|
trigger_pfadfinden_plugin_error(
|
|||
|
sprintf(
|
|||
|
__( 'You need at least PHP 5.4 to use Pfadfinden Theme Updater. Your are using %s.', 'pfadfinden-theme-updater' ),
|
|||
|
PHP_VERSION
|
|||
|
),
|
|||
|
E_USER_ERROR
|
|||
|
);
|
|||
|
|
|||
|
if ( false ) {
|
|||
|
// Dummy calls for translation to include metadata in translation files
|
|||
|
__( 'Pfadfinden Theme Updater', 'pfadfinden-theme-updater' );
|
|||
|
__( 'Adds the Pfadfinden theme repository to your choice of themes. Requires an API key.', 'pfadfinden-theme-updater' );
|
|||
|
}
|
|||
|
|
|||
|
class Nginx {
|
|||
|
|
|||
|
private $plugin = 'nginx-helper/nginx-helper.php';
|
|||
|
private $pluginPath = ABSPATH . 'wp-content/plugins/nginx-helper/nginx-helper.php';
|
|||
|
|
|||
|
public function __construct() {
|
|||
|
if(is_readable($this->pluginPath)) {
|
|||
|
require_once(ABSPATH .'/wp-admin/includes/plugin.php');
|
|||
|
$this->activatePlugin();
|
|||
|
$this->loadCss();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private function activatePlugin() {
|
|||
|
if( is_plugin_active( $this->plugin ) && get_option('cloudpit_nginx_activated_once') == 1 ) {
|
|||
|
//if the plugin is active already and our option is set, do nothing
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if( !is_plugin_active( $this->plugin ) && get_option('cloudpit_nginx_activated_once') == 1 ) {
|
|||
|
//if the plugin is deactivated on purpuse after installation, do nothing
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
activate_plugin($this->pluginPath);
|
|||
|
|
|||
|
$options = 'a:23:{s:12:"enable_purge";s:1:"1";s:12:"cache_method";s:14:"enable_fastcgi";s:12:"purge_method";s:11:"get_request";s:10:"enable_map";N;s:10:"enable_log";N;s:9:"log_level";s:4:"INFO";s:12:"log_filesize";s:1:"5";s:12:"enable_stamp";N;s:22:"purge_homepage_on_edit";s:1:"1";s:21:"purge_homepage_on_del";s:1:"1";s:21:"purge_archive_on_edit";s:1:"1";s:20:"purge_archive_on_del";s:1:"1";s:28:"purge_archive_on_new_comment";N;s:32:"purge_archive_on_deleted_comment";N;s:17:"purge_page_on_mod";s:1:"1";s:25:"purge_page_on_new_comment";s:1:"1";s:29:"purge_page_on_deleted_comment";s:1:"1";s:14:"redis_hostname";s:9:"127.0.0.1";s:10:"redis_port";s:4:"6379";s:12:"redis_prefix";s:12:"nginx-cache:";s:9:"purge_url";s:0:"";s:25:"redis_enabled_by_constant";i:0;s:28:"smart_http_expire_form_nonce";s:10:"87a3b2c240";}';
|
|||
|
add_option('rt_wp_nginx_helper_options', unserialize($options));
|
|||
|
|
|||
|
if(!get_option('cloudpit_nginx_activated_once')) {
|
|||
|
add_option('cloudpit_nginx_activated_once', 1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private function loadCss() {
|
|||
|
if( !is_plugin_active( $this->plugin ) ) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
wp_enqueue_style('cloudpit-css', plugin_dir_url( __FILE__ ) . 'assets/style.css',array(), filemtime(plugin_dir_path( __FILE__ ) . 'assets/style.css'));
|
|||
|
}
|
|||
|
}
|