<?php
/*
 * Plugin Name: d12 Message Blocks
 * Plugin URI: http://kjodle.net/wordpress/d12-message-blocks/
 * Description: Adds shortcodes for message blocks.
 * Version: 2.4
 * Author: Kenneth John Odle
 * Author URI: http://kjodle.net/
 * Text Domain: d12-message-blocks
 * Domain Path: /lang
 * License: GPL3
*/

/*
Icons courtesy of Fat Cow
http://www.fatcow.com/free-icons
*/

defined( 'ABSPATH' ) or die( 'No script kiddies please!' );

// Load our translations
load_plugin_textdomain( 'lang');
function d12mb_tinymce_plugin_add_locale($locales) {
	$locales ['My-Custom-Tinymce-Plugin'] = plugin_dir_path ( __FILE__ ) . 'd12mb-tinymce-plugin-langs.php';
	return $locales;
}
add_filter('mce_external_languages', 'd12mb_tinymce_plugin_add_locale');


// Initialize our array if it's not set


// Retrieve Message Block options from database, register appropriate stylesheet, and enqueue
function d12bs_retrieve() {
	$mbbsoptions = get_option('d12mb_options');
	switch($mbbsoptions['bs']) {
		case "1" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-round-single-thin.css', __FILE__), false, '2.3' );
			break;
		case "2" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-round-single-thick.css', __FILE__), false, '2.3' );
			break;
		case "3" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-round-double.css', __FILE__), false, '2.3' );
			break;
		case "4" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-square-single-thin.css', __FILE__), false, '2.3' );
			break;
		case "5" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-square-single-thick.css', __FILE__), false, '2.3' );
			break;
		case "6" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-square-double.css', __FILE__), false, '2.3' );
			break;
		case "7" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-mw-thick-thin.css', __FILE__), false, '2.3' );
			break;
		case "8" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-mw-thick-thick.css', __FILE__), false, '2.3' );
			break;
		case "9" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-mw-thin-thick.css', __FILE__), false, '2.3' );
			break;
		case "10" :
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-mw-thin-thin.css', __FILE__), false, '2.3' );
			break;
		default:
			wp_enqueue_style( 'd12mb', plugins_url('css/bs-round-single-thick.css', __FILE__), false, '2.3' );
			return;
	}
}
add_action( 'wp_enqueue_scripts', 'd12bs_retrieve' );


// Retrieve Message Block options from database, register appropriate stylesheet, and enqueue
function d12cs_retrieve() {
	$mbcsoptions = get_option('d12mb_options');
	switch($mbcsoptions['cs']) {
		case "1" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-default.css', __FILE__), false, '2.3' );
			break;
		case "2" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-business.css', __FILE__), false, '2.3' );
			break;
		case "3" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-beach.css', __FILE__), false, '2.3' );
			break;
		case "4" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-sol.css', __FILE__), false, '2.3' );
			break;
		case "5" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-aqua.css', __FILE__), false, '2.3' );
			break;
		case "6" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-forest.css', __FILE__), false, '2.3' );
			break;
		case "7" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-winter.css', __FILE__), false, '2.3' );
			break;
		case "8" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-magique.css', __FILE__), false, '2.3' );
			break;
		case "9" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-solstice.css', __FILE__), false, '2.3' );
			break;
		case "10" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-bark.css', __FILE__), false, '2.3' );
			break;
		case "11" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-leaves.css', __FILE__), false, '2.3' );
			break;
		case "12" :
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-bw.css', __FILE__), false, '2.3' );
			break;
		default:
			wp_enqueue_style( 'd12cs', plugins_url('css/cs-default.css', __FILE__), false, '2.3' );
			return;
	}
}
add_action( 'wp_enqueue_scripts', 'd12cs_retrieve' );


/* Enqueue a mobile style sheet if necessary */
function d12_shortcodes_mobile_style() {
	wp_enqueue_style( 'd12mb-mobilestyle', plugins_url( '/css/d12mb-mobile.css', __FILE__), array(), '2.3', 'screen and (max-width: 640px)' );
}
add_action( 'wp_enqueue_scripts', 'd12_shortcodes_mobile_style' );


/* Enqueue our back end style sheet */
function d12_shortcodes_admin_styles() {
	wp_enqueue_style( 'd12mb-screenstyle', plugins_url( '/css/d12mb-admin.css', __FILE__) , array(), '2.3', 'screen' );
}
add_action( 'admin_enqueue_scripts', 'd12_shortcodes_admin_styles' );


/*
* Functions for our shortcodes *
*/

/* Nutshell */
function d12_nutshell( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-nutshell"><div class="d12-sc-text"><p><strong>' .
	__( 'This article in a nutshell:', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-nutshell' , 'd12_nutshell' );

/* Update */
function d12_update( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-update"><div class="d12-sc-text"><p><strong>' .
	__( 'Update Information:', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-update' , 'd12_update' );

/* Attach */
function d12_attach( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-attach"><div class="d12-sc-text"><p><strong>' .
	__( 'Downloads:', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-attach' , 'd12_attach' );

/* Delete */
function d12_delete( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-delete"><div class="d12-sc-text"><p><strong>' .
	__( 'This page has been marked for deletion.', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-delete' , 'd12_delete' );

/* Part of a Series */
function d12_part( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'series' => '',
		), $atts )
	);
	echo '<div class="d12-block d12-part"><div class="d12-sc-text"><p><strong>';
	printf(__( 'This page is part of a series on %s', 'd12-message-blocks' ), $series );
	echo '.</strong></p>' . $content . '</div></div>	';
}
add_shortcode( 'd12-part' , 'd12_part' );

/* Mentions */
function d12_mentions( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-mention"><div class="d12-sc-text"><p><strong>' .
	__( 'This page has been mentioned here:', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-mentions' , 'd12_mentions' );

/* Warning */
function d12_warning( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-warning"><div class="d12-sc-text"><p><strong>' .
	__ ( 'Warning!', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-warning' , 'd12_warning' );

/* Important */
function d12_important( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-important"><div class="d12-sc-text"><p><strong>' .
	__ ( 'Important!', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-important' , 'd12_important' );

/* Notice */
function d12_notice( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-notice"><div class="d12-sc-text"><p><strong>' .
	__( 'Notice!', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-notice' , 'd12_notice' );

/* Error */
function d12_error( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-error"><div class="d12-sc-text"><p><strong>' .
	__( 'Error!', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-error' , 'd12_error' );

/* Caution */
function d12_caution( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-caution"><div class="d12-sc-text"><p><strong>' .
	__( 'Caution!', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-caution' , 'd12_caution' );

/* Archive */
function d12_archive( $atts, $content= NULL) {
	$filestring = '<div class="d12-block d12-archive"><div class="d12-sc-text"><p><strong>' .
	__( 'This page has been archived.', 'd12-message-blocks' )
	. '</strong></p>' . $content . '</div></div>';
	return $filestring;
}
add_shortcode( 'd12-archive' , 'd12_archive' );

/* Support */
function d12_support( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'title' => '',
		), $atts )
	);
	return '<div class="d12-block d12-support">
				<div class="d12-sc-text"><p><strong>' . $title . '</strong></p>' . $content . '</div>
			</div>
			';
}
add_shortcode( 'd12-support' , 'd12_support' );

/* Contact */
function d12_contact( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'title' => '',
		), $atts )
	);
	return '<div class="d12-block d12-contact">
				<div class="d12-sc-text"><p><strong>' . $title . '</strong></p>' . $content . '</div>
			</div>
			';
}
add_shortcode( 'd12-contact' , 'd12_contact' );

/* Global */
function d12_global( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'title' => '',
		), $atts )
	);
	return '<div class="d12-block d12-global">
				<div class="d12-sc-text"><p><strong>' . $title . '</strong></p>' . $content . '</div>
			</div>
			';
}
add_shortcode( 'd12-global' , 'd12_global' );

/* Green */
function d12_green( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'title' => '',
		), $atts )
	);
	return '<div class="d12-block d12-green">
				<div class="d12-sc-text"><p><strong>' . $title . '</strong></p>' . $content . '</div>
			</div>
			';
}
add_shortcode( 'd12-green' , 'd12_green' );

/* Accept */
function d12_accept( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'title' => '',
		), $atts )
	);
	return '<div class="d12-block d12-accept">
				<div class="d12-sc-text"><p><strong>' . $title . '</strong></p>' . $content . '</div>
			</div>
			';
}
add_shortcode( 'd12-accept' , 'd12_accept' );

/* Stats */
function d12_stats( $atts, $content= NULL) {
	extract( shortcode_atts(
		array(
			'title' => '',
		), $atts )
	);
	return '<div class="d12-block d12-stats">
				<div class="d12-sc-text"><p><strong>' . $title . '</strong></p>' . $content . '</div>
			</div>
			';
}
add_shortcode( 'd12-stats' , 'd12_stats' );


/*
* Register a function with TinyMCE
*/
add_action( 'init', 'd12mb_buttons' );
function d12mb_buttons() {
	if ( current_user_can('edit_posts') &&  current_user_can('edit_pages') )
	{
		add_filter( "mce_external_plugins", "d12mb_add_buttons" );
		add_filter( 'mce_buttons_2', 'd12mb_register_buttons' );
	}
}
function d12mb_add_buttons( $plugin_array ) {
	$plugin_array['d12mb'] = plugins_url( 'js/d12mb.js', __FILE__ );
	return $plugin_array;
}
function d12mb_register_buttons( $buttons ) {
	array_push( $buttons, 'd12-mb-button', 'd12-mb-button-2' );
	return $buttons;
}

// Experiment to add shortcode to excerpts
// wordpress.org/support/topic/how-to-enable-shortcodes-in-excerpts?replies=8#post-1843419



/**
 * Add an options page
 *
 * @since d12 Message Blocks 1.1
 */
require plugin_basename( 'plugin-options.php' );