<?php
/*
Plugin Name: Seo Optimizer plugin
Plugin URI: http://athlan.pl/
Description: Plugin creates SEO optimized meta tags as keywords, language shortcut and description, when there are list of posts (e.g. mainpage, category page).
Author: Piotr 'Athlan' Pelczar
Version: 1.0
Author URI: http://athlan.pl/
License: GPL
*/

class SEO_Optimizer
{
  const 
FIELD 'seo_optimizer_';
  
  protected static 
$_aFields = array('keywords''description''language''revisit');
  
  public static function 
Init()
  {
    echo 
'    <meta name="robots" content="index,follow,all" />' PHP_EOL;
    echo 
'    <meta name="Keywords" content="' self::Get('keywords') . '" />' PHP_EOL;
    
    if(!
single_post_title(nullfalse))
      echo 
'    <meta name="Description" content="' self::Get('description') . '" />' PHP_EOL;
    
    if(
is_numeric($iRevisit self::Get('revisit')))
      echo 
'    <meta name="Revisit-after" content="' $iRevisit ' ' . (($iRevisit 1) ? 'days' 'day') . '" />' PHP_EOL;
    
    if((
$sLanguage self::Get('language')))
      echo 
'    <meta http-equiv="Content-Language" content="' $sLanguage '" />' PHP_EOL;
  }
  
  public static function 
Get($sField)
  {
    if(!
in_array($sFieldself::$_aFields))
      throw new 
Exception('Unknown "' $sField '" field.');
    
    return 
get_option(self::FIELD $sField);
  }
  
  public static function 
Settings()
  {
    foreach(
self::$_aFields as $sField)
      if(isset(
$_POST[$sField]) && ($mValue trim($_POST[$sField])))
        
update_option(self::FIELD $sField$mValue);
    
    echo 
'<style type="text/css">.seopt { width: 500px; margin: 50px auto; } .seopt label { display: block; } .seopt input.text { display: block; width: 100%; font: normal 14px Verdana; padding: 3px; }</style><form action="" method="post" class="seopt">';
    
    
$aFields = array
    (
      
'keywords' => 'Site keywords',
      
'description' => 'Site description',
      
'language' => 'Symbol of content language (e.g. <strong>pl</strong> or <strong>en</strong>)',
      
'revisit' => 'Revisit after (number, in days)',
    );
    
    foreach(
$aFields as $sField => $sLabel)
      echo 
'<label>' $sLabel ':<br /><input type="text" class="text" name="' $sField '" value="' self::Get($sField) . '" /></label>';
    
    echo 
'<input class="button" type="submit" value="Save Changes" /></form>';
  }

  public static function 
SettingsMenu()
  {
    
add_options_page(__('SEO Optimizer'), __('SEO Optimizer'), 'import'basename(__FILE__), array('SEO_Optimizer''Settings'));
  }
}

add_action('wp_head', array('SEO_Optimizer''Init'));
add_action('admin_menu', array('SEO_Optimizer''SettingsMenu'));

?>