Merge branch 'master' of github.com:kennethreitz/wordpress-skeleton
@@ -0,0 +1,3 @@
|
||||
[submodule "coreylib-wordpress-plugin"]
|
||||
path = /blog/wp-content/plugins/coreylib-wordpress-plugin
|
||||
url = git@github.com:kennethreitz/coreylib-wordpress-plugin.git
|
||||
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: Custom Post Templates
|
||||
Plugin URI: http://wordpress.org/extend/plugins/custom-post-template/
|
||||
Description: Provides a drop-down to select different templates for posts from the post edit screen. The templates are defined similarly to page templates, and will replace single.php for the specified post.
|
||||
Author: Simon Wheatley
|
||||
Version: 1.1
|
||||
Author URI: http://simonwheatley.co.uk/wordpress/
|
||||
*/
|
||||
|
||||
/* Copyright 2008 Simon Wheatley
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
*/
|
||||
|
||||
require_once( dirname (__FILE__) . '/plugin.php' );
|
||||
|
||||
/**
|
||||
*
|
||||
* @package default
|
||||
* @author Simon Wheatley
|
||||
**/
|
||||
class CustomPostTemplates extends CustomPostTemplates_Plugin
|
||||
{
|
||||
private $tpl_meta_key;
|
||||
private $post_ID;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
// Init properties
|
||||
$this->tpl_meta_key = 'custom_post_template';
|
||||
// Init hooks and all that
|
||||
$this->register_plugin ( 'post-templates', __FILE__ );
|
||||
$this->add_meta_box( 'select_post_template', __('Post Template'), 'select_post_template', 'post', 'side', 'default' );
|
||||
$this->add_action( 'save_post' );
|
||||
$this->add_filter( 'single_template', 'filter_single_template' );
|
||||
}
|
||||
|
||||
/*
|
||||
* FILTERS & ACTIONS
|
||||
* *******************
|
||||
*/
|
||||
|
||||
public function select_post_template( $post )
|
||||
{
|
||||
$this->post_ID = $post->ID;
|
||||
|
||||
$template_vars = array();
|
||||
$template_vars[ 'templates' ] = $this->get_post_templates();
|
||||
$template_vars[ 'custom_template' ] = $this->get_custom_post_template();
|
||||
|
||||
// Render the template
|
||||
$this->render_admin ( 'select_post_template', $template_vars );
|
||||
}
|
||||
|
||||
public function save_post( $post_ID )
|
||||
{
|
||||
$action_needed = (bool) @ $_POST[ 'custom_post_template_present' ];
|
||||
if ( ! $action_needed ) return;
|
||||
|
||||
$this->post_ID = $post_ID;
|
||||
|
||||
$template = (string) @ $_POST[ 'custom_post_template' ];
|
||||
$this->set_custom_post_template( $template );
|
||||
}
|
||||
|
||||
public function filter_single_template( $template )
|
||||
{
|
||||
global $wp_query;
|
||||
|
||||
$this->post_ID = $wp_query->post->ID;
|
||||
|
||||
$template_file = $this->get_custom_post_template();
|
||||
$custom_template = TEMPLATEPATH . "/" . $template_file;
|
||||
// Check both the template file and the full path, otherwise you discover that the theme dir
|
||||
// exists (which is not surprising)
|
||||
if ( $template_file && file_exists( $custom_template ) ) return $custom_template;
|
||||
|
||||
return $template;
|
||||
}
|
||||
|
||||
/*
|
||||
* UTILITY METHODS
|
||||
* *****************
|
||||
*/
|
||||
|
||||
protected function set_custom_post_template( $template )
|
||||
{
|
||||
delete_post_meta( $this->post_ID, $this->tpl_meta_key );
|
||||
if ( ! $template || $template == 'default' ) return;
|
||||
|
||||
add_post_meta( $this->post_ID, $this->tpl_meta_key, $template );
|
||||
}
|
||||
|
||||
protected function get_custom_post_template()
|
||||
{
|
||||
$custom_template = get_post_meta( $this->post_ID, $this->tpl_meta_key, true );
|
||||
return $custom_template;
|
||||
}
|
||||
|
||||
protected function get_post_templates()
|
||||
{
|
||||
$themes = get_themes();
|
||||
$theme = get_current_theme();
|
||||
$templates = $themes[ $theme ][ 'Template Files' ];
|
||||
|
||||
$page_templates = array();
|
||||
|
||||
if ( is_array( $templates ) ) {
|
||||
foreach ( $templates as $template ) {
|
||||
// Get the file data and collapse it into a single string
|
||||
$template_data = implode( '', file( $template ) );
|
||||
if ( ! preg_match( '|Template Name Posts:(.*)$|mi', $template_data, $name ) )
|
||||
continue;
|
||||
|
||||
$name = _cleanup_header_comment( $name[ 1 ] );
|
||||
|
||||
$page_templates[ trim( $name ) ] = basename( $template );
|
||||
}
|
||||
}
|
||||
|
||||
return $page_templates;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiate the plugin
|
||||
*
|
||||
* @global
|
||||
**/
|
||||
|
||||
$CustomPostTemplates = new CustomPostTemplates();
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,676 @@
|
||||
<?php
|
||||
|
||||
// ======================================================================================
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
// ======================================================================================
|
||||
// @author John Godley (http://urbangiraffe.com)
|
||||
// @version 0.1.25
|
||||
// @copyright Copyright © 2007 John Godley, All Rights Reserved
|
||||
// ======================================================================================
|
||||
// 0.1.6 - Corrected WP locale functions
|
||||
// 0.1.7 - Add phpdoc comments
|
||||
// 0.1.8 - Support for Admin SSL
|
||||
// 0.1.9 - URL encoding, defer localization until init
|
||||
// 0.1.10 - Better URL encoding
|
||||
// 0.1.11 - Make work in WP 2.0, fix HTTPS issue on IIS
|
||||
// 0.1.12 - Activation/deactivation actions that take into account the directory
|
||||
// 0.1.13 - Add realpath function
|
||||
// 0.1.14 - Add select/checked functions, fix locale loader
|
||||
// 0.1.15 - Remove dependency on prototype
|
||||
// 0.1.16 - Add support for homedir in realpath
|
||||
// 0.1.17 - Added widget class
|
||||
// 0.1.18 - Expand checked function
|
||||
// 0.1.19 - Make url() cope with sites with no trailing slash
|
||||
// 0.1.20 - Change init function to prevent overloading
|
||||
// 0.1.21 - Make widget work for WP 2.1
|
||||
// 0.1.22 - Make select work with option groups, RSS compatability fix
|
||||
// 0.1.23 - Make widget count work better, fix widgets in K2
|
||||
// 0.1.24 - Make realpath better
|
||||
// 0.1.25 - Support for new WP2.6 config location
|
||||
// ======================================================================================
|
||||
|
||||
|
||||
/**
|
||||
* Wraps up several useful functions for WordPress plugins and provides a method to separate
|
||||
* display HTML from PHP code.
|
||||
*
|
||||
* <h4>Display Rendering</h4>
|
||||
* The class uses a similar technique to Ruby On Rails views, whereby the display HTML is kept
|
||||
* in a separate directory and file from the main code. A display is 'rendered' (sent to the browser)
|
||||
* or 'captured' (returned to the calling function).
|
||||
*
|
||||
* Template files are separated into two areas: admin and user. Admin templates are only for display in
|
||||
* the WordPress admin interface, while user templates are typically for display on the site (although neither
|
||||
* of these are enforced). All templates are PHP code, but are referred to without .php extension.
|
||||
*
|
||||
* The reason for this separation is that one golden rule of plugin creation is that someone will always want to change
|
||||
* the formatting and style of your output. Rather than forcing them to modify the plugin (bad), or modify files within
|
||||
* the plugin (equally bad), the class allows user templates to be overridden with files contained within the theme.
|
||||
*
|
||||
* An additional benefit is that it leads to code re-use, especially with regards to Ajax (i.e. your display code can be called from
|
||||
* many locations)
|
||||
*
|
||||
* Template files are located within the 'view' subdirectory of the plugins base (specified when registering the plugin):
|
||||
*
|
||||
* <pre>myplugin/view/admin
|
||||
* myplugin/view/myplugin</pre>
|
||||
*
|
||||
* Admin templates are contained within 'admin', and user templates are contained within a directory of the same name as the plugin.
|
||||
*
|
||||
* User files can be overridden within the theme by creating a similar directory structure:
|
||||
*
|
||||
* <pre>/themes/mytheme/view/myplugin</pre>
|
||||
*
|
||||
* The class will first look in the theme and then defaults to the plugin. A plugin should always provide default templates.
|
||||
*
|
||||
* <h4>Display Parameters</h4>
|
||||
* Also similar to Ruby On Rails, when you display a template you must supply the parameters that the template has access to. This tries
|
||||
* to ensure a very clean separation between code and display. Parameters are supplied as an associative array mapping variable name to variable value.
|
||||
*
|
||||
* For example,
|
||||
*
|
||||
* array ('message' => 'Your data was processed', 'items' => 103);
|
||||
*
|
||||
* <h4>How it works in practice</h4>
|
||||
* You create a template file to display how many items have been processed. You store this in 'view/admin/processed.php':
|
||||
*
|
||||
* <pre><p>You processed <?php echo $items ?> items</p></pre>
|
||||
*
|
||||
* When you want to display this in your plugin you use:
|
||||
*
|
||||
* <pre> $this->render_admin ('processed', array ('items' => 100));
|
||||
*
|
||||
* @package WordPress base library
|
||||
* @author John Godley
|
||||
* @copyright Copyright (C) John Godley
|
||||
**/
|
||||
|
||||
class CustomPostTemplates_Plugin
|
||||
{
|
||||
/**
|
||||
* Plugin name
|
||||
* @var string
|
||||
**/
|
||||
var $plugin_name;
|
||||
|
||||
/**
|
||||
* Plugin 'view' directory
|
||||
* @var string Directory
|
||||
**/
|
||||
var $plugin_base;
|
||||
|
||||
|
||||
/**
|
||||
* Register your plugin with a name and base directory. This <strong>must</strong> be called once.
|
||||
*
|
||||
* @param string $name Name of your plugin. Is used to determine the plugin locale domain
|
||||
* @param string $base Directory containing the plugin's 'view' files.
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function register_plugin ($name, $base)
|
||||
{
|
||||
$this->plugin_base = rtrim (dirname ($base), '/');
|
||||
$this->plugin_name = $name;
|
||||
|
||||
$this->add_action ('init', 'load_locale');
|
||||
}
|
||||
|
||||
function load_locale ()
|
||||
{
|
||||
// Here we manually fudge the plugin locale as WP doesnt allow many options
|
||||
$locale = get_locale ();
|
||||
if ( empty($locale) )
|
||||
$locale = 'en_US';
|
||||
|
||||
$mofile = dirname (__FILE__)."/locale/$locale.mo";
|
||||
load_textdomain ($this->plugin_name, $mofile);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register a WordPress action and map it back to the calling object
|
||||
*
|
||||
* @param string $action Name of the action
|
||||
* @param string $function Function name (optional)
|
||||
* @param int $priority WordPress priority (optional)
|
||||
* @param int $accepted_args Number of arguments the function accepts (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function add_action ($action, $function = '', $priority = 10, $accepted_args = 1)
|
||||
{
|
||||
add_action ($action, array (&$this, $function == '' ? $action : $function), $priority, $accepted_args);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register a WordPress filter and map it back to the calling object
|
||||
*
|
||||
* @param string $action Name of the action
|
||||
* @param string $function Function name (optional)
|
||||
* @param int $priority WordPress priority (optional)
|
||||
* @param int $accepted_args Number of arguments the function accepts (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function add_filter ($filter, $function = '', $priority = 10, $accepted_args = 1)
|
||||
{
|
||||
add_filter ($filter, array (&$this, $function == '' ? $filter : $function), $priority, $accepted_args);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register a WordPress meta box
|
||||
*
|
||||
* @param string $id ID for the box, also used as a function name if none is given
|
||||
* @param string $title Title for the box
|
||||
* @param int $page WordPress priority (optional)
|
||||
* @param string $function Function name (optional)
|
||||
* @param string $context e.g. 'advanced' or 'core' (optional)
|
||||
* @param int $priority Priority, rough effect on the ordering (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function add_meta_box($id, $title, $function = '', $page, $context = 'advanced', $priority = 'default')
|
||||
{
|
||||
require_once( ABSPATH . 'wp-admin/includes/template.php' );
|
||||
add_meta_box( $id, $title, array( &$this, $function == '' ? $id : $function ), $page, $context, $priority );
|
||||
}
|
||||
|
||||
/**
|
||||
* Special activation function that takes into account the plugin directory
|
||||
*
|
||||
* @param string $pluginfile The plugin file location (i.e. __FILE__)
|
||||
* @param string $function Optional function name, or default to 'activate'
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function register_activation ($pluginfile, $function = '')
|
||||
{
|
||||
add_action ('activate_'.basename (dirname ($pluginfile)).'/'.basename ($pluginfile), array (&$this, $function == '' ? 'activate' : $function));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Special deactivation function that takes into account the plugin directory
|
||||
*
|
||||
* @param string $pluginfile The plugin file location (i.e. __FILE__)
|
||||
* @param string $function Optional function name, or default to 'deactivate'
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function register_deactivation ($pluginfile, $function = '')
|
||||
{
|
||||
add_action ('deactivate_'.basename (dirname ($pluginfile)).'/'.basename ($pluginfile), array (&$this, $function == '' ? 'deactivate' : $function));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders an admin section of display code
|
||||
*
|
||||
* @param string $ug_name Name of the admin file (without extension)
|
||||
* @param string $array Array of variable name=>value that is available to the display code (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function render_admin ($ug_name, $ug_vars = array ())
|
||||
{
|
||||
global $plugin_base;
|
||||
foreach ($ug_vars AS $key => $val)
|
||||
$$key = $val;
|
||||
|
||||
if (file_exists ("{$this->plugin_base}/view/admin/$ug_name.php"))
|
||||
include ("{$this->plugin_base}/view/admin/$ug_name.php");
|
||||
else
|
||||
echo "<p>Rendering of admin template {$this->plugin_base}/view/admin/$ug_name.php failed</p>";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders a section of user display code. The code is first checked for in the current theme display directory
|
||||
* before defaulting to the plugin
|
||||
*
|
||||
* @param string $ug_name Name of the admin file (without extension)
|
||||
* @param string $array Array of variable name=>value that is available to the display code (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function render ($ug_name, $ug_vars = array ())
|
||||
{
|
||||
foreach ($ug_vars AS $key => $val)
|
||||
$$key = $val;
|
||||
|
||||
if (file_exists (TEMPLATEPATH."/view/{$this->plugin_name}/$ug_name.php"))
|
||||
include (TEMPLATEPATH."/view/{$this->plugin_name}/$ug_name.php");
|
||||
else if (file_exists ("{$this->plugin_base}/view/{$this->plugin_name}/$ug_name.php"))
|
||||
include ("{$this->plugin_base}/view/{$this->plugin_name}/$ug_name.php");
|
||||
else
|
||||
echo "<p>Rendering of template $ug_name.php failed</p>";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders a section of user display code. The code is first checked for in the current theme display directory
|
||||
* before defaulting to the plugin
|
||||
*
|
||||
* @param string $ug_name Name of the admin file (without extension)
|
||||
* @param string $array Array of variable name=>value that is available to the display code (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function capture ($ug_name, $ug_vars = array ())
|
||||
{
|
||||
ob_start ();
|
||||
$this->render ($ug_name, $ug_vars);
|
||||
$output = ob_get_contents ();
|
||||
ob_end_clean ();
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Captures an admin section of display code
|
||||
*
|
||||
* @param string $ug_name Name of the admin file (without extension)
|
||||
* @param string $array Array of variable name=>value that is available to the display code (optional)
|
||||
* @return string Captured code
|
||||
**/
|
||||
|
||||
function capture_admin ($ug_name, $ug_vars = array ())
|
||||
{
|
||||
ob_start ();
|
||||
$this->render_admin ($ug_name, $ug_vars);
|
||||
$output = ob_get_contents ();
|
||||
ob_end_clean ();
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display a standard error message (using CSS ID 'message' and classes 'fade' and 'error)
|
||||
*
|
||||
* @param string $message Message to display
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function render_error ($message)
|
||||
{
|
||||
?>
|
||||
<div class="fade error" id="message">
|
||||
<p><?php echo $message ?></p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display a standard notice (using CSS ID 'message' and class 'updated').
|
||||
* Note that the notice can be made to automatically disappear, and can be removed
|
||||
* by clicking on it.
|
||||
*
|
||||
* @param string $message Message to display
|
||||
* @param int $timeout Number of seconds to automatically remove the message (optional)
|
||||
* @return void
|
||||
**/
|
||||
|
||||
function render_message ($message, $timeout = 0)
|
||||
{
|
||||
?>
|
||||
<div class="updated" id="message" onclick="this.parentNode.removeChild (this)">
|
||||
<p><?php echo $message ?></p>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the plugin's base directory
|
||||
*
|
||||
* @return string Base directory
|
||||
**/
|
||||
|
||||
function dir ()
|
||||
{
|
||||
return $this->plugin_base;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a URL to the plugin. Useful for specifying JS and CSS files
|
||||
*
|
||||
* For example, <img src="<?php echo $this->url () ?>/myimage.png"/>
|
||||
*
|
||||
* @return string URL
|
||||
**/
|
||||
|
||||
function url ($url = '')
|
||||
{
|
||||
if ($url)
|
||||
return str_replace ('\\', urlencode ('\\'), str_replace ('&amp', '&', str_replace ('&', '&', $url)));
|
||||
else
|
||||
{
|
||||
$root = ABSPATH;
|
||||
if (defined ('WP_PLUGIN_DIR'))
|
||||
$root = WP_PLUGIN_DIR;
|
||||
|
||||
$url = substr ($this->plugin_base, strlen ($this->realpath ($root)));
|
||||
if (DIRECTORY_SEPARATOR != '/')
|
||||
$url = str_replace (DIRECTORY_SEPARATOR, '/', $url);
|
||||
|
||||
if (defined ('WP_PLUGIN_URL'))
|
||||
$url = WP_PLUGIN_URL.'/'.ltrim ($url, '/');
|
||||
else
|
||||
$url = get_bloginfo ('wpurl').'/'.ltrim ($url, '/');
|
||||
|
||||
// Do an SSL check - only works on Apache
|
||||
global $is_IIS;
|
||||
if (isset ($_SERVER['HTTPS']) && !$is_IIS)
|
||||
$url = str_replace ('http://', 'https://', $url);
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs a version update check using an RSS feed. The function ensures that the feed is only
|
||||
* hit once every given number of days, and the data is cached using the WordPress Magpie library
|
||||
*
|
||||
* @param string $url URL of the RSS feed
|
||||
* @param int $days Number of days before next check
|
||||
* @return string Text to display
|
||||
**/
|
||||
|
||||
function version_update ($url, $days = 7)
|
||||
{
|
||||
if (!function_exists ('fetch_rss'))
|
||||
{
|
||||
if (!file_exists (ABSPATH.'wp-includes/rss.php'))
|
||||
return '';
|
||||
include (ABSPATH.'wp-includes/rss.php');
|
||||
}
|
||||
|
||||
$now = time ();
|
||||
|
||||
$checked = get_option ('plugin_urbangiraffe_rss');
|
||||
|
||||
// Use built-in Magpie caching
|
||||
if (function_exists ('fetch_rss') && (!isset ($checked[$this->plugin_name]) || $now > $checked[$this->plugin_name] + ($days * 24 * 60 * 60)))
|
||||
{
|
||||
$rss = fetch_rss ($url);
|
||||
if (count ($rss->items) > 0)
|
||||
{
|
||||
foreach ($rss->items AS $pos => $item)
|
||||
{
|
||||
if (isset ($checked[$this->plugin_name]) && strtotime ($item['pubdate']) < $checked[$this->plugin_name])
|
||||
unset ($rss->items[$pos]);
|
||||
}
|
||||
}
|
||||
|
||||
$checked[$this->plugin_name] = $now;
|
||||
update_option ('plugin_urbangiraffe_rss', $checked);
|
||||
return $rss;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Version of realpath that will work on systems without realpath
|
||||
*
|
||||
* @param string $path The path to canonicalize
|
||||
* @return string Canonicalized path
|
||||
**/
|
||||
|
||||
function realpath ($path)
|
||||
{
|
||||
if (function_exists ('realpath'))
|
||||
return realpath ($path);
|
||||
else if (DIRECTORY_SEPARATOR == '/')
|
||||
{
|
||||
$path = preg_replace ('/^~/', $_SERVER['DOCUMENT_ROOT'], $path);
|
||||
|
||||
// canonicalize
|
||||
$path = explode (DIRECTORY_SEPARATOR, $path);
|
||||
$newpath = array ();
|
||||
for ($i = 0; $i < sizeof ($path); $i++)
|
||||
{
|
||||
if ($path[$i] === '' || $path[$i] === '.')
|
||||
continue;
|
||||
|
||||
if ($path[$i] === '..')
|
||||
{
|
||||
array_pop ($newpath);
|
||||
continue;
|
||||
}
|
||||
|
||||
array_push ($newpath, $path[$i]);
|
||||
}
|
||||
|
||||
$finalpath = DIRECTORY_SEPARATOR.implode (DIRECTORY_SEPARATOR, $newpath);
|
||||
return $finalpath;
|
||||
}
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
|
||||
function checked ($item, $field = '')
|
||||
{
|
||||
if ($field && is_array ($item))
|
||||
{
|
||||
if (isset ($item[$field]) && $item[$field])
|
||||
echo ' checked="checked"';
|
||||
}
|
||||
else if (!empty ($item))
|
||||
echo ' checked="checked"';
|
||||
}
|
||||
|
||||
function select ($items, $default = '')
|
||||
{
|
||||
if (count ($items) > 0)
|
||||
{
|
||||
foreach ($items AS $key => $value)
|
||||
{
|
||||
if (is_array ($value))
|
||||
{
|
||||
echo '<optgroup label="'.$key.'">';
|
||||
foreach ($value AS $sub => $subvalue)
|
||||
echo '<option value="'.$sub.'"'.($sub == $default ? ' selected="selected"' : '').'>'.$subvalue.'</option>';
|
||||
echo '</optgroup>';
|
||||
}
|
||||
else
|
||||
echo '<option value="'.$key.'"'.($key == $default ? ' selected="selected"' : '').'>'.$value.'</option>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists ('pr'))
|
||||
{
|
||||
function pr ($thing)
|
||||
{
|
||||
echo '<pre>';
|
||||
print_r ($thing);
|
||||
echo '</pre>';
|
||||
}
|
||||
}
|
||||
|
||||
if (!class_exists ('Widget_SU'))
|
||||
{
|
||||
class Widget_SU
|
||||
{
|
||||
function Widget_SU ($name, $max = 1, $id = '', $args = '')
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->id = $id;
|
||||
$this->widget_max = $max;
|
||||
$this->args = $args;
|
||||
|
||||
if ($this->id == '')
|
||||
$this->id = strtolower (preg_replace ('/[^A-Za-z]/', '-', $this->name));
|
||||
|
||||
$this->widget_available = 1;
|
||||
if ($this->widget_max > 1)
|
||||
{
|
||||
$this->widget_available = get_option ('widget_available_'.$this->id ());
|
||||
if ($this->widget_available === false)
|
||||
$this->widget_available = 1;
|
||||
}
|
||||
|
||||
add_action ('init', array (&$this, 'initialize'));
|
||||
}
|
||||
|
||||
function initialize ()
|
||||
{
|
||||
// Compatability functions for WP 2.1
|
||||
if (!function_exists ('wp_register_sidebar_widget'))
|
||||
{
|
||||
function wp_register_sidebar_widget ($id, $name, $output_callback, $classname = '')
|
||||
{
|
||||
register_sidebar_widget($name, $output_callback, $classname);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists ('wp_register_widget_control'))
|
||||
{
|
||||
function wp_register_widget_control($name, $control_callback, $width = 300, $height = 200)
|
||||
{
|
||||
register_widget_control($name, $control_callback, $width, $height);
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists ('wp_register_sidebar_widget'))
|
||||
{
|
||||
if ($this->widget_max > 1)
|
||||
{
|
||||
add_action ('sidebar_admin_setup', array (&$this, 'setup_save'));
|
||||
add_action ('sidebar_admin_page', array (&$this, 'setup_display'));
|
||||
}
|
||||
|
||||
$this->load_widgets ();
|
||||
}
|
||||
}
|
||||
|
||||
function load_widgets ()
|
||||
{
|
||||
for ($pos = 1; $pos <= $this->widget_max; $pos++)
|
||||
{
|
||||
wp_register_sidebar_widget ($this->id ($pos), $this->name ($pos), $pos <= $this->widget_available ? array (&$this, 'show_display') : '', $this->args (), $pos);
|
||||
|
||||
if ($this->has_config ())
|
||||
wp_register_widget_control ($this->id ($pos), $this->name ($pos), $pos <= $this->widget_available ? array (&$this, 'show_config') : '', $this->args (), $pos);
|
||||
}
|
||||
}
|
||||
|
||||
function args ()
|
||||
{
|
||||
if ($this->args)
|
||||
return $args;
|
||||
return array ('classname' => '');
|
||||
}
|
||||
|
||||
function name ($pos)
|
||||
{
|
||||
if ($this->widget_available > 1)
|
||||
return $this->name.' ('.$pos.')';
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
function id ($pos = 0)
|
||||
{
|
||||
if ($pos == 0)
|
||||
return $this->id;
|
||||
return $this->id.'-'.$pos;
|
||||
}
|
||||
|
||||
function show_display ($args, $number = 1)
|
||||
{
|
||||
$config = get_option ('widget_config_'.$this->id ($number));
|
||||
if ($config === false)
|
||||
$config = array ();
|
||||
|
||||
$this->load ($config);
|
||||
$this->display ($args);
|
||||
}
|
||||
|
||||
function show_config ($position)
|
||||
{
|
||||
if (isset ($_POST['widget_config_save_'.$this->id ($position)]))
|
||||
{
|
||||
$data = $_POST[$this->id ()];
|
||||
if (count ($data) > 0)
|
||||
{
|
||||
$newdata = array ();
|
||||
foreach ($data AS $item => $values)
|
||||
$newdata[$item] = $values[$position];
|
||||
$data = $newdata;
|
||||
}
|
||||
|
||||
update_option ('widget_config_'.$this->id ($position), $this->save ($data));
|
||||
}
|
||||
|
||||
$options = get_option ('widget_config_'.$this->id ($position));
|
||||
if ($options === false)
|
||||
$options = array ();
|
||||
|
||||
$this->config ($options, $position);
|
||||
echo '<input type="hidden" name="widget_config_save_'.$this->id ($position).'" value="1" />';
|
||||
}
|
||||
|
||||
function has_config () { return false; }
|
||||
function save ($data)
|
||||
{
|
||||
return array ();
|
||||
}
|
||||
|
||||
function setup_save ()
|
||||
{
|
||||
if (isset ($_POST['widget_setup_save_'.$this->id ()]))
|
||||
{
|
||||
$this->widget_available = intval ($_POST['widget_setup_count_'.$this->id ()]);
|
||||
if ($this->widget_available < 1)
|
||||
$this->widget_available = 1;
|
||||
else if ($this->widget_available > $this->widget_max)
|
||||
$this->widget_available = $this->widget_max;
|
||||
|
||||
update_option ('widget_available_'.$this->id (), $this->widget_available);
|
||||
|
||||
$this->load_widgets ();
|
||||
}
|
||||
}
|
||||
|
||||
function config_name ($field, $pos)
|
||||
{
|
||||
return $this->id ().'['.$field.']['.$pos.']';
|
||||
}
|
||||
|
||||
function setup_display ()
|
||||
{
|
||||
?>
|
||||
<div class="wrap">
|
||||
<form method="post">
|
||||
<h2><?php echo $this->name ?></h2>
|
||||
<p style="line-height: 30px;"><?php _e('How many widgets would you like?', $this->id); ?>
|
||||
<select name="widget_setup_count_<?php echo $this->id () ?>" value="<?php echo $options; ?>">
|
||||
<?php for ( $i = 1; $i <= $this->widget_max; ++$i ) : ?>
|
||||
<option value="<?php echo $i ?>"<?php if ($this->widget_available == $i) echo ' selected="selected"' ?>><?php echo $i ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<span class="submit">
|
||||
<input type="submit" name="widget_setup_save_<?php echo $this->id () ?>" value="<?php echo attribute_escape(__('Save', $this->id)); ?>" />
|
||||
</span>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,87 @@
|
||||
=== Custom Post Template ===
|
||||
Contributors: simonwheatley
|
||||
Donate link: http://www.simonwheatley.co.uk/wordpress/
|
||||
Tags: post, template, theme
|
||||
Requires at least: 2.9
|
||||
Tested up to: 2.9.1
|
||||
Stable tag: 1.1
|
||||
|
||||
Provides a drop-down to select different templates for posts from the post edit screen. The templates replace single.php for the specified post.
|
||||
|
||||
== Description ==
|
||||
|
||||
**This plugin requires PHP5 (see Other Notes > PHP4 for more).**
|
||||
|
||||
Provides a drop-down to select different templates for posts from the post edit screen. The templates are defined similarly to page templates, and will replace single.php for the specified post.
|
||||
|
||||
Post templates, as far as this plugin is concerned, are configured similarly to [page templates](http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates) in that they have a particular style of PHP comment at the top of them. Each post template must contain the following, or similar, at the top:
|
||||
<code>
|
||||
<?php
|
||||
/*
|
||||
Template Name Posts: Snarfer
|
||||
*/
|
||||
?>
|
||||
</code>
|
||||
|
||||
Note that *page* templates use "_Template Name:_", whereas *post* templates use "_Template Name Posts:_".
|
||||
|
||||
Plugin initially produced on behalf of [Words & Pictures](http://www.wordsandpics.co.uk/).
|
||||
|
||||
Is this plugin lacking a feature you want? I'm happy to discuss ideas, or to accept offers of feature sponsorship: [contact me](http://www.simonwheatley.co.uk/contact-me/) and we can have a chat.
|
||||
|
||||
Any issues: [contact me](http://www.simonwheatley.co.uk/contact-me/).
|
||||
|
||||
== Installation ==
|
||||
|
||||
The plugin is simple to install:
|
||||
|
||||
1. Download the plugin, it will arrive as a zip file
|
||||
1. Unzip it
|
||||
1. Upload `custom-post-template` directory to your WordPress Plugin directory
|
||||
1. Go to the plugin management page and enable the plugin
|
||||
1. Upload your post template files (see the Description for details on configuring these), and choose them through the new menu
|
||||
1. Give yourself a pat on the back
|
||||
|
||||
== PHP4 ==
|
||||
|
||||
Many of my plugin now require at least PHP5. I know that WordPress officially supports PHP4, but I don't. PHP4 is a mess and makes coding a lot less efficient, and when you're releasing stuff for free these things matter. PHP5 has been out for several years now and is fully production ready, as well as being naturally more secure and performant.
|
||||
|
||||
If you're still running PHP4, I strongly suggest you talk to your hosting company about upgrading your servers. All reputable hosting companies should offer PHP5 as well as PHP4.
|
||||
|
||||
Right, that's it. Grump over. ;)
|
||||
|
||||
== Change Log ==
|
||||
|
||||
= v1.1 2010/01/27 =
|
||||
|
||||
* IDIOTFIX: Managed to revert to an old version somehow, this version should fix that.
|
||||
|
||||
= v1 2010/01/15 (released 2010/01/26) =
|
||||
|
||||
* BUGFIX: Theme templates now come with a complete filepath, so no need to add WP_CONTENT_DIR constant to the beginning.
|
||||
* ENHANCEMENT: Metabox now shows up on the side, under the publish box... where you'd expect.
|
||||
|
||||
= v0.9b 2008/11/26 =
|
||||
|
||||
* Plugin first released
|
||||
|
||||
= v0.91b 2008/11/28 =
|
||||
|
||||
* BUGFIX: The plugin was breaking posts using the "default" template, this is now fixed. Apologies for the inconvenience.
|
||||
* Tested up to WordPress 2.7-beta3-9922
|
||||
|
||||
= v0.91b 2008/11/28 =
|
||||
|
||||
* BUGFIX: The plugin was breaking posts using the "default" template, this is now fixed. Apologies for the inconvenience.
|
||||
* Tested up to WordPress 2.7-beta3-9922* Tested up to WordPress 2.7-beta3-9922
|
||||
|
||||
= v0.92b 2008/12/04 =
|
||||
|
||||
* Minor code tweaks
|
||||
* Blocked direct access to templates
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
= I get an error like this: <code>Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /web/wp-content/plugins/custom-post-template/custom-post-templates.php</code> =
|
||||
|
||||
This is because your server is running PHP4. Please see "Other Notes > PHP4" for more information.
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?>
|
||||
<label class="hidden" for="page_template"><?php _e( 'Post Template' ); ?></label>
|
||||
<input type="hidden" name="custom_post_template_present" value="1" />
|
||||
<select name="custom_post_template" id="custom_post_template">
|
||||
<option
|
||||
value='default'
|
||||
<?php
|
||||
if ( ! $custom_template ) {
|
||||
echo "selected='selected'";
|
||||
}
|
||||
?>><?php _e( 'Default Template' ); ?></option>
|
||||
<?php foreach( $templates AS $name => $filename ) { ?>
|
||||
<option
|
||||
value='<?php echo $filename; ?>'
|
||||
<?php
|
||||
if ( $custom_template == $filename ) {
|
||||
echo "selected='selected'";
|
||||
}
|
||||
?>><?php echo $name; ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
<p><?php _e( 'Some themes have custom templates you can use for certain posts that might have additional features or custom layouts. If so, you’ll see them above.' ); ?></p>
|
||||
@@ -1,4 +1,4 @@
|
||||
PHP Markdown
|
||||
PHP Markdown & Extra
|
||||
Copyright (c) 2004-2009 Michel Fortin
|
||||
<http://michelf.com/>
|
||||
All rights reserved.
|
||||
|
||||
@@ -0,0 +1,786 @@
|
||||
PHP Markdown Extra
|
||||
==================
|
||||
|
||||
Version 1.2.4 - Sat 10 Oct 2009
|
||||
|
||||
by Michel Fortin
|
||||
<http://michelf.com/>
|
||||
|
||||
based on Markdown by John Gruber
|
||||
<http://daringfireball.net/>
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
This is a special version of PHP Markdown with extra features. See
|
||||
<http://michelf.com/projects/php-markdown/extra/> for details.
|
||||
|
||||
Markdown is a text-to-HTML conversion tool for web writers. Markdown
|
||||
allows you to write using an easy-to-read, easy-to-write plain text
|
||||
format, then convert it to structurally valid XHTML (or HTML).
|
||||
|
||||
"Markdown" is two things: a plain text markup syntax, and a software
|
||||
tool, written in Perl, that converts the plain text markup to HTML.
|
||||
PHP Markdown is a port to PHP of the original Markdown program by
|
||||
John Gruber.
|
||||
|
||||
PHP Markdown can work as a plug-in for WordPress and bBlog, as a
|
||||
modifier for the Smarty templating engine, or as a remplacement for
|
||||
textile formatting in any software that support textile.
|
||||
|
||||
Full documentation of Markdown's syntax is available on John's
|
||||
Markdown page: <http://daringfireball.net/projects/markdown/>
|
||||
|
||||
|
||||
Installation and Requirement
|
||||
----------------------------
|
||||
|
||||
PHP Markdown requires PHP version 4.0.5 or later.
|
||||
|
||||
|
||||
### WordPress ###
|
||||
|
||||
PHP Markdown works with [WordPress][wp], version 1.2 or later.
|
||||
|
||||
[wp]: http://wordpress.org/
|
||||
|
||||
1. To use PHP Markdown with WordPress, place the "makrdown.php" file
|
||||
in the "plugins" folder. This folder is located inside
|
||||
"wp-content" at the root of your site:
|
||||
|
||||
(site home)/wp-content/plugins/
|
||||
|
||||
2. Activate the plugin with the administrative interface of
|
||||
WordPress. In the "Plugins" section you will now find Markdown.
|
||||
To activate the plugin, click on the "Activate" button on the
|
||||
same line than Markdown. Your entries will now be formatted by
|
||||
PHP Markdown.
|
||||
|
||||
3. To post Markdown content, you'll first have to disable the
|
||||
"visual" editor in the User section of WordPress.
|
||||
|
||||
You can configure PHP Markdown to not apply to the comments on your
|
||||
WordPress weblog. See the "Configuration" section below.
|
||||
|
||||
It is not possible at this time to apply a different set of
|
||||
filters to different entries. All your entries will be formated by
|
||||
PHP Markdown. This is a limitation of WordPress. If your old entries
|
||||
are written in HTML (as opposed to another formatting syntax, like
|
||||
Textile), they'll probably stay fine after installing Markdown.
|
||||
|
||||
|
||||
### bBlog ###
|
||||
|
||||
PHP Markdown also works with [bBlog][bb].
|
||||
|
||||
[bb]: http://www.bblog.com/
|
||||
|
||||
To use PHP Markdown with bBlog, rename "markdown.php" to
|
||||
"modifier.markdown.php" and place the file in the "bBlog_plugins"
|
||||
folder. This folder is located inside the "bblog" directory of
|
||||
your site, like this:
|
||||
|
||||
(site home)/bblog/bBlog_plugins/modifier.markdown.php
|
||||
|
||||
Select "Markdown" as the "Entry Modifier" when you post a new
|
||||
entry. This setting will only apply to the entry you are editing.
|
||||
|
||||
|
||||
### Replacing Textile in TextPattern ###
|
||||
|
||||
[TextPattern][tp] use [Textile][tx] to format your text. You can
|
||||
replace Textile by Markdown in TextPattern without having to change
|
||||
any code by using the *Texitle Compatibility Mode*. This may work
|
||||
with other software that expect Textile too.
|
||||
|
||||
[tx]: http://www.textism.com/tools/textile/
|
||||
[tp]: http://www.textpattern.com/
|
||||
|
||||
1. Rename the "markdown.php" file to "classTextile.php". This will
|
||||
make PHP Markdown behave as if it was the actual Textile parser.
|
||||
|
||||
2. Replace the "classTextile.php" file TextPattern installed in your
|
||||
web directory. It can be found in the "lib" directory:
|
||||
|
||||
(site home)/textpattern/lib/
|
||||
|
||||
Contrary to Textile, Markdown does not convert quotes to curly ones
|
||||
and does not convert multiple hyphens (`--` and `---`) into en- and
|
||||
em-dashes. If you use PHP Markdown in Textile Compatibility Mode, you
|
||||
can solve this problem by installing the "smartypants.php" file from
|
||||
[PHP SmartyPants][psp] beside the "classTextile.php" file. The Textile
|
||||
Compatibility Mode function will use SmartyPants automatically without
|
||||
further modification.
|
||||
|
||||
[psp]: http://michelf.com/projects/php-smartypants/
|
||||
|
||||
|
||||
### In Your Own Programs ###
|
||||
|
||||
You can use PHP Markdown easily in your current PHP program. Simply
|
||||
include the file and then call the Markdown function on the text you
|
||||
want to convert:
|
||||
|
||||
include_once "markdown.php";
|
||||
$my_html = Markdown($my_text);
|
||||
|
||||
If you wish to use PHP Markdown with another text filter function
|
||||
built to parse HTML, you should filter the text *after* the Markdown
|
||||
function call. This is an example with [PHP SmartyPants][psp]:
|
||||
|
||||
$my_html = SmartyPants(Markdown($my_text));
|
||||
|
||||
|
||||
### With Smarty ###
|
||||
|
||||
If your program use the [Smarty][sm] template engine, PHP Markdown
|
||||
can now be used as a modifier for your templates. Rename "markdown.php"
|
||||
to "modifier.markdown.php" and put it in your smarty plugins folder.
|
||||
|
||||
[sm]: http://smarty.php.net/
|
||||
|
||||
If you are using MovableType 3.1 or later, the Smarty plugin folder is
|
||||
located at `(MT CGI root)/php/extlib/smarty/plugins`. This will allow
|
||||
Markdown to work on dynamic pages.
|
||||
|
||||
|
||||
### Updating Markdown in Other Programs ###
|
||||
|
||||
Many web applications now ship with PHP Markdown, or have plugins to
|
||||
perform the conversion to HTML. You can update PHP Markdown -- or
|
||||
replace it with PHP Markdown Extra -- in many of these programs by
|
||||
swapping the old "markdown.php" file for the new one.
|
||||
|
||||
Here is a short non-exhaustive list of some programs and where they
|
||||
hide the "markdown.php" file.
|
||||
|
||||
| Program | Path to Markdown
|
||||
| ------- | ----------------
|
||||
| [Pivot][] | `(site home)/pivot/includes/markdown/`
|
||||
|
||||
If you're unsure if you can do this with your application, ask the
|
||||
developer, or wait for the developer to update his application or
|
||||
plugin with the new version of PHP Markdown.
|
||||
|
||||
[Pivot]: http://pivotlog.net/
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
By default, PHP Markdown produces XHTML output for tags with empty
|
||||
elements. E.g.:
|
||||
|
||||
<br />
|
||||
|
||||
Markdown can be configured to produce HTML-style tags; e.g.:
|
||||
|
||||
<br>
|
||||
|
||||
To do this, you must edit the "MARKDOWN_EMPTY_ELEMENT_SUFFIX"
|
||||
definition below the "Global default settings" header at the start of
|
||||
the "markdown.php" file.
|
||||
|
||||
|
||||
### WordPress-Specific Settings ###
|
||||
|
||||
By default, the Markdown plugin applies to both posts and comments on
|
||||
your WordPress weblog. To deactivate one or the other, edit the
|
||||
`MARKDOWN_WP_POSTS` or `MARKDOWN_WP_COMMENTS` definitions under the
|
||||
"WordPress settings" header at the start of the "markdown.php" file.
|
||||
|
||||
|
||||
Bugs
|
||||
----
|
||||
|
||||
To file bug reports please send email to:
|
||||
<michel.fortin@michelf.com>
|
||||
|
||||
Please include with your report: (1) the example input; (2) the output you
|
||||
expected; (3) the output PHP Markdown actually produced.
|
||||
|
||||
|
||||
Version History
|
||||
---------------
|
||||
|
||||
1.0.1n (10 Oct 2009):
|
||||
|
||||
* Enabled reference-style shortcut links. Now you can write reference-style
|
||||
links with less brakets:
|
||||
|
||||
This is [my website].
|
||||
|
||||
[my website]: http://example.com/
|
||||
|
||||
This was added in the 1.0.2 betas, but commented out in the 1.0.1 branch,
|
||||
waiting for the feature to be officialized. [But half of the other Markdown
|
||||
implementations are supporting this syntax][half], so it makes sense for
|
||||
compatibility's sake to allow it in PHP Markdown too.
|
||||
|
||||
[half]: http://babelmark.bobtfish.net/?markdown=This+is+%5Bmy+website%5D.%0D%0A%09%09%0D%0A%5Bmy+website%5D%3A+http%3A%2F%2Fexample.com%2F%0D%0A&src=1&dest=2
|
||||
|
||||
* Now accepting many valid email addresses in autolinks that were
|
||||
previously rejected, such as:
|
||||
|
||||
<abc+mailbox/department=shipping@example.com>
|
||||
<!#$%&'*+-/=?^_`.{|}~@example.com>
|
||||
<"abc@def"@example.com>
|
||||
<"Fred Bloggs"@example.com>
|
||||
<jsmith@[192.0.2.1]>
|
||||
|
||||
* Now accepting spaces in URLs for inline and reference-style links. Such
|
||||
URLs need to be surrounded by angle brakets. For instance:
|
||||
|
||||
[link text](<http://url/with space> "optional title")
|
||||
|
||||
[link text][ref]
|
||||
[ref]: <http://url/with space> "optional title"
|
||||
|
||||
There is still a quirk which may prevent this from working correctly with
|
||||
relative URLs in inline-style links however.
|
||||
|
||||
* Fix for adjacent list of different kind where the second list could
|
||||
end as a sublist of the first when not separated by an empty line.
|
||||
|
||||
* Fixed a bug where inline-style links wouldn't be recognized when the link
|
||||
definition contains a line break between the url and the title.
|
||||
|
||||
* Fixed a bug where tags where the name contains an underscore aren't parsed
|
||||
correctly.
|
||||
|
||||
* Fixed some corner-cases mixing underscore-ephasis and asterisk-emphasis.
|
||||
|
||||
|
||||
Extra 1.2.4:
|
||||
|
||||
* Fixed a problem where unterminated tags in indented code blocks could
|
||||
prevent proper escaping of characaters in the code block.
|
||||
|
||||
|
||||
Extra 1.2.3 (31 Dec 2008):
|
||||
|
||||
* In WordPress pages featuring more than one post, footnote id prefixes are
|
||||
now automatically applied with the current post ID to avoid clashes
|
||||
between footnotes belonging to different posts.
|
||||
|
||||
* Fix for a bug introduced in Extra 1.2 where block-level HTML tags where
|
||||
not detected correctly, thus the addition of erroneous `<p>` tags and
|
||||
interpretation of their content as Markdown-formatted instead of
|
||||
HTML-formatted.
|
||||
|
||||
|
||||
Extra 1.2.2 (21 Jun 2008):
|
||||
|
||||
* Fixed a problem where abbreviation definitions, footnote
|
||||
definitions and link references were stripped inside
|
||||
fenced code blocks.
|
||||
|
||||
* Fixed a bug where characters such as `"` in abbreviation
|
||||
definitions weren't properly encoded to HTML entities.
|
||||
|
||||
* Fixed a bug where double quotes `"` were not correctly encoded
|
||||
as HTML entities when used inside a footnote reference id.
|
||||
|
||||
|
||||
1.0.1m (21 Jun 2008):
|
||||
|
||||
* Lists can now have empty items.
|
||||
|
||||
* Rewrote the emphasis and strong emphasis parser to fix some issues
|
||||
with odly placed and overlong markers.
|
||||
|
||||
|
||||
Extra 1.2.1 (27 May 2008):
|
||||
|
||||
* Fixed a problem where Markdown headers and horizontal rules were
|
||||
transformed into their HTML equivalent inside fenced code blocks.
|
||||
|
||||
|
||||
Extra 1.2 (11 May 2008):
|
||||
|
||||
* Added fenced code block syntax which don't require indentation
|
||||
and can start and end with blank lines. A fenced code block
|
||||
starts with a line of consecutive tilde (~) and ends on the
|
||||
next line with the same number of consecutive tilde. Here's an
|
||||
example:
|
||||
|
||||
~~~~~~~~~~~~
|
||||
Hello World!
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* Rewrote parts of the HTML block parser to better accomodate
|
||||
fenced code blocks.
|
||||
|
||||
* Footnotes may now be referenced from within another footnote.
|
||||
|
||||
* Added programatically-settable parser property `predef_attr` for
|
||||
predefined attribute definitions.
|
||||
|
||||
* Fixed an issue where an indented code block preceded by a blank
|
||||
line containing some other whitespace would confuse the HTML
|
||||
block parser into creating an HTML block when it should have
|
||||
been code.
|
||||
|
||||
|
||||
1.0.1l (11 May 2008):
|
||||
|
||||
* Now removing the UTF-8 BOM at the start of a document, if present.
|
||||
|
||||
* Now accepting capitalized URI schemes (such as HTTP:) in automatic
|
||||
links, such as `<HTTP://EXAMPLE.COM/>`.
|
||||
|
||||
* Fixed a problem where `<hr@example.com>` was seen as a horizontal
|
||||
rule instead of an automatic link.
|
||||
|
||||
* Fixed an issue where some characters in Markdown-generated HTML
|
||||
attributes weren't properly escaped with entities.
|
||||
|
||||
* Fix for code blocks as first element of a list item. Previously,
|
||||
this didn't create any code block for item 2:
|
||||
|
||||
* Item 1 (regular paragraph)
|
||||
|
||||
* Item 2 (code block)
|
||||
|
||||
* A code block starting on the second line of a document wasn't seen
|
||||
as a code block. This has been fixed.
|
||||
|
||||
* Added programatically-settable parser properties `predef_urls` and
|
||||
`predef_titles` for predefined URLs and titles for reference-style
|
||||
links. To use this, your PHP code must call the parser this way:
|
||||
|
||||
$parser = new Markdwon_Parser;
|
||||
$parser->predef_urls = array('linkref' => 'http://example.com');
|
||||
$html = $parser->transform($text);
|
||||
|
||||
You can then use the URL as a normal link reference:
|
||||
|
||||
[my link][linkref]
|
||||
[my link][linkRef]
|
||||
|
||||
Reference names in the parser properties *must* be lowercase.
|
||||
Reference names in the Markdown source may have any case.
|
||||
|
||||
* Added `setup` and `teardown` methods which can be used by subclassers
|
||||
as hook points to arrange the state of some parser variables before and
|
||||
after parsing.
|
||||
|
||||
|
||||
Extra 1.1.7 (26 Sep 2007):
|
||||
|
||||
1.0.1k (26 Sep 2007):
|
||||
|
||||
* Fixed a problem introduced in 1.0.1i where three or more identical
|
||||
uppercase letters, as well as a few other symbols, would trigger
|
||||
a horizontal line.
|
||||
|
||||
|
||||
Extra 1.1.6 (4 Sep 2007):
|
||||
|
||||
1.0.1j (4 Sep 2007):
|
||||
|
||||
* Fixed a problem introduced in 1.0.1i where the closing `code` and
|
||||
`pre` tags at the end of a code block were appearing in the wrong
|
||||
order.
|
||||
|
||||
* Overriding configuration settings by defining constants from an
|
||||
external before markdown.php is included is now possible without
|
||||
producing a PHP warning.
|
||||
|
||||
|
||||
Extra 1.1.5 (31 Aug 2007):
|
||||
|
||||
1.0.1i (31 Aug 2007):
|
||||
|
||||
* Fixed a problem where an escaped backslash before a code span
|
||||
would prevent the code span from being created. This should now
|
||||
work as expected:
|
||||
|
||||
Litteral backslash: \\`code span`
|
||||
|
||||
* Overall speed improvements, especially with long documents.
|
||||
|
||||
|
||||
Extra 1.1.4 (3 Aug 2007):
|
||||
|
||||
1.0.1h (3 Aug 2007):
|
||||
|
||||
* Added two properties (`no_markup` and `no_entities`) to the parser
|
||||
allowing HTML tags and entities to be disabled.
|
||||
|
||||
* Fix for a problem introduced in 1.0.1g where posting comments in
|
||||
WordPress would trigger PHP warnings and cause some markup to be
|
||||
incorrectly filtered by the kses filter in WordPress.
|
||||
|
||||
|
||||
Extra 1.1.3 (3 Jul 2007):
|
||||
|
||||
* Fixed a performance problem when parsing some invalid HTML as an HTML
|
||||
block which was resulting in too much recusion and a segmentation fault
|
||||
for long documents.
|
||||
|
||||
* The markdown="" attribute now accepts unquoted values.
|
||||
|
||||
* Fixed an issue where underscore-emphasis didn't work when applied on the
|
||||
first or the last word of an element having the markdown="1" or
|
||||
markdown="span" attribute set unless there was some surrounding whitespace.
|
||||
This didn't work:
|
||||
|
||||
<p markdown="1">_Hello_ _world_</p>
|
||||
|
||||
Now it does produce emphasis as expected.
|
||||
|
||||
* Fixed an issue preventing footnotes from working when the parser's
|
||||
footnote id prefix variable (fn_id_prefix) is not empty.
|
||||
|
||||
* Fixed a performance problem where the regular expression for strong
|
||||
emphasis introduced in version 1.1 could sometime be long to process,
|
||||
give slightly wrong results, and in some circumstances could remove
|
||||
entirely the content for a whole paragraph.
|
||||
|
||||
* Fixed an issue were abbreviations tags could be incorrectly added
|
||||
inside URLs and title of links.
|
||||
|
||||
* Placing footnote markers inside a link, resulting in two nested links, is
|
||||
no longer allowed.
|
||||
|
||||
|
||||
1.0.1g (3 Jul 2007):
|
||||
|
||||
* Fix for PHP 5 compiled without the mbstring module. Previous fix to
|
||||
calculate the length of UTF-8 strings in `detab` when `mb_strlen` is
|
||||
not available was only working with PHP 4.
|
||||
|
||||
* Fixed a problem with WordPress 2.x where full-content posts in RSS feeds
|
||||
were not processed correctly by Markdown.
|
||||
|
||||
* Now supports URLs containing literal parentheses for inline links
|
||||
and images, such as:
|
||||
|
||||
[WIMP](http://en.wikipedia.org/wiki/WIMP_(computing))
|
||||
|
||||
Such parentheses may be arbitrarily nested, but must be
|
||||
balanced. Unbalenced parentheses are allowed however when the URL
|
||||
when escaped or when the URL is enclosed in angle brakets `<>`.
|
||||
|
||||
* Fixed a performance problem where the regular expression for strong
|
||||
emphasis introduced in version 1.0.1d could sometime be long to process,
|
||||
give slightly wrong results, and in some circumstances could remove
|
||||
entirely the content for a whole paragraph.
|
||||
|
||||
* Some change in version 1.0.1d made possible the incorrect nesting of
|
||||
anchors within each other. This is now fixed.
|
||||
|
||||
* Fixed a rare issue where certain MD5 hashes in the content could
|
||||
be changed to their corresponding text. For instance, this:
|
||||
|
||||
The MD5 value for "+" is "26b17225b626fb9238849fd60eabdf60".
|
||||
|
||||
was incorrectly changed to this in previous versions of PHP Markdown:
|
||||
|
||||
<p>The MD5 value for "+" is "+".</p>
|
||||
|
||||
* Now convert escaped characters to their numeric character
|
||||
references equivalent.
|
||||
|
||||
This fix an integration issue with SmartyPants and backslash escapes.
|
||||
Since Markdown and SmartyPants have some escapable characters in common,
|
||||
it was sometime necessary to escape them twice. Previously, two
|
||||
backslashes were sometime required to prevent Markdown from "eating" the
|
||||
backslash before SmartyPants sees it:
|
||||
|
||||
Here are two hyphens: \\--
|
||||
|
||||
Now, only one backslash will do:
|
||||
|
||||
Here are two hyphens: \--
|
||||
|
||||
|
||||
Extra 1.1.2 (7 Feb 2007)
|
||||
|
||||
* Fixed an issue where headers preceded too closely by a paragraph
|
||||
(with no blank line separating them) where put inside the paragraph.
|
||||
|
||||
* Added the missing TextileRestricted method that was added to regular
|
||||
PHP Markdown since 1.0.1d but which I forgot to add to Extra.
|
||||
|
||||
|
||||
1.0.1f (7 Feb 2007):
|
||||
|
||||
* Fixed an issue with WordPress where manually-entered excerpts, but
|
||||
not the auto-generated ones, would contain nested paragraphs.
|
||||
|
||||
* Fixed an issue introduced in 1.0.1d where headers and blockquotes
|
||||
preceded too closely by a paragraph (not separated by a blank line)
|
||||
where incorrectly put inside the paragraph.
|
||||
|
||||
* Fixed an issue introduced in 1.0.1d in the tokenizeHTML method where
|
||||
two consecutive code spans would be merged into one when together they
|
||||
form a valid tag in a multiline paragraph.
|
||||
|
||||
* Fixed an long-prevailing issue where blank lines in code blocks would
|
||||
be doubled when the code block is in a list item.
|
||||
|
||||
This was due to the list processing functions relying on artificially
|
||||
doubled blank lines to correctly determine when list items should
|
||||
contain block-level content. The list item processing model was thus
|
||||
changed to avoid the need for double blank lines.
|
||||
|
||||
* Fixed an issue with `<% asp-style %>` instructions used as inline
|
||||
content where the opening `<` was encoded as `<`.
|
||||
|
||||
* Fixed a parse error occuring when PHP is configured to accept
|
||||
ASP-style delimiters as boundaries for PHP scripts.
|
||||
|
||||
* Fixed a bug introduced in 1.0.1d where underscores in automatic links
|
||||
got swapped with emphasis tags.
|
||||
|
||||
|
||||
Extra 1.1.1 (28 Dec 2006)
|
||||
|
||||
* Fixed a problem where whitespace at the end of the line of an atx-style
|
||||
header would cause tailing `#` to appear as part of the header's content.
|
||||
This was caused by a small error in the regex that handles the definition
|
||||
for the id attribute in PHP Markdown Extra.
|
||||
|
||||
* Fixed a problem where empty abbreviations definitions would eat the
|
||||
following line as its definition.
|
||||
|
||||
* Fixed an issue with calling the Markdown parser repetitivly with text
|
||||
containing footnotes. The footnote hashes were not reinitialized properly.
|
||||
|
||||
|
||||
1.0.1e (28 Dec 2006)
|
||||
|
||||
* Added support for internationalized domain names for email addresses in
|
||||
automatic link. Improved the speed at which email addresses are converted
|
||||
to entities. Thanks to Milian Wolff for his optimisations.
|
||||
|
||||
* Made deterministic the conversion to entities of email addresses in
|
||||
automatic links. This means that a given email address will always be
|
||||
encoded the same way.
|
||||
|
||||
* PHP Markdown will now use its own function to calculate the length of an
|
||||
UTF-8 string in `detab` when `mb_strlen` is not available instead of
|
||||
giving a fatal error.
|
||||
|
||||
|
||||
Extra 1.1 (1 Dec 2006)
|
||||
|
||||
* Added a syntax for footnotes.
|
||||
|
||||
* Added an experimental syntax to define abbreviations.
|
||||
|
||||
|
||||
1.0.1d (1 Dec 2006)
|
||||
|
||||
* Fixed a bug where inline images always had an empty title attribute. The
|
||||
title attribute is now present only when explicitly defined.
|
||||
|
||||
* Link references definitions can now have an empty title, previously if the
|
||||
title was defined but left empty the link definition was ignored. This can
|
||||
be useful if you want an empty title attribute in images to hide the
|
||||
tooltip in Internet Explorer.
|
||||
|
||||
* Made `detab` aware of UTF-8 characters. UTF-8 multi-byte sequences are now
|
||||
correctly mapped to one character instead of the number of bytes.
|
||||
|
||||
* Fixed a small bug with WordPress where WordPress' default filter `wpautop`
|
||||
was not properly deactivated on comment text, resulting in hard line breaks
|
||||
where Markdown do not prescribes them.
|
||||
|
||||
* Added a `TextileRestrited` method to the textile compatibility mode. There
|
||||
is no restriction however, as Markdown does not have a restricted mode at
|
||||
this point. This should make PHP Markdown work again in the latest
|
||||
versions of TextPattern.
|
||||
|
||||
* Converted PHP Markdown to a object-oriented design.
|
||||
|
||||
* Changed span and block gamut methods so that they loop over a
|
||||
customizable list of methods. This makes subclassing the parser a more
|
||||
interesting option for creating syntax extensions.
|
||||
|
||||
* Also added a "document" gamut loop which can be used to hook document-level
|
||||
methods (like for striping link definitions).
|
||||
|
||||
* Changed all methods which were inserting HTML code so that they now return
|
||||
a hashed representation of the code. New methods `hashSpan` and `hashBlock`
|
||||
are used to hash respectivly span- and block-level generated content. This
|
||||
has a couple of significant effects:
|
||||
|
||||
1. It prevents invalid nesting of Markdown-generated elements which
|
||||
could occur occuring with constructs like `*something [link*][1]`.
|
||||
2. It prevents problems occuring with deeply nested lists on which
|
||||
paragraphs were ill-formed.
|
||||
3. It removes the need to call `hashHTMLBlocks` twice during the the
|
||||
block gamut.
|
||||
|
||||
Hashes are turned back to HTML prior output.
|
||||
|
||||
* Made the block-level HTML parser smarter using a specially-crafted regular
|
||||
expression capable of handling nested tags.
|
||||
|
||||
* Solved backtick issues in tag attributes by rewriting the HTML tokenizer to
|
||||
be aware of code spans. All these lines should work correctly now:
|
||||
|
||||
<span attr='`ticks`'>bar</span>
|
||||
<span attr='``double ticks``'>bar</span>
|
||||
`<test a="` content of attribute `">`
|
||||
|
||||
* Changed the parsing of HTML comments to match simply from `<!--` to `-->`
|
||||
instead using of the more complicated SGML-style rule with paired `--`.
|
||||
This is how most browsers parse comments and how XML defines them too.
|
||||
|
||||
* `<address>` has been added to the list of block-level elements and is now
|
||||
treated as an HTML block instead of being wrapped within paragraph tags.
|
||||
|
||||
* Now only trim trailing newlines from code blocks, instead of trimming
|
||||
all trailing whitespace characters.
|
||||
|
||||
* Fixed bug where this:
|
||||
|
||||
[text](http://m.com "title" )
|
||||
|
||||
wasn't working as expected, because the parser wasn't allowing for spaces
|
||||
before the closing paren.
|
||||
|
||||
* Filthy hack to support markdown='1' in div tags.
|
||||
|
||||
* _DoAutoLinks() now supports the 'dict://' URL scheme.
|
||||
|
||||
* PHP- and ASP-style processor instructions are now protected as
|
||||
raw HTML blocks.
|
||||
|
||||
<? ... ?>
|
||||
<% ... %>
|
||||
|
||||
* Fix for escaped backticks still triggering code spans:
|
||||
|
||||
There are two raw backticks here: \` and here: \`, not a code span
|
||||
|
||||
|
||||
Extra 1.0 - 5 September 2005
|
||||
|
||||
* Added support for setting the id attributes for headers like this:
|
||||
|
||||
Header 1 {#header1}
|
||||
========
|
||||
|
||||
## Header 2 ## {#header2}
|
||||
|
||||
This only work only for headers for now.
|
||||
|
||||
* Tables will now work correctly as the first element of a definition
|
||||
list. For example, this input:
|
||||
|
||||
Term
|
||||
|
||||
: Header | Header
|
||||
------- | -------
|
||||
Cell | Cell
|
||||
|
||||
used to produce no definition list and a table where the first
|
||||
header was named ": Header". This is now fixed.
|
||||
|
||||
* Fix for a problem where a paragraph following a table was not
|
||||
placed between `<p>` tags.
|
||||
|
||||
|
||||
Extra 1.0b4 - 1 August 2005
|
||||
|
||||
* Fixed some issues where whitespace around HTML blocks were trigging
|
||||
empty paragraph tags.
|
||||
|
||||
* Fixed an HTML block parsing issue that would cause a block element
|
||||
following a code span or block with unmatched opening bracket to be
|
||||
placed inside a paragraph.
|
||||
|
||||
* Removed some PHP notices that could appear when parsing definition
|
||||
lists and tables with PHP notice reporting flag set.
|
||||
|
||||
|
||||
Extra 1.0b3 - 29 July 2005
|
||||
|
||||
* Definition lists now require a blank line before each term. Solves
|
||||
an ambiguity where the last line of lazy-indented definitions could
|
||||
be mistaken by PHP Markdown as a new term in the list.
|
||||
|
||||
* Definition lists now support multiple terms per definition.
|
||||
|
||||
* Some special tags were replaced in the output by their md5 hash
|
||||
key. Things such as this now work as expected:
|
||||
|
||||
## Header <?php echo $number ?> ##
|
||||
|
||||
|
||||
Extra 1.0b2 - 26 July 2005
|
||||
|
||||
* Definition lists can now take two or more definitions for one term.
|
||||
This should have been the case before, but a bug prevented this
|
||||
from working right.
|
||||
|
||||
* Fixed a problem where single column table with a pipe only at the
|
||||
end where not parsed as table. Here is such a table:
|
||||
|
||||
| header
|
||||
| ------
|
||||
| cell
|
||||
|
||||
* Fixed problems with empty cells in the first column of a table with
|
||||
no leading pipe, like this one:
|
||||
|
||||
header | header
|
||||
------ | ------
|
||||
| cell
|
||||
|
||||
* Code spans containing pipes did not within a table. This is now
|
||||
fixed by parsing code spans before splitting rows into cells.
|
||||
|
||||
* Added the pipe character to the backlash escape character lists.
|
||||
|
||||
Extra 1.0b1 (25 Jun 2005)
|
||||
|
||||
* First public release of PHP Markdown Extra.
|
||||
|
||||
|
||||
Copyright and License
|
||||
---------------------
|
||||
|
||||
PHP Markdown & Extra
|
||||
Copyright (c) 2004-2009 Michel Fortin
|
||||
<http://michelf.com/>
|
||||
All rights reserved.
|
||||
|
||||
Based on Markdown
|
||||
Copyright (c) 2003-2005 John Gruber
|
||||
<http://daringfireball.net/>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
* Neither the name "Markdown" nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
This software is provided by the copyright holders and contributors "as
|
||||
is" and any express or implied warranties, including, but not limited
|
||||
to, the implied warranties of merchantability and fitness for a
|
||||
particular purpose are disclaimed. In no event shall the copyright owner
|
||||
or contributors be liable for any direct, indirect, incidental, special,
|
||||
exemplary, or consequential damages (including, but not limited to,
|
||||
procurement of substitute goods or services; loss of use, data, or
|
||||
profits; or business interruption) however caused and on any theory of
|
||||
liability, whether in contract, strict liability, or tort (including
|
||||
negligence or otherwise) arising in any way out of the use of this
|
||||
software, even if advised of the possibility of such damage.
|
||||
@@ -0,0 +1,9 @@
|
||||
MORE-FIELDS CHANGELOG
|
||||
|
||||
More Fields 1.4Beta1:
|
||||
copy wp-admin/js/post.js to wp-content/plugins/more-fields/post.js
|
||||
wp-content/plugins/more-fields/post.js: Comment out line 234
|
||||
wp-content/plugins/more-fields/post.js: Comment out line 235
|
||||
wp-content/plugins/more-fields/post.js: Comment out line 236
|
||||
wp-content/plugins/more-fields/post.js: Comment out line 237
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
update_option('more_fields_boxes', $boxes);
|
||||
|
||||
// Generate the rewrite rules for this field
|
||||
$mf0->rewrite_rules();
|
||||
$mf0->generate_rewrite_rules();
|
||||
$mf0->flush_rewrite_rules();
|
||||
|
||||
$mfo->condition(false, __('Field was saved!', 'more-fields'), 'notification');
|
||||
|
||||
@@ -90,7 +90,7 @@ class more_fields_object {
|
||||
add_filter('query_vars', array(&$this, 'query_vars'));
|
||||
add_filter('posts_join', array(&$this, 'query_join'));
|
||||
add_filter('posts_where', array(&$this, 'query_where'));
|
||||
// add_filter('init', array(&$this, 'rewrite_rules'));
|
||||
//add_filter('init', array(&$this, 'flush_rewrite_rules'));
|
||||
add_filter('generate_rewrite_rules', array(&$this, 'generate_rewrite_rules'));
|
||||
|
||||
// add_action('admin_head', array(&$this, 'admin_options_head'));
|
||||
@@ -134,7 +134,8 @@ class more_fields_object {
|
||||
|
||||
}
|
||||
function wp_default_scripts(&$scripts) {
|
||||
$src = get_option('home') . '/wp-content/plugins/more-fields/post.js';
|
||||
global $wp_version;
|
||||
$src = get_option('home') . '/wp-content/plugins/more-fields/post-' . $wp_version . '.js';
|
||||
$scripts->registered['post']->src = $src;
|
||||
}
|
||||
function return_unmodified ($value) {
|
||||
@@ -729,11 +730,11 @@ class more_fields_object {
|
||||
|
||||
function flush_rewrite_rules() {
|
||||
global $wp_rewrite, $wp_query, $wp;
|
||||
$wp_rewrite->flush_rules();
|
||||
$wp_query->query_vars[] = 'mf_key';
|
||||
$wp_query->query_vars[] = 'mf_value';
|
||||
$wp->add_query_var('mf_key');
|
||||
$wp->add_query_var('mf_value');
|
||||
$wp_rewrite->flush_rules();
|
||||
$wp_query->query_vars[] = 'mf_key';
|
||||
$wp_query->query_vars[] = 'mf_value';
|
||||
// $wp->add_query_var('mf_key');
|
||||
// $wp->add_query_var('mf_value');
|
||||
}
|
||||
|
||||
|
||||
@@ -753,7 +754,7 @@ class more_fields_object {
|
||||
function generate_rewrite_rules () {
|
||||
global $wp_taxonomies, $wp_rewrite, $wp;
|
||||
$boxes = $this->get_boxes();
|
||||
|
||||
$rules = array();
|
||||
foreach ($boxes as $box) {
|
||||
|
||||
foreach ((array) $box['field'] as $field) {
|
||||
@@ -762,15 +763,11 @@ class more_fields_object {
|
||||
$slug = substr($field['slug'], 1, strlen($field['slug']));
|
||||
if (!$slug) continue;
|
||||
$key = $field['key'];
|
||||
|
||||
//add_rewrite_rule("$slug/(.+)", "index.php?mf_key=$key&mf_value=" . $wp_rewrite->preg_index(1));
|
||||
$new_rule = array("$slug/(.+)" => "index.php?mf_key=$key&mf_value=" . $wp_rewrite->preg_index(1));
|
||||
$wp_rewrite->rules = $new_rule + $wp_rewrite->rules;
|
||||
$wp_rewrite->add_rule("$slug/(.+)", "index.php?mf_key=$key&mf_value=\$matches[1]", "top");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $wp_rewrite;
|
||||
return $wp_rewrite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: More Fields
|
||||
Version: 1.3
|
||||
Version: 1.4Beta3
|
||||
Author URI: http://henrikmelin.se/
|
||||
Plugin URI: http://labs.dagensskiva.com/plugins/more-fields/
|
||||
Description: Adds any number of extra fields, in any number of additional boxes in the admin.;
|
||||
|
||||
@@ -0,0 +1,490 @@
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
function new_tag_remove_tag() {
|
||||
var id = jQuery( this ).attr( 'id' ), num = id.split('-check-num-')[1], taxbox = jQuery(this).parents('.tagsdiv'), current_tags = taxbox.find( '.the-tags' ).val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
jQuery.each( current_tags, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
taxbox.find('.the-tags').val( new_tags.join(',').replace(/\s*,+\s*/, ',').replace(/,+/, ',').replace(/,+\s+,+/, ',').replace(/,+\s*$/, '').replace(/^\s*,+/, '') );
|
||||
|
||||
tag_update_quickclicks(taxbox);
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_update_quickclicks(taxbox) {
|
||||
if ( jQuery(taxbox).find('.the-tags').length == 0 )
|
||||
return;
|
||||
|
||||
var current_tags = jQuery(taxbox).find('.the-tags').val().split(',');
|
||||
jQuery(taxbox).find('.tagchecklist').empty();
|
||||
shown = false;
|
||||
|
||||
jQuery.each( current_tags, function( key, val ) {
|
||||
var txt, button_id;
|
||||
|
||||
val = jQuery.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = jQuery(taxbox).attr('id') + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
jQuery(taxbox).find('.tagchecklist').append(txt);
|
||||
jQuery( '#' + button_id ).click( new_tag_remove_tag );
|
||||
}
|
||||
});
|
||||
if ( shown )
|
||||
jQuery(taxbox).find('.tagchecklist').prepend('<strong>'+postL10n.tagsUsed+'</strong><br />');
|
||||
}
|
||||
|
||||
function tag_flush_to_text(id, a) {
|
||||
a = a || false;
|
||||
var taxbox, text, tags, newtags;
|
||||
|
||||
taxbox = jQuery('#'+id);
|
||||
text = a ? jQuery(a).text() : taxbox.find('input.newtag').val();
|
||||
|
||||
// is the input box empty (i.e. showing the 'Add new tag' tip)?
|
||||
if ( taxbox.find('input.newtag').hasClass('form-input-tip') && ! a )
|
||||
return false;
|
||||
|
||||
tags = taxbox.find('.the-tags').val();
|
||||
newtags = tags ? tags + ',' + text : text;
|
||||
|
||||
// massage
|
||||
newtags = newtags.replace(/\s+,+\s*/g, ',').replace(/,+/g, ',').replace(/,+\s+,+/g, ',').replace(/,+\s*$/g, '').replace(/^\s*,+/g, '');
|
||||
newtags = array_unique_noempty(newtags.split(',')).join(',');
|
||||
taxbox.find('.the-tags').val(newtags);
|
||||
tag_update_quickclicks(taxbox);
|
||||
|
||||
if ( ! a )
|
||||
taxbox.find('input.newtag').val('').focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_save_on_publish() {
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
if ( !jQuery(this).find('input.newtag').hasClass('form-input-tip') )
|
||||
tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));
|
||||
} );
|
||||
}
|
||||
|
||||
function tag_press_key( e ) {
|
||||
if ( 13 == e.which ) {
|
||||
tag_flush_to_text(jQuery(e.target).parents('.tagsdiv').attr('id'));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function tag_init() {
|
||||
|
||||
jQuery('.ajaxtag').show();
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
tag_update_quickclicks(this);
|
||||
} );
|
||||
|
||||
// add the quickadd form
|
||||
jQuery('.ajaxtag input.tagadd').click(function(){tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));});
|
||||
jQuery('.ajaxtag input.newtag').focus(function() {
|
||||
if ( !this.cleared ) {
|
||||
this.cleared = true;
|
||||
jQuery(this).val( '' ).removeClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('.ajaxtag input.newtag').blur(function() {
|
||||
if ( this.value == '' ) {
|
||||
this.cleared = false;
|
||||
jQuery(this).val( postL10n.addTag ).addClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
// auto-save tags on post save/publish
|
||||
jQuery('#publish').click( tag_save_on_publish );
|
||||
jQuery('#save-post').click( tag_save_on_publish );
|
||||
|
||||
// catch the enter key
|
||||
jQuery('.ajaxtag input.newtag').keypress( tag_press_key );
|
||||
}
|
||||
|
||||
var commentsBox, tagCloud;
|
||||
(function($){
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="5">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
tagCloud = {
|
||||
init : function() {
|
||||
$('.tagcloud-link').click(function(){
|
||||
tagCloud.get($(this).attr('id'));
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
var id = $(this).parents('p').attr('id');
|
||||
tag_flush_to_text(id.substr(id.indexOf('-')+1), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){tagCloud.init();});
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var noSyncChecks = false, syncChecks, catAddAfter, stamp = $('#timestamp').html(), visibility = $('#post-visibility-display').html(), sticky = '';
|
||||
|
||||
// postboxes
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
|
||||
// prepare the tag UI
|
||||
tag_init();
|
||||
|
||||
$('#title').blur( function() {
|
||||
if ( ($("#post_ID").val() > 0) || ($("#title").val().length == 0) )
|
||||
return;
|
||||
|
||||
if ( typeof(autosave) != 'undefined' )
|
||||
autosave();
|
||||
});
|
||||
|
||||
// auto-suggest stuff
|
||||
$('.newtag').each(function(){
|
||||
var tax = $(this).parents('div.tagsdiv').attr('id');
|
||||
$(this).suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// category tabs
|
||||
$('#category-tabs a').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('#category-tabs a[href="#categories-pop"]').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click(function(){$('#newcat').focus();});
|
||||
|
||||
syncChecks = function() {
|
||||
if ( noSyncChecks )
|
||||
return;
|
||||
noSyncChecks = true;
|
||||
var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
noSyncChecks = false;
|
||||
};
|
||||
|
||||
popularCats = $('#categorychecklist-pop :checkbox').map( function() { return parseInt(jQuery(this).val(), 10); } ).get().join(',');
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&popular_ids=' + popularCats + '&' + jQuery( '#categorychecklist :checked' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var newCatParent = jQuery('#newcat_parent'), newCatParentOption = newCatParent.find( 'option[value="-1"]' );
|
||||
$(s.what + ' response_data', r).each( function() {
|
||||
var t = $($(this).text());
|
||||
t.find( 'label' ).each( function() {
|
||||
var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name, o;
|
||||
$('#' + id).change( syncChecks ).change();
|
||||
if ( newCatParent.find( 'option[value="' + val + '"]' ).size() )
|
||||
return;
|
||||
name = $.trim( th.text() );
|
||||
o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name );
|
||||
newCatParent.prepend( o );
|
||||
} );
|
||||
newCatParentOption.attr( 'selected', 'selected' );
|
||||
} );
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList( {
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
} );
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('#category-tabs a[href="#categories-all"]').click();
|
||||
return false;
|
||||
} );
|
||||
|
||||
$('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(), sticky = '';
|
||||
|
||||
function updateVisibility() {
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn;
|
||||
|
||||
attemptedDate = new Date( $('#aa').val(), $('#mm').val() -1, $('#jj').val(), $('#hh').val(), $('#mn').val());
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val());
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val());
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
$('#publish').val( postL10n.update );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$( '#mm option[value=' + $('#mm').val() + ']' ).text() + ' ' +
|
||||
$('#jj').val() + ', ' +
|
||||
$('#aa').val() + ' @ ' +
|
||||
$('#hh').val() + ':' +
|
||||
$('#mn').val() + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('#post-visibility-select input:radio:checked').val() == 'private' ) {
|
||||
$('#publish').val( postL10n.update );
|
||||
if ( $('#post_status option[value=publish]').length == 0 ) {
|
||||
$('#post_status').append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
}
|
||||
$('#post_status option[value=publish]').html( postL10n.privatelyPublished );
|
||||
$('#post_status option[value=publish]').attr('selected', true);
|
||||
$('.edit-post-status').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( $('#post_status option[value=publish]').length != 0 ) {
|
||||
$('#post_status option[value=publish]').remove();
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
$('#post_status option[value=publish]').html( postL10n.published );
|
||||
}
|
||||
$('.edit-post-status').show();
|
||||
}
|
||||
$('#post-status-display').html($('#post_status :selected').text());
|
||||
if ( $('#post_status :selected').val() == 'private' || $('#post_status :selected').val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('#post_status :selected').val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.edit-visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$('.edit-visibility').hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html(
|
||||
postL10n[$('#post-visibility-select input:radio:checked').val() + sticky]
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-visibility-select input:radio').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('.edit-timestamp').click(function () {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Custom Fields
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,490 @@
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
function new_tag_remove_tag() {
|
||||
var id = jQuery( this ).attr( 'id' ), num = id.split('-check-num-')[1], taxbox = jQuery(this).parents('.tagsdiv'), current_tags = taxbox.find( '.the-tags' ).val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
jQuery.each( current_tags, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
taxbox.find('.the-tags').val( new_tags.join(',').replace(/\s*,+\s*/, ',').replace(/,+/, ',').replace(/,+\s+,+/, ',').replace(/,+\s*$/, '').replace(/^\s*,+/, '') );
|
||||
|
||||
tag_update_quickclicks(taxbox);
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_update_quickclicks(taxbox) {
|
||||
if ( jQuery(taxbox).find('.the-tags').length == 0 )
|
||||
return;
|
||||
|
||||
var current_tags = jQuery(taxbox).find('.the-tags').val().split(',');
|
||||
jQuery(taxbox).find('.tagchecklist').empty();
|
||||
shown = false;
|
||||
|
||||
jQuery.each( current_tags, function( key, val ) {
|
||||
var txt, button_id;
|
||||
|
||||
val = jQuery.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = jQuery(taxbox).attr('id') + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
jQuery(taxbox).find('.tagchecklist').append(txt);
|
||||
jQuery( '#' + button_id ).click( new_tag_remove_tag );
|
||||
}
|
||||
});
|
||||
if ( shown )
|
||||
jQuery(taxbox).find('.tagchecklist').prepend('<strong>'+postL10n.tagsUsed+'</strong><br />');
|
||||
}
|
||||
|
||||
function tag_flush_to_text(id, a) {
|
||||
a = a || false;
|
||||
var taxbox, text, tags, newtags;
|
||||
|
||||
taxbox = jQuery('#'+id);
|
||||
text = a ? jQuery(a).text() : taxbox.find('input.newtag').val();
|
||||
|
||||
// is the input box empty (i.e. showing the 'Add new tag' tip)?
|
||||
if ( taxbox.find('input.newtag').hasClass('form-input-tip') && ! a )
|
||||
return false;
|
||||
|
||||
tags = taxbox.find('.the-tags').val();
|
||||
newtags = tags ? tags + ',' + text : text;
|
||||
|
||||
// massage
|
||||
newtags = newtags.replace(/\s+,+\s*/g, ',').replace(/,+/g, ',').replace(/,+\s+,+/g, ',').replace(/,+\s*$/g, '').replace(/^\s*,+/g, '');
|
||||
newtags = array_unique_noempty(newtags.split(',')).join(',');
|
||||
taxbox.find('.the-tags').val(newtags);
|
||||
tag_update_quickclicks(taxbox);
|
||||
|
||||
if ( ! a )
|
||||
taxbox.find('input.newtag').val('').focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_save_on_publish() {
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
if ( !jQuery(this).find('input.newtag').hasClass('form-input-tip') )
|
||||
tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));
|
||||
} );
|
||||
}
|
||||
|
||||
function tag_press_key( e ) {
|
||||
if ( 13 == e.which ) {
|
||||
tag_flush_to_text(jQuery(e.target).parents('.tagsdiv').attr('id'));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function tag_init() {
|
||||
|
||||
jQuery('.ajaxtag').show();
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
tag_update_quickclicks(this);
|
||||
} );
|
||||
|
||||
// add the quickadd form
|
||||
jQuery('.ajaxtag input.tagadd').click(function(){tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));});
|
||||
jQuery('.ajaxtag input.newtag').focus(function() {
|
||||
if ( !this.cleared ) {
|
||||
this.cleared = true;
|
||||
jQuery(this).val( '' ).removeClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('.ajaxtag input.newtag').blur(function() {
|
||||
if ( this.value == '' ) {
|
||||
this.cleared = false;
|
||||
jQuery(this).val( postL10n.addTag ).addClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
// auto-save tags on post save/publish
|
||||
jQuery('#publish').click( tag_save_on_publish );
|
||||
jQuery('#save-post').click( tag_save_on_publish );
|
||||
|
||||
// catch the enter key
|
||||
jQuery('.ajaxtag input.newtag').keypress( tag_press_key );
|
||||
}
|
||||
|
||||
var commentsBox, tagCloud;
|
||||
(function($){
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="5">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
tagCloud = {
|
||||
init : function() {
|
||||
$('.tagcloud-link').click(function(){
|
||||
tagCloud.get($(this).attr('id'));
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
var id = $(this).parents('p').attr('id');
|
||||
tag_flush_to_text(id.substr(id.indexOf('-')+1), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){tagCloud.init();});
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var noSyncChecks = false, syncChecks, catAddAfter, stamp = $('#timestamp').html(), visibility = $('#post-visibility-display').html(), sticky = '';
|
||||
|
||||
// postboxes
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
|
||||
// prepare the tag UI
|
||||
tag_init();
|
||||
|
||||
$('#title').blur( function() {
|
||||
if ( ($("#post_ID").val() > 0) || ($("#title").val().length == 0) )
|
||||
return;
|
||||
|
||||
if ( typeof(autosave) != 'undefined' )
|
||||
autosave();
|
||||
});
|
||||
|
||||
// auto-suggest stuff
|
||||
$('.newtag').each(function(){
|
||||
var tax = $(this).parents('div.tagsdiv').attr('id');
|
||||
$(this).suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// category tabs
|
||||
$('#category-tabs a').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('#category-tabs a[href="#categories-pop"]').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click(function(){$('#newcat').focus();});
|
||||
|
||||
syncChecks = function() {
|
||||
if ( noSyncChecks )
|
||||
return;
|
||||
noSyncChecks = true;
|
||||
var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
noSyncChecks = false;
|
||||
};
|
||||
|
||||
popularCats = $('#categorychecklist-pop :checkbox').map( function() { return parseInt(jQuery(this).val(), 10); } ).get().join(',');
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&popular_ids=' + popularCats + '&' + jQuery( '#categorychecklist :checked' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var newCatParent = jQuery('#newcat_parent'), newCatParentOption = newCatParent.find( 'option[value="-1"]' );
|
||||
$(s.what + ' response_data', r).each( function() {
|
||||
var t = $($(this).text());
|
||||
t.find( 'label' ).each( function() {
|
||||
var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name, o;
|
||||
$('#' + id).change( syncChecks ).change();
|
||||
if ( newCatParent.find( 'option[value="' + val + '"]' ).size() )
|
||||
return;
|
||||
name = $.trim( th.text() );
|
||||
o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name );
|
||||
newCatParent.prepend( o );
|
||||
} );
|
||||
newCatParentOption.attr( 'selected', 'selected' );
|
||||
} );
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList( {
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
} );
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('#category-tabs a[href="#categories-all"]').click();
|
||||
return false;
|
||||
} );
|
||||
|
||||
$('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(), sticky = '';
|
||||
|
||||
function updateVisibility() {
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn;
|
||||
|
||||
attemptedDate = new Date( $('#aa').val(), $('#mm').val() -1, $('#jj').val(), $('#hh').val(), $('#mn').val());
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val());
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val());
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
$('#publish').val( postL10n.update );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$( '#mm option[value=' + $('#mm').val() + ']' ).text() + ' ' +
|
||||
$('#jj').val() + ', ' +
|
||||
$('#aa').val() + ' @ ' +
|
||||
$('#hh').val() + ':' +
|
||||
$('#mn').val() + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('#post-visibility-select input:radio:checked').val() == 'private' ) {
|
||||
$('#publish').val( postL10n.update );
|
||||
if ( $('#post_status option[value=publish]').length == 0 ) {
|
||||
$('#post_status').append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
}
|
||||
$('#post_status option[value=publish]').html( postL10n.privatelyPublished );
|
||||
$('#post_status option[value=publish]').attr('selected', true);
|
||||
$('.edit-post-status').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( $('#post_status option[value=publish]').length != 0 ) {
|
||||
$('#post_status option[value=publish]').remove();
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
$('#post_status option[value=publish]').html( postL10n.published );
|
||||
}
|
||||
$('.edit-post-status').show();
|
||||
}
|
||||
$('#post-status-display').html($('#post_status :selected').text());
|
||||
if ( $('#post_status :selected').val() == 'private' || $('#post_status :selected').val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('#post_status :selected').val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.edit-visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$('.edit-visibility').hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html(
|
||||
postL10n[$('#post-visibility-select input:radio:checked').val() + sticky]
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-visibility-select input:radio').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('.edit-timestamp').click(function () {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Custom Fields
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,490 @@
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
function new_tag_remove_tag() {
|
||||
var id = jQuery( this ).attr( 'id' ), num = id.split('-check-num-')[1], taxbox = jQuery(this).parents('.tagsdiv'), current_tags = taxbox.find( '.the-tags' ).val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
jQuery.each( current_tags, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
taxbox.find('.the-tags').val( new_tags.join(',').replace(/\s*,+\s*/, ',').replace(/,+/, ',').replace(/,+\s+,+/, ',').replace(/,+\s*$/, '').replace(/^\s*,+/, '') );
|
||||
|
||||
tag_update_quickclicks(taxbox);
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_update_quickclicks(taxbox) {
|
||||
if ( jQuery(taxbox).find('.the-tags').length == 0 )
|
||||
return;
|
||||
|
||||
var current_tags = jQuery(taxbox).find('.the-tags').val().split(',');
|
||||
jQuery(taxbox).find('.tagchecklist').empty();
|
||||
shown = false;
|
||||
|
||||
jQuery.each( current_tags, function( key, val ) {
|
||||
var txt, button_id;
|
||||
|
||||
val = jQuery.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = jQuery(taxbox).attr('id') + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
jQuery(taxbox).find('.tagchecklist').append(txt);
|
||||
jQuery( '#' + button_id ).click( new_tag_remove_tag );
|
||||
}
|
||||
});
|
||||
if ( shown )
|
||||
jQuery(taxbox).find('.tagchecklist').prepend('<strong>'+postL10n.tagsUsed+'</strong><br />');
|
||||
}
|
||||
|
||||
function tag_flush_to_text(id, a) {
|
||||
a = a || false;
|
||||
var taxbox, text, tags, newtags;
|
||||
|
||||
taxbox = jQuery('#'+id);
|
||||
text = a ? jQuery(a).text() : taxbox.find('input.newtag').val();
|
||||
|
||||
// is the input box empty (i.e. showing the 'Add new tag' tip)?
|
||||
if ( taxbox.find('input.newtag').hasClass('form-input-tip') && ! a )
|
||||
return false;
|
||||
|
||||
tags = taxbox.find('.the-tags').val();
|
||||
newtags = tags ? tags + ',' + text : text;
|
||||
|
||||
// massage
|
||||
newtags = newtags.replace(/\s+,+\s*/g, ',').replace(/,+/g, ',').replace(/,+\s+,+/g, ',').replace(/,+\s*$/g, '').replace(/^\s*,+/g, '');
|
||||
newtags = array_unique_noempty(newtags.split(',')).join(',');
|
||||
taxbox.find('.the-tags').val(newtags);
|
||||
tag_update_quickclicks(taxbox);
|
||||
|
||||
if ( ! a )
|
||||
taxbox.find('input.newtag').val('').focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_save_on_publish() {
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
if ( !jQuery(this).find('input.newtag').hasClass('form-input-tip') )
|
||||
tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));
|
||||
} );
|
||||
}
|
||||
|
||||
function tag_press_key( e ) {
|
||||
if ( 13 == e.which ) {
|
||||
tag_flush_to_text(jQuery(e.target).parents('.tagsdiv').attr('id'));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function tag_init() {
|
||||
|
||||
jQuery('.ajaxtag').show();
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
tag_update_quickclicks(this);
|
||||
} );
|
||||
|
||||
// add the quickadd form
|
||||
jQuery('.ajaxtag input.tagadd').click(function(){tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));});
|
||||
jQuery('.ajaxtag input.newtag').focus(function() {
|
||||
if ( !this.cleared ) {
|
||||
this.cleared = true;
|
||||
jQuery(this).val( '' ).removeClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('.ajaxtag input.newtag').blur(function() {
|
||||
if ( this.value == '' ) {
|
||||
this.cleared = false;
|
||||
jQuery(this).val( postL10n.addTag ).addClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
// auto-save tags on post save/publish
|
||||
jQuery('#publish').click( tag_save_on_publish );
|
||||
jQuery('#save-post').click( tag_save_on_publish );
|
||||
|
||||
// catch the enter key
|
||||
jQuery('.ajaxtag input.newtag').keypress( tag_press_key );
|
||||
}
|
||||
|
||||
var commentsBox, tagCloud;
|
||||
(function($){
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="5">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
tagCloud = {
|
||||
init : function() {
|
||||
$('.tagcloud-link').click(function(){
|
||||
tagCloud.get($(this).attr('id'));
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
var id = $(this).parents('p').attr('id');
|
||||
tag_flush_to_text(id.substr(id.indexOf('-')+1), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){tagCloud.init();});
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var noSyncChecks = false, syncChecks, catAddAfter, stamp = $('#timestamp').html(), visibility = $('#post-visibility-display').html(), sticky = '';
|
||||
|
||||
// postboxes
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
|
||||
// prepare the tag UI
|
||||
tag_init();
|
||||
|
||||
$('#title').blur( function() {
|
||||
if ( ($("#post_ID").val() > 0) || ($("#title").val().length == 0) )
|
||||
return;
|
||||
|
||||
if ( typeof(autosave) != 'undefined' )
|
||||
autosave();
|
||||
});
|
||||
|
||||
// auto-suggest stuff
|
||||
$('.newtag').each(function(){
|
||||
var tax = $(this).parents('div.tagsdiv').attr('id');
|
||||
$(this).suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// category tabs
|
||||
$('#category-tabs a').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('#category-tabs a[href="#categories-pop"]').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click(function(){$('#newcat').focus();});
|
||||
|
||||
syncChecks = function() {
|
||||
if ( noSyncChecks )
|
||||
return;
|
||||
noSyncChecks = true;
|
||||
var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
noSyncChecks = false;
|
||||
};
|
||||
|
||||
popularCats = $('#categorychecklist-pop :checkbox').map( function() { return parseInt(jQuery(this).val(), 10); } ).get().join(',');
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&popular_ids=' + popularCats + '&' + jQuery( '#categorychecklist :checked' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var newCatParent = jQuery('#newcat_parent'), newCatParentOption = newCatParent.find( 'option[value="-1"]' );
|
||||
$(s.what + ' response_data', r).each( function() {
|
||||
var t = $($(this).text());
|
||||
t.find( 'label' ).each( function() {
|
||||
var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name, o;
|
||||
$('#' + id).change( syncChecks ).change();
|
||||
if ( newCatParent.find( 'option[value="' + val + '"]' ).size() )
|
||||
return;
|
||||
name = $.trim( th.text() );
|
||||
o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name );
|
||||
newCatParent.prepend( o );
|
||||
} );
|
||||
newCatParentOption.attr( 'selected', 'selected' );
|
||||
} );
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList( {
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
} );
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('#category-tabs a[href="#categories-all"]').click();
|
||||
return false;
|
||||
} );
|
||||
|
||||
$('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(), sticky = '';
|
||||
|
||||
function updateVisibility() {
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn;
|
||||
|
||||
attemptedDate = new Date( $('#aa').val(), $('#mm').val() -1, $('#jj').val(), $('#hh').val(), $('#mn').val());
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val());
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val());
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
$('#publish').val( postL10n.update );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$( '#mm option[value=' + $('#mm').val() + ']' ).text() + ' ' +
|
||||
$('#jj').val() + ', ' +
|
||||
$('#aa').val() + ' @ ' +
|
||||
$('#hh').val() + ':' +
|
||||
$('#mn').val() + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('#post-visibility-select input:radio:checked').val() == 'private' ) {
|
||||
$('#publish').val( postL10n.update );
|
||||
if ( $('#post_status option[value=publish]').length == 0 ) {
|
||||
$('#post_status').append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
}
|
||||
$('#post_status option[value=publish]').html( postL10n.privatelyPublished );
|
||||
$('#post_status option[value=publish]').attr('selected', true);
|
||||
$('.edit-post-status').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( $('#post_status option[value=publish]').length != 0 ) {
|
||||
$('#post_status option[value=publish]').remove();
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
$('#post_status option[value=publish]').html( postL10n.published );
|
||||
}
|
||||
$('.edit-post-status').show();
|
||||
}
|
||||
$('#post-status-display').html($('#post_status :selected').text());
|
||||
if ( $('#post_status :selected').val() == 'private' || $('#post_status :selected').val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('#post_status :selected').val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.edit-visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$('.edit-visibility').hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html(
|
||||
postL10n[$('#post-visibility-select input:radio:checked').val() + sticky]
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-visibility-select input:radio').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('.edit-timestamp').click(function () {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Custom Fields
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,490 @@
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
function new_tag_remove_tag() {
|
||||
var id = jQuery( this ).attr( 'id' ), num = id.split('-check-num-')[1], taxbox = jQuery(this).parents('.tagsdiv'), current_tags = taxbox.find( '.the-tags' ).val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
jQuery.each( current_tags, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
taxbox.find('.the-tags').val( new_tags.join(',').replace(/\s*,+\s*/, ',').replace(/,+/, ',').replace(/,+\s+,+/, ',').replace(/,+\s*$/, '').replace(/^\s*,+/, '') );
|
||||
|
||||
tag_update_quickclicks(taxbox);
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_update_quickclicks(taxbox) {
|
||||
if ( jQuery(taxbox).find('.the-tags').length == 0 )
|
||||
return;
|
||||
|
||||
var current_tags = jQuery(taxbox).find('.the-tags').val().split(',');
|
||||
jQuery(taxbox).find('.tagchecklist').empty();
|
||||
shown = false;
|
||||
|
||||
jQuery.each( current_tags, function( key, val ) {
|
||||
var txt, button_id;
|
||||
|
||||
val = jQuery.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = jQuery(taxbox).attr('id') + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
jQuery(taxbox).find('.tagchecklist').append(txt);
|
||||
jQuery( '#' + button_id ).click( new_tag_remove_tag );
|
||||
}
|
||||
});
|
||||
if ( shown )
|
||||
jQuery(taxbox).find('.tagchecklist').prepend('<strong>'+postL10n.tagsUsed+'</strong><br />');
|
||||
}
|
||||
|
||||
function tag_flush_to_text(id, a) {
|
||||
a = a || false;
|
||||
var taxbox, text, tags, newtags;
|
||||
|
||||
taxbox = jQuery('#'+id);
|
||||
text = a ? jQuery(a).text() : taxbox.find('input.newtag').val();
|
||||
|
||||
// is the input box empty (i.e. showing the 'Add new tag' tip)?
|
||||
if ( taxbox.find('input.newtag').hasClass('form-input-tip') && ! a )
|
||||
return false;
|
||||
|
||||
tags = taxbox.find('.the-tags').val();
|
||||
newtags = tags ? tags + ',' + text : text;
|
||||
|
||||
// massage
|
||||
newtags = newtags.replace(/\s+,+\s*/g, ',').replace(/,+/g, ',').replace(/,+\s+,+/g, ',').replace(/,+\s*$/g, '').replace(/^\s*,+/g, '');
|
||||
newtags = array_unique_noempty(newtags.split(',')).join(',');
|
||||
taxbox.find('.the-tags').val(newtags);
|
||||
tag_update_quickclicks(taxbox);
|
||||
|
||||
if ( ! a )
|
||||
taxbox.find('input.newtag').val('').focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_save_on_publish() {
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
if ( !jQuery(this).find('input.newtag').hasClass('form-input-tip') )
|
||||
tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));
|
||||
} );
|
||||
}
|
||||
|
||||
function tag_press_key( e ) {
|
||||
if ( 13 == e.which ) {
|
||||
tag_flush_to_text(jQuery(e.target).parents('.tagsdiv').attr('id'));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function tag_init() {
|
||||
|
||||
jQuery('.ajaxtag').show();
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
tag_update_quickclicks(this);
|
||||
} );
|
||||
|
||||
// add the quickadd form
|
||||
jQuery('.ajaxtag input.tagadd').click(function(){tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));});
|
||||
jQuery('.ajaxtag input.newtag').focus(function() {
|
||||
if ( !this.cleared ) {
|
||||
this.cleared = true;
|
||||
jQuery(this).val( '' ).removeClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('.ajaxtag input.newtag').blur(function() {
|
||||
if ( this.value == '' ) {
|
||||
this.cleared = false;
|
||||
jQuery(this).val( postL10n.addTag ).addClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
// auto-save tags on post save/publish
|
||||
jQuery('#publish').click( tag_save_on_publish );
|
||||
jQuery('#save-post').click( tag_save_on_publish );
|
||||
|
||||
// catch the enter key
|
||||
jQuery('.ajaxtag input.newtag').keypress( tag_press_key );
|
||||
}
|
||||
|
||||
var commentsBox, tagCloud;
|
||||
(function($){
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="5">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
tagCloud = {
|
||||
init : function() {
|
||||
$('.tagcloud-link').click(function(){
|
||||
tagCloud.get($(this).attr('id'));
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
var id = $(this).parents('p').attr('id');
|
||||
tag_flush_to_text(id.substr(id.indexOf('-')+1), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){tagCloud.init();});
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var noSyncChecks = false, syncChecks, catAddAfter, stamp = $('#timestamp').html(), visibility = $('#post-visibility-display').html(), sticky = '';
|
||||
|
||||
// postboxes
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
|
||||
// prepare the tag UI
|
||||
tag_init();
|
||||
|
||||
$('#title').blur( function() {
|
||||
if ( ($("#post_ID").val() > 0) || ($("#title").val().length == 0) )
|
||||
return;
|
||||
|
||||
if ( typeof(autosave) != 'undefined' )
|
||||
autosave();
|
||||
});
|
||||
|
||||
// auto-suggest stuff
|
||||
$('.newtag').each(function(){
|
||||
var tax = $(this).parents('div.tagsdiv').attr('id');
|
||||
$(this).suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// category tabs
|
||||
$('#category-tabs a').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('#category-tabs a[href="#categories-pop"]').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click(function(){$('#newcat').focus();});
|
||||
|
||||
syncChecks = function() {
|
||||
if ( noSyncChecks )
|
||||
return;
|
||||
noSyncChecks = true;
|
||||
var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
noSyncChecks = false;
|
||||
};
|
||||
|
||||
popularCats = $('#categorychecklist-pop :checkbox').map( function() { return parseInt(jQuery(this).val(), 10); } ).get().join(',');
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&popular_ids=' + popularCats + '&' + jQuery( '#categorychecklist :checked' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var newCatParent = jQuery('#newcat_parent'), newCatParentOption = newCatParent.find( 'option[value="-1"]' );
|
||||
$(s.what + ' response_data', r).each( function() {
|
||||
var t = $($(this).text());
|
||||
t.find( 'label' ).each( function() {
|
||||
var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name, o;
|
||||
$('#' + id).change( syncChecks ).change();
|
||||
if ( newCatParent.find( 'option[value="' + val + '"]' ).size() )
|
||||
return;
|
||||
name = $.trim( th.text() );
|
||||
o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name );
|
||||
newCatParent.prepend( o );
|
||||
} );
|
||||
newCatParentOption.attr( 'selected', 'selected' );
|
||||
} );
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList( {
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
} );
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('#category-tabs a[href="#categories-all"]').click();
|
||||
return false;
|
||||
} );
|
||||
|
||||
$('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(), sticky = '';
|
||||
|
||||
function updateVisibility() {
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn;
|
||||
|
||||
attemptedDate = new Date( $('#aa').val(), $('#mm').val() -1, $('#jj').val(), $('#hh').val(), $('#mn').val());
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val());
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val());
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
$('#publish').val( postL10n.update );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$( '#mm option[value=' + $('#mm').val() + ']' ).text() + ' ' +
|
||||
$('#jj').val() + ', ' +
|
||||
$('#aa').val() + ' @ ' +
|
||||
$('#hh').val() + ':' +
|
||||
$('#mn').val() + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('#post-visibility-select input:radio:checked').val() == 'private' ) {
|
||||
$('#publish').val( postL10n.update );
|
||||
if ( $('#post_status option[value=publish]').length == 0 ) {
|
||||
$('#post_status').append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
}
|
||||
$('#post_status option[value=publish]').html( postL10n.privatelyPublished );
|
||||
$('#post_status option[value=publish]').attr('selected', true);
|
||||
$('.edit-post-status').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( $('#post_status option[value=publish]').length != 0 ) {
|
||||
$('#post_status option[value=publish]').remove();
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
$('#post_status option[value=publish]').html( postL10n.published );
|
||||
}
|
||||
$('.edit-post-status').show();
|
||||
}
|
||||
$('#post-status-display').html($('#post_status :selected').text());
|
||||
if ( $('#post_status :selected').val() == 'private' || $('#post_status :selected').val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('#post_status :selected').val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.edit-visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$('.edit-visibility').hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html(
|
||||
postL10n[$('#post-visibility-select input:radio:checked').val() + sticky]
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-visibility-select input:radio').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('.edit-timestamp').click(function () {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Custom Fields
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,490 @@
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
function new_tag_remove_tag() {
|
||||
var id = jQuery( this ).attr( 'id' ), num = id.split('-check-num-')[1], taxbox = jQuery(this).parents('.tagsdiv'), current_tags = taxbox.find( '.the-tags' ).val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
jQuery.each( current_tags, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
taxbox.find('.the-tags').val( new_tags.join(',').replace(/\s*,+\s*/, ',').replace(/,+/, ',').replace(/,+\s+,+/, ',').replace(/,+\s*$/, '').replace(/^\s*,+/, '') );
|
||||
|
||||
tag_update_quickclicks(taxbox);
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_update_quickclicks(taxbox) {
|
||||
if ( jQuery(taxbox).find('.the-tags').length == 0 )
|
||||
return;
|
||||
|
||||
var current_tags = jQuery(taxbox).find('.the-tags').val().split(',');
|
||||
jQuery(taxbox).find('.tagchecklist').empty();
|
||||
shown = false;
|
||||
|
||||
jQuery.each( current_tags, function( key, val ) {
|
||||
var txt, button_id;
|
||||
|
||||
val = jQuery.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = jQuery(taxbox).attr('id') + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
jQuery(taxbox).find('.tagchecklist').append(txt);
|
||||
jQuery( '#' + button_id ).click( new_tag_remove_tag );
|
||||
}
|
||||
});
|
||||
if ( shown )
|
||||
jQuery(taxbox).find('.tagchecklist').prepend('<strong>'+postL10n.tagsUsed+'</strong><br />');
|
||||
}
|
||||
|
||||
function tag_flush_to_text(id, a) {
|
||||
a = a || false;
|
||||
var taxbox, text, tags, newtags;
|
||||
|
||||
taxbox = jQuery('#'+id);
|
||||
text = a ? jQuery(a).text() : taxbox.find('input.newtag').val();
|
||||
|
||||
// is the input box empty (i.e. showing the 'Add new tag' tip)?
|
||||
if ( taxbox.find('input.newtag').hasClass('form-input-tip') && ! a )
|
||||
return false;
|
||||
|
||||
tags = taxbox.find('.the-tags').val();
|
||||
newtags = tags ? tags + ',' + text : text;
|
||||
|
||||
// massage
|
||||
newtags = newtags.replace(/\s+,+\s*/g, ',').replace(/,+/g, ',').replace(/,+\s+,+/g, ',').replace(/,+\s*$/g, '').replace(/^\s*,+/g, '');
|
||||
newtags = array_unique_noempty(newtags.split(',')).join(',');
|
||||
taxbox.find('.the-tags').val(newtags);
|
||||
tag_update_quickclicks(taxbox);
|
||||
|
||||
if ( ! a )
|
||||
taxbox.find('input.newtag').val('').focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_save_on_publish() {
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
if ( !jQuery(this).find('input.newtag').hasClass('form-input-tip') )
|
||||
tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));
|
||||
} );
|
||||
}
|
||||
|
||||
function tag_press_key( e ) {
|
||||
if ( 13 == e.which ) {
|
||||
tag_flush_to_text(jQuery(e.target).parents('.tagsdiv').attr('id'));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function tag_init() {
|
||||
|
||||
jQuery('.ajaxtag').show();
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
tag_update_quickclicks(this);
|
||||
} );
|
||||
|
||||
// add the quickadd form
|
||||
jQuery('.ajaxtag input.tagadd').click(function(){tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));});
|
||||
jQuery('.ajaxtag input.newtag').focus(function() {
|
||||
if ( !this.cleared ) {
|
||||
this.cleared = true;
|
||||
jQuery(this).val( '' ).removeClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('.ajaxtag input.newtag').blur(function() {
|
||||
if ( this.value == '' ) {
|
||||
this.cleared = false;
|
||||
jQuery(this).val( postL10n.addTag ).addClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
// auto-save tags on post save/publish
|
||||
jQuery('#publish').click( tag_save_on_publish );
|
||||
jQuery('#save-post').click( tag_save_on_publish );
|
||||
|
||||
// catch the enter key
|
||||
jQuery('.ajaxtag input.newtag').keypress( tag_press_key );
|
||||
}
|
||||
|
||||
var commentsBox, tagCloud;
|
||||
(function($){
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="5">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
tagCloud = {
|
||||
init : function() {
|
||||
$('.tagcloud-link').click(function(){
|
||||
tagCloud.get($(this).attr('id'));
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
var id = $(this).parents('p').attr('id');
|
||||
tag_flush_to_text(id.substr(id.indexOf('-')+1), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){tagCloud.init();});
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var noSyncChecks = false, syncChecks, catAddAfter, stamp = $('#timestamp').html(), visibility = $('#post-visibility-display').html(), sticky = '';
|
||||
|
||||
// postboxes
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
|
||||
// prepare the tag UI
|
||||
tag_init();
|
||||
|
||||
$('#title').blur( function() {
|
||||
if ( ($("#post_ID").val() > 0) || ($("#title").val().length == 0) )
|
||||
return;
|
||||
|
||||
if ( typeof(autosave) != 'undefined' )
|
||||
autosave();
|
||||
});
|
||||
|
||||
// auto-suggest stuff
|
||||
$('.newtag').each(function(){
|
||||
var tax = $(this).parents('div.tagsdiv').attr('id');
|
||||
$(this).suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// category tabs
|
||||
$('#category-tabs a').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('#category-tabs a[href="#categories-pop"]').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click(function(){$('#newcat').focus();});
|
||||
|
||||
syncChecks = function() {
|
||||
if ( noSyncChecks )
|
||||
return;
|
||||
noSyncChecks = true;
|
||||
var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
noSyncChecks = false;
|
||||
};
|
||||
|
||||
popularCats = $('#categorychecklist-pop :checkbox').map( function() { return parseInt(jQuery(this).val(), 10); } ).get().join(',');
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&popular_ids=' + popularCats + '&' + jQuery( '#categorychecklist :checked' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var newCatParent = jQuery('#newcat_parent'), newCatParentOption = newCatParent.find( 'option[value="-1"]' );
|
||||
$(s.what + ' response_data', r).each( function() {
|
||||
var t = $($(this).text());
|
||||
t.find( 'label' ).each( function() {
|
||||
var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name, o;
|
||||
$('#' + id).change( syncChecks ).change();
|
||||
if ( newCatParent.find( 'option[value="' + val + '"]' ).size() )
|
||||
return;
|
||||
name = $.trim( th.text() );
|
||||
o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name );
|
||||
newCatParent.prepend( o );
|
||||
} );
|
||||
newCatParentOption.attr( 'selected', 'selected' );
|
||||
} );
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList( {
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
} );
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('#category-tabs a[href="#categories-all"]').click();
|
||||
return false;
|
||||
} );
|
||||
|
||||
$('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(), sticky = '';
|
||||
|
||||
function updateVisibility() {
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn;
|
||||
|
||||
attemptedDate = new Date( $('#aa').val(), $('#mm').val() -1, $('#jj').val(), $('#hh').val(), $('#mn').val());
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val());
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val());
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
$('#publish').val( postL10n.update );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$( '#mm option[value=' + $('#mm').val() + ']' ).text() + ' ' +
|
||||
$('#jj').val() + ', ' +
|
||||
$('#aa').val() + ' @ ' +
|
||||
$('#hh').val() + ':' +
|
||||
$('#mn').val() + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('#post-visibility-select input:radio:checked').val() == 'private' ) {
|
||||
$('#publish').val( postL10n.update );
|
||||
if ( $('#post_status option[value=publish]').length == 0 ) {
|
||||
$('#post_status').append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
}
|
||||
$('#post_status option[value=publish]').html( postL10n.privatelyPublished );
|
||||
$('#post_status option[value=publish]').attr('selected', true);
|
||||
$('.edit-post-status').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( $('#post_status option[value=publish]').length != 0 ) {
|
||||
$('#post_status option[value=publish]').remove();
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
$('#post_status option[value=publish]').html( postL10n.published );
|
||||
}
|
||||
$('.edit-post-status').show();
|
||||
}
|
||||
$('#post-status-display').html($('#post_status :selected').text());
|
||||
if ( $('#post_status :selected').val() == 'private' || $('#post_status :selected').val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('#post_status :selected').val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.edit-visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$('.edit-visibility').hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html(
|
||||
postL10n[$('#post-visibility-select input:radio:checked').val() + sticky]
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-visibility-select input:radio').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('.edit-timestamp').click(function () {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Custom Fields
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,490 @@
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
function new_tag_remove_tag() {
|
||||
var id = jQuery( this ).attr( 'id' ), num = id.split('-check-num-')[1], taxbox = jQuery(this).parents('.tagsdiv'), current_tags = taxbox.find( '.the-tags' ).val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
jQuery.each( current_tags, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
taxbox.find('.the-tags').val( new_tags.join(',').replace(/\s*,+\s*/, ',').replace(/,+/, ',').replace(/,+\s+,+/, ',').replace(/,+\s*$/, '').replace(/^\s*,+/, '') );
|
||||
|
||||
tag_update_quickclicks(taxbox);
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_update_quickclicks(taxbox) {
|
||||
if ( jQuery(taxbox).find('.the-tags').length == 0 )
|
||||
return;
|
||||
|
||||
var current_tags = jQuery(taxbox).find('.the-tags').val().split(',');
|
||||
jQuery(taxbox).find('.tagchecklist').empty();
|
||||
shown = false;
|
||||
|
||||
jQuery.each( current_tags, function( key, val ) {
|
||||
var txt, button_id;
|
||||
|
||||
val = jQuery.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = jQuery(taxbox).attr('id') + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
jQuery(taxbox).find('.tagchecklist').append(txt);
|
||||
jQuery( '#' + button_id ).click( new_tag_remove_tag );
|
||||
}
|
||||
});
|
||||
if ( shown )
|
||||
jQuery(taxbox).find('.tagchecklist').prepend('<strong>'+postL10n.tagsUsed+'</strong><br />');
|
||||
}
|
||||
|
||||
function tag_flush_to_text(id, a) {
|
||||
a = a || false;
|
||||
var taxbox, text, tags, newtags;
|
||||
|
||||
taxbox = jQuery('#'+id);
|
||||
text = a ? jQuery(a).text() : taxbox.find('input.newtag').val();
|
||||
|
||||
// is the input box empty (i.e. showing the 'Add new tag' tip)?
|
||||
if ( taxbox.find('input.newtag').hasClass('form-input-tip') && ! a )
|
||||
return false;
|
||||
|
||||
tags = taxbox.find('.the-tags').val();
|
||||
newtags = tags ? tags + ',' + text : text;
|
||||
|
||||
// massage
|
||||
newtags = newtags.replace(/\s+,+\s*/g, ',').replace(/,+/g, ',').replace(/,+\s+,+/g, ',').replace(/,+\s*$/g, '').replace(/^\s*,+/g, '');
|
||||
newtags = array_unique_noempty(newtags.split(',')).join(',');
|
||||
taxbox.find('.the-tags').val(newtags);
|
||||
tag_update_quickclicks(taxbox);
|
||||
|
||||
if ( ! a )
|
||||
taxbox.find('input.newtag').val('').focus();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function tag_save_on_publish() {
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
if ( !jQuery(this).find('input.newtag').hasClass('form-input-tip') )
|
||||
tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));
|
||||
} );
|
||||
}
|
||||
|
||||
function tag_press_key( e ) {
|
||||
if ( 13 == e.which ) {
|
||||
tag_flush_to_text(jQuery(e.target).parents('.tagsdiv').attr('id'));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function tag_init() {
|
||||
|
||||
jQuery('.ajaxtag').show();
|
||||
jQuery('.tagsdiv').each( function(i) {
|
||||
tag_update_quickclicks(this);
|
||||
} );
|
||||
|
||||
// add the quickadd form
|
||||
jQuery('.ajaxtag input.tagadd').click(function(){tag_flush_to_text(jQuery(this).parents('.tagsdiv').attr('id'));});
|
||||
jQuery('.ajaxtag input.newtag').focus(function() {
|
||||
if ( !this.cleared ) {
|
||||
this.cleared = true;
|
||||
jQuery(this).val( '' ).removeClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery('.ajaxtag input.newtag').blur(function() {
|
||||
if ( this.value == '' ) {
|
||||
this.cleared = false;
|
||||
jQuery(this).val( postL10n.addTag ).addClass( 'form-input-tip' );
|
||||
}
|
||||
});
|
||||
|
||||
// auto-save tags on post save/publish
|
||||
jQuery('#publish').click( tag_save_on_publish );
|
||||
jQuery('#save-post').click( tag_save_on_publish );
|
||||
|
||||
// catch the enter key
|
||||
jQuery('.ajaxtag input.newtag').keypress( tag_press_key );
|
||||
}
|
||||
|
||||
var commentsBox, tagCloud;
|
||||
(function($){
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="5">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
tagCloud = {
|
||||
init : function() {
|
||||
$('.tagcloud-link').click(function(){
|
||||
tagCloud.get($(this).attr('id'));
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
var id = $(this).parents('p').attr('id');
|
||||
tag_flush_to_text(id.substr(id.indexOf('-')+1), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function(){tagCloud.init();});
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var noSyncChecks = false, syncChecks, catAddAfter, stamp = $('#timestamp').html(), visibility = $('#post-visibility-display').html(), sticky = '';
|
||||
|
||||
// postboxes
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
|
||||
// prepare the tag UI
|
||||
tag_init();
|
||||
|
||||
$('#title').blur( function() {
|
||||
if ( ($("#post_ID").val() > 0) || ($("#title").val().length == 0) )
|
||||
return;
|
||||
|
||||
if ( typeof(autosave) != 'undefined' )
|
||||
autosave();
|
||||
});
|
||||
|
||||
// auto-suggest stuff
|
||||
$('.newtag').each(function(){
|
||||
var tax = $(this).parents('div.tagsdiv').attr('id');
|
||||
$(this).suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// category tabs
|
||||
$('#category-tabs a').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('#category-tabs a[href="#categories-pop"]').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click(function(){$('#newcat').focus();});
|
||||
|
||||
syncChecks = function() {
|
||||
if ( noSyncChecks )
|
||||
return;
|
||||
noSyncChecks = true;
|
||||
var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
noSyncChecks = false;
|
||||
};
|
||||
|
||||
popularCats = $('#categorychecklist-pop :checkbox').map( function() { return parseInt(jQuery(this).val(), 10); } ).get().join(',');
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&popular_ids=' + popularCats + '&' + jQuery( '#categorychecklist :checked' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var newCatParent = jQuery('#newcat_parent'), newCatParentOption = newCatParent.find( 'option[value="-1"]' );
|
||||
$(s.what + ' response_data', r).each( function() {
|
||||
var t = $($(this).text());
|
||||
t.find( 'label' ).each( function() {
|
||||
var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name, o;
|
||||
$('#' + id).change( syncChecks ).change();
|
||||
if ( newCatParent.find( 'option[value="' + val + '"]' ).size() )
|
||||
return;
|
||||
name = $.trim( th.text() );
|
||||
o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name );
|
||||
newCatParent.prepend( o );
|
||||
} );
|
||||
newCatParentOption.attr( 'selected', 'selected' );
|
||||
} );
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList( {
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
} );
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('#category-tabs a[href="#categories-all"]').click();
|
||||
return false;
|
||||
} );
|
||||
|
||||
$('.categorychecklist .popular-category :checkbox').change( syncChecks ).filter( ':checked' ).change(), sticky = '';
|
||||
|
||||
function updateVisibility() {
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn;
|
||||
|
||||
attemptedDate = new Date( $('#aa').val(), $('#mm').val() -1, $('#jj').val(), $('#hh').val(), $('#mn').val());
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val());
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val());
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
$('#publish').val( postL10n.update );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$( '#mm option[value=' + $('#mm').val() + ']' ).text() + ' ' +
|
||||
$('#jj').val() + ', ' +
|
||||
$('#aa').val() + ' @ ' +
|
||||
$('#hh').val() + ':' +
|
||||
$('#mn').val() + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('#post-visibility-select input:radio:checked').val() == 'private' ) {
|
||||
$('#publish').val( postL10n.update );
|
||||
if ( $('#post_status option[value=publish]').length == 0 ) {
|
||||
$('#post_status').append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
}
|
||||
$('#post_status option[value=publish]').html( postL10n.privatelyPublished );
|
||||
$('#post_status option[value=publish]').attr('selected', true);
|
||||
$('.edit-post-status').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( $('#post_status option[value=publish]').length != 0 ) {
|
||||
$('#post_status option[value=publish]').remove();
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
$('#post_status option[value=publish]').html( postL10n.published );
|
||||
}
|
||||
$('.edit-post-status').show();
|
||||
}
|
||||
$('#post-status-display').html($('#post_status :selected').text());
|
||||
if ( $('#post_status :selected').val() == 'private' || $('#post_status :selected').val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('#post_status :selected').val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.edit-visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$('.edit-visibility').hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('.edit-visibility').show();
|
||||
updateText();
|
||||
if ( $('#post-visibility-select input:radio:checked').val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html(
|
||||
postL10n[$('#post-visibility-select input:radio:checked').val() + sticky]
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-visibility-select input:radio').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('.edit-timestamp').click(function () {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('.edit-timestamp').show();
|
||||
updateText();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Custom Fields
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -217,7 +217,7 @@ jQuery(document).ready( function($) {
|
||||
autosave = function(){};
|
||||
|
||||
// postboxes
|
||||
// postboxes.add_postbox_toggles('post');
|
||||
postboxes.add_postbox_toggles('post');
|
||||
|
||||
// Editable slugs
|
||||
make_slugedit_clickable();
|
||||
@@ -426,6 +426,7 @@ jQuery(document).ready( function($) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$('.edit-timestamp').hide();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
@@ -0,0 +1,580 @@
|
||||
var tagBox, commentsBox, editPermalink, makeSlugeditClickable, WPSetThumbnailHTML, WPSetThumbnailID, WPRemoveThumbnail;
|
||||
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
(function($){
|
||||
|
||||
tagBox = {
|
||||
clean : function(tags) {
|
||||
return tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
|
||||
},
|
||||
|
||||
parseTags : function(el) {
|
||||
var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'), thetags = taxbox.find('.the-tags'), current_tags = thetags.val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
$.each( current_tags, function(key, val) {
|
||||
val = $.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
thetags.val( this.clean( new_tags.join(',') ) );
|
||||
|
||||
this.quickClicks(taxbox);
|
||||
return false;
|
||||
},
|
||||
|
||||
quickClicks : function(el) {
|
||||
var thetags = $('.the-tags', el), tagchecklist = $('.tagchecklist', el), current_tags;
|
||||
|
||||
if ( !thetags.length )
|
||||
return;
|
||||
|
||||
current_tags = thetags.val().split(',');
|
||||
tagchecklist.empty();
|
||||
|
||||
$.each( current_tags, function( key, val ) {
|
||||
var txt, button_id, id = $(el).attr('id');
|
||||
|
||||
val = $.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = id + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
tagchecklist.append(txt);
|
||||
$( '#' + button_id ).click( function(){ tagBox.parseTags(this); });
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
flushTags : function(el, a, f) {
|
||||
a = a || false;
|
||||
var text, tags = $('.the-tags', el), newtag = $('input.newtag', el), newtags;
|
||||
|
||||
text = a ? $(a).text() : newtag.val();
|
||||
tagsval = tags.val();
|
||||
newtags = tagsval ? tagsval + ',' + text : text;
|
||||
|
||||
newtags = this.clean( newtags );
|
||||
newtags = array_unique_noempty( newtags.split(',') ).join(',');
|
||||
tags.val(newtags);
|
||||
this.quickClicks(el);
|
||||
|
||||
if ( !a )
|
||||
newtag.val('');
|
||||
if ( 'undefined' == typeof(f) )
|
||||
newtag.focus();
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
tagBox.flushTags( $(this).closest('.inside').children('.tagsdiv'), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
},
|
||||
|
||||
init : function() {
|
||||
var t = this, ajaxtag = $('div.ajaxtag');
|
||||
|
||||
$('.tagsdiv').each( function() {
|
||||
tagBox.quickClicks(this);
|
||||
});
|
||||
|
||||
$('input.tagadd', ajaxtag).click(function(){
|
||||
t.flushTags( $(this).closest('.tagsdiv') );
|
||||
});
|
||||
|
||||
$('div.taghint', ajaxtag).click(function(){
|
||||
$(this).css('visibility', 'hidden').siblings('.newtag').focus();
|
||||
});
|
||||
|
||||
$('input.newtag', ajaxtag).blur(function() {
|
||||
if ( this.value == '' )
|
||||
$(this).siblings('.taghint').css('visibility', '');
|
||||
}).focus(function(){
|
||||
$(this).siblings('.taghint').css('visibility', 'hidden');
|
||||
}).keyup(function(e){
|
||||
if ( 13 == e.which ) {
|
||||
tagBox.flushTags( $(this).closest('.tagsdiv') );
|
||||
return false;
|
||||
}
|
||||
}).keypress(function(e){
|
||||
if ( 13 == e.which ) {
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}).each(function(){
|
||||
var tax = $(this).closest('div.tagsdiv').attr('id');
|
||||
$(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// save tags on post save/publish
|
||||
$('#post').submit(function(){
|
||||
$('div.tagsdiv').each( function() {
|
||||
tagBox.flushTags(this, false, 1);
|
||||
});
|
||||
});
|
||||
|
||||
// tag cloud
|
||||
$('a.tagcloud-link').click(function(){
|
||||
tagBox.get( $(this).attr('id') );
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="2">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
WPSetThumbnailHTML = function(html){
|
||||
$('.inside', '#postimagediv').html(html);
|
||||
};
|
||||
|
||||
WPSetThumbnailID = function(id){
|
||||
var field = $('input[value=_thumbnail_id]', '#list-table');
|
||||
if ( field.size() > 0 ) {
|
||||
$('#meta\\[' + field.attr('id').match(/[0-9]+/) + '\\]\\[value\\]').text(id);
|
||||
}
|
||||
};
|
||||
|
||||
WPRemoveThumbnail = function(){
|
||||
$.post(ajaxurl, {
|
||||
action:"set-post-thumbnail", post_id: $('#post_ID').val(), thumbnail_id: -1, cookie: encodeURIComponent(document.cookie)
|
||||
}, function(str){
|
||||
if ( str == '0' ) {
|
||||
alert( setPostThumbnailL10n.error );
|
||||
} else {
|
||||
WPSetThumbnailHTML(str);
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var catAddAfter, stamp, visibility, sticky = '', post = 'post' == pagenow || 'post-new' == pagenow, page = 'page' == pagenow || 'page-new' == pagenow;
|
||||
|
||||
// postboxes
|
||||
// if ( post )
|
||||
// postboxes.add_postbox_toggles('post');
|
||||
// else if ( page )
|
||||
// postboxes.add_postbox_toggles('page');
|
||||
|
||||
// multi-taxonomies
|
||||
if ( $('#tagsdiv-post_tag').length ) {
|
||||
tagBox.init();
|
||||
} else {
|
||||
$('#side-sortables, #normal-sortables, #advanced-sortables').children('div.postbox').each(function(){
|
||||
if ( this.id.indexOf('tagsdiv-') === 0 ) {
|
||||
tagBox.init();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// categories
|
||||
if ( $('#categorydiv').length ) {
|
||||
// TODO: move to jQuery 1.3+, support for multiple hierarchical taxonomies, see wp-lists.dev.js
|
||||
$('a', '#category-tabs').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('#category-tabs').siblings('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('a[href="#categories-pop"]', '#category-tabs').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click( function(){ $('#newcat').focus(); } );
|
||||
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&' + $( ':checked', '#categorychecklist' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var sup, drop = $('#newcat_parent');
|
||||
|
||||
if ( 'undefined' != s.parsed.responses[0] && (sup = s.parsed.responses[0].supplemental.newcat_parent) ) {
|
||||
drop.before(sup);
|
||||
drop.remove();
|
||||
}
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList({
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
});
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('a[href="#categories-all"]', '#category-tabs').click();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#categorychecklist').children('li.popular-category').add( $('#categorychecklist-pop').children() ).find(':checkbox').live( 'click', function(){
|
||||
var t = $(this), c = t.is(':checked'), id = t.val();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
});
|
||||
|
||||
} // end cats
|
||||
|
||||
// Custom Fields
|
||||
if ( $('#postcustom').length ) {
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// submitdiv
|
||||
if ( $('#submitdiv').length ) {
|
||||
stamp = $('#timestamp').html();
|
||||
visibility = $('#post-visibility-display').html();
|
||||
|
||||
function updateVisibility() {
|
||||
var pvSelect = $('#post-visibility-select');
|
||||
if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('input:radio:checked', pvSelect).val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn, postStatus = $('#post_status'),
|
||||
optPublish = $('option[value=publish]', postStatus), aa = $('#aa').val(),
|
||||
mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val();
|
||||
|
||||
attemptedDate = new Date( aa, mm - 1, jj, hh, mn );
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val() );
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val() );
|
||||
|
||||
if ( attemptedDate.getFullYear() != aa || (1 + attemptedDate.getMonth()) != mm || attemptedDate.getDate() != jj || attemptedDate.getMinutes() != mn ) {
|
||||
$('.timestamp-wrap', '#timestampdiv').addClass('form-invalid');
|
||||
return false;
|
||||
} else {
|
||||
$('.timestamp-wrap', '#timestampdiv').removeClass('form-invalid');
|
||||
}
|
||||
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
if ( page )
|
||||
$('#publish').val( postL10n.updatePage );
|
||||
else
|
||||
$('#publish').val( postL10n.updatePost );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$('option[value=' + $('#mm').val() + ']', '#mm').text() + ' ' +
|
||||
jj + ', ' +
|
||||
aa + ' @ ' +
|
||||
hh + ':' +
|
||||
mn + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('input:radio:checked', '#post-visibility-select').val() == 'private' ) {
|
||||
if ( page )
|
||||
$('#publish').val( postL10n.updatePage );
|
||||
else
|
||||
$('#publish').val( postL10n.updatePost );
|
||||
if ( optPublish.length == 0 ) {
|
||||
postStatus.append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
} else {
|
||||
optPublish.html( postL10n.privatelyPublished );
|
||||
}
|
||||
$('option[value=publish]', postStatus).attr('selected', true);
|
||||
$('.edit-post-status', '#misc-publishing-actions').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( optPublish.length ) {
|
||||
optPublish.remove();
|
||||
postStatus.val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
optPublish.html( postL10n.published );
|
||||
}
|
||||
if ( postStatus.is(':hidden') )
|
||||
$('.edit-post-status', '#misc-publishing-actions').show();
|
||||
}
|
||||
$('#post-status-display').html($('option:selected', postStatus).text());
|
||||
if ( $('option:selected', postStatus).val() == 'private' || $('option:selected', postStatus).val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('option:selected', postStatus).val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
$('.edit-visibility', '#visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility', '#post-visibility-select').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility', '#visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility', '#post-visibility-select').click(function () { // crazyhorse - multiple ok cancels
|
||||
var pvSelect = $('#post-visibility-select');
|
||||
|
||||
pvSelect.slideUp("normal");
|
||||
$('.edit-visibility', '#visibility').show();
|
||||
updateText();
|
||||
|
||||
if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html( postL10n[$('input:radio:checked', pvSelect).val() + sticky] );
|
||||
return false;
|
||||
});
|
||||
|
||||
$('input:radio', '#post-visibility-select').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('#timestampdiv').siblings('a.edit-timestamp').click(function() {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp', '#timestampdiv').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('#timestampdiv').siblings('a.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp', '#timestampdiv').click(function () { // crazyhorse - multiple ok cancels
|
||||
if ( updateText() ) {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#timestampdiv').siblings('a.edit-timestamp').show();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-status-select').siblings('a.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status', '#post-status-select').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post-status-select').siblings('a.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status', '#post-status-select').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('#post-status-select').siblings('a.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
} // end submitdiv
|
||||
|
||||
// permalink
|
||||
if ( $('#edit-slug-box').length ) {
|
||||
editPermalink = function(post_id) {
|
||||
var i, c = 0, e = $('#editable-post-name'), revert_e = e.html(), real_slug = $('#post_name'), revert_slug = real_slug.html(), b = $('#edit-slug-buttons'), revert_b = b.html(), full = $('#editable-post-name-full').html();
|
||||
|
||||
$('#view-post-btn').hide();
|
||||
b.html('<a href="#" class="save button">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+'</a>');
|
||||
b.children('.save').click(function() {
|
||||
var new_slug = e.children('input').val();
|
||||
$.post(ajaxurl, {
|
||||
action: 'sample-permalink',
|
||||
post_id: post_id,
|
||||
new_slug: new_slug,
|
||||
new_title: $('#title').val(),
|
||||
samplepermalinknonce: $('#samplepermalinknonce').val()
|
||||
}, function(data) {
|
||||
$('#edit-slug-box').html(data);
|
||||
b.html(revert_b);
|
||||
real_slug.attr('value', new_slug);
|
||||
makeSlugeditClickable();
|
||||
$('#view-post-btn').show();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel', '#edit-slug-buttons').click(function() {
|
||||
$('#view-post-btn').show();
|
||||
e.html(revert_e);
|
||||
b.html(revert_b);
|
||||
real_slug.attr('value', revert_slug);
|
||||
return false;
|
||||
});
|
||||
|
||||
for ( i = 0; i < full.length; ++i ) {
|
||||
if ( '%' == full.charAt(i) )
|
||||
c++;
|
||||
}
|
||||
|
||||
slug_value = ( c > full.length / 4 ) ? '' : full;
|
||||
e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){
|
||||
var key = e.keyCode || 0;
|
||||
// on enter, just save the new slug, don't save the post
|
||||
if ( 13 == key ) {
|
||||
b.children('.save').click();
|
||||
return false;
|
||||
}
|
||||
if ( 27 == key ) {
|
||||
b.children('.cancel').click();
|
||||
return false;
|
||||
}
|
||||
real_slug.attr('value', this.value);
|
||||
}).focus();
|
||||
}
|
||||
|
||||
makeSlugeditClickable = function() {
|
||||
$('#editable-post-name').click(function() {
|
||||
$('#edit-slug-buttons').children('.edit-slug').click();
|
||||
});
|
||||
}
|
||||
makeSlugeditClickable();
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,580 @@
|
||||
var tagBox, commentsBox, editPermalink, makeSlugeditClickable, WPSetThumbnailHTML, WPSetThumbnailID, WPRemoveThumbnail;
|
||||
|
||||
// return an array with any duplicate, whitespace or values removed
|
||||
function array_unique_noempty(a) {
|
||||
var out = [];
|
||||
jQuery.each( a, function(key, val) {
|
||||
val = jQuery.trim(val);
|
||||
if ( val && jQuery.inArray(val, out) == -1 )
|
||||
out.push(val);
|
||||
} );
|
||||
return out;
|
||||
}
|
||||
|
||||
(function($){
|
||||
|
||||
tagBox = {
|
||||
clean : function(tags) {
|
||||
return tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
|
||||
},
|
||||
|
||||
parseTags : function(el) {
|
||||
var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'), thetags = taxbox.find('.the-tags'), current_tags = thetags.val().split(','), new_tags = [];
|
||||
delete current_tags[num];
|
||||
|
||||
$.each( current_tags, function(key, val) {
|
||||
val = $.trim(val);
|
||||
if ( val ) {
|
||||
new_tags.push(val);
|
||||
}
|
||||
});
|
||||
|
||||
thetags.val( this.clean( new_tags.join(',') ) );
|
||||
|
||||
this.quickClicks(taxbox);
|
||||
return false;
|
||||
},
|
||||
|
||||
quickClicks : function(el) {
|
||||
var thetags = $('.the-tags', el), tagchecklist = $('.tagchecklist', el), current_tags;
|
||||
|
||||
if ( !thetags.length )
|
||||
return;
|
||||
|
||||
current_tags = thetags.val().split(',');
|
||||
tagchecklist.empty();
|
||||
|
||||
$.each( current_tags, function( key, val ) {
|
||||
var txt, button_id, id = $(el).attr('id');
|
||||
|
||||
val = $.trim(val);
|
||||
if ( !val.match(/^\s+$/) && '' != val ) {
|
||||
button_id = id + '-check-num-' + key;
|
||||
txt = '<span><a id="' + button_id + '" class="ntdelbutton">X</a> ' + val + '</span> ';
|
||||
tagchecklist.append(txt);
|
||||
$( '#' + button_id ).click( function(){ tagBox.parseTags(this); });
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
flushTags : function(el, a, f) {
|
||||
a = a || false;
|
||||
var text, tags = $('.the-tags', el), newtag = $('input.newtag', el), newtags;
|
||||
|
||||
text = a ? $(a).text() : newtag.val();
|
||||
tagsval = tags.val();
|
||||
newtags = tagsval ? tagsval + ',' + text : text;
|
||||
|
||||
newtags = this.clean( newtags );
|
||||
newtags = array_unique_noempty( newtags.split(',') ).join(',');
|
||||
tags.val(newtags);
|
||||
this.quickClicks(el);
|
||||
|
||||
if ( !a )
|
||||
newtag.val('');
|
||||
if ( 'undefined' == typeof(f) )
|
||||
newtag.focus();
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
get : function(id) {
|
||||
var tax = id.substr(id.indexOf('-')+1);
|
||||
|
||||
$.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
|
||||
if ( 0 == r || 'success' != stat )
|
||||
r = wpAjax.broken;
|
||||
|
||||
r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
|
||||
$('a', r).click(function(){
|
||||
tagBox.flushTags( $(this).closest('.inside').children('.tagsdiv'), this);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#'+id).after(r);
|
||||
});
|
||||
},
|
||||
|
||||
init : function() {
|
||||
var t = this, ajaxtag = $('div.ajaxtag');
|
||||
|
||||
$('.tagsdiv').each( function() {
|
||||
tagBox.quickClicks(this);
|
||||
});
|
||||
|
||||
$('input.tagadd', ajaxtag).click(function(){
|
||||
t.flushTags( $(this).closest('.tagsdiv') );
|
||||
});
|
||||
|
||||
$('div.taghint', ajaxtag).click(function(){
|
||||
$(this).css('visibility', 'hidden').siblings('.newtag').focus();
|
||||
});
|
||||
|
||||
$('input.newtag', ajaxtag).blur(function() {
|
||||
if ( this.value == '' )
|
||||
$(this).siblings('.taghint').css('visibility', '');
|
||||
}).focus(function(){
|
||||
$(this).siblings('.taghint').css('visibility', 'hidden');
|
||||
}).keyup(function(e){
|
||||
if ( 13 == e.which ) {
|
||||
tagBox.flushTags( $(this).closest('.tagsdiv') );
|
||||
return false;
|
||||
}
|
||||
}).keypress(function(e){
|
||||
if ( 13 == e.which ) {
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}).each(function(){
|
||||
var tax = $(this).closest('div.tagsdiv').attr('id');
|
||||
$(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
|
||||
});
|
||||
|
||||
// save tags on post save/publish
|
||||
$('#post').submit(function(){
|
||||
$('div.tagsdiv').each( function() {
|
||||
tagBox.flushTags(this, false, 1);
|
||||
});
|
||||
});
|
||||
|
||||
// tag cloud
|
||||
$('a.tagcloud-link').click(function(){
|
||||
tagBox.get( $(this).attr('id') );
|
||||
$(this).unbind().click(function(){
|
||||
$(this).siblings('.the-tagcloud').toggle();
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
commentsBox = {
|
||||
st : 0,
|
||||
|
||||
get : function(total, num) {
|
||||
var st = this.st, data;
|
||||
if ( ! num )
|
||||
num = 20;
|
||||
|
||||
this.st += num;
|
||||
this.total = total;
|
||||
$('#commentsdiv img.waiting').show();
|
||||
|
||||
data = {
|
||||
'action' : 'get-comments',
|
||||
'mode' : 'single',
|
||||
'_ajax_nonce' : $('#add_comment_nonce').val(),
|
||||
'post_ID' : $('#post_ID').val(),
|
||||
'start' : st,
|
||||
'num' : num
|
||||
};
|
||||
|
||||
$.post(ajaxurl, data,
|
||||
function(r) {
|
||||
r = wpAjax.parseAjaxResponse(r);
|
||||
$('#commentsdiv .widefat').show();
|
||||
$('#commentsdiv img.waiting').hide();
|
||||
|
||||
if ( 'object' == typeof r && r.responses[0] ) {
|
||||
$('#the-comment-list').append( r.responses[0].data );
|
||||
|
||||
theList = theExtraList = null;
|
||||
$("a[className*=':']").unbind();
|
||||
setCommentsList();
|
||||
|
||||
if ( commentsBox.st > commentsBox.total )
|
||||
$('#show-comments').hide();
|
||||
else
|
||||
$('#show-comments').html(postL10n.showcomm);
|
||||
return;
|
||||
} else if ( 1 == r ) {
|
||||
$('#show-comments').parent().html(postL10n.endcomm);
|
||||
return;
|
||||
}
|
||||
|
||||
$('#the-comment-list').append('<tr><td colspan="2">'+wpAjax.broken+'</td></tr>');
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
WPSetThumbnailHTML = function(html){
|
||||
$('.inside', '#postimagediv').html(html);
|
||||
};
|
||||
|
||||
WPSetThumbnailID = function(id){
|
||||
var field = $('input[value=_thumbnail_id]', '#list-table');
|
||||
if ( field.size() > 0 ) {
|
||||
$('#meta\\[' + field.attr('id').match(/[0-9]+/) + '\\]\\[value\\]').text(id);
|
||||
}
|
||||
};
|
||||
|
||||
WPRemoveThumbnail = function(){
|
||||
$.post(ajaxurl, {
|
||||
action:"set-post-thumbnail", post_id: $('#post_ID').val(), thumbnail_id: -1, cookie: encodeURIComponent(document.cookie)
|
||||
}, function(str){
|
||||
if ( str == '0' ) {
|
||||
alert( setPostThumbnailL10n.error );
|
||||
} else {
|
||||
WPSetThumbnailHTML(str);
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
jQuery(document).ready( function($) {
|
||||
var catAddAfter, stamp, visibility, sticky = '', post = 'post' == pagenow || 'post-new' == pagenow, page = 'page' == pagenow || 'page-new' == pagenow;
|
||||
|
||||
// postboxes
|
||||
if ( post )
|
||||
postboxes.add_postbox_toggles('post');
|
||||
else if ( page )
|
||||
postboxes.add_postbox_toggles('page');
|
||||
|
||||
// multi-taxonomies
|
||||
if ( $('#tagsdiv-post_tag').length ) {
|
||||
tagBox.init();
|
||||
} else {
|
||||
$('#side-sortables, #normal-sortables, #advanced-sortables').children('div.postbox').each(function(){
|
||||
if ( this.id.indexOf('tagsdiv-') === 0 ) {
|
||||
tagBox.init();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// categories
|
||||
if ( $('#categorydiv').length ) {
|
||||
// TODO: move to jQuery 1.3+, support for multiple hierarchical taxonomies, see wp-lists.dev.js
|
||||
$('a', '#category-tabs').click(function(){
|
||||
var t = $(this).attr('href');
|
||||
$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
|
||||
$('#category-tabs').siblings('.tabs-panel').hide();
|
||||
$(t).show();
|
||||
if ( '#categories-all' == t )
|
||||
deleteUserSetting('cats');
|
||||
else
|
||||
setUserSetting('cats','pop');
|
||||
return false;
|
||||
});
|
||||
if ( getUserSetting('cats') )
|
||||
$('a[href="#categories-pop"]', '#category-tabs').click();
|
||||
|
||||
// Ajax Cat
|
||||
$('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
|
||||
$('#category-add-sumbit').click( function(){ $('#newcat').focus(); } );
|
||||
|
||||
catAddBefore = function( s ) {
|
||||
if ( !$('#newcat').val() )
|
||||
return false;
|
||||
s.data += '&' + $( ':checked', '#categorychecklist' ).serialize();
|
||||
return s;
|
||||
};
|
||||
|
||||
catAddAfter = function( r, s ) {
|
||||
var sup, drop = $('#newcat_parent');
|
||||
|
||||
if ( 'undefined' != s.parsed.responses[0] && (sup = s.parsed.responses[0].supplemental.newcat_parent) ) {
|
||||
drop.before(sup);
|
||||
drop.remove();
|
||||
}
|
||||
};
|
||||
|
||||
$('#categorychecklist').wpList({
|
||||
alt: '',
|
||||
response: 'category-ajax-response',
|
||||
addBefore: catAddBefore,
|
||||
addAfter: catAddAfter
|
||||
});
|
||||
|
||||
$('#category-add-toggle').click( function() {
|
||||
$('#category-adder').toggleClass( 'wp-hidden-children' );
|
||||
$('a[href="#categories-all"]', '#category-tabs').click();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#categorychecklist').children('li.popular-category').add( $('#categorychecklist-pop').children() ).find(':checkbox').live( 'click', function(){
|
||||
var t = $(this), c = t.is(':checked'), id = t.val();
|
||||
$('#in-category-' + id + ', #in-popular-category-' + id).attr( 'checked', c );
|
||||
});
|
||||
|
||||
} // end cats
|
||||
|
||||
// Custom Fields
|
||||
if ( $('#postcustom').length ) {
|
||||
$('#the-list').wpList( { addAfter: function( xml, s ) {
|
||||
$('table#list-table').show();
|
||||
if ( typeof( autosave_update_post_ID ) != 'undefined' ) {
|
||||
autosave_update_post_ID(s.parsed.responses[0].supplemental.postid);
|
||||
}
|
||||
}, addBefore: function( s ) {
|
||||
s.data += '&post_id=' + $('#post_ID').val();
|
||||
return s;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// submitdiv
|
||||
if ( $('#submitdiv').length ) {
|
||||
stamp = $('#timestamp').html();
|
||||
visibility = $('#post-visibility-display').html();
|
||||
|
||||
function updateVisibility() {
|
||||
var pvSelect = $('#post-visibility-select');
|
||||
if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
$('#sticky-span').hide();
|
||||
} else {
|
||||
$('#sticky-span').show();
|
||||
}
|
||||
if ( $('input:radio:checked', pvSelect).val() != 'password' ) {
|
||||
$('#password-span').hide();
|
||||
} else {
|
||||
$('#password-span').show();
|
||||
}
|
||||
}
|
||||
|
||||
function updateText() {
|
||||
var attemptedDate, originalDate, currentDate, publishOn, postStatus = $('#post_status'),
|
||||
optPublish = $('option[value=publish]', postStatus), aa = $('#aa').val(),
|
||||
mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val();
|
||||
|
||||
attemptedDate = new Date( aa, mm - 1, jj, hh, mn );
|
||||
originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val() );
|
||||
currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val() );
|
||||
|
||||
if ( attemptedDate.getFullYear() != aa || (1 + attemptedDate.getMonth()) != mm || attemptedDate.getDate() != jj || attemptedDate.getMinutes() != mn ) {
|
||||
$('.timestamp-wrap', '#timestampdiv').addClass('form-invalid');
|
||||
return false;
|
||||
} else {
|
||||
$('.timestamp-wrap', '#timestampdiv').removeClass('form-invalid');
|
||||
}
|
||||
|
||||
if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
|
||||
publishOn = postL10n.publishOnFuture;
|
||||
$('#publish').val( postL10n.schedule );
|
||||
} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
|
||||
publishOn = postL10n.publishOn;
|
||||
$('#publish').val( postL10n.publish );
|
||||
} else {
|
||||
publishOn = postL10n.publishOnPast;
|
||||
if ( page )
|
||||
$('#publish').val( postL10n.updatePage );
|
||||
else
|
||||
$('#publish').val( postL10n.updatePost );
|
||||
}
|
||||
if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
|
||||
$('#timestamp').html(stamp);
|
||||
} else {
|
||||
$('#timestamp').html(
|
||||
publishOn + ' <b>' +
|
||||
$('option[value=' + $('#mm').val() + ']', '#mm').text() + ' ' +
|
||||
jj + ', ' +
|
||||
aa + ' @ ' +
|
||||
hh + ':' +
|
||||
mn + '</b> '
|
||||
);
|
||||
}
|
||||
|
||||
if ( $('input:radio:checked', '#post-visibility-select').val() == 'private' ) {
|
||||
if ( page )
|
||||
$('#publish').val( postL10n.updatePage );
|
||||
else
|
||||
$('#publish').val( postL10n.updatePost );
|
||||
if ( optPublish.length == 0 ) {
|
||||
postStatus.append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
|
||||
} else {
|
||||
optPublish.html( postL10n.privatelyPublished );
|
||||
}
|
||||
$('option[value=publish]', postStatus).attr('selected', true);
|
||||
$('.edit-post-status', '#misc-publishing-actions').hide();
|
||||
} else {
|
||||
if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
|
||||
if ( optPublish.length ) {
|
||||
optPublish.remove();
|
||||
postStatus.val($('#hidden_post_status').val());
|
||||
}
|
||||
} else {
|
||||
optPublish.html( postL10n.published );
|
||||
}
|
||||
if ( postStatus.is(':hidden') )
|
||||
$('.edit-post-status', '#misc-publishing-actions').show();
|
||||
}
|
||||
$('#post-status-display').html($('option:selected', postStatus).text());
|
||||
if ( $('option:selected', postStatus).val() == 'private' || $('option:selected', postStatus).val() == 'publish' ) {
|
||||
$('#save-post').hide();
|
||||
} else {
|
||||
$('#save-post').show();
|
||||
if ( $('option:selected', postStatus).val() == 'pending' ) {
|
||||
$('#save-post').show().val( postL10n.savePending );
|
||||
} else {
|
||||
$('#save-post').show().val( postL10n.saveDraft );
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
$('.edit-visibility', '#visibility').click(function () {
|
||||
if ($('#post-visibility-select').is(":hidden")) {
|
||||
updateVisibility();
|
||||
$('#post-visibility-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-visibility', '#post-visibility-select').click(function () {
|
||||
$('#post-visibility-select').slideUp("normal");
|
||||
$('#visibility-radio-' + $('#hidden-post-visibility').val()).attr('checked', true);
|
||||
$('#post_password').val($('#hidden_post_password').val());
|
||||
$('#sticky').attr('checked', $('#hidden-post-sticky').attr('checked'));
|
||||
$('#post-visibility-display').html(visibility);
|
||||
$('.edit-visibility', '#visibility').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-visibility', '#post-visibility-select').click(function () { // crazyhorse - multiple ok cancels
|
||||
var pvSelect = $('#post-visibility-select');
|
||||
|
||||
pvSelect.slideUp("normal");
|
||||
$('.edit-visibility', '#visibility').show();
|
||||
updateText();
|
||||
|
||||
if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
|
||||
$('#sticky').attr('checked', false);
|
||||
}
|
||||
|
||||
if ( true == $('#sticky').attr('checked') ) {
|
||||
sticky = 'Sticky';
|
||||
} else {
|
||||
sticky = '';
|
||||
}
|
||||
|
||||
$('#post-visibility-display').html( postL10n[$('input:radio:checked', pvSelect).val() + sticky] );
|
||||
return false;
|
||||
});
|
||||
|
||||
$('input:radio', '#post-visibility-select').change(function() {
|
||||
updateVisibility();
|
||||
});
|
||||
|
||||
$('#timestampdiv').siblings('a.edit-timestamp').click(function() {
|
||||
if ($('#timestampdiv').is(":hidden")) {
|
||||
$('#timestampdiv').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-timestamp', '#timestampdiv').click(function() {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#mm').val($('#hidden_mm').val());
|
||||
$('#jj').val($('#hidden_jj').val());
|
||||
$('#aa').val($('#hidden_aa').val());
|
||||
$('#hh').val($('#hidden_hh').val());
|
||||
$('#mn').val($('#hidden_mn').val());
|
||||
$('#timestampdiv').siblings('a.edit-timestamp').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-timestamp', '#timestampdiv').click(function () { // crazyhorse - multiple ok cancels
|
||||
if ( updateText() ) {
|
||||
$('#timestampdiv').slideUp("normal");
|
||||
$('#timestampdiv').siblings('a.edit-timestamp').show();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#post-status-select').siblings('a.edit-post-status').click(function() {
|
||||
if ($('#post-status-select').is(":hidden")) {
|
||||
$('#post-status-select').slideDown("normal");
|
||||
$(this).hide();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.save-post-status', '#post-status-select').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post-status-select').siblings('a.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel-post-status', '#post-status-select').click(function() {
|
||||
$('#post-status-select').slideUp("normal");
|
||||
$('#post_status').val($('#hidden_post_status').val());
|
||||
$('#post-status-select').siblings('a.edit-post-status').show();
|
||||
updateText();
|
||||
return false;
|
||||
});
|
||||
} // end submitdiv
|
||||
|
||||
// permalink
|
||||
if ( $('#edit-slug-box').length ) {
|
||||
editPermalink = function(post_id) {
|
||||
var i, c = 0, e = $('#editable-post-name'), revert_e = e.html(), real_slug = $('#post_name'), revert_slug = real_slug.html(), b = $('#edit-slug-buttons'), revert_b = b.html(), full = $('#editable-post-name-full').html();
|
||||
|
||||
$('#view-post-btn').hide();
|
||||
b.html('<a href="#" class="save button">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+'</a>');
|
||||
b.children('.save').click(function() {
|
||||
var new_slug = e.children('input').val();
|
||||
$.post(ajaxurl, {
|
||||
action: 'sample-permalink',
|
||||
post_id: post_id,
|
||||
new_slug: new_slug,
|
||||
new_title: $('#title').val(),
|
||||
samplepermalinknonce: $('#samplepermalinknonce').val()
|
||||
}, function(data) {
|
||||
$('#edit-slug-box').html(data);
|
||||
b.html(revert_b);
|
||||
real_slug.attr('value', new_slug);
|
||||
makeSlugeditClickable();
|
||||
$('#view-post-btn').show();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.cancel', '#edit-slug-buttons').click(function() {
|
||||
$('#view-post-btn').show();
|
||||
e.html(revert_e);
|
||||
b.html(revert_b);
|
||||
real_slug.attr('value', revert_slug);
|
||||
return false;
|
||||
});
|
||||
|
||||
for ( i = 0; i < full.length; ++i ) {
|
||||
if ( '%' == full.charAt(i) )
|
||||
c++;
|
||||
}
|
||||
|
||||
slug_value = ( c > full.length / 4 ) ? '' : full;
|
||||
e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){
|
||||
var key = e.keyCode || 0;
|
||||
// on enter, just save the new slug, don't save the post
|
||||
if ( 13 == key ) {
|
||||
b.children('.save').click();
|
||||
return false;
|
||||
}
|
||||
if ( 27 == key ) {
|
||||
b.children('.cancel').click();
|
||||
return false;
|
||||
}
|
||||
real_slug.attr('value', this.value);
|
||||
}).focus();
|
||||
}
|
||||
|
||||
makeSlugeditClickable = function() {
|
||||
$('#editable-post-name').click(function() {
|
||||
$('#edit-slug-buttons').children('.edit-slug').click();
|
||||
});
|
||||
}
|
||||
makeSlugeditClickable();
|
||||
}
|
||||
});
|
||||
@@ -2,9 +2,9 @@
|
||||
Contributors: henrikmelin, kalstrom
|
||||
Donate link: http://henrikmelin.se/plugins
|
||||
Tags: custom fields, admin, metadata
|
||||
Requires at least: 2.8.2
|
||||
Tested up to: 2.8.2
|
||||
Stable tag: 1.3
|
||||
Requires at least: 2.9.1
|
||||
Tested up to: 2.9.1
|
||||
Stable tag: 1.4Beta3
|
||||
|
||||
Adds any number of extra fields in any number of additional boxes on the Write/Edit page in the Admin.
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header();
|
||||
?>
|
||||
|
||||
<div id="content" class="narrowcolumn">
|
||||
|
||||
<h2 class="center">Error 404 - Not Found</h2>
|
||||
|
||||
</div>
|
||||
|
||||
<?php get_sidebar(); ?>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,133 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header(); ?>
|
||||
|
||||
<div id="content" class="narrowcolumn" role="main">
|
||||
|
||||
<?php if (have_posts()) : ?>
|
||||
|
||||
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
|
||||
<?php /* If this is a category archive */ if (is_category()) { ?>
|
||||
<h2 class="pagetitle">Archive for the ‘<strong><?php single_cat_title(); ?></strong>’ Category</h2>
|
||||
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
|
||||
<h2 class="pagetitle">Posts Tagged ‘<strong><?php single_tag_title(); ?></strong>’</h2>
|
||||
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
|
||||
<h2 class="pagetitle">Archive for <strong><?php the_time('F jS, Y'); ?></strong></h2>
|
||||
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
|
||||
<h2 class="pagetitle">Archive for <strong><?php the_time('F, Y'); ?></strong></h2>
|
||||
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
|
||||
<h2 class="pagetitle">Archive for <strong><?php the_time('Y'); ?></strong></h2>
|
||||
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
|
||||
<h2 class="pagetitle"><strong>Author</strong> Archive</h2>
|
||||
<div class="authPage">
|
||||
<div class="autor">
|
||||
<div class="picture">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = $wp_query->get_queried_object();
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '70', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="info">
|
||||
<span class="name"><?php echo $curauth->display_name; ?></span>
|
||||
<span class="site"><a href="<?php echo $curauth->user_url; ?>" target="_blank">Visit Authors Website</a></span>
|
||||
<span class="desc"><?php echo $curauth->user_description; ?></span>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
|
||||
<h2 class="pagetitle"><strong>Blog</strong> Archives</h2>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php next_posts_link('Older Entries') ?></div>
|
||||
<div class="alignright"><?php previous_posts_link('Newer Entries') ?></div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
|
||||
<?php while (have_posts()) : the_post(); ?>
|
||||
<div <?php post_class() ?>>
|
||||
<div class="postDate"><?php the_time("M jS,"); ?><span><?php the_time("Y"); ?></span></div>
|
||||
<div class="postHeader">
|
||||
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
|
||||
|
||||
<div class="postMeta">
|
||||
<?php if (!is_author()) { ?>
|
||||
<div class="autor">
|
||||
<div class="image">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = get_userdata($post->post_author);
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '30', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="text">
|
||||
Published by:
|
||||
<strong><?php the_author_posts_link(); ?></strong>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="postComm">
|
||||
<span class="nr"><?php comments_popup_link('0', '1', '%'); ?></span>
|
||||
Comments so far
|
||||
<a href="<?php the_permalink() ?>#respond" class="reply">Leave a reply</a>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postCats">
|
||||
Published in:
|
||||
<strong><?php the_category(', ') ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$pic = get_post_meta($post->ID, 'post-img', true);
|
||||
if ($pic) {
|
||||
?>
|
||||
<div class="postImg">
|
||||
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Visualize <?php the_title_attribute(); ?>"><img src="<?php echo $pic; ?>" alt="<?php the_title(); ?>" width="400" /></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="entry <?php if ($pic) { echo "big"; } else { echo "small"; }?>">
|
||||
<?php the_excerpt(); ?>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
|
||||
<?php endwhile; ?>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php next_posts_link('Older Entries') ?></div>
|
||||
<div class="alignright"><?php previous_posts_link('Newer Entries') ?></div>
|
||||
</div>
|
||||
<?php else :
|
||||
|
||||
if ( is_category() ) { // If this is a category archive
|
||||
printf("<h2 class='center'>Sorry, but there aren't any posts in the %s category yet.</h2>", single_cat_title('',false));
|
||||
} else if ( is_date() ) { // If this is a date archive
|
||||
echo("<h2>Sorry, but there aren't any posts with this date.</h2>");
|
||||
} else if ( is_author() ) { // If this is a category archive
|
||||
$userdata = get_userdatabylogin(get_query_var('author_name'));
|
||||
printf("<h2 class='center'>Sorry, but there aren't any posts by %s yet.</h2>", $userdata->display_name);
|
||||
} else {
|
||||
echo("<h2 class='center'>No posts found.</h2>");
|
||||
}
|
||||
get_search_form();
|
||||
|
||||
endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php get_sidebar(); ?>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
/*
|
||||
Template Name: Archives
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php get_header(); ?>
|
||||
|
||||
<div id="content" class="widecolumn">
|
||||
|
||||
<?php get_search_form(); ?>
|
||||
|
||||
<h2>Archives by Month:</h2>
|
||||
<ul>
|
||||
<?php wp_get_archives('type=monthly'); ?>
|
||||
</ul>
|
||||
|
||||
<h2>Archives by Subject:</h2>
|
||||
<ul>
|
||||
<?php wp_list_categories(); ?>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title><?php echo get_option('blogname'); ?> - Comments on <?php the_title(); ?></title>
|
||||
|
||||
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
|
||||
<style type="text/css" media="screen">
|
||||
@import url( <?php bloginfo('stylesheet_url'); ?> );
|
||||
body { margin: 3px; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body id="commentspopup">
|
||||
|
||||
<h1 id="header"><a href="" title="<?php echo get_option('blogname'); ?>"><?php echo get_option('blogname'); ?></a></h1>
|
||||
|
||||
<?php
|
||||
/* Don't remove these lines. */
|
||||
add_filter('comment_text', 'popuplinks');
|
||||
if ( have_posts() ) :
|
||||
while ( have_posts() ) : the_post();
|
||||
?>
|
||||
<h2 id="comments">Comments</h2>
|
||||
|
||||
<p><a href="<?php echo get_post_comments_feed_link($post->ID); ?>"><abbr title="Really Simple Syndication">RSS</abbr> feed for comments on this post.</a></p>
|
||||
|
||||
<?php if ( pings_open() ) { ?>
|
||||
<p>The <abbr title="Universal Resource Locator">URL</abbr> to TrackBack this entry is: <em><?php trackback_url() ?></em></p>
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
// this line is WordPress' motor, do not delete it.
|
||||
$commenter = wp_get_current_commenter();
|
||||
extract($commenter);
|
||||
$comments = get_approved_comments($id);
|
||||
$post = get_post($id);
|
||||
if ( post_password_required($post) ) { // and it doesn't match the cookie
|
||||
echo(get_the_password_form());
|
||||
} else { ?>
|
||||
|
||||
<?php if ($comments) { ?>
|
||||
<ol id="commentlist">
|
||||
<?php foreach ($comments as $comment) { ?>
|
||||
<li id="comment-<?php comment_ID() ?>">
|
||||
<?php comment_text() ?>
|
||||
<p><cite><?php comment_type('Comment', 'Trackback', 'Pingback'); ?> by <?php comment_author_link() ?> — <?php comment_date() ?> @ <a href="#comment-<?php comment_ID() ?>"><?php comment_time() ?></a></cite></p>
|
||||
</li>
|
||||
|
||||
<?php } // end for each comment ?>
|
||||
</ol>
|
||||
<?php } else { // this is displayed if there are no comments so far ?>
|
||||
<p>No comments yet.</p>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ( comments_open() ) { ?>
|
||||
<h2>Leave a comment</h2>
|
||||
<p>Line and paragraph breaks automatic, e-mail address never displayed, <acronym title="Hypertext Markup Language">HTML</acronym> allowed: <code><?php echo allowed_tags(); ?></code></p>
|
||||
|
||||
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
|
||||
<?php if ( $user_ID ) : ?>
|
||||
<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out »</a></p>
|
||||
<?php else : ?>
|
||||
<p>
|
||||
<input type="text" name="author" id="author" class="textarea" value="<?php echo esc_attr($comment_author); ?>" size="28" tabindex="1" />
|
||||
<label for="author">Name</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="28" tabindex="2" />
|
||||
<label for="email">E-mail</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="28" tabindex="3" />
|
||||
<label for="url"><abbr title="Universal Resource Locator">URL</abbr></label>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<p>
|
||||
<label for="comment">Your Comment</label>
|
||||
<br />
|
||||
<textarea name="comment" id="comment" cols="70" rows="4" tabindex="4"></textarea>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
|
||||
<input type="hidden" name="redirect_to" value="<?php echo esc_attr($_SERVER["REQUEST_URI"]); ?>" />
|
||||
<input name="submit" type="submit" tabindex="5" value="Say It!" />
|
||||
</p>
|
||||
<?php do_action('comment_form', $post->ID); ?>
|
||||
</form>
|
||||
<?php } else { // comments are closed ?>
|
||||
<p>Sorry, the comment form is closed at this time.</p>
|
||||
<?php }
|
||||
} // end password check
|
||||
?>
|
||||
|
||||
<div><strong><a href="javascript:window.close()">Close this window.</a></strong></div>
|
||||
|
||||
<?php // if you delete this the sky will fall on your head
|
||||
endwhile; //endwhile have_posts()
|
||||
else: //have_posts()
|
||||
?>
|
||||
<p>Sorry, no posts matched your criteria.</p>
|
||||
<?php endif; ?>
|
||||
<!-- // this is just the end of the motor - don't touch that line either :) -->
|
||||
<?php //} ?>
|
||||
<p class="credit"><?php timer_stop(1); ?> <cite>Powered by <a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform"><strong>WordPress</strong></a></cite></p>
|
||||
<?php // Seen at http://www.mijnkopthee.nl/log2/archive/2003/05/28/esc(18) ?>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
document.onkeypress = function esc(e) {
|
||||
if(typeof(e) == "undefined") { e=event; }
|
||||
if (e.keyCode == 27) { self.close(); }
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
// Do not delete these lines
|
||||
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
|
||||
die ('Please do not load this page directly. Thanks!');
|
||||
|
||||
if ( post_password_required() ) { ?>
|
||||
<p class="nocomments">This post is password protected. Enter the password to view comments.</p>
|
||||
<?php
|
||||
return;
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- You can start editing here. -->
|
||||
|
||||
<?php if ( have_comments() ) : ?>
|
||||
<h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to “<?php the_title(); ?>”</h3>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php previous_comments_link() ?></div>
|
||||
<div class="alignright"><?php next_comments_link() ?></div>
|
||||
</div>
|
||||
|
||||
<ol class="commentlist">
|
||||
<?php wp_list_comments(); ?>
|
||||
</ol>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php previous_comments_link() ?></div>
|
||||
<div class="alignright"><?php next_comments_link() ?></div>
|
||||
</div>
|
||||
<?php else : // this is displayed if there are no comments so far ?>
|
||||
|
||||
<?php if ( comments_open() ) : ?>
|
||||
<!-- If comments are open, but there are no comments. -->
|
||||
|
||||
<?php else : // comments are closed ?>
|
||||
<!-- If comments are closed. -->
|
||||
<p class="nocomments">Comments are closed.</p>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<?php if ( comments_open() ) : ?>
|
||||
|
||||
<div id="respond">
|
||||
|
||||
<h3><?php comment_form_title( 'Leave a Reply', 'Leave a Reply to %s' ); ?></h3>
|
||||
<br clear="all" />
|
||||
<div class="cancel-comment-reply">
|
||||
<small><?php cancel_comment_reply_link(); ?></small>
|
||||
</div>
|
||||
|
||||
<?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>
|
||||
<p>You must be <a href="<?php echo wp_login_url( get_permalink() ); ?>">logged in</a> to post a comment.</p>
|
||||
<?php else : ?>
|
||||
|
||||
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
|
||||
|
||||
<?php if ( is_user_logged_in() ) : ?>
|
||||
|
||||
<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out »</a></p>
|
||||
|
||||
<?php else : ?>
|
||||
|
||||
<p><label for="author"><small>Name <?php if ($req) echo "(required)"; ?></small></label>
|
||||
<input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
|
||||
</p>
|
||||
|
||||
<p><label for="email"><small>Mail (will not be published) <?php if ($req) echo "(required)"; ?></small></label>
|
||||
<input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
|
||||
</p>
|
||||
|
||||
<p><label for="url"><small>Website</small></label>
|
||||
<input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
|
||||
</p>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<!--<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>-->
|
||||
|
||||
<p><label for="comment"><small>Your Opinion</small></label>
|
||||
<textarea name="comment" id="comment" tabindex="4"></textarea></p>
|
||||
|
||||
<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
|
||||
<?php comment_id_fields(); ?>
|
||||
</p>
|
||||
<?php do_action('comment_form', $post->ID); ?>
|
||||
|
||||
</form>
|
||||
|
||||
<?php endif; // If registration required and not logged in ?>
|
||||
</div>
|
||||
|
||||
<?php endif; // if you delete this the sky will fall on your head ?>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
?>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<hr />
|
||||
<div id="footer" role="contentinfo">
|
||||
<!-- Please keep the links back to us. It's our only way to give more great themes for your blog. Thank you! -->
|
||||
<p>
|
||||
<strong><?php bloginfo('name'); ?></strong> is proudly powered by
|
||||
<a href="http://siteeditor.net/">premium wordpress themes</a> and designed by <a href="http://premiumjoomla.net/">premium joomla templates</a>
|
||||
<br /><a href="<?php bloginfo('rss2_url'); ?>">Entries (RSS)</a>
|
||||
and <a href="<?php bloginfo('comments_rss2_url'); ?>">Comments (RSS)</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php wp_footer(); ?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
automatic_feed_links();
|
||||
|
||||
if ( function_exists('register_sidebar') )
|
||||
register_sidebar(array('name'=>'sidebar',
|
||||
'before_widget' => '<li id="%1$s" class="widget %2$s">',
|
||||
'after_widget' => '</li>',
|
||||
'before_title' => '<h2 class="widgettitle">',
|
||||
'after_title' => '</h2>',
|
||||
));
|
||||
|
||||
|
||||
|
||||
function new_excerpt_length($length) {
|
||||
return 30;
|
||||
}
|
||||
add_filter('excerpt_length', 'new_excerpt_length');
|
||||
|
||||
function new_excerpt_more($excerpt) {
|
||||
global $wp_query;
|
||||
$id = $wp_query->ID;
|
||||
$the_link = get_permalink($id);
|
||||
$more = '... <a href="'.$the_link.'">read more</a>';
|
||||
return str_replace('[...]', $more, $excerpt);
|
||||
}
|
||||
add_filter('wp_trim_excerpt', 'new_excerpt_more');
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
|
||||
<head profile="http://gmpg.org/xfn/11">
|
||||
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
|
||||
|
||||
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
|
||||
|
||||
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
|
||||
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
|
||||
|
||||
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
|
||||
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<body <?php body_class(); ?>>
|
||||
<div id="page">
|
||||
|
||||
|
||||
<div id="header" role="banner">
|
||||
<div class="topHeader">
|
||||
<ul class="meniu">
|
||||
<?php if (is_home()) { ?>
|
||||
<li class="page_item current_page_item"><a href="<?php bloginfo('url'); ?>/">Home</a></li>
|
||||
<?php } else { ?>
|
||||
<li class="page_item"><a href="<?php bloginfo('url'); ?>/">Home</a></li>
|
||||
<?php } ?>
|
||||
<?php wp_list_pages('title_li='); ?>
|
||||
</ul>
|
||||
<div class="rss">
|
||||
<a href="<?php bloginfo('rss2_url'); ?>" class="feed">Subscribe To<span>Our Feed</span></a>
|
||||
<a href="http://www.twitter.com/filecluster" class="twit" target="_blank">Follow Us<span>On Twitter</span></a>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="topBar">
|
||||
<div class="logo">
|
||||
<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
|
||||
<div class="description"><?php bloginfo('description'); ?></div>
|
||||
</div>
|
||||
<div class="fSearch">
|
||||
<form id="searchform" action="<?php bloginfo('url'); ?>/" method="get" role="search">
|
||||
<input id="s" type="text" name="s" value="type here & press enter" onfocus="this.value=''" />
|
||||
<input id="searchsubmit" class="hidden" type="submit" value=""/>
|
||||
</form>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="container">
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header();
|
||||
?>
|
||||
|
||||
<div id="content" class="narrowcolumn">
|
||||
|
||||
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||
|
||||
<div class="post" id="post-<?php the_ID(); ?>">
|
||||
<div class="postDate"><?php the_time("M jS,"); ?><span><?php the_time("Y"); ?></span></div>
|
||||
<div class="postHeader">
|
||||
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
|
||||
|
||||
<div class="postMeta">
|
||||
<div class="autor">
|
||||
<div class="image">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = get_userdata($post->post_author);
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '30', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="text">
|
||||
Published by:
|
||||
<strong><?php the_author_posts_link(); ?></strong>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postComm">
|
||||
<span class="nr"><?php comments_popup_link('0', '1', '%'); ?></span>
|
||||
Comments so far
|
||||
<a href="<?php the_permalink() ?>#respond" class="reply">Leave a reply</a>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postCats">
|
||||
Published in:
|
||||
<strong><?php the_category(', ') ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$pic = get_post_meta($post->ID, 'post-img', true);
|
||||
if ($pic) {
|
||||
?>
|
||||
<div class="postImg">
|
||||
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Visualize <?php the_title_attribute(); ?>"><img src="<?php echo $pic; ?>" alt="<?php the_title(); ?>" width="400" /></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="entry <?php if ($pic) { echo "big"; } else { echo "small"; }?>">
|
||||
<p class="attachment"><a href="<?php echo wp_get_attachment_url($post->ID); ?>"><?php echo wp_get_attachment_image( $post->ID, 'medium' ); ?></a></p>
|
||||
<div class="caption"><?php if ( !empty($post->post_excerpt) ) the_excerpt(); // this is the "caption" ?></div>
|
||||
<?php the_content('<p class="serif">Read the rest of this entry »</p>'); ?>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<br clear="all" />
|
||||
<div class="commentZone">
|
||||
<?php comments_template(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<?php endwhile; else: ?>
|
||||
|
||||
<p>Sorry, no attachments matched your criteria.</p>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
<?php get_sidebar(); ?>
|
||||
<?php get_footer(); ?>
|
||||
|
After Width: | Height: | Size: 121 B |
|
After Width: | Height: | Size: 140 B |
|
After Width: | Height: | Size: 44 B |
|
After Width: | Height: | Size: 97 B |
|
After Width: | Height: | Size: 322 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 43 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 749 B |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 43 B |
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header(); ?>
|
||||
|
||||
<div id="content" class="narrowcolumn" role="main">
|
||||
|
||||
<?php if (is_home()) { ?>
|
||||
<h2 class="pagetitle">Latest Articles</h2>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (have_posts()) : ?>
|
||||
|
||||
<?php while (have_posts()) : the_post(); ?>
|
||||
|
||||
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
|
||||
<div class="postDate"><?php the_time("M jS,"); ?><span><?php the_time("Y"); ?></span></div>
|
||||
<div class="postHeader">
|
||||
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
|
||||
|
||||
<div class="postMeta">
|
||||
<div class="autor">
|
||||
<div class="image">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = get_userdata($post->post_author);
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '30', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="text">
|
||||
Published by:
|
||||
<strong><?php the_author_posts_link(); ?></strong>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postComm">
|
||||
<span class="nr"><?php comments_popup_link('0', '1', '%'); ?></span>
|
||||
Comments so far
|
||||
<a href="<?php the_permalink() ?>#respond" class="reply">Leave a reply</a>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postCats">
|
||||
Published in:
|
||||
<strong><?php the_category(', ') ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$pic = get_post_meta($post->ID, 'post-img', true);
|
||||
if ($pic) {
|
||||
?>
|
||||
<div class="postImg">
|
||||
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Visualize <?php the_title_attribute(); ?>"><img src="<?php echo $pic; ?>" alt="<?php the_title(); ?>" width="400" /></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="entry <?php if ($pic) { echo "big"; } else { echo "small"; }?>">
|
||||
<?php the_excerpt(); ?>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
|
||||
<?php endwhile; ?>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
|
||||
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
|
||||
<?php else : ?>
|
||||
|
||||
<h2 class="pagetitle">Not Found</h2>
|
||||
<p class="center">Sorry, but you are looking for something that isn't here.</p>
|
||||
<?php get_search_form(); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php get_sidebar(); ?>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,32 @@
|
||||
-----How to install------------
|
||||
|
||||
|
||||
1. Be sure that you have an active installation of Wordpress
|
||||
2. Unpack the archive
|
||||
3. Copy the unpacked folder to the /wp-content/themes/
|
||||
4. Activate the theme
|
||||
|
||||
|
||||
|
||||
----Additional theme details---------
|
||||
|
||||
|
||||
The theme is widget ready, meaning you can visit the Appearance settings of your Admin area and add any widget to the sidebars.
|
||||
|
||||
For optimum personalization of the theme, we recommend the following plugins:
|
||||
|
||||
All in One SEO Pack: http://wordpress.org/extend/plugins/all-in-one-seo-pack/
|
||||
WP Super Cache: http://wordpress.org/extend/plugins/wp-super-cache/
|
||||
Similar Posts: http://wordpress.org/extend/plugins/similar-posts/
|
||||
Recent Posts: http://wordpress.org/extend/plugins/recent-posts-plugin/
|
||||
Recent Comments: http://wordpress.org/extend/plugins/recent-comments-plugin/
|
||||
Simple Tags: http://wordpress.org/extend/plugins/simple-tags/
|
||||
|
||||
Similar Posts, Recent Posts and Recent Comments - To install these plugins, first download the Post-Plugin Library here: http://wordpress.org/extend/plugins/post-plugin-library/
|
||||
|
||||
|
||||
|
||||
-----Copyright---------
|
||||
|
||||
|
||||
The theme is designed and created by FileCluster™. You DON'T have the right to commercially distribute this theme or its graphics. You HAVE the right the modify the theme to fit your own personal needs. You can share this theme as long as you give credit to the author/creator, usually by leaving the credit link at the bottom of the theme in place. Please support the author, FileCluster™, as that encourages our development team to create more free premium themes.
|
||||
@@ -0,0 +1,496 @@
|
||||
//MooTools, <http://mootools.net>, My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
|
||||
|
||||
var MooTools={version:"1.2.0",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;
|
||||
var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype;}C.prototype.constructor=C;
|
||||
if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D);}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N;}if(G){Native.genericize(M,K,B);
|
||||
}F.call(M,K,N);return M;};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N);}for(var M in L){I(this,M,L[M],K);}return this;};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];
|
||||
if(M){I(this,K,M,N);}}else{for(var L in M){this.alias(L,M[L],K);}}return this;};return C;};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C);
|
||||
}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D);
|
||||
};}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B);};}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F);
|
||||
}};(function(B){for(var A in B){Native.typize(B[A],A);}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true});
|
||||
}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true);
|
||||
}return arguments.callee;})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);
|
||||
function $chk(A){return !!(A||A===0);}function $clear(A){clearTimeout(A);clearInterval(A);return null;}function $defined(A){return(A!=undefined);}function $empty(){}function $arguments(A){return function(){return arguments[A];
|
||||
};}function $lambda(A){return(typeof A=="function")?A:function(){return A;};}function $extend(C,A){for(var B in (A||{})){C[B]=A[B];}return C;}function $unlink(C){var B;
|
||||
switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E]);}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;
|
||||
D<A;D++){B[D]=$unlink(C[D]);}break;default:return C;}return B;}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue;
|
||||
}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G);}}return E;}function $pick(){for(var B=0,A=arguments.length;
|
||||
B<A;B++){if(arguments[B]!=undefined){return arguments[B];}}return null;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);}function $splat(B){var A=$type(B);
|
||||
return(A)?((A!="array"&&A!="arguments")?[B]:B):[];}var $time=Date.now||function(){return new Date().getTime();};function $try(){for(var B=0,A=arguments.length;
|
||||
B<A;B++){try{return arguments[B]();}catch(C){}}return null;}function $type(A){if(A==undefined){return false;}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name;
|
||||
}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace";}}else{if(typeof A.length=="number"){if(A.callee){return"arguments";
|
||||
}else{if(A.item){return"collection";}}}}return typeof A;}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean());
|
||||
}for(var B in A){this[B]=A[B];}return this;}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++;}}return B;
|
||||
},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this);}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A];
|
||||
}}return B;}});Hash.alias("forEach","each");function $H(A){return new Hash(A);}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);
|
||||
}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B];}return D;}return Array.prototype.slice.call(C);
|
||||
}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D);}var Browser=new Hash({Engine:{name:"unknown",version:""},Platform:{name:(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime)},Plugins:{}});
|
||||
if(window.opera){Browser.Engine={name:"presto",version:(document.getElementsByClassName)?950:925};}else{if(window.ActiveXObject){Browser.Engine={name:"trident",version:(window.XMLHttpRequest)?5:4};
|
||||
}else{if(!navigator.taintEnabled){Browser.Engine={name:"webkit",version:(Browser.Features.xpath)?420:419};}else{if(document.getBoxObjectFor!=null){Browser.Engine={name:"gecko",version:(document.getElementsByClassName)?19:18};
|
||||
}}}}Browser.Engine[Browser.Engine.name]=Browser.Engine[Browser.Engine.name+Browser.Engine.version]=true;if(window.orientation!=undefined){Browser.Platform.name="ipod";
|
||||
}Browser.Platform[Browser.Platform.name]=true;Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("MSXML2.XMLHTTP");
|
||||
});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description;
|
||||
},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)};
|
||||
})();function $exec(B){if(!B){return B;}if(window.execScript){window.execScript(B);}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");
|
||||
A.text=B;document.head.appendChild(A);document.head.removeChild(A);}return B;}Native.UID=1;var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0];
|
||||
}:function(A){return A.uid||(A.uid=Native.UID++);};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);
|
||||
if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe");}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};
|
||||
}return $extend(A,Window.Prototype);},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A;}});Window.Prototype={$family:{name:"window"}};new Window(window);
|
||||
var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];
|
||||
A.html=A.getElementsByTagName("html")[0];A.window=A.defaultView||A.parentWindow;if(Browser.Engine.trident4){$try(function(){A.execCommand("BackgroundImageCache",false,true);
|
||||
});}return $extend(A,Document.Prototype);},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A;}});Document.Prototype={$family:{name:"document"}};
|
||||
new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false;}}return true;
|
||||
},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B]);}}return C;},clean:function(){return this.filter($defined);
|
||||
},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B;}}return -1;},map:function(D,E){var C=[];
|
||||
for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this);}return C;},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true;
|
||||
}}return false;},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A];}return D;},link:function(C){var A={};
|
||||
for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break;}}}return A;},contains:function(A,B){return this.indexOf(A,B)!=-1;
|
||||
},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;
|
||||
},include:function(A){if(!this.contains(A)){this.push(A);}return this;},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B]);}return this;
|
||||
},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var D=[];
|
||||
for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue;}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B]);
|
||||
}return D;},hexToRgb:function(B){if(this.length!=3){return null;}var A=this.map(function(C){if(C.length==1){C+=C;}return C.toInt(16);});return(B)?A:"rgb("+A+")";
|
||||
},rgbToHex:function(D){if(this.length<3){return null;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);
|
||||
B.push((C.length==1)?"0"+C:C);}return(D)?B:"#"+B.join("");}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B];}return this;},create:function(B){var A=this;
|
||||
B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C);
|
||||
}var E=function(){return A.apply(B.bind||null,C);};if(B.delay){return setTimeout(E,B.delay);}if(B.periodical){return setInterval(E,B.periodical);}if(B.attempt){return $try(E);
|
||||
}return E();};},pass:function(A,B){return this.create({arguments:A,bind:B});},attempt:function(A,B){return this.create({arguments:A,bind:B,attempt:true})();
|
||||
},bind:function(B,A){return this.create({bind:B,arguments:A});},bindWithEvent:function(B,A){return this.create({bind:B,event:true,arguments:A});},delay:function(B,C,A){return this.create({delay:B,bind:C,arguments:A})();
|
||||
},periodical:function(A,C,B){return this.create({periodical:A,bind:C,arguments:B})();},run:function(A,B){return this.apply(B,$splat(A));}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this));
|
||||
},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B,C){for(var A=0;A<this;A++){B.call(C,A,this);}},toFloat:function(){return parseFloat(this);
|
||||
},toInt:function(A){return parseInt(this,A||10);}});Number.alias("times","each");(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)));
|
||||
};}});Number.implement(A);})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this);
|
||||
},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim();
|
||||
},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase());
|
||||
});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
|
||||
},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
|
||||
return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A="";
|
||||
var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C);
|
||||
}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:"";
|
||||
});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null;
|
||||
},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C);
|
||||
},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null;
|
||||
},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this);
|
||||
return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this));
|
||||
},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false;
|
||||
}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[];
|
||||
Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[];
|
||||
Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H;
|
||||
});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});
|
||||
var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type;
|
||||
var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;
|
||||
if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;
|
||||
var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};
|
||||
if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;
|
||||
break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false;
|
||||
}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey});
|
||||
}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();
|
||||
},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
|
||||
}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(E){for(var D in this){this[D]=$unlink(this[D]);
|
||||
}for(var F in Class.Mutators){if(!this[F]){continue;}Class.Mutators[F](this,this[F]);delete this[F];}this.constructor=A;if(E===$empty){return this;}var C=(this.initialize)?this.initialize.apply(this,arguments):this;
|
||||
if(this.options&&this.options.initialize){this.options.initialize.call(this);}return C;};$extend(A,this);A.constructor=Class;A.prototype=B;return A;}});
|
||||
Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this;}});Class.Mutators={Implements:function(A,B){$splat(B).each(function(C){$extend(A,($type(C)=="class")?new C($empty):C);
|
||||
});},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];
|
||||
if(current==undefined){self[key]=previous;continue;}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue;}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ");
|
||||
})+")");}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current);}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments);
|
||||
};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1));};}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);
|
||||
return this;},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){if(this.$chain){this.$chain.empty();
|
||||
}return this;}});var Events=new Class({addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events=this.$events||{};this.$events[C]=this.$events[C]||[];
|
||||
this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C);
|
||||
if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B);
|
||||
if(!this.$events||!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){for(var D in this.$events){if(C&&C!=D){continue;
|
||||
}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]);}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();
|
||||
});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;
|
||||
}this.addEvent(A,this.options[A]);delete this.options[A];}return this;}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return ;
|
||||
}A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C];}});A="<"+A+">";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A);
|
||||
},getDocument:function(){return this;},getWindow:function(){return this.defaultView||this.parentWindow;},purge:function(){var C=this.getElementsByTagName("*");
|
||||
for(var B=0,A=C.length;B<A;B++){Browser.freeMem(C[B]);}}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);
|
||||
if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){if(!Array[A]){Elements.implement(A,Elements.multi(A));
|
||||
}Element.Prototype[A]=B;}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});
|
||||
var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);
|
||||
var A=function(){var F=$try(function(){return B.contentWindow.location.host;});if(F&&F==window.location.host){var H=new Window(B.contentWindow);var G=new Document(B.contentWindow.document);
|
||||
$extend(H.Element.prototype,Element.Prototype);}D.call(B.contentWindow,B.contentWindow.document);};(!window.frames[C.id])?B.addListener("load",A):A();return B;
|
||||
}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;
|
||||
C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue;}G[D.uid]=true;}E.push(D);}F=E;}return(B.cash)?$extend(F,this):F;}});Elements.implement({filter:function(A,B){if(!A){return this;
|
||||
}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A);}:A,B));}});Elements.multi=function(A){return function(){var B=[];
|
||||
var F=true;for(var D=0,C=this.length;D<C;D++){var E=this[D][A].apply(this[D],arguments);B.push(E);if(F){F=($type(E)=="element");}}return(F)?new Elements(B):B;
|
||||
};};Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B);return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);
|
||||
}var F=[];var C=Array.flatten(arguments);for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":E=[E];break;case"string":E=this.document.getElements(E,true);
|
||||
break;default:E=false;}if(E){F.extend(E);}}return new Elements(F);},getDocument:function(){return this.document;},getWindow:function(){return this;}});
|
||||
$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null;};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;
|
||||
for(var C in B){A[C]=B[C];}}return A;};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C);}return null;};$.textnode=$.whitespace=$.window=$.document=$arguments(0);
|
||||
Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B);},getElements:function(A,D){A=A.split(",");
|
||||
var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D});
|
||||
}});Element.Storage={get:function(A){return(this[A]||(this[A]={}));}};Element.Inserters=new Hash({before:function(B,A){if(A.parentNode){A.parentNode.insertBefore(B,A);
|
||||
}},after:function(B,A){if(!A.parentNode){return ;}var C=A.nextSibling;(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B);},bottom:function(B,A){A.appendChild(B);
|
||||
},top:function(B,A){var C=A.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B);}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(C,B){var A=B.capitalize();
|
||||
Element.implement("inject"+A,function(D){C(this,$(D,true));return this;});Element.implement("grab"+A,function(D){C($(D,true),this);return this;});});Element.implement({getDocument:function(){return this.ownerDocument;
|
||||
},getWindow:function(){return this.ownerDocument.getWindow();},getElementById:function(D,C){var B=this.ownerDocument.getElementById(D);if(!B){return null;
|
||||
}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return null;}}return $.element(B,C);},set:function(D,B){switch($type(D)){case"object":for(var C in D){this.set(C,D[C]);
|
||||
}break;case"string":var A=Element.Properties.get(D);(A&&A.set)?A.set.apply(this,Array.slice(arguments,1)):this.setProperty(D,B);}return this;},get:function(B){var A=Element.Properties.get(B);
|
||||
return(A&&A.get)?A.get.apply(this,Array.slice(arguments,1)):this.getProperty(B);},erase:function(B){var A=Element.Properties.get(B);(A&&A.erase)?A.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(B);
|
||||
return this;},match:function(A){return(!A||Element.get(this,"tag")==A);},inject:function(B,A){Element.Inserters.get(A||"bottom")(this,$(B,true));return this;
|
||||
},wraps:function(B,A){B=$(B,true);return this.replaces(B).grab(B,A);},grab:function(B,A){Element.Inserters.get(A||"bottom")($(B,true),this);return this;
|
||||
},appendText:function(B,A){return this.grab(this.getDocument().newTextNode(B),A);},adopt:function(){Array.flatten(arguments).each(function(A){A=$(A,true);
|
||||
if(A){this.appendChild(A);}},this);return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},clone:function(D,C){switch($type(this)){case"element":var H={};
|
||||
for(var G=0,E=this.attributes.length;G<E;G++){var B=this.attributes[G],L=B.nodeName.toLowerCase();if(Browser.Engine.trident&&(/input/i).test(this.tagName)&&(/width|height/).test(L)){continue;
|
||||
}var K=(L=="style"&&this.style)?this.style.cssText:B.nodeValue;if(!$chk(K)||L=="uid"||(L=="id"&&!C)){continue;}if(K!="inherit"&&["string","number"].contains($type(K))){H[L]=K;
|
||||
}}var J=new Element(this.nodeName.toLowerCase(),H);if(D!==false){for(var I=0,F=this.childNodes.length;I<F;I++){var A=Element.clone(this.childNodes[I],true,C);
|
||||
if(A){J.grab(A);}}}return J;case"textnode":return document.newTextNode(this.nodeValue);}return null;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this,A);
|
||||
return this;},hasClass:function(A){return this.className.contains(A," ");},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean();
|
||||
}return this;},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this;},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A);
|
||||
},getComputedStyle:function(B){if(this.currentStyle){return this.currentStyle[B.camelCase()];}var A=this.getWindow().getComputedStyle(this,null);return(A)?A.getPropertyValue([B.hyphenate()]):null;
|
||||
},empty:function(){$A(this.childNodes).each(function(A){Browser.freeMem(A);Element.empty(A);Element.dispose(A);},this);return this;},destroy:function(){Browser.freeMem(this.empty().dispose());
|
||||
return null;},getSelected:function(){return new Elements($A(this.options).filter(function(A){return A.selected;}));},toQueryString:function(){var A=[];
|
||||
this.getElements("input, select, textarea").each(function(B){if(!B.name||B.disabled){return ;}var C=(B.tagName.toLowerCase()=="select")?Element.getSelected(B).map(function(D){return D.value;
|
||||
}):((B.type=="radio"||B.type=="checkbox")&&!B.checked)?null:B.value;$splat(C).each(function(D){if(D){A.push(B.name+"="+encodeURIComponent(D));}});});return A.join("&");
|
||||
},getProperty:function(C){var B=Element.Attributes,A=B.Props[C];var D=(A)?this[A]:this.getAttribute(C,2);return(B.Bools[C])?!!D:(A)?D:D||null;},getProperties:function(){var A=$A(arguments);
|
||||
return A.map(function(B){return this.getProperty(B);},this).associate(A);},setProperty:function(D,E){var C=Element.Attributes,B=C.Props[D],A=$defined(E);
|
||||
if(B&&C.Bools[D]){E=(E||!A)?true:false;}else{if(!A){return this.removeProperty(D);}}(B)?this[B]=E:this.setAttribute(D,E);return this;},setProperties:function(A){for(var B in A){this.setProperty(B,A[B]);
|
||||
}return this;},removeProperty:function(D){var C=Element.Attributes,B=C.Props[D],A=(B&&C.Bools[D]);(B)?this[B]=(A)?false:"":this.removeAttribute(D);return this;
|
||||
},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;}});(function(){var A=function(D,B,I,C,F,H){var E=D[I||B];var G=[];
|
||||
while(E){if(E.nodeType==1&&(!C||Element.match(E,C))){G.push(E);if(!F){break;}}E=E[B];}return(F)?new Elements(G,{ddup:false,cash:!H}):$(G[0],H);};Element.implement({getPrevious:function(B,C){return A(this,"previousSibling",null,B,false,C);
|
||||
},getAllPrevious:function(B,C){return A(this,"previousSibling",null,B,true,C);},getNext:function(B,C){return A(this,"nextSibling",null,B,false,C);},getAllNext:function(B,C){return A(this,"nextSibling",null,B,true,C);
|
||||
},getFirst:function(B,C){return A(this,"nextSibling","firstChild",B,false,C);},getLast:function(B,C){return A(this,"previousSibling","lastChild",B,false,C);
|
||||
},getParent:function(B,C){return A(this,"parentNode",null,B,false,C);},getParents:function(B,C){return A(this,"parentNode",null,B,true,C);},getChildren:function(B,C){return A(this,"nextSibling","firstChild",B,true,C);
|
||||
},hasChild:function(B){B=$(B,true);return(!!B&&$A(this.getElementsByTagName(B.tagName)).contains(B));}});})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;
|
||||
},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();
|
||||
}};Element.Properties.href={get:function(){return(!this.href)?null:this.href.replace(new RegExp("^"+document.location.protocol+"//"+document.location.host),"");
|
||||
}};Element.Properties.html={set:function(){return this.innerHTML=Array.flatten(arguments).join("");}};Native.implement([Element,Window,Document],{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false);
|
||||
}else{this.attachEvent("on"+B,A);}return this;},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false);}else{this.detachEvent("on"+B,A);
|
||||
}return this;},retrieve:function(B,A){var D=Element.Storage.get(this.uid);var C=D[B];if($defined(A)&&!$defined(C)){C=D[B]=A;}return $pick(C);},store:function(B,A){var C=Element.Storage.get(this.uid);
|
||||
C[B]=A;return this;},eliminate:function(A){var B=Element.Storage.get(this.uid);delete B[A];return this;}});Element.Attributes=new Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"],Camels:["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]});
|
||||
Browser.freeMem=function(A){if(!A){return ;}if(Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B in A){if(typeof A[B]=="function"){A[B]=$empty;
|
||||
}}Element.dispose(A);}if(A.uid&&A.removeEvents){A.removeEvents();}};(function(B){var C=B.Bools,A=B.Camels;B.Bools=C=C.associate(C);Hash.extend(Hash.combine(B.Props,C),A.associate(A.map(function(D){return D.toLowerCase();
|
||||
})));B.erase("Camels");})(Element.Attributes);window.addListener("unload",function(){window.removeListener("unload",arguments.callee);document.purge();
|
||||
if(Browser.Engine.trident){CollectGarbage();}});Element.Properties.events={set:function(A){this.addEvents(A);}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});
|
||||
H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this;}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);
|
||||
}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J);}return false;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F]||0;
|
||||
if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(D,C){var B=this.retrieve("events");
|
||||
if(!B||!B[D]){return this;}var G=B[D].keys.indexOf(C);if(G==-1){return this;}var A=B[D].keys.splice(G,1)[0];var F=B[D].values.splice(G,1)[0];var E=Element.Events.get(D);
|
||||
if(E){if(E.onRemove){E.onRemove.call(this,C);}D=E.base||D;}return(Element.NativeEvents[D])?this.removeListener(D,F):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);
|
||||
}return this;},removeEvents:function(B){var A=this.retrieve("events");if(!A){return this;}if(!B){for(var C in A){this.removeEvents(C);}A=null;}else{if(A[B]){while(A[B].keys[0]){this.removeEvent(B,A[B].keys[0]);
|
||||
}A[B]=null;}}return this;},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})();
|
||||
},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E);
|
||||
},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};
|
||||
(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C));
|
||||
};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}});
|
||||
})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";
|
||||
}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")";
|
||||
}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true);
|
||||
},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat";
|
||||
}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E;
|
||||
}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");
|
||||
case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue;
|
||||
}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);
|
||||
if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;
|
||||
B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px";
|
||||
}if(Browser.Engine.presto&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]);
|
||||
}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});
|
||||
Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;
|
||||
var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";
|
||||
F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I);
|
||||
}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};
|
||||
},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll();
|
||||
}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode;
|
||||
}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H;
|
||||
}}return null;},getOffsets:function(){var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);
|
||||
H.y+=G(I);}var J=I.parentNode;if(J&&D(J,"overflow")!="visible"){H.x+=C(J);H.y+=G(J);}}else{if(I!=this&&(Browser.Engine.trident||Browser.Engine.webkit)){H.x+=C(I);
|
||||
H.y+=G(I);}}I=I.offsetParent;if(Browser.Engine.trident){while(I&&!I.currentStyle.hasLayout){I=I.offsetParent;}}}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);
|
||||
H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls();var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};
|
||||
return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates();}var H=this.getPosition(J),I=this.getSize();
|
||||
var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")};
|
||||
},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();
|
||||
if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow();
|
||||
var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)};
|
||||
},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x};
|
||||
}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width");
|
||||
}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body;
|
||||
}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;
|
||||
},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;
|
||||
},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");
|
||||
var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F);}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F);
|
||||
}return new Elements(C,{ddup:(H.length>1),cash:!G});}});Element.implement({match:function(B){if(!B){return true;}var D=Selectors.Utils.parseTagAndID(B);
|
||||
var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true;
|
||||
}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};
|
||||
Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F];
|
||||
}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;
|
||||
if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};
|
||||
break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};
|
||||
break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E];
|
||||
}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[4],C=D[5],J=D[6];if(I){H.classes.push(I);
|
||||
}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B});
|
||||
}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null;
|
||||
}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false];
|
||||
},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length;
|
||||
D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];
|
||||
if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);
|
||||
return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(J,I,O){var B=[];var C=I.trim().replace(Selectors.RegExps.splitter,function(Z,Y,X){B.push(Y);
|
||||
return":)"+X;}).split(":)");var K,F,E,V;for(var U=0,Q=C.length;U<Q;U++){var T=C[U];if(U==0&&Selectors.RegExps.quick.test(T)){K=J.getElementsByTagName(T);
|
||||
continue;}var A=B[U-1];var L=Selectors.Utils.parseTagAndID(T);var W=L[0],M=L[1];if(U==0){K=Selectors.Utils.getByTagAndID(J,W,M);}else{var D={},H=[];for(var S=0,R=K.length;
|
||||
S<R;S++){H=Selectors.Getters[A](H,K[S],W,M,D);}K=H;}var G=Selectors.Utils.parseSelector(T);if(G){E=[];for(var P=0,N=K.length;P<N;P++){V=K[P];if(Selectors.Utils.filter(V,G,O)){E.push(V);
|
||||
}}K=E;}}return K;}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F);
|
||||
}}return H;},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B);
|
||||
}}return H;},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
|
||||
}break;}}return C;},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break;}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
|
||||
}}}return C;}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A));},byID:function(A,B){return(!B||(A.id&&A.id==B));
|
||||
},byClass:function(B,A){return(B.className&&B.className.contains(A," "));},byPseudo:function(A,D,C,B){return D.call(A,C,B);},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);
|
||||
if(!A){return false;}if(!B||E==undefined){return true;}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);
|
||||
case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-");}return false;
|
||||
}};Selectors.Pseudo=new Hash({empty:function(){return !(this.innerText||this.textContent||"").length;},not:function(A){return !Element.match(this,A);},contains:function(A){return(this.innerText||this.textContent||"").contains(A);
|
||||
},"first-child":function(){return Selectors.Pseudo.index.call(this,0);},"last-child":function(){var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;
|
||||
}}return true;},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false;}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;
|
||||
}}return true;},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E);
|
||||
}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;while((B=B.previousSibling)){if(B.nodeType!=1){continue;}F++;var A=E.positions[$uid(B)];
|
||||
if(A!=undefined){F=A+F;break;}}E.positions[D]=F;}return(E.positions[D]%C.a==C.b);},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false;
|
||||
}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A);},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);
|
||||
}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this);}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;
|
||||
window.fireEvent("domready");document.fireEvent("domready");};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50);
|
||||
})();break;case"trident":var A=document.createElement("div");(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();
|
||||
}))?B():arguments.callee.delay(50);})();break;default:window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}})();var JSON=new Hash({encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';
|
||||
case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C);
|
||||
}});return"{"+A+"}";case"number":case"boolean":return String(B);case false:return"null";}return null;},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16);
|
||||
},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null;
|
||||
}return eval("("+string+")");}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B;
|
||||
this.setOptions(A);},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain;}if(this.options.path){B+="; path="+this.options.path;
|
||||
}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString();}if(this.options.secure){B+="; secure";
|
||||
}this.options.document.cookie=this.key+"="+B;return this;},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");
|
||||
return(A)?decodeURIComponent(A[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C);
|
||||
};Cookie.read=function(A){return new Cookie(A).read();};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;
|
||||
},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={};
|
||||
var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments);
|
||||
};})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D;}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
|
||||
E.movie=L;}else{H.type="application/x-shockwave-flash";H.data=L;}var J='<object id="'+B+'"';for(var I in H){J+=" "+I+'="'+H[I]+'"';}J+=">";for(var C in E){if(E[C]){J+='<param name="'+C+'" value="'+E[C]+'" />';
|
||||
}}J+="</object>";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A);
|
||||
return this;},inject:function(A){$(A,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));
|
||||
}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");
|
||||
return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(A){return -(Math.cos(Math.PI*A)-1)/2;
|
||||
}},initialize:function(A){this.subject=this.subject||this;this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();
|
||||
var B=this.options.wait;if(B===false){this.options.link="cancel";}},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.options.transition((A-this.time)/this.options.duration);
|
||||
this.set(this.compute(this.from,this.to,B));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(A){return A;},compute:function(C,B,A){return Fx.compute(C,B,A);
|
||||
},check:function(A){if(!this.timer){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));
|
||||
return false;}return false;},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this;}this.from=B;this.to=A;this.time=0;this.startTimer();
|
||||
this.onStart();return this;},complete:function(){if(this.stopTimer()){this.onComplete();}return this;},cancel:function(){if(this.stopTimer()){this.onCancel();
|
||||
}return this;},onStart:function(){this.fireEvent("start",this.subject);},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);
|
||||
}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();
|
||||
return this;},stopTimer:function(){if(!this.timer){return false;}this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer){return false;
|
||||
}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(C,B,A){return(B-C)*A+C;
|
||||
};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];
|
||||
B[0]=D.getStyle(E);}var A=B.map(this.parse);return{from:A[0],to:A[1]};},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);
|
||||
return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return ;}var D=F.parse(C);if($chk(D)){B={value:D,parser:F};}});
|
||||
B=B||{value:C,parser:Fx.CSS.Parsers.String};return B;});},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser});
|
||||
});A.$family={name:"fx:css:value"};return A;},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C);}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B));
|
||||
});return A;},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B));},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A];}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;
|
||||
if(C&&C.contains("://")&&!C.contains(document.domain)){return ;}var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return ;}var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase();
|
||||
}):null;if(!H||!H.test("^"+A+"$")){return ;}Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return ;}K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K;
|
||||
});});});return Fx.CSS.Cache[A]=B;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true);
|
||||
}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false;},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A));
|
||||
});},serve:function(A){return A.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});
|
||||
Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(B,A){if(arguments.length==1){A=B;
|
||||
B=this.property||this.options.property;}this.render(this.element,B,A,this.options.unit);return this;},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this;
|
||||
}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to);
|
||||
}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel();}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A));
|
||||
},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A);}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")));
|
||||
}return this.retrieve("tween");}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this;},fade:function(C){var E=this.get("tween"),D="opacity",A;
|
||||
C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);
|
||||
E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments);}if(!A){this.eliminate("fade:flag");}return this;},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));
|
||||
A=(A=="transparent")?"#fff":A;}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));
|
||||
B.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(A){if(typeof A=="string"){A=this.search(A);
|
||||
}for(var B in A){this.render(this.element,B,A[B],this.options.unit);}return this;},compute:function(E,D,C){var A={};for(var B in E){A[B]=this.parent(E[B],D[B],C);
|
||||
}return A;},start:function(B){if(!this.check(arguments.callee,B)){return this;}if(typeof B=="string"){B=this.search(B);}var E={},D={};for(var C in B){var A=this.prepare(this.element,C,B[C]);
|
||||
E[C]=A.from;D[C]=A.to;}return this.parent(E,D);}});Element.Properties.morph={set:function(A){var B=this.retrieve("morph");if(B){B.cancel();}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},A));
|
||||
},get:function(A){if(A||!this.retrieve("morph")){if(A||!this.retrieve("morph:options")){this.set("morph",A);}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")));
|
||||
}return this.retrieve("morph");}};Element.implement({morph:function(A){this.get("morph").start(A);return this;}});(function(){var A=Fx.prototype.initialize;
|
||||
Fx.prototype.initialize=function(B){A.call(this,B);var C=this.options.transition;if(typeof C=="string"&&(C=C.split(":"))){var D=Fx.Transitions;D=D[C[0]]||D[C[0].capitalize()];
|
||||
if(C[1]){D=D["ease"+C[1].capitalize()+(C[2]?C[2].capitalize():"")];}this.options.transition=D;}};})();Fx.Transition=function(B,A){A=$splat(A);return $extend(B,{easeIn:function(C){return B(C,A);
|
||||
},easeOut:function(C){return 1-B(1-C,A);},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2;}});};Fx.Transitions=new Hash({linear:$arguments(0)});
|
||||
Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B]);}};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6);
|
||||
},Expo:function(A){return Math.pow(2,8*(A-1));},Circ:function(A){return 1-Math.sin(Math.acos(A));},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2);
|
||||
},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A);},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;
|
||||
break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]);
|
||||
});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request();
|
||||
this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return ;
|
||||
}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};
|
||||
this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}this.xhr.onreadystatechange=$empty;},isSuccess:function(){return((this.status>=200)&&(this.status<300));
|
||||
},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A);}return A.stripScripts(this.options.evalScripts);
|
||||
},success:function(B,A){this.onSuccess(this.processScripts(B),A);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain();
|
||||
},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(A,B){this.headers.set(A,B);
|
||||
return this;},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A);}.bind(this));},check:function(A){if(!this.running){return true;
|
||||
}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false;
|
||||
},send:function(I){if(!this.check(arguments.callee,I)){return this;}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I};}var D=this.options;
|
||||
I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E);
|
||||
}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H;}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A;
|
||||
E=(E)?F+"&"+E:F;A="post";}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C);
|
||||
}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null;}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);
|
||||
this.headers.each(function(K,J){if(!$try(function(){this.xhr.setRequestHeader(J,K);return true;}.bind(this))){this.fireEvent("exception",[J,K]);}},this);
|
||||
this.fireEvent("request");this.xhr.send(E);if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;
|
||||
}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var A={};
|
||||
["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined});
|
||||
return this.send($extend(C,{method:B.toLowerCase()}));};});Request.implement(A);})();Element.Properties.send={set:function(A){var B=this.retrieve("send");
|
||||
if(B){B.cancel();}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A));
|
||||
},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A);}this.store("send",new Request(this.retrieve("send:options")));
|
||||
}return this.retrieve("send");}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
|
||||
C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D="<root>"+C+"</root>",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM");
|
||||
G.async=false;G.loadXML(D);}else{G=new DOMParser().parseFromString(D,"text/xml");}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length;
|
||||
F<E;F++){var H=Element.clone(D.childNodes[F],true,true);if(H){A.grab(H);}}return A;})||A.set("html",C);},success:function(D){var C=this.options,B=this.response;
|
||||
B.html=D.stripScripts(function(E){B.javascript=E;});var A=this.processHTML(B.html);B.tree=A.childNodes;B.elements=A.getElements("*");if(C.filter){B.tree=B.elements.filter(C.filter);
|
||||
}if(C.update){$(C.update).empty().adopt(B.tree);}if(C.evalScripts){$exec(B.javascript);}this.onSuccess(B.tree,B.elements,B.html,B.javascript);}});Element.Properties.load={set:function(A){var B=this.retrieve("load");
|
||||
if(B){send.cancel();}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},A));},get:function(A){if(A||!this.retrieve("load")){if(A||!this.retrieve("load:options")){this.set("load",A);
|
||||
}this.store("load",new Request.HTML(this.retrieve("load:options")));}return this.retrieve("load");}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));
|
||||
return this;}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(A){this.parent(A);this.headers.extend({Accept:"application/json","X-Request":"JSON"});
|
||||
},success:function(A){this.response.json=JSON.decode(A,this.options.secure);this.onSuccess(this.response.json,A);}});
|
||||
|
||||
|
||||
//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
|
||||
|
||||
Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);
|
||||
if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper");
|
||||
this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);
|
||||
this.now=[];this.open=true;},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left";
|
||||
this.layout="width";this.offset=this.element.offsetWidth;},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]);
|
||||
return this;},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C);});return B;},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this;
|
||||
}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]];
|
||||
var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G;
|
||||
}return this.parent(F[0],F[1]);},slideIn:function(A){return this.start("in",A);},slideOut:function(A){return this.start("out",A);},hide:function(A){this[A||this.options.mode]();
|
||||
this.open=false;return this.set([-this.offset,0]);},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(A){return this.start("toggle",A);
|
||||
}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel();}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B));
|
||||
},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A);}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")));
|
||||
}return this.retrieve("slide");}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E);
|
||||
break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E);
|
||||
}if(!A){this.eliminate("slide:flag");}return this;}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);
|
||||
this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element;
|
||||
if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D);
|
||||
},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]);},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C));
|
||||
});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};
|
||||
for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]);
|
||||
},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");
|
||||
},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y);}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);
|
||||
this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C;
|
||||
},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this;
|
||||
}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to;}}return this.parent(H,I);
|
||||
}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});
|
||||
this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;
|
||||
this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};
|
||||
this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);
|
||||
return this;},start:function(C){if(this.options.preventDefault){C.preventDefault();}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;
|
||||
var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt();
|
||||
}else{this.value.now[D]=this.element[this.options.modifiers[D]];}if(this.options.invert){this.value.now[D]*=-1;}this.mouse.pos[D]=C.page[D]-this.value.now[D];
|
||||
if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])();}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};
|
||||
}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop);},check:function(A){if(this.options.preventDefault){A.preventDefault();
|
||||
}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});
|
||||
this.fireEvent("start",this.element).fireEvent("snap",this.element);}},drag:function(A){if(this.options.preventDefault){A.preventDefault();}this.mouse.now=A.page;
|
||||
for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1;
|
||||
}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0];
|
||||
}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B]);}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit);
|
||||
}else{this.element[this.options.modifiers[B]]=this.value.now[B];}}this.fireEvent("drag",this.element);},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);
|
||||
this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element);
|
||||
}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);
|
||||
if(A){this.fireEvent("complete",this.element);}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A));
|
||||
}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(C,B){this.parent(C,B);this.droppables=$$(this.options.droppables);
|
||||
this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body);}C=this.element;
|
||||
var D=C.getStyle("position");var A=(D!="static")?D:"absolute";if(C.getStyle("left")=="auto"||C.getStyle("top")=="auto"){C.position(C.getPosition(C.offsetParent));
|
||||
}C.setStyle("position",A);this.addEvent("start",function(){this.checkDroppables();},true);},start:function(B){if(this.container){var D=this.element,J=this.container,E=J.getCoordinates(D.offsetParent),F={},A={};
|
||||
["top","right","bottom","left"].each(function(K){F[K]=J.getStyle("padding-"+K).toInt();A[K]=D.getStyle("margin-"+K).toInt();},this);var C=D.offsetWidth+A.left+A.right,I=D.offsetHeight+A.top+A.bottom;
|
||||
var H=[E.left+F.left,E.right-F.right-C];var G=[E.top+F.top,E.bottom-F.bottom-I];this.options.limit={x:H,y:G};}this.parent(B);},checkAgainst:function(B){B=B.getCoordinates();
|
||||
var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top);},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast();
|
||||
if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed]);}if(A){this.overed=A;this.fireEvent("enter",[this.element,A]);}else{this.overed=null;
|
||||
}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables();}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);
|
||||
this.overed=null;return this.parent(A);}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A);}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A);
|
||||
this.load();},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false;}if(A=="{}"){this.dispose();}else{this.write(A);}return true;
|
||||
},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments);
|
||||
if(this.options.autoSave){this.save();}return D;};});return A;})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3);
|
||||
}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true);}else{if(B.match(/hsb/)){B=B.hsbToRgb();}else{B=B.hexToRgb(true);}}}}C=C||"rgb";
|
||||
switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break;}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex();
|
||||
return $extend(B,this);}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice();
|
||||
A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C));}});return new Color(B,"rgb");},invert:function(){return new Color(this.map(function(A){return 255-A;
|
||||
}));},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb");},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb");
|
||||
},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb");}});function $RGB(C,B,A){return new Color([C,B,A],"rgb");}function $HSB(C,B,A){return new Color([C,B,A],"hsb");
|
||||
}function $HEX(A){return new Color(A,"hex");}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);
|
||||
var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0;}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A;}else{if(C==I){G=2+D-L;}else{G=4+A-D;}}G/=6;
|
||||
if(G<0){G++;}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)];},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C];
|
||||
}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);
|
||||
switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D];
|
||||
}}return false;}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null;},hsbToRgb:function(){var A=this.match(/\d{1,3}/g);
|
||||
return(A)?A.hsbToRgb():null;}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={};},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};
|
||||
this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false;}else{this.events[B].push(A);}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]));
|
||||
},this);return this;},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false;},this);if(!D){return ;
|
||||
}this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A);},this);}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);
|
||||
var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;
|
||||
B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E();}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return ;
|
||||
}$clear(C);E();}).periodical(50);}return B.inject(G.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head);
|
||||
},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;
|
||||
var G=B[F];delete B[F];D[F]=function(){if(!D){return ;}if(!A.parentNode){A.width=D.width;A.height=D.height;}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);
|
||||
A.fireEvent(E,A,1);};});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);
|
||||
if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete();
|
||||
}}});A.push(E);});return new Elements(A);}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(A,B){this.setOptions(B);
|
||||
this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(A)||A));if(!this.options.clone){this.options.revert=false;}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert));
|
||||
}},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(A){this.elements.push(A);
|
||||
var B=A.retrieve("sortables:start",this.start.bindWithEvent(this,A));(this.options.handle?A.getElement(this.options.handle)||A:A).addEvent("mousedown",B);
|
||||
},this);return this;},addLists:function(){Array.flatten(arguments).each(function(A){this.lists.push(A);this.addItems(A.getChildren());},this);return this;
|
||||
},removeItems:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.elements.erase(B);var C=B.retrieve("sortables:start");(this.options.handle?B.getElement(this.options.handle)||B:B).removeEvent("mousedown",C);
|
||||
},this);return $$(A);},removeLists:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.lists.erase(B);this.removeItems(B.getChildren());
|
||||
},this);return $$(A);},getClone:function(B,A){if(!this.options.clone){return new Element("div").inject(document.body);}if($type(this.options.clone)=="function"){return this.options.clone.call(this,B,A,this.list);
|
||||
}return A.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:A.getStyle("width")}).inject(this.list).position(A.getPosition(A.getOffsetParent()));
|
||||
},getDroppables:function(){var A=this.list.getChildren();if(!this.options.constrain){A=this.lists.concat(A).erase(this.list);}return A.erase(this.clone).erase(this.element);
|
||||
},insert:function(C,B){var A="inside";if(this.lists.contains(B)){this.list=B;this.drag.droppables=this.getDroppables();}else{A=this.element.getAllPrevious().contains(B)?"before":"after";
|
||||
}this.element.inject(B,A);this.fireEvent("sort",[this.element,this.clone]);},start:function(B,A){if(!this.idle){return ;}this.idle=false;this.element=A;
|
||||
this.opacity=A.get("opacity");this.list=A.getParent();this.clone=this.getClone(B,A);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){B.stop();
|
||||
this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone]);}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});
|
||||
this.clone.inject(this.element,"before");this.drag.start(B);},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var A=this.element.getStyles("width","height");
|
||||
var B=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:B.top,left:B.left,width:A.width,height:A.height,opacity:0.25}).chain(this.reset.bind(this));
|
||||
}else{this.reset();}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element);},serialize:function(){var C=Array.link(arguments,{modifier:Function.type,index:$defined});
|
||||
var B=this.lists.map(function(D){return D.getChildren().map(C.modifier||function(E){return E.get("id");},this);},this);var A=C.index;if(this.lists.length==1){A=0;
|
||||
}return $chk(A)&&A>=0&&A<this.lists.length?B[A]:B;}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(A){A.setStyle("visibility","visible");
|
||||
},onHide:function(A){A.setStyle("visibility","hidden");},showDelay:100,hideDelay:100,className:null,offsets:{x:16,y:16},fixed:false},initialize:function(){var C=Array.link(arguments,{options:Object.type,elements:$defined});
|
||||
this.setOptions(C.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className);
|
||||
}var B=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var A=new Element("div",{"class":"tip-bottom"}).inject(this.tip);
|
||||
this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(C.elements){this.attach(C.elements);}},attach:function(A){$$(A).each(function(D){var G=D.retrieve("tip:title",D.get("title"));
|
||||
var F=D.retrieve("tip:text",D.get("rel")||D.get("href"));var E=D.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,D));var C=D.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,D));
|
||||
D.addEvents({mouseenter:E,mouseleave:C});if(!this.options.fixed){var B=D.retrieve("tip:move",this.elementMove.bindWithEvent(this,D));D.addEvent("mousemove",B);
|
||||
}D.store("tip:native",D.get("title"));D.erase("title");},this);return this;},detach:function(A){$$(A).each(function(C){C.removeEvent("mouseenter",C.retrieve("tip:enter")||$empty);
|
||||
C.removeEvent("mouseleave",C.retrieve("tip:leave")||$empty);C.removeEvent("mousemove",C.retrieve("tip:move")||$empty);C.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");
|
||||
var B=C.retrieve("tip:native");if(B){C.set("title",B);}});return this;},elementEnter:function(B,A){$A(this.container.childNodes).each(Element.dispose);
|
||||
var D=A.retrieve("tip:title");if(D){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,D);}var C=A.retrieve("tip:text");
|
||||
if(C){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,C);}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);
|
||||
this.position((!this.options.fixed)?B:{page:A.getPosition()});},elementLeave:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);
|
||||
},elementMove:function(A){this.position(A);},position:function(D){var B=window.getSize(),A=window.getScroll();var E={x:this.tip.offsetWidth,y:this.tip.offsetHeight};
|
||||
var C={x:"left",y:"top"};for(var F in C){var G=D.page[F]+this.options.offsets[F];if((G+E[F]-A[F])>B[F]){G=D.page[F]-this.options.offsets[F]-E[F];}this.tip.setStyle(C[F],G);
|
||||
}},fill:function(A,B){(typeof B=="string")?A.set("html",B):A.adopt(B);},show:function(){this.fireEvent("show",this.tip);},hide:function(){this.fireEvent("hide",this.tip);
|
||||
}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(B,C){C=C||document;var E=C.getDocument(),D=C.getWindow();this.parent(E,B);this.links=(this.options.links)?$$(this.options.links):$$(E.links);
|
||||
var A=D.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(G){if(G.href.indexOf(A)!=0){return ;}var F=G.href.substr(A.length);if(F&&$(F)){this.useLink(G,F);
|
||||
}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){D.location.hash=this.anchor;},true);}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;
|
||||
this.toElement(A);C.stop();}.bind(this));}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step);
|
||||
}this.knob.setStyle(this.property,A);},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);
|
||||
this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this));
|
||||
}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";
|
||||
this.property="left";F="offsetWidth";}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;
|
||||
this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;
|
||||
this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;
|
||||
B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();
|
||||
this.end();}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full;}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min;
|
||||
}if(!((this.range>0)^(A>this.max))){A=this.max;}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this;
|
||||
},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);
|
||||
this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A);},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);
|
||||
this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop();},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];
|
||||
A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;
|
||||
this.fireEvent("change",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"");
|
||||
}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B;},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset;
|
||||
}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B);}},initialize:function(B,A){this.setOptions(A);
|
||||
this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this);
|
||||
},start:function(){this.listener.addEvent("mousemove",this.coord);},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer);
|
||||
},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this);}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};
|
||||
for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity;}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity;
|
||||
}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y]);}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});
|
||||
this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true;
|
||||
}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;
|
||||
}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity";}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";
|
||||
}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B]);
|
||||
}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E]);}else{for(var F in this.effects){E.setStyle(F,0);
|
||||
}}},this);if($chk(this.options.display)){this.display(this.options.display);}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);
|
||||
var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after");
|
||||
}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container);}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));
|
||||
if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});
|
||||
}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth;}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight;}C.setStyle("overflow","hidden");
|
||||
if(!F){for(var D in this.effects){C.setStyle(D,0);}}return this;},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this;
|
||||
}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);
|
||||
for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];}},this);return this.start(B);}});
|
||||
@@ -0,0 +1,21 @@
|
||||
window.addEvent('domready', function() {
|
||||
|
||||
var status = {
|
||||
'true': 'CLOSE',
|
||||
'false': 'OPEN'
|
||||
};
|
||||
|
||||
var myVerticalSlide = new Fx.Slide('vertical_slide');
|
||||
|
||||
$('v_toggle').addEvent('click', function(e){
|
||||
e.stop();
|
||||
myVerticalSlide.toggle();
|
||||
});
|
||||
|
||||
myVerticalSlide.addEvent('complete', function() {
|
||||
$('v_toggle').set('html', status[myVerticalSlide.open]);
|
||||
});
|
||||
|
||||
myVerticalSlide.hide();
|
||||
|
||||
});
|
||||
@@ -0,0 +1,281 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
/*
|
||||
Template Name: Links
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php get_header(); ?>
|
||||
|
||||
<div id="content" class="widecolumn">
|
||||
|
||||
<h2>Links:</h2>
|
||||
<ul>
|
||||
<?php wp_list_bookmarks(); ?>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header(); ?>
|
||||
|
||||
<div id="content" class="narrowcolumn" role="main">
|
||||
|
||||
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||
<div class="post" id="post-<?php the_ID(); ?>">
|
||||
<div class="postDate">
|
||||
<?php the_time("M jS,"); ?><span><?php the_time("Y"); ?></span>
|
||||
<div class="sharePost">
|
||||
<h4>Share it:</h4>
|
||||
<div class="sharing">
|
||||
<?php $urlHome = get_bloginfo('template_directory'); ?>
|
||||
<a href="http://twitter.com/home?status=<?php the_permalink(); ?>" title="Click to share this post on Twitter" target="_blank" class="share twitter" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Twitter" /></a>
|
||||
<a href="http://www.facebook.com/share.php?u=<?php the_permalink(); ?>&t=<?php the_title(); ?>" title="Click to share this post on Facebook" target="_blank" class="share facebook" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Facebook" /></a>
|
||||
<a href="http://digg.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" title="Click to share this post on Digg" target="_blank" class="share digg" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Digg" /></a>
|
||||
<a href="http://delicious.com/post?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" title="Click to share this post on Delicious" target="_blank" class="share delicious" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Delicious" /></a>
|
||||
<a href="http://stumbleupon.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" title="Click to share this post on StumbleUpon" target="_blank" class="share su" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on StumbleUpon" /></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="postHeader">
|
||||
<h2><?php the_title(); ?></h2>
|
||||
<div class="postMeta">
|
||||
<div class="autor">
|
||||
<div class="image">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = get_userdata($post->post_author);
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '30', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="text">
|
||||
Published by:
|
||||
<strong><?php the_author_posts_link(); ?></strong>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postComm">
|
||||
<span class="nr"><?php comments_popup_link('0', '1', '%'); ?></span>
|
||||
Comments so far
|
||||
<a href="<?php the_permalink() ?>#respond" class="reply">Leave a reply</a>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postTags">
|
||||
Tags:
|
||||
<strong><?php the_tags('',', ',''); ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$pic = get_post_meta($post->ID, 'post-img', true);
|
||||
if ($pic) {
|
||||
?>
|
||||
<div class="postImg">
|
||||
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Visualize <?php the_title_attribute(); ?>"><img src="<?php echo $pic; ?>" alt="<?php the_title(); ?>" width="400" /></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="entry <?php if ($pic) { echo "big"; } else { echo "small"; }?>">
|
||||
<?php the_content('<p class="serif">Read the rest of this entry »</p>'); echo $pic; ?>
|
||||
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<?php endwhile; endif; ?>
|
||||
<?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
|
||||
<div class="commentZone">
|
||||
<?php comments_template(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php get_sidebar(); ?>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
Theme name: WordPress Default - kubrick -
|
||||
Editors: Navid Kashani
|
||||
Persian Wordpress Project : wp-persian.com
|
||||
*/
|
||||
body, .commentlist li, #commentform input, #commentform textarea, #commentform p, #sidebar, #wp-calendar caption {
|
||||
font-family:tahoma, arial;
|
||||
}
|
||||
#page {
|
||||
text-align:right;
|
||||
direction:rtl;
|
||||
}
|
||||
h1, h2, h3, #sidebar h2 {
|
||||
font-family:arial, tahoma;
|
||||
}
|
||||
.commentlist li .avatar {
|
||||
float:left;
|
||||
}
|
||||
|
||||
.commentlist li {
|
||||
padding: 5px 10px 10px 5px;
|
||||
}
|
||||
.commentlist li ul li {
|
||||
margin-left: -5px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.commentlist p {
|
||||
margin: 10px 0 10px 5px;
|
||||
}
|
||||
#header {
|
||||
margin:0 1px 0 0;
|
||||
}
|
||||
.narrowcolumn {
|
||||
float:right;
|
||||
padding: 0 45px 20px 0;
|
||||
}
|
||||
.widecolumn {
|
||||
margin: 5px 150px 0 0;
|
||||
}
|
||||
.widecolumn .smallattachment {
|
||||
margin: 5px 0 5px 5px;
|
||||
}
|
||||
.postmetadata {
|
||||
clear:right;
|
||||
}
|
||||
#sidebar {
|
||||
margin-left: 0;
|
||||
margin-right: 545px;
|
||||
}
|
||||
img.alignright {
|
||||
margin: 0 7px 2px 0;
|
||||
}
|
||||
|
||||
img.alignleft {
|
||||
margin: 0 0 2px 7px;
|
||||
}
|
||||
|
||||
.alignright {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.alignleft {
|
||||
float: right;
|
||||
}
|
||||
code {
|
||||
display:block;
|
||||
direction:ltr;
|
||||
text-align:left;
|
||||
}
|
||||
acronym, abbr, span.caps {
|
||||
letter-spacing:0; /* fix opera bug */
|
||||
}
|
||||
html>body .entry ul {
|
||||
padding:0 10px 0 0;
|
||||
text-indent:10px;
|
||||
}
|
||||
html>body .entry li {
|
||||
margin: 7px 10px 8px 0;
|
||||
}
|
||||
.entry ol {
|
||||
padding: 0 35px 0 0;
|
||||
}
|
||||
#sidebar ul ul, #sidebar ul ol {
|
||||
margin: 5px 10px 0 0;
|
||||
}
|
||||
#sidebar ul ul ul, #sidebar ul ol {
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
#commentform {
|
||||
margin: 5px 0 0 10px;
|
||||
}
|
||||
#commentform input {
|
||||
margin: 5px 0 1px 5px;
|
||||
}
|
||||
#commentform #submit {
|
||||
float:left;
|
||||
}
|
||||
.commentlist p {
|
||||
margin: 10px 0 10px 5px;
|
||||
}
|
||||
|
||||
.children .even, .alt {
|
||||
border-left: 0;
|
||||
border-right: 1px solid #ddd;
|
||||
}
|
||||
|
||||
#wp-calendar #next a {
|
||||
padding-right:0;
|
||||
padding-left:10px;
|
||||
text-align:left;
|
||||
}
|
||||
#wp-calendar #prev a {
|
||||
padding-left:0;
|
||||
padding-right:10px;
|
||||
text-align:right;
|
||||
}
|
||||
blockquote {
|
||||
margin: 15px 10px 0 30px;
|
||||
padding-left: 0;
|
||||
padding-right: 20px;
|
||||
border-left: 0 none;
|
||||
border-right: 5px solid #ddd;
|
||||
}
|
||||
#email, #url {
|
||||
direction:ltr;
|
||||
}
|
||||
|
After Width: | Height: | Size: 29 KiB |
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header(); ?>
|
||||
|
||||
<div id="content" class="narrowcolumn" role="main">
|
||||
|
||||
<?php if (have_posts()) : ?>
|
||||
|
||||
<h2 class="pagetitle">Search results for: <strong><?php echo $s; ?></strong></h2>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
|
||||
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
|
||||
|
||||
<?php while (have_posts()) : the_post(); ?>
|
||||
|
||||
<div <?php post_class() ?>>
|
||||
<div class="postDate"><?php the_time("M jS,"); ?><span><?php the_time("Y"); ?></span></div>
|
||||
<div class="postHeader">
|
||||
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
|
||||
|
||||
<div class="postMeta">
|
||||
<div class="autor">
|
||||
<div class="image">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = get_userdata($post->post_author);
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '30', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="text">
|
||||
Published by:
|
||||
<strong><?php the_author_posts_link(); ?></strong>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postComm">
|
||||
<span class="nr"><?php comments_popup_link('0', '1', '%'); ?></span>
|
||||
Comments so far
|
||||
<a href="<?php the_permalink() ?>#respond" class="reply">Leave a reply</a>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postCats">
|
||||
Published in:
|
||||
<strong><?php the_category(', ') ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$pic = get_post_meta($post->ID, 'post-img', true);
|
||||
if ($pic) {
|
||||
?>
|
||||
<div class="postImg">
|
||||
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Visualize <?php the_title_attribute(); ?>"><img src="<?php echo $pic; ?>" alt="<?php the_title(); ?>" width="400" /></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="entry <?php if ($pic) { echo "big"; } else { echo "small"; }?>">
|
||||
<?php the_excerpt(); ?>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
|
||||
<?php endwhile; ?>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
|
||||
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
|
||||
</div>
|
||||
|
||||
<?php else : ?>
|
||||
|
||||
<h2 class="pagetitle">No posts found. Try a different search?</h2>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php get_sidebar(); ?>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
?>
|
||||
<?php if (function_exists('dynamic_sidebar')) { ?>
|
||||
|
||||
<div id="sidebar" role="complementary">
|
||||
<div class="cat">
|
||||
<h2>Categories</h2>
|
||||
<ul>
|
||||
<?php if (is_home()) { ?>
|
||||
<li class="current-cat"><a href="<?php bloginfo('url'); ?>/">Home</a></li>
|
||||
<?php } else { ?>
|
||||
<li class="cat-item"><a href="<?php bloginfo('url'); ?>/">Home</a></li>
|
||||
<?php } ?>
|
||||
<?php wp_list_categories('title_li='); ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php dynamic_sidebar('sidebar'); ?>
|
||||
</div>
|
||||
|
||||
<?php }?>
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/**
|
||||
* @package WordPress
|
||||
* @subpackage involver
|
||||
*/
|
||||
|
||||
get_header();
|
||||
|
||||
?>
|
||||
|
||||
<div id="content" class="narrowcolumn" role="main">
|
||||
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||
|
||||
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
|
||||
|
||||
<div class="postDate">
|
||||
<?php the_time("M jS,"); ?><span><?php the_time("Y"); ?></span>
|
||||
<div class="sharePost">
|
||||
<h4>Share it:</h4>
|
||||
<div class="sharing">
|
||||
<?php $urlHome = get_bloginfo('template_directory'); ?>
|
||||
<a href="http://twitter.com/home?status=<?php the_permalink(); ?>" title="Click to share this post on Twitter" target="_blank" class="share twitter" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Twitter" /></a>
|
||||
<a href="http://www.facebook.com/share.php?u=<?php the_permalink(); ?>&t=<?php the_title(); ?>" title="Click to share this post on Facebook" target="_blank" class="share facebook" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Facebook" /></a>
|
||||
<a href="http://digg.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" title="Click to share this post on Digg" target="_blank" class="share digg" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Digg" /></a>
|
||||
<a href="http://delicious.com/post?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" title="Click to share this post on Delicious" target="_blank" class="share delicious" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on Delicious" /></a>
|
||||
<a href="http://stumbleupon.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" title="Click to share this post on StumbleUpon" target="_blank" class="share su" rel="nofollow"><img src="<?php echo $urlHome; ?>/images/spacer.gif" width="48" height="48" alt="Share this article on StumbleUpon" /></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="postHeader">
|
||||
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
|
||||
|
||||
<div class="postMeta">
|
||||
<div class="autor">
|
||||
<div class="image">
|
||||
<?php
|
||||
global $wp_query;
|
||||
$curauth = get_userdata($post->post_author);
|
||||
$urlHome = get_bloginfo('template_directory');
|
||||
echo get_avatar("$curauth->user_email", $size = '30', $default = $urlHome . '/images/default_avatar_author.gif' );
|
||||
?>
|
||||
</div>
|
||||
<div class="text">
|
||||
Published by:
|
||||
<strong><?php the_author_posts_link(); ?></strong>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postComm">
|
||||
<span class="nr"><?php comments_popup_link('0', '1', '%'); ?></span>
|
||||
Comments so far
|
||||
<a href="<?php the_permalink() ?>#respond" class="reply">Leave a reply</a>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="postCats">
|
||||
Published in:
|
||||
<strong><?php the_category(', ') ?></strong>
|
||||
</div>
|
||||
<div class="postTags">
|
||||
Tags:
|
||||
<strong><?php the_tags('',', ',''); ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$pic = get_post_meta($post->ID, 'post-img', true);
|
||||
if ($pic) {
|
||||
?>
|
||||
<div class="postImg">
|
||||
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Visualize <?php the_title_attribute(); ?>"><img src="<?php echo $pic; ?>" alt="<?php the_title(); ?>" width="400" /></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="entry <?php if ($pic) { echo "big"; } else { echo "small"; }?>">
|
||||
<?php the_content('<p class="serif">Read the rest of this entry »</p>'); ?>
|
||||
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<div class="commentZone">
|
||||
<?php comments_template(); ?>
|
||||
</div>
|
||||
|
||||
<div class="navigation" style="margin-right:20px;">
|
||||
<div class="alignleft"><?php previous_post_link('%link') ?></div>
|
||||
<div class="alignright"><?php next_post_link('%link') ?></div>
|
||||
<br clear="all" />
|
||||
</div>
|
||||
<?php endwhile; else: ?>
|
||||
|
||||
<p>Sorry, no posts matched your criteria.</p>
|
||||
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php get_sidebar(); ?>
|
||||
<?php get_footer(); ?>
|
||||
@@ -0,0 +1,656 @@
|
||||
/*
|
||||
Theme Name: Involver
|
||||
Theme URI: http://filecluster.com/
|
||||
Description: <b>Involver Theme</b> is offered and designed by <a href="http://www.filecluster.com/">FileCluster</a>
|
||||
Version: 1.0
|
||||
Author: FileCluster
|
||||
Author URI: http://www.filecluster.com/
|
||||
Tags: blue, white, fixed-width, two-columns
|
||||
|
||||
Involver v1.0
|
||||
by http://www.filecluster.com/
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* Begin Typography & Colors */
|
||||
html {margin:0; padding:0;}
|
||||
body {
|
||||
font-size: 62.5%; /* Resets 1em to 10px */
|
||||
font-family: Arial, Helvetica, Verdana, Sans-Serif;
|
||||
background:#dddddd url(images/bg_pag.gif) left top repeat-x;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
form {display:inline;}
|
||||
br {line-height:0px; padding:0; margin:0; height:0;}
|
||||
|
||||
#page {width:980px; padding:0px; margin:0px auto; text-align:left; display:block;}
|
||||
|
||||
#header {width:980px; height:120px;}
|
||||
#header .topHeader {height:64px;}
|
||||
#header .topHeader .meniu {margin:0; padding:0; list-style:none; float:left;}
|
||||
#header .topHeader .meniu .page_item {float:left; margin:14px 10px 0px 10px; background-color:#222222; -moz-border-radius: 10px; -webkit-border-radius: 10px; padding:5px 20px; text-transform:uppercase;}
|
||||
#header .topHeader .meniu .page_item a {font-size:15px; color:#CCCCCC;}
|
||||
#header .topHeader .meniu .page_item a:hover {text-decoration:none; color:#FFFFFF;}
|
||||
#header .topHeader .meniu .current_page_item {background:url(images/bg_topMeniu.gif) left top repeat-x; height:31px; margin:10px 10px 0px 10px; padding:5px 15px; -moz-border-radius-topleft: 10px; -webkit-border-top-left-radius: 10px; -moz-border-radius-topright: 10px; -webkit-border-top-right-radius: 10px; -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px;}
|
||||
#header .topHeader .meniu .current_page_item a {font-size:18px; display:block; margin-top:4px; color:#ddeeff;}
|
||||
#header .topHeader .meniu .current_page_item a:hover {color:#ffffff; text-decoration:none;}
|
||||
#header .topHeader .rss {float:right;}
|
||||
#header .topHeader .rss .feed {width:110px; height:45px; display:block; float:left; margin:14px 10px 0 0; background:url(images/icon_feed.png) right top no-repeat; padding:5px 70px 0 0; line-height:12px; text-transform:uppercase; text-align:right; font-size:10px; color:#898989;}
|
||||
#header .topHeader .rss .feed span {font-size:15px; color:#d58e41; display:block;}
|
||||
#header .topHeader .rss .feed:hover {color:#FFFFFF; text-decoration:none;}
|
||||
#header .topHeader .rss .feed:hover span {color:#ff8400;}
|
||||
#header .topHeader .rss .twit {width:100px; height:45px; display:block; float:left; margin:14px 20px 0 0; background:url(images/icon_twitter_top.png) right top no-repeat; padding:5px 70px 0 0; line-height:12px; text-transform:uppercase; text-align:right; font-size:10px; color:#898989;}
|
||||
#header .topHeader .rss .twit span {font-size:15px; color:#41b7d5; display:block;}
|
||||
#header .topHeader .rss .twit:hover {color:#FFFFFF; text-decoration:none;}
|
||||
#header .topHeader .rss .twit:hover span {color:#00cbff;}
|
||||
|
||||
|
||||
#header .topBar {height:56px;}
|
||||
#header .topBar .logo {float:left; text-transform:uppercase; margin-left:20px;}
|
||||
#header .topBar .logo h1 {color:#000000; font-size:25px; text-align:left; font-weight:normal; font-family:Arial, Helvetica, Verdana, Sans-Serif; margin:0; padding:0px;}
|
||||
#header .topBar .logo h1 a {color:#000000;}
|
||||
#header .topBar .logo .description {font-size:12px; color:#FFFFFF; margin:0px;}
|
||||
#header .topBar .fSearch {float:right; background:url(images/bg_search.gif); width:390px; height:40px; margin:5px 10px 0 0;}
|
||||
#header .topBar .fSearch #s {background:transparent !important; width:320px; height:30px; margin:2px 0px 0 50px; padding:5px; border:none; color:#507496; font-size:20px;}
|
||||
#header .topBar .fSearch .hidden {display:none;}
|
||||
|
||||
.container {width:100%; background:#ffffff url(images/bg_main.gif) right top repeat-y; -moz-border-radius: 10px; -webkit-border-radius: 10px;}
|
||||
|
||||
.narrowcolumn {float: right; padding:20px 30px 20px 0; margin: 0px; width:750px;}
|
||||
|
||||
.widecolumn {float: left; margin: 0px; width: 660px;}
|
||||
|
||||
/* Begin Sidebar */
|
||||
#sidebar {float:left; padding:10px 0px 10px 10px; position:relative;margin:0; width:190px; font-size:10px; color:#666666;}
|
||||
#sidebar .cat {list-style:none; margin:0 0 10px 0; padding:10px 0 10px 10px; background:#bababa url(images/bg_cat_menu.gif) right top repeat-y; -moz-border-radius-topleft: 10px; -webkit-border-top-left-radius: 10px; -moz-border-radius-bottomleft: 10px; -webkit-border-bottom-left-radius: 10px;}
|
||||
#sidebar .cat h2 {background-color:#cfcfcf; color:#909090; font:11px Arial, Helvetica, sans-serif; text-transform:uppercase; display:inline-block; padding:3px 6px; margin:0 0 10px 0; -moz-border-radius: 5px; -webkit-border-radius: 5px;}
|
||||
#sidebar .cat ul {list-style:none; margin:0; padding:0;}
|
||||
#sidebar .cat .cat-item {padding:0px; margin-right:10px;}
|
||||
#sidebar .cat .cat-item a {display:block; padding:5px; border-top:1px solid #cfcfcf; font-size:15px; color:#FFFFFF; margin:0;}
|
||||
#sidebar .cat .current-cat {padding:0px; margin-right:0px; background:#c4c4c4 url(images/arr_cat.gif) right center no-repeat;}
|
||||
#sidebar .cat .current-cat a {display:block; padding:5px; border-top:1px solid #cfcfcf; font-size:15px; color:#FFFFFF; margin:0 10px 0 0;}
|
||||
|
||||
#sidebar ul, #sidebar ul ul, #sidebar .sBox , #sidebar .widget {margin:0; padding:0; list-style:none;}
|
||||
#sidebar .widget {background-color:#bababa; -moz-border-radius: 10px; -webkit-border-radius: 10px; margin:10px 20px 10px 0px;}
|
||||
#sidebar .widget ul, #sidebar .widget div {margin: 0; list-style:none; font-size:12px; padding:0 10px 10px 10px; display:block;}
|
||||
#sidebar .widget ul li {padding:2px; border-bottom:1px solid #cfcfcf;}
|
||||
#sidebar .widget h2 {background-color:#cfcfcf; color:#909090; font:11px Arial, Helvetica, sans-serif; text-transform:uppercase; display:inline-block; padding:3px 6px; margin:10px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}
|
||||
#sidebar .widget ul li a, #sidebar .widget div a {color:#FFFFFF;}
|
||||
|
||||
|
||||
.post {margin: 0 0 40px; text-align: justify; padding:0;}
|
||||
.post .postDate {width:90px; float:left; margin-top:10px; padding-left:20px; background:url(images/arr_post.gif) right top no-repeat; color:#637f9a; font:12px Arial, Helvetica, sans-serif;}
|
||||
.post .postDate span {display:block; font-size:25px;}
|
||||
.post .postHeader {margin:0; padding:0 0 10px 0; width:620px; float:right; border-bottom:3px solid #EEEEEE;}
|
||||
.post .postHeader h2, .post .postHeader h3, .post h2, .post h3 {font-weight:normal; float:left; width:380px; padding:10px; margin:0 0 20px 0; font-size:25px; border-bottom:1px solid #CCCCCC;}
|
||||
.post .postHeader h2 a, .post .postHeader h3 a {color:#333333;}
|
||||
.post .postHeader h2 a:hover, .post .postHeader h3 a:hover {color:#000000;}
|
||||
.post .postHeader .postImg {float:left; margin:0 0 10px 0; padding:0; width:400px; overflow:hidden;}
|
||||
.post .postHeader .postImg a {padding:0; display:block;}
|
||||
.post .postHeader .postMeta {float:right; width:180px; margin:0 0 20px 20px; padding:0 0 0 10px; border-left:1px solid #CCCCCC;}
|
||||
.post .postHeader .postMeta .autor {padding-bottom:5px; margin-bottom:5px; border-bottom:1px solid #EEEEEE;}
|
||||
.post .postHeader .postMeta .autor .image {float:left; margin:0 10px 0 0;}
|
||||
.post .postHeader .postMeta .autor .text {font-size:11px; color:#999999; float:left; line-height:13px;}
|
||||
.post .postHeader .postMeta .autor .text strong {font-size:15px; font-weight:normal; display:block;}
|
||||
.post .postHeader .postMeta .postComm {background:url(images/icon_comments.gif) left top no-repeat; font-size:11px; color:#999999; padding-bottom:5px; margin-bottom:5px; border-bottom:1px solid #EEEEEE;}
|
||||
.post .postHeader .postMeta .postComm .nr {float:left; margin:3px 10px 0 3px; display:block; width:25px; text-align:center;}
|
||||
.post .postHeader .postMeta .postComm .reply {font-size:15px; font-weight:normal; display:block;}
|
||||
.post .postHeader .postMeta .postCats {background:url(images/icon_categories.gif) left top no-repeat; font-size:11px; color:#999999; min-height:35px; padding:0 0 5px 40px; margin-bottom:5px; border-bottom:1px solid #EEEEEE;}
|
||||
.post .postHeader .postMeta .postCats strong {font-size:12px; font-weight:normal; display:block;}
|
||||
.post .postHeader .postMeta .postTags {background:url(images/icon_tags.gif) left top no-repeat; font-size:11px; color:#999999; min-height:35px; padding:0 0 5px 40px; margin-bottom:5px; border-bottom:1px solid #EEEEEE;}
|
||||
.post .postHeader .postMeta .postTags strong {font-size:12px; font-weight:normal; display:block;}
|
||||
.post .postHeader .entry {color:#444444; font-size:12px; float:left; margin-bottom:10px;}
|
||||
.post .postHeader .small {width:400px;}
|
||||
.post .postHeader .big {width:620px;}
|
||||
.post .postHeader .entry p {display:inline-block;}
|
||||
.post hr {display: block;}
|
||||
|
||||
.navigation {margin: 10px 0 20px 130px;}
|
||||
.navigation .alignleft {width:45%; text-align:left; float:left;}
|
||||
.navigation .alignleft a {font-size:14px; background-color:#b2b2b2; color:#FFFFFF; text-transform:uppercase; display:block; padding:5px 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}
|
||||
.navigation .alignleft a:hover {background-color:#929292; text-decoration:none;}
|
||||
.navigation .alignright {width:45%; text-align:right; float:right;}
|
||||
.navigation .alignright a {font-size:14px; background-color:#b2b2b2; color:#FFFFFF; text-transform:uppercase; display:block; padding:5px 10px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}
|
||||
.navigation .alignright a:hover {background-color:#929292; text-decoration:none;}
|
||||
|
||||
.sharePost {margin:20px 0;}
|
||||
.sharePost h4 {font-size:11px; font-family:Arial, Helvetica, sans-serif; text-transform:uppercase; text-align:left; display:inline-block; margin:10px 0px 10px 0px; font-weight:normal; color:#999999;}
|
||||
.sharePost .sharing {width:70px; margin:0; padding:0px;}
|
||||
.sharePost .share {height:48px; width:48px; display:block; margin:10px 0;}
|
||||
.sharePost .twitter {background:url(images/icon_twitter.png) left top no-repeat;}
|
||||
.sharePost .twitter:hover {background:url(images/icon_twitter.png) left -48px no-repeat;}
|
||||
.sharePost .facebook {background:url(images/icon_facebook.png) left top no-repeat;}
|
||||
.sharePost .facebook:hover {background:url(images/icon_facebook.png) left -48px no-repeat;}
|
||||
.sharePost .digg {background:url(images/icon_digg.png) left top no-repeat;}
|
||||
.sharePost .digg:hover {background:url(images/icon_digg.png) left -48px no-repeat;}
|
||||
.sharePost .delicious {background:url(images/icon_delicious.png) left top no-repeat;}
|
||||
.sharePost .delicious:hover {background:url(images/icon_delicious.png) left -48px no-repeat;}
|
||||
.sharePost .su {background:url(images/icon_stumbleupon.png) left top no-repeat;}
|
||||
.sharePost .su:hover {background:url(images/icon_stumbleupon.png) left -48px no-repeat;}
|
||||
|
||||
.commentZone {margin:10px 0px 10px 120px; background-color:#e6e6e6; padding:10px; -moz-border-radius: 10px; -webkit-border-radius: 10px;}
|
||||
|
||||
#respond h3, h3#comments {font-size:20px; text-align:left; padding:0 5px 5px 5px; margin:0 0 10px; font-weight:normal;}
|
||||
#respond #comment {width:98%; height:140px; font-size:12px; padding:5px; color:#666666; background-color:#ffffff; border:1px solid #CCCCCC;}
|
||||
#respond #author, #respond #email, #respond #url {width:290px; font-size:15px; padding:3px; color:#666666; background-color:#FFFFFF; border:1px solid #CCCCCC;}
|
||||
#respond #submit {background-color:#b2b2b2; -moz-border-radius: 5px; -webkit-border-radius: 5px; border:none; padding:5px 20px; color:#333333; font-size:15px;}
|
||||
#respond form p label small {color:#666666; display:block; font-size:11px;}
|
||||
|
||||
|
||||
.pagetitle {font-weight:normal; font-size:20px; text-align:left; padding:5px; margin:0 0 50px 120px; border-bottom:1px solid #DDDDDD; color:#637f9a;}
|
||||
.pagetitle strong {font-weight:normal; color:#000000;}
|
||||
|
||||
.authPage {margin:0 0 40px 0; border:1px solid #e6e6e6; -moz-border-radius: 10px; -webkit-border-radius: 10px; background-color:#FFFFFF;}
|
||||
.authPage .autor {padding:10px; position:relative;}
|
||||
.authPage .autor .picture {float:left; margin:0 10px 5px 0; width:80px;}
|
||||
.authPage .autor .info {float:left; width:608px; margin-left:30px;}
|
||||
.authPage .autor .info .name {font-size:18px; display:block; padding:2px; border-bottom:1px dashed #CCCCCC;}
|
||||
.authPage .autor .info .site {font-size:12px; display:block; padding:2px; border-bottom:1px dashed #CCCCCC;}
|
||||
.authPage .autor .info .site a {color:#0066CC;}
|
||||
.authPage .autor .info .desc {font-size:11px; display:block; color:#999999; padding:2px;}
|
||||
|
||||
.ads {margin:10px auto;}
|
||||
.ads .ad {margin:10px; float:left;}
|
||||
|
||||
#footer {padding: 0; margin: 0 auto; color:#999999; clear: both; width:100%;}
|
||||
#footer p {margin: 0; padding: 20px 0; text-align: center;}
|
||||
#footer a {color:#666666;}
|
||||
|
||||
.widecolumn .entry p {
|
||||
font-size: 1.05em;
|
||||
}
|
||||
|
||||
.narrowcolumn .entry, .widecolumn .entry {
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
.widecolumn {
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
.thread-alt {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.thread-even {
|
||||
background-color: white;
|
||||
}
|
||||
.depth-1 {
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.even, .alt {
|
||||
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
|
||||
small {
|
||||
font-family: Arial, Helvetica, Sans-Serif;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 4em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
br {line-height:0;}
|
||||
|
||||
h1, h1 a, h1 a:hover, h1 a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
h2, h2 a, h2 a:hover, h2 a:visited, h3, h3 a, h3 a:hover, h3 a:visited, #sidebar h2, #secondSidebar h2 #wp-calendar caption, cite {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
background: #f7f7f7;
|
||||
padding: 0 10px 10px;
|
||||
}
|
||||
.sticky h2 {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.commentlist li, #commentform input, #commentform textarea {
|
||||
font: 0.9em 'Lucida Grande', Verdana, Arial, Sans-Serif;
|
||||
}
|
||||
.commentlist li ul li {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.commentlist li {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.commentlist li .avatar {
|
||||
float: right;
|
||||
border: 1px solid #eee;
|
||||
padding: 2px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.commentlist cite, .commentlist cite a {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.commentlist p {
|
||||
font-weight: normal;
|
||||
line-height: 1.5em;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
#commentform p {
|
||||
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
|
||||
}
|
||||
|
||||
.commentmetadata {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
code {
|
||||
font: 1.1em 'Courier New', Courier, Fixed;
|
||||
}
|
||||
|
||||
acronym, abbr, span.caps
|
||||
{
|
||||
font-size: 0.9em;
|
||||
letter-spacing: .07em;
|
||||
}
|
||||
|
||||
a, h2 a:hover, h3 a:hover {
|
||||
color:#336699;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color:#3366cc;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#wp-calendar #prev a, #wp-calendar #next a {
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
#wp-calendar a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#wp-calendar caption {
|
||||
font: bold 1.3em 'Lucida Grande', Verdana, Arial, Sans-Serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#wp-calendar th {
|
||||
font-style: normal;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
/* End Typography & Colors */
|
||||
|
||||
|
||||
|
||||
/* Begin Structure */
|
||||
|
||||
|
||||
.widecolumn .post {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.widecolumn .postmetadata {
|
||||
margin: 30px 0;
|
||||
}
|
||||
|
||||
.widecolumn .smallattachment {
|
||||
text-align: center;
|
||||
float: left;
|
||||
width: 128px;
|
||||
margin: 5px 5px 5px 0px;
|
||||
}
|
||||
|
||||
.widecolumn .attachment {
|
||||
text-align: center;
|
||||
margin: 5px 0px;
|
||||
}
|
||||
|
||||
.postmetadata {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
/* End Structure */
|
||||
|
||||
|
||||
|
||||
/* Begin Headers */
|
||||
h3 {
|
||||
padding: 0;
|
||||
margin: 30px 0 0;
|
||||
}
|
||||
|
||||
h3.comments {
|
||||
padding: 0;
|
||||
margin: 40px auto 20px ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* End Headers */
|
||||
|
||||
|
||||
|
||||
/* Begin Images */
|
||||
p img {
|
||||
padding: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Using 'class="alignright"' on an image will (who would've
|
||||
thought?!) align the image to the right. And using 'class="centered',
|
||||
will of course center the image. This is much better than using
|
||||
align="center", being much more futureproof (and valid) */
|
||||
|
||||
img.centered {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
img.alignright {
|
||||
padding: 4px;
|
||||
margin: 0 0 2px 7px;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
img.alignleft {
|
||||
padding: 4px;
|
||||
margin: 0 7px 2px 0;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.alignright {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.alignleft {
|
||||
float: left;
|
||||
}
|
||||
/* End Images */
|
||||
|
||||
|
||||
|
||||
/* Begin Lists
|
||||
|
||||
Special stylized non-IE bullets
|
||||
Do not work in Internet Explorer, which merely default to normal bullets. */
|
||||
|
||||
html>body .entry ul {
|
||||
margin-left: 0px;
|
||||
padding: 0 0 0 30px;
|
||||
list-style: none;
|
||||
padding-left: 10px;
|
||||
text-indent: -10px;
|
||||
}
|
||||
|
||||
html>body .entry li {
|
||||
margin: 7px 0 8px 10px;
|
||||
}
|
||||
|
||||
.entry ol {
|
||||
padding: 0 0 0 35px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.entry ol li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* End Entry Lists */
|
||||
|
||||
|
||||
|
||||
/* Begin Form Elements */
|
||||
select {
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
#commentform input {
|
||||
width: 170px;
|
||||
padding: 2px;
|
||||
margin: 5px 5px 1px 0;
|
||||
}
|
||||
|
||||
#commentform {
|
||||
margin: 5px 10px 0 0;
|
||||
}
|
||||
#commentform textarea {
|
||||
width: 100%;
|
||||
padding: 2px;
|
||||
}
|
||||
#respond:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
#commentform #submit {
|
||||
margin: 0 0 5px auto;
|
||||
float: right;
|
||||
}
|
||||
/* End Form Elements */
|
||||
|
||||
|
||||
|
||||
/* Begin Comments*/
|
||||
.alt {
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.commentlist {
|
||||
padding: 0;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.commentlist li {
|
||||
margin: 15px 0 10px;
|
||||
padding: 5px 5px 10px 10px;
|
||||
list-style: none;
|
||||
|
||||
}
|
||||
.commentlist li ul li {
|
||||
margin-right: -5px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.commentlist p {
|
||||
margin: 10px 5px 10px 0;
|
||||
}
|
||||
.children { padding: 0; }
|
||||
|
||||
#commentform p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.nocomments {
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.commentmetadata {
|
||||
margin: 0;
|
||||
display: block;
|
||||
}
|
||||
/* End Comments */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Begin Calendar */
|
||||
#wp-calendar {
|
||||
empty-cells: show;
|
||||
margin: 10px auto 0;
|
||||
width: 155px;
|
||||
}
|
||||
|
||||
#wp-calendar #next a {
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#wp-calendar #prev a {
|
||||
padding-left: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#wp-calendar a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#wp-calendar caption {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#wp-calendar td {
|
||||
padding: 3px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#wp-calendar td.pad:hover { /* Doesn't work in IE */
|
||||
background-color: #fff; }
|
||||
/* End Calendar */
|
||||
|
||||
|
||||
|
||||
/* Begin Various Tags & Classes */
|
||||
acronym, abbr, span.caps {
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
acronym, abbr {
|
||||
border-bottom: 1px dashed #999;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 15px 30px 0 10px;
|
||||
padding-left: 20px;
|
||||
border-left: 5px solid #ddd;
|
||||
}
|
||||
|
||||
blockquote cite {
|
||||
margin: 5px 0 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.screen-reader-text {
|
||||
position: absolute;
|
||||
left: -1000em;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
/* End Various Tags & Classes*/
|
||||
|
||||
|
||||
|
||||
/* Captions */
|
||||
.aligncenter,
|
||||
div.aligncenter {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.alignleft {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.alignright {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.wp-caption {
|
||||
border: 1px solid #ddd;
|
||||
text-align: center;
|
||||
background-color: #f3f3f3;
|
||||
padding-top: 4px;
|
||||
margin: 10px;
|
||||
/* optional rounded corners for browsers that support it */
|
||||
-moz-border-radius: 3px;
|
||||
-khtml-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.wp-caption img {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0 none;
|
||||
}
|
||||
|
||||
.wp-caption p.wp-caption-text {
|
||||
font-size: 11px;
|
||||
line-height: 17px;
|
||||
padding: 0 4px 5px;
|
||||
margin: 0;
|
||||
}
|
||||
/* End captions */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||