[PHP]<?php
define('THEME_NAME', "theme");
global $wp_version;
define('WP_VERSION', $wp_version);
define('THEME_NS', 'twentyten');
define('THEME_LANGS_FOLDER', '/languages');
if (class_exists('xili_language')) {
define('THEME_TEXTDOMAIN', THEME_NS);
} else {
load_theme_textdomain(THEME_NS, TEMPLATEPATH . THEME_LANGS_FOLDER);
}
if (function_exists('mb_internal_encoding')) {
mb_internal_encoding(get_bloginfo('charset'));
}
if (function_exists('mb_regex_encoding')) {
mb_regex_encoding(get_bloginfo('charset'));
}
global $wp_locale;
if (isset($wp_locale)) {
$wp_locale->text_direction = 'ltr';
}
if (WP_VERSION < 3.0) {
add_action('admin_notices', 'theme_unsupported_version_notice1');
add_action('wp_head', 'theme_unsupported_version_notice2');
function theme_unsupported_version_notice1() {
?>
<div id='theme-warning' class='error fade'><p><strong><?php _e('Current theme requires WordPress 3.0 or higher.', THEME_NS); ?></strong>
<?php
echo sprintf(__('Please <a href="%s">upgrade WordPress</a>, or <a href="%s">use an earlier version of Artisteer (2.6 - 3.1)</a> to create themes for WordPress 2.6-2.9.', THEME_NS),
'http://codex.wordpress.org/Upgrading_WordPress', 'http://www.artisteer.com/Default.aspx?p=license_info');
?>
</p></div>
<?php
}
function theme_unsupported_version_notice2() {
?>
</head>
<body>
<strong><?php _e('Current theme requires WordPress 3.0 or higher.', THEME_NS); ?></strong>
<?php
echo sprintf(__('Please <a href="%s">upgrade WordPress</a>, or <a href="%s">use an earlier version of Artisteer (2.6 - 3.1)</a> to create themes for WordPress 2.6-2.9.', THEME_NS),
'http://codex.wordpress.org/Upgrading_WordPress', 'http://www.artisteer.com/Default.aspx?p=license_info');
?>
</body>
</html>
<?php
die();
}
return;
}
theme_include_lib('defaults.php');
theme_include_lib('misc.php');
theme_include_lib('wrappers.php');
theme_include_lib('sidebars.php');
theme_include_lib('navigation.php');
theme_include_lib('shortcodes.php');
theme_include_lib('widgets.php');
function theme_favicon() {
if (is_file(TEMPLATEPATH . '/favicon.ico')):
?><link rel="shortcut icon" href="<?php bloginfo('template_directory'); ?>/favicon.ico" /><?php
endif;
}
add_action('wp', 'theme_init_layout');
add_action('wp_head', 'theme_favicon');
add_action('wp_enqueue_scripts', 'theme_update_scripts', 1000);
add_action('wp_enqueue_scripts', 'theme_update_styles', 1000);
add_action('wp_print_scripts', 'theme_update_jquery_scripts', 1000);
add_action('wp_head', 'theme_update_posts_styles', 1000);
add_action('wp_head', 'theme_header_image_script');
add_action('admin_head', 'theme_favicon');
add_action('login_head', 'theme_favicon');
add_action('media_upload_image_header', 'wp_media_upload_handler');
function theme_header_rel_link() {
if (theme_get_option('theme_header_clickable')):
?><link rel='header_link' href='<?php echo esc_url(theme_get_option('theme_header_link')); ?>' /><?php
endif;
}
add_action('wp_head', 'theme_header_rel_link');
add_action('login_head', 'theme_header_rel_link');
add_theme_support('post-thumbnails');
add_theme_support('nav-menus');
add_theme_support('automatic-feed-links');
add_theme_support('post-formats', array('aside', 'gallery'));
register_nav_menus(array('primary-menu' => __('Primary Navigation', THEME_NS)));
function theme_header_image_script() {
$theme_header_image = theme_get_meta_option(get_queried_object_id(), 'theme_header_image');
if ($theme_header_image) {
?>
<style>
.art-header {
background-image : url(<?php echo $theme_header_image; ?>);
background-position : center center;
}
</style>
<?php
}
}
function theme_has_header_image() {
return (bool) theme_get_meta_option(get_queried_object_id(), 'theme_header_image');
}
function theme_show_flash() {
return (bool) theme_get_meta_option(get_queried_object_id(), 'theme_header_image_with_flash');
}
function theme_init_layout() {
global $theme_layout;
$theme_layout = array(
'header' => 1,
);
if (is_page()) {
foreach ($theme_layout as $layout_part_name => $included) {
$theme_layout[$layout_part_name] = theme_get_meta_option(theme_get_the_ID(), 'theme_layout_template_' . $layout_part_name);
}
}
}
function theme_has_layout_part($name) {
global $theme_layout;
return (bool) theme_get_array_value($theme_layout, $name);
}
if (is_admin()) {
theme_include_lib('options.php');
theme_include_lib('admins.php');
function theme_add_option_page() {
add_theme_page(__('Theme Options', THEME_NS), __('Theme Options', THEME_NS), 'edit_themes', basename(__FILE__), 'theme_print_options');
}
add_action('admin_menu', 'theme_add_option_page');
add_action('sidebar_admin_setup', 'theme_widget_process_control');
add_filter('widget_update_callback', 'theme_update_widget_additional');
add_action('add_meta_boxes', 'theme_add_meta_boxes');
add_action('save_post', 'theme_save_post');
if (file_exists(TEMPLATEPATH . '/content/content-importer.php')) {
include(TEMPLATEPATH . '/content/content-importer.php');
}
return;
}
function theme_update_scripts() {
global $wp_scripts;
wp_register_script("script.js", get_bloginfo('template_url', 'display') . '/script.js', array('jquery'));
wp_enqueue_script("script.js");
wp_register_script("script.responsive.js", get_bloginfo('template_url', 'display') . '/script.responsive.js', array('jquery'));
wp_enqueue_script("script.responsive.js");
}
function theme_update_jquery_scripts() {
if(is_admin()) {
return;
}
wp_deregister_script('jquery');
if (theme_get_option('theme_iclude_scripts_from_cdn')) {
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js');
} else {
wp_register_script('jquery', get_bloginfo('template_url', 'display') . '/jquery.js');
}
}
function theme_update_styles() {
global $wp_styles;
wp_register_style("style.ie7.css", get_bloginfo('template_url', 'display') . '/style.ie7.css', array(), false, "screen");
wp_enqueue_style("style.ie7.css");
$wp_styles->add_data("style.ie7.css", "conditional", "lte IE 7");
wp_register_style("style.responsive.css", get_bloginfo('template_url', 'display') . '/style.responsive.css', array(), false, "all");
wp_enqueue_style("style.responsive.css");
}
function theme_update_posts_styles() {
global $wp_query;
$res = '';
while ($wp_query->have_posts()) {
the_post();
$post_id = theme_get_the_ID();
$res .= get_post_meta($post_id, 'theme_head', true);
}
if (!empty($res)) {
echo $res;
}
wp_reset_postdata();
}
function theme_get_option($name) {
global $theme_default_options;
$result = get_option($name);
if ($result === false) {
$result = theme_get_array_value($theme_default_options, $name);
}
return $result;
}
function theme_get_widget_meta_option($widget_id, $name) {
global $theme_default_meta_options;
if (!preg_match('/^(.*[^-])-([0-9]+)$/', $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) {
return theme_get_array_value($theme_default_meta_options, $name);
}
$type = $matches[1];
$id = $matches[2];
$wp_widget = get_option('widget_' . $type);
if (!$wp_widget || !isset($wp_widget[$id])) {
return theme_get_array_value($theme_default_meta_options, $name);
}
if (!isset($wp_widget[$id][$name])) {
$wp_widget[$id][$name] = theme_get_array_value(get_option($name), $widget_id, theme_get_array_value($theme_default_meta_options, $name));
update_option('widget_' . $type, $wp_widget);
}
return $wp_widget[$id][$name];
}
function theme_set_widget_meta_option($widget_id, $name, $value) {
if (!preg_match('/^(.*[^-])-([0-9]+)$/', $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) {
return;
}
$type = $matches[1];
$id = $matches[2];
$wp_widget = get_option('widget_' . $type);
if (!$wp_widget || !isset($wp_widget[$id])) {
return;
}
$wp_widget[$id][$name] = $value;
update_option('widget_' . $type, $wp_widget);
}
function theme_get_meta_option($id, $name) {
global $theme_default_meta_options;
$value = get_post_meta($id, '_' . $name, true);
if ('' === $value) {
$value = theme_get_array_value(get_option($name), $id, theme_get_array_value($theme_default_meta_options, $name));
theme_set_meta_option($id, $name, $value);
}
return $value;
}
function theme_set_meta_option($id, $name, $value) {
update_post_meta($id, '_' . $name, $value);
}
function theme_get_post_id() {
$post_id = theme_get_the_ID();
if ($post_id != '') {
$post_id = 'post-' . $post_id;
}
return $post_id;
}
function theme_get_the_ID() {
global $post;
return $post->ID;
}
function theme_get_post_class() {
return implode(' ', get_post_class());
}
function theme_include_lib($name) {
locate_template(array('library/' . $name), true);
}
function theme_get_metadata_icons($icons = '', $class = '') {
global $post;
if (!is_string($icons) || theme_strlen($icons) == 0)
return;
$icons = explode(",", str_replace(' ', '', $icons));
if (!is_array($icons) || count($icons) == 0)
return;
$result = array();
for ($i = 0; $i < count($icons); $i++) {
$icon = $icons[$i];
switch ($icon) {
case 'date':
$result[] = '<span class="art-postdateicon">' . sprintf(__('<span class="%1$s">Published</span> %2$s', THEME_NS),
'date',
sprintf( '<span class="entry-date" title="%1$s">%2$s</span>',
esc_attr( get_the_time() ),
get_the_date()
)
) . '</span>';
break;
case 'author':
$result[] = '<span class="art-postauthoricon">' . sprintf(__('<span class="%1$s">By</span> %2$s', THEME_NS),
'author',
sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
sprintf( esc_attr(__( 'View all posts by %s', THEME_NS )), get_the_author() ),
get_the_author()
)
) . '</span>';
break;
case 'category':
$categories = get_the_category_list(', ');
if (theme_strlen($categories) == 0)
break;
$result[] = '<span class="art-postcategoryicon">' . sprintf(__('<span class="%1$s">Posted in</span> %2$s', THEME_NS), 'categories', get_the_category_list(', ')) . '</span>';
break;
case 'tag':
$tags_list = get_the_tag_list('', ', ');
if (!$tags_list)
break;
$result[] = '<span class="art-posttagicon">' . sprintf(__('<span class="%1$s">Tagged</span> %2$s', THEME_NS), 'tags', $tags_list) . '</span>';
break;
case 'comments':
if (!comments_open() || !theme_get_option('theme_allow_comments'))
break;
theme_ob_start();
comments_popup_link(__('Leave a comment', THEME_NS), __('1 Comment', THEME_NS), __('% Comments', THEME_NS));
$result[] = '<span class="art-postcommentsicon">' . theme_ob_get_clean() . '</span>';
break;
case 'edit':
if (!current_user_can('edit_post', $post->ID))
break;
theme_ob_start();
edit_post_link(__('Edit', THEME_NS), '');
$result[] = '<span class="art-postediticon">' . theme_ob_get_clean() . '</span>';
break;
}
}
$result = implode(theme_get_option('theme_metadata_separator'), $result);
if (theme_is_empty_html($result))
return;
return "<div class=\"art-post{$class}icons art-metadata-icons\">{$result}</div>";
}
function theme_get_post_thumbnail($args = array()) {
global $post;
$size = theme_get_array_value($args, 'size', array(theme_get_option('theme_metadata_thumbnail_width'), theme_get_option('theme_metadata_thumbnail_height')));
$auto = theme_get_array_value($args, 'auto', theme_get_option('theme_metadata_thumbnail_auto'));
$featured = theme_get_array_value($args, 'featured', theme_get_option('theme_metadata_use_featured_image_as_thumbnail'));
$title = theme_get_array_value($args, 'title', get_the_title());
$result = '';
if ($featured && (has_post_thumbnail())) {
theme_ob_start();
the_post_thumbnail($size, array('alt' => '', 'title' => $title));
$result = theme_ob_get_clean();
} elseif ($auto) {
$attachments = get_children(array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID'));
if ($attachments) {
$attachment = array_shift($attachments);
$img = wp_get_attachment_image_src($attachment->ID, $size);
if (isset($img[0])) {
$result = '<img src="' . $img[0] . '" alt="" width="' . $img[1] . '" height="' . $img[2] . '" title="' . $title . '" class="wp-post-image" />';
}
}
}
if ($result !== '') {
$result = '<div class="avatar alignleft"><a href="' . get_permalink($post->ID) . '" title="' . $title . '">' . $result . '</a></div>';
}
return $result;
}