示例#1
0
function theme_widget_extra_control()
{
    global $wp_registered_widget_controls, $theme_widgets_style, $theme_widget_meta_options;
    $_theme_widget_meta_options = $theme_widget_meta_options;
    $params = func_get_args();
    $widget_id = $params[count($params) - 1];
    $widget_controls = theme_get_array_value($wp_registered_widget_controls, $widget_id, array());
    if (isset($widget_controls['callback_redirect'])) {
        $callback = $widget_controls['callback_redirect'];
        if (is_callable($callback)) {
            call_user_func_array($callback, $params);
        }
    }
    if (!preg_match('/^(.*[^-])-([0-9]+)$/', $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) {
        return false;
    }
    $id = $matches[1] . '-' . $params[0]['number'];
    ?>

	<h3 style="margin-bottom:3px;"><?php 
    _e('Theme Options', THEME_NS);
    ?>
</h3>
	<?php 
    theme_print_meta_box($id, $_theme_widget_meta_options);
}
示例#2
0
function theme_widget_extra_control()
{
    global $wp_registered_widget_controls, $theme_widgets_style;
    $params = func_get_args();
    $id = $params[count($params) - 1];
    $id_disp = 'widget-style';
    $val = theme_get_widget_style($id);
    $widget_controls = theme_get_array_value($wp_registered_widget_controls, $id, array());
    if (isset($widget_controls['callback_redirect'])) {
        $callback = $widget_controls['callback_redirect'];
        if (is_callable($callback)) {
            call_user_func_array($callback, $params);
        }
    }
    ?>
	
<h3 style="margin-bottom:3px;"><?php 
    _e('Theme Options', THEME_NS);
    ?>
</h3>
<p>
  <label for="<?php 
    echo $id_disp;
    ?>
"><?php 
    echo __('Appearance', THEME_NS) . ':';
    ?>
</label><br />
  <select class="widefat" id="<?php 
    echo $id_disp;
    ?>
" name="<?php 
    echo $id_disp;
    ?>
">
<?php 
    foreach ($theme_widgets_style as $key => $option) {
        $selected = $val == $key ? ' selected="selected"' : '';
        echo '<option' . $selected . ' value="' . $key . '">' . $option . '</option>';
    }
    ?>
  </select>
</p>
<?php 
}
示例#3
0
 function theme_get_excerpt($args = array())
 {
     global $post;
     $more_tag = theme_get_array_value($args, 'more_tag', __('Continue reading <span class="meta-nav">&rarr;</span>', THEME_NS));
     $auto = theme_get_array_value($args, 'auto', theme_get_option('theme_metadata_excerpt_auto'));
     $all_words = theme_get_array_value($args, 'all_words', theme_get_option('theme_metadata_excerpt_words'));
     $min_remainder = theme_get_array_value($args, 'min_remainder', theme_get_option('theme_metadata_excerpt_min_remainder'));
     $allowed_tags = theme_get_array_value($args, 'allowed_tags', theme_get_option('theme_metadata_excerpt_use_tag_filter') ? explode(',', str_replace(' ', '', theme_get_option('theme_metadata_excerpt_allowed_tags'))) : null);
     $perma_link = get_permalink($post->ID);
     $more_token = '%%theme_more%%';
     $show_more_tag = false;
     $tag_disbalance = false;
     if (function_exists('post_password_required') && post_password_required($post)) {
         return get_the_excerpt();
     }
     if ($auto && has_excerpt($post->ID)) {
         $excerpt = get_the_excerpt();
         $show_more_tag = mb_strlen($post->post_content) > 0;
     } else {
         $excerpt = get_the_content($more_token);
         // hack for badly written plugins
         ob_start();
         echo apply_filters('get_the_excerpt', $excerpt);
         $excerpt = ob_get_clean();
         ob_start();
         echo apply_filters('the_excerpt', $excerpt);
         $excerpt = ob_get_clean();
         if (theme_is_empty_html($excerpt)) {
             return $excerpt;
         }
         if ($allowed_tags !== null) {
             $allowed_tags = '<' . implode('><', $allowed_tags) . '>';
             $excerpt = strip_tags($excerpt, $allowed_tags);
         }
         $excerpt = strip_shortcodes($excerpt);
         if (strpos($excerpt, $more_token) !== false) {
             $excerpt = str_replace($more_token, $more_tag, $excerpt);
         } elseif ($auto && is_numeric($all_words)) {
             $token = "%theme_tag_token%";
             $content_parts = explode($token, str_replace(array('<', '>'), array($token . '<', '>' . $token), $excerpt));
             $content = array();
             $word_count = 0;
             foreach ($content_parts as $part) {
                 if (strpos($part, '<') !== false || strpos($part, '>') !== false) {
                     $content[] = array('type' => 'tag', 'content' => $part);
                 } else {
                     $all_chunks = preg_split('/([\\s])/u', $part, -1, PREG_SPLIT_DELIM_CAPTURE);
                     foreach ($all_chunks as $chunk) {
                         if ('' != trim($chunk)) {
                             $content[] = array('type' => 'word', 'content' => $chunk);
                             $word_count += 1;
                         } elseif ($chunk != '') {
                             $content[] = array('type' => 'space', 'content' => $chunk);
                         }
                     }
                 }
             }
             if ($all_words < $word_count && $all_words + $min_remainder <= $word_count) {
                 $show_more_tag = true;
                 $tag_disbalance = true;
                 $current_count = 0;
                 $excerpt = '';
                 foreach ($content as $node) {
                     if ($node['type'] == 'word') {
                         $current_count++;
                     }
                     $excerpt .= $node['content'];
                     if ($current_count == $all_words) {
                         break;
                     }
                 }
                 $excerpt .= '&hellip;';
                 // ...
             }
         }
     }
     if ($show_more_tag) {
         $excerpt = $excerpt . ' <a class="more-link" href="' . $perma_link . '">' . $more_tag . '</a>';
     }
     if ($tag_disbalance) {
         $excerpt = force_balance_tags($excerpt);
     }
     return $excerpt;
 }
示例#4
0
function theme_dependent_widget_field_scripts()
{
    global $theme_widget_meta_options;
    ?>
<script>
function makeDependentField(masters, slave) {
    var $ = jQuery, master_value;
    var context = $('script').last().parents('form');
    masters = parseMastersOption(masters);
    $('form').each(function(){
        switchDependentField.call($(this).children()[0]);
    });
    $('body').ajaxComplete(function() {
        $('form').each(function(){
            switchDependentField.call($(this).children()[0]);
        });
    });
    function switchDependentField() {
        var context = $(this).parents('form');
        var slave_element = $('#' + slave, context).parents('p.meta-options');
        for (var i = 0; i < masters.length; i++) {
            var master = $(masters[i].element, context);
            if (!(masters[i].values && $.inArray(master.val(), masters[i].values) !== -1 || master.attr('checked'))) {
                slave_element.hide();
                return;
            }
        }
        slave_element.show();
    }
    function parseMastersOption(masters) {
        masters = $.map(masters.split(';'), function (el) {
            el = el.split(':');
            el[0] = '#' + el[0];
            $(el[0]).live('click', switchDependentField);
            if (el[1]) {
                el[1] = el[1].split(',');
            }
            return {element: el[0], values: el[1]};
        });
        return masters;
    }
}
</script>
<?php 
    echo "<script>" . PHP_EOL;
    echo "jQuery(function() {" . PHP_EOL;
    foreach ($theme_widget_meta_options as $op) {
        $id = theme_get_array_value($op, 'id');
        $depend = theme_get_array_value($op, 'depend');
        if ($depend) {
            echo "makeDependentField('{$depend}', '{$id}');" . PHP_EOL;
        }
    }
    echo "});" . PHP_EOL;
    echo "</script>" . PHP_EOL;
}
示例#5
0
 function get_start($level)
 {
     $class = theme_get_array_value($this->attr, 'class', '');
     /*jordi-ini: crear menu collapse amb bootstrap */
     $toggle_collapse = strstr($class, 'parent_menu') ? 'onclick="return false;" data-toggle="collapse" data-target=".menu-item-' . $this->id . ' > ul"' : '';
     /*jordi-fi*/
     $class = 'menu-item-' . $this->id . (strlen($class) > 0 ? ' ' : '') . $class;
     $this->attr['class'] = $this->active ? 'active' : null;
     $title = strip_tags(apply_filters('the_title', $this->title, $this->id));
     if (theme_get_option('theme_menu_trim_title')) {
         $title = theme_trim_long_str($title, theme_get_option($level == 0 ? 'theme_menu_trim_len' : 'theme_submenu_trim_len'));
     }
     return str_repeat("\t", $level + 1) . '<li' . theme_prepare_attr(array('class' => $class)) . '>' . '<a' . theme_prepare_attr($this->attr) . $toggle_collapse . '>' . $title . '</a>' . "\n";
 }
示例#6
0
function theme_print_widget($widget)
{
    if (!is_array($widget)) {
        return false;
    }
    $widget_name = theme_get_array_value($widget, 'name', '');
    if ($widget_name) {
        echo theme_get_widget_meta_option($widget_name, 'theme_widget_styling');
        theme_wrapper(theme_get_array_value($widget, 'style', 'block'), $widget);
    } else {
        echo $widget['content'];
    }
    return true;
}
            </div>
        <?php 
            }
        }
        if ($needLayout) {
            ?>
    </div>
</div>
        <?php 
        }
    }
    ?>
<div class="cleantheme-footer-text">
<?php 
    global $theme_default_options;
    echo do_shortcode(theme_get_option('theme_override_default_footer_content') ? theme_get_option('theme_footer_content') : theme_get_array_value($theme_default_options, 'theme_footer_content'));
} else {
    ?>
<div class="cleantheme-footer-text">

<p>Copyright © 2011, Clean Restaurant. All Rights Reserved.</p>
    
  
<?php 
}
?>
<p class="cleantheme-page-footer">
        <span id="cleantheme-footnote-links">Powered by <a href="http://wordpress.org/" target="_blank">WordPress</a> and WordPress Theme created  by Vuthy.</span>
        <span id="cleantheme-licence-links">Images by Flickr/winkyintheuk</span>
    </p>
</div>
示例#8
0
function theme_get_pages($pages)
{
    if (is_admin()) {
        return $pages;
    }
    $excluded_option = get_option('theme_show_in_menu');
    if (!$excluded_option || !is_array($excluded_option)) {
        return $pages;
    }
    $excluded_ids = array();
    foreach ($excluded_option as $id => $show) {
        if (!$show) {
            $excluded_ids[] = $id;
        }
    }
    $excluded_parent_ids = array();
    foreach ($pages as $page) {
        $title = theme_get_meta_option($page->ID, 'theme_title_in_menu');
        if ($title) {
            $page->post_title = $title;
        }
        if (in_array($page->ID, $excluded_ids)) {
            $excluded_parent_ids[$page->ID] = $page->post_parent;
        }
    }
    $length = count($pages);
    for ($i = 0; $i < $length; $i++) {
        $page =& $pages[$i];
        if (in_array($page->post_parent, $excluded_ids)) {
            $page->post_parent = theme_get_array_value($excluded_parent_ids, $page->post_parent, $page->post_parent);
        }
        if (in_array($page->ID, $excluded_ids)) {
            unset($pages[$i]);
        }
    }
    if (!is_array($pages)) {
        $pages = (array) $pages;
    }
    $pages = array_values($pages);
    return $pages;
}
 function get_start($level)
 {
     $class = theme_get_array_value($this->attr, 'class', '');
     $class = 'menu-item-' . $this->id . (strlen($class) > 0 ? ' ' : '') . $class;
     $this->attr['class'] = $this->active ? 'active' : null;
     $title = apply_filters('the_title', $this->title, $this->id);
     if (theme_get_option('theme_menu_trim_title')) {
         $title = theme_trim_long_str(strip_tags($title), theme_get_option($level == 0 ? 'theme_menu_trim_len' : 'theme_submenu_trim_len'));
     }
     return str_repeat("\t", $level + 1) . '<li' . theme_prepare_attr(array('class' => $class)) . '>' . '<a' . theme_prepare_attr($this->attr) . '>' . $title . '</a>' . "\n";
 }
示例#10
0
function theme_save_post($post_id)
{
    global $theme_post_meta_options, $theme_page_meta_options;
    // verify this came from the our screen and with proper authorization,
    // because save_post can be triggered at other times
    if (!isset($_POST['theme_meta_noncename']) || !wp_verify_nonce($_POST['theme_meta_noncename'], 'theme_meta_options')) {
        return $post_id;
    }
    // verify if this is an auto save routine. If it is our form has not been submitted, so we dont want
    // to do anything
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return $post_id;
    }
    $meta_options = null;
    //posts
    if ('page' == $_POST['post_type']) {
        // Check permissions
        if (!current_user_can('edit_page', $post_id)) {
            return $post_id;
        }
        $meta_options = $theme_page_meta_options;
    }
    if ('post' == $_POST['post_type']) {
        $meta_options = $theme_post_meta_options;
    }
    if (!$meta_options) {
        return $post_id;
    }
    // OK, we're authenticated: we need to find and save the data
    foreach ($meta_options as $value) {
        $id = theme_get_array_value($value, 'id');
        $val = stripslashes(theme_get_array_value($_REQUEST, $id));
        $type = theme_get_array_value($value, 'type');
        $necessary = theme_get_array_value($value, 'necessary');
        if ($necessary && !current_user_can($necessary)) {
            continue;
        }
        switch ($type) {
            case 'checkbox':
                $val = $val ? 1 : 0;
                break;
            case 'numeric':
                $val = (int) $val;
                break;
        }
        theme_set_meta_option($post_id, $id, $val);
    }
    return $post_id;
}
示例#11
0
function theme_widget_extra_control()
{
    global $wp_registered_widget_controls, $theme_widgets_style, $theme_widget_meta_options;
    $_theme_widget_meta_options = $theme_widget_meta_options;
    $params = func_get_args();
    $widget_id = $params[count($params) - 1];
    // see theme_widget_expand_control func
    $widget_controls = theme_get_array_value($wp_registered_widget_controls, $widget_id, array());
    if (isset($widget_controls['callback_redirect'])) {
        $callback = $widget_controls['callback_redirect'];
        if (is_callable($callback)) {
            call_user_func_array($callback, $params);
        }
    }
    if (!preg_match('/^(.*[^-])-([0-9]+)$/', $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) {
        return false;
    }
    $id = $matches[1] . '-' . $params[0]['number'];
    if (theme_is_vmenu_widget($id)) {
        $need_delete = false;
        foreach ($_theme_widget_meta_options as $option_id => $option) {
            if ($option['id'] == 'theme_widget_styles') {
                $need_delete = true;
                break;
            }
        }
        if ($need_delete) {
            unset($_theme_widget_meta_options[$option_id]);
        }
    }
    ?>
	<h3 style="margin-bottom:3px;"><?php 
    _e('Theme Options', THEME_NS);
    ?>
</h3>
	<?php 
    theme_print_meta_box($id, $_theme_widget_meta_options);
}