Master-X
Форум | Новости | Статьи
Главная » Форум » Блоги и Социальные сети » 
Тема: Wordpress How To
цитата
09/03/11 в 18:33
 Lenskiy
код function.php там где была такая ошибка Parse error: syntax error, unexpected '}' /public_html/wp-content/themes/f2/functions.php on line 640
Код:
<?php

add_action( 'after_setup_theme', 'f2_setup' );

function f2_setup()
{
   // This theme uses wp_nav_menu() in one location.
   register_nav_menus( array(
      'primary' => __( 'Primary Navigation', 'f2' ),
   ) );
}

function f2_nav_menu()
{ ?>
<ul>
   <li><a href="<?php echo get_settings('home'); ?>"><?php _e('Home', 'f2') ?></a></li>
   <?php wp_list_pages('title_li=&depth=2&sort_column=menu_order&exclude='.f2_option('hmenu_exclude')) ?>
   <li class="hmenu_rss"><a href="<?php bloginfo('rss2_url'); ?>"><?php _e('Feed', 'f2') ?></a></li>
</ul>
<?php
}


automatic_feed_links();

if ( function_exists('register_sidebar') ) {
   register_sidebar(array(
      'name' => 'Left Sidebar'
   ));
   register_sidebar(array(
      'name' => 'Right Sidebar'
   ));
}

$themename = "F2";
$shortname = "f2";
$version = "1.1";

load_theme_textdomain ('f2', get_template_directory().'/languages');

$options = array (
   'header' => array (
      'name' => __('Header', 'f2'),
      'type' => 'section'
   ),
   'header_img' => array (
      'name' => __('Header background image?', 'f2'),
      'type' => 'checkbox',
      'default' => 'off',
      'category' => 'header'
   ),
   'header_img_url' => array(
      'name' => __('Header background image URL', 'f2'),
      'desc' => __('Tip: <a target="_blank" href="media-new.php">Upload your image here</a> and grab the url.', 'f2'),
      'type' => 'text',
      'category' => 'header',
      'th_class' => 'header_img_dependent',
      'class' => 'url'
   ),      
   'header_img_repeat' => array(
      'name' => __('Repeat header background image?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header',
      'th_class' => 'header_img_dependent'
   ),
   'header_textlogo' => array(
      'name' => __('Show blog title & tagline in header?', 'f2'),
      'desc' => __('You may uncheck this option if you use a background image as logo.', 'f2'),
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header',
      'th_class' => 'header_img_dependent'
   ),
   'header_height' => array(
      'name' => __('Header height', 'f2'),
      'type' => 'text',
      'desc' => '',
      'default' => '90',
      'category' => 'header',
      'class' => 'pixels'
   ),
   'header_bg_color' => array(
      'name' => __('Header background color', 'f2'),
      'desc' => '',
      'type' => 'text',
      'default' => '#6d97b7',
      'category' => 'header',
      'class' => 'colorinput'
   ),
   'header_title_color' => array(
      'name' => __('Blog title font color', 'f2'),
      'type' => 'text',
      'desc' => '',
      'default' => '#d0e0f0',
      'category' => 'header',
      'class' => 'colorinput',
   ),
   'header_desc_color' => array(
      'name' => __('Blog tagline font color', 'f2'),
      'type' => 'text',
      'desc' => '',
      'default' => '#ffffff',
      'category' => 'header',
      'class' => 'colorinput',
   ),
   'hmenu' => array(
      'name' => __('Show horizontal menu?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header'
   ),
   'hmenu_exclude' => array(
      'name' => __('Pages to be excluded in horizontal menu', 'f2'),
      'desc' => __('Comma separated page IDs', 'f2'),
      'type' => 'text',
      'default' => '',
      'category' => 'header',
      'th_class' => 'hmenu_dependent'
   ),
   'hmenu_rss' => array(
      'name' => __('Show RSS feed link in horizontal menu?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header',
      'th_class' => 'hmenu_dependent'
   ),
   array (
      'type' => 'section_close'
   ),
   'sidebar' => array (
      'name' => __('Sidebar', 'f2'),
      'type' => 'section'
   ),
   'sidebar_l' => array(
      'name' => __('Show left sidebar?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'sidebar'
   ),
   'sidebar_l_width' => array(
      'name' => __('Left sidebar width?', 'f2'),
      'desc' => '',
      'type' => 'text',
      'default' => '200',
      'category' => 'sidebar',
      'class' => 'pixels',
      'th_class' => 'sidebar_l_dependent'
   ),
   'sidebar_l_fontsize' => array(
      'name' => __('Left sidebar fontsize', 'f2'),
      'desc' => '',
      'type' => 'select',
      'options' => array(
         array('0.85em', __('small', 'f2')),
         array('1em', __('medium', 'f2')),
         array('1.15em', __('large', 'f2'))
      ),
      'default' => '1em',
      'category' => 'sidebar',
      'class' => 'fontselect',
      'th_class' => 'sidebar_l_dependent'
   ),
   'sidebar_r' => array(
      'name' => __('Show right sidebar?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'sidebar'
   ),
   'sidebar_r_width' => array(
      'name' => __('Right sidebar width?', 'f2'),
      'desc' => '',
      'type' => 'text',
      'default' => '200',
      'category' => 'sidebar',
      'class' => 'pixels',
      'th_class' => 'sidebar_r_dependent'
   ),
   'sidebar_r_fontsize' => array(
      'name' => __('Right sidebar fontsize', 'f2'),
      'desc' => '',
      'type' => 'select',
      'options' => array(
         array('0.85em', __('small', 'f2')),
         array('1em', __('medium', 'f2')),
         array('1.15em', __('large', 'f2'))
      ),
      'default' => '1em',
      'category' => 'sidebar',
      'class' => 'fontselect',
      'th_class' => 'sidebar_r_dependent'
   ),
   array (
      'type' => 'section_close'
   ),
   'posts' => array (
      'name' => __('Blog posts', 'f2'),
      'type' => 'section'
   ),
   'content_fontsize' => array(
      'name' => __('Blog post text size', 'f2'),
      'desc' => '',
      'type' => 'select',
      'options' => array(
         array('0.85em', __('small', 'f2')),
         array('1em', __('medium', 'f2')),
         array('1.15em', __('large', 'f2'))
      ),
      'default' => '1em',
      'category' => 'posts'
   ),
   'show_author' => array(
      'name' => __('Show post author?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'off',
      'category' => 'posts'
   ),
   'show_cat' => array(
      'name' => __('Show post category?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'posts'
   ),
   'archive_posts' => array (
      'name' => __('Full post or excerpt in archive pages?', 'f2'),
      'desc' => __('Displaying only excerpt in archive pages is a better SEO practice.', 'f2'),
      'type' => 'select',
      'options' => array (
         array('full', __('Full post', 'f2')),
         array('excerpt', __('Only excerpt', 'f2'))
      ),
      'default' => 'excerpt',
      'category' => 'posts'
   ),

   array (
      'type' => 'section_close'
   ),
   'footer' => array (
      'name' => __('Footer', 'f2'),
      'type' => 'section'
   ),
   'footer_text' => array(
      'name' => __('Footer text', 'f2'),
      'desc' => '',
      'type' => 'textarea',
      'default' => '&copy;&nbsp;'.date('Y').'&nbsp;'.get_bloginfo('name'),
      'category' => 'footer'
   ),
   array (
      'type' => 'section_close'
   ),
   'general' => array (
      'name' => __('General options', 'f2'),
      'type' => 'section'
   ),
   'rounded_corners' => array (
      'name' => __('Rounded corners?', 'f2'),
      'desc' => __('Rounded corners add to the fluid nature of the theme. Note that this will add non-standard CSS code.', 'f2'),
      'type' => 'checkbox',
      'default' => 'off',
   ),
   array (
      'type' => 'section_close'
   ),
);

function f2_add_admin()
{
   global $themename, $shortname, $options;
   if( $_GET['page'] == basename(__FILE__) ) {
      if(__('Save changes', 'f2') == $_REQUEST['action']) {
         foreach($options as $key => $option) {
            
            $id = $shortname.'_'.$key;
            
            if($option['type'] == 'checkbox')
               $value = $_REQUEST[$id]?'on':'off';
            else
               $value = isset($_REQUEST[$id])?stripslashes($_REQUEST[$id]):$option['default'];
            
            update_option($id, $value);
            
         }
         header("Location: themes.php?page=functions.php&saved=true");
         die;
      }
      else if(__('Reset to defaults', 'f2') == $_REQUEST['action']) {
         foreach($options as $key => $value)
            delete_option($shortname.'_'.$key);
         header("Location: themes.php?page=functions.php&reset=true");
         die;
      }
      
   }
    add_theme_page($themename.' '.__('Settings', 'f2'), $themename.' '.__('Settings', 'f2'), 'edit_themes', basename(__FILE__), 'f2_admin');

}

function f2_admin() {
   global $themename, $shortname, $version, $options;
    $options = $options;   

    if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.__('Settings saved', 'f2').'</strong></p></div>';
    if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.__('Settings reset', 'f2').'</strong></p></div>';

?>
<div class="wrap">
<h2><?php echo $themename.' '; _e('Settings', 'f2'); ?></h2>
<div id="poststuff" class="metabox-holder">
<div class="stuffbox">
<div class="inside">
<table><tr>
<td style="width:60%;vertical-align:top;">
<p><strong><?php echo $themename; ?> WordPress theme</strong> <?php _e('version', 'f2'); ?> <strong><?php echo $version; ?></strong>. <?php printf(__('Visit <a href="%s">theme page</a>', 'f2'), 'http://srinig.com/wordpress/themes/f2/'); ?>. <?php printf(__('View <a href="%s">readme</a>', 'f2'), get_bloginfo('template_url').'/readme.html'); ?>.</p>
<p>
<a href="#f2_header"><?php _e('Header Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_sidebar"><?php _e('Sidebar Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_posts"><?php _e('Posts Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_footer"><?php _e('Footer Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_general"><?php _e('General Settings', 'f2'); ?></a>
</p>
</td>
<td style="width:30%;vertical-align:top;">
<div style="max-width:240px;float:right;">
<p><?php _e('If you enjoy the theme, you can make a donation and support development. Thank you!', 'f2'); ?></p>
<div style="text-align:center;"><form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="7622318">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form></div>
</div>
</td>
</tr></table>
</div>
</div>
<form method="post">
<?php
   
   foreach($options as $key => $option) {

      $id = $shortname.'_'.$key;

      $value = get_option($id, $option['default']);
      
      switch ($option['type'] ) {
         case "section": { ?>
<div class="stuffbox">
<h3 id="<?php echo $shortname.'_'.$key; ?>"><?php echo $option['name']; ?></h3>
<div class="inside">
<table class="form-table">
<?php break; }
         case "section_close": { ?>
</table>
</div>
</div>
<?php break; }
         case 'text': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <input type="text" class="<?php echo $option['class']; ?>"" name="<?php echo $id; ?>" id="<?php echo $id; ?>" value="<?php echo $value; ?>"<?php if($option['class'] == 'colorinput') echo ' size="7"'; elseif($option['class'] == 'pixels') echo ' size="3"'; elseif($option['class'] == 'url') echo ' size="60"'; ?> />
      <?php if($option['class'] == 'pixels') echo "<span style='font-size:12px;'>px</span>"; ?>
      <?php if($option['class'] == 'colorinput') { ?>
      <a class="colorclose" style="cursor:pointer;"><?php _e('Close colorpicker', 'f2'); ?></a>
      <div id="colorpicker-<?php echo $key; ?>" class="colorpicker"></div>
      <?php } if($option['desc']) {
         if ($option['class'] == 'url')
            echo "<br />";
         echo "<span class='description' style='font-size:10px'>".$option['desc']."</span>";
      } ?>
      
   </td>
</tr>
<?php break; }
         case 'checkbox': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <input type="checkbox" class="<?php echo $option['class']; ?>" name="<?php echo $id; ?>" id="<?php echo $id; ?>"<?php if($value == 'on') echo ' checked="checked"'; ?> />
      <?php if($option['desc']) echo "<span class='description' style='font-size:10px'>".$option['desc']."</span>"; ?>
   </td>
</tr>
<?php break; }
         case 'select': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <select class="<?php echo $option['class']; ?>" name="<?php echo $id; ?>" id="<?php echo $id; ?>">
      <?php foreach ($option['options'] as $sel_opts) {
         echo '<option value="'.$sel_opts[0].'"';
         if($value == $sel_opts[0])
            echo ' selected="selected"';
         echo '>'.$sel_opts[1].'</option>';
      } ?>
      </select>
      <?php if($option['desc']) echo "<span class='description' style='font-size:10px'>".$option['desc']."</span>"; ?>
   </td>
</tr>
<?php break; }
         case 'textarea': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <textarea class="<?php echo $option['class']; ?>" name="<?php echo $id; ?>" id="<?php echo $id; ?>" style="width:100%; height:6em;"><?php echo $value; ?></textarea>
      <?php if($option['desc']) echo "<br /><span class='description' style='font-size:10px'>".$option['desc']."</span>"; ?>
   </td>
</tr>
<?php break; }
      }
   }
?>
<input name="action" value="<?php _e('Save changes', 'f2'); ?>" class="button-primary" type="submit">
<input name="action" value="<?php _e('Reset to defaults', 'f2'); ?>" class="button" type="submit">
</form>
</div>
</div>
<?php
}

add_action('admin_menu', 'f2_add_admin');



function f2_head()
{
   global $shortname, $options;
   
   foreach($options as $key => $option)
      $$key = get_option($shortname.'_'.$key, $option['default']);

   if($header_img == 'on') {
      $style['#header']['background-image'] = "url('{$header_img_url}')";
      if($header_img_repeat == 'off')
         $style['#header']['background-repeat'] = "no-repeat";
   }
   if($header_bg_color && $header_bg_color != '#')
      $style['#header']['background-color'] = $header_bg_color;
   if($header_textlogo == 'off')
      $style['#headerlogo']['visibility'] = 'hidden';
   if($header_height && $header_height != 90)
      $style['#header']['height'] = $header_height.'px';
   if($hmenu == 'off')
      $style['#hmenu']['display'] = 'none';
   if($hmenu_rss == 'off')
      $style['#hmenu li.hmenu_rss']['display'] = 'none';
   if($header_title_color && $header_title_color != '#')
      $style['#headerlogo h1 a']['color'] = $header_title_color;
   if($header_desc_color && $header_desc_color != '#')
      $style['#headerlogo div.description']['color'] = $header_desc_color;
   if($sidebar_r == 'off') {
      $style['#container']['padding-right'] = 0;
      $style['#wrapper']['border-right'] = 0;
      $style['#wrapper']['margin-right'] = 0;
   }
   else if($sidebar_r_width) {
      $style['#container']['padding-right'] = ($sidebar_r_width + 40).'px';
      $style['#wrapper']['border-right-width'] = ($sidebar_r_width + 40).'px';
      $style['#wrapper']['margin-right'] = '-'.($sidebar_r_width + 40).'px';
      $style['#sidebar_right'] = array (
         'width' => $sidebar_r_width.'px',
         'margin-right' => '-'.($sidebar_r_width + 40).'px',
      );
   }   
   if($sidebar_l == 'off') {
      $style['#container']['padding-left'] = 0;
      $style['#wrapper']['border-left'] = 0;
      $style['#wrapper']['margin-left'] = 0;
   }
   else if($sidebar_l_width) {
      $style['#container']['padding-left'] = ($sidebar_l_width + 40).'px';
      $style['#wrapper']['border-left-width'] = ($sidebar_l_width + 40).'px';
      $style['#wrapper']['margin-left'] = '-'.($sidebar_l_width + 40).'px';
      $style['#sidebar_left'] = array (
         'width' => $sidebar_l_width.'px',
         'margin-left' => '-'.($sidebar_l_width + 40).'px',
      );
   }   
   if($sidebar_r_fontsize)
      $style['#sidebar_right']['font-size'] = $sidebar_r_fontsize;
   if($sidebar_l_fontsize)
      $style['#sidebar_left']['font-size'] = $sidebar_l_fontsize;
   if($content_fontsize) {
      $style['.postentry p']['font-size'] = $content_fontsize;
      $style['.postentry ul']['font-size'] = $content_fontsize;
      $style['.postentry ol']['font-size'] = $content_fontsize;
   }   
   if($style) {
      echo "\n<!-- Fluid Blue customized styles generated by functions.php -->\n";
      echo "<style type=\"text/css\">\n";
      foreach($style as $selector => $properties) {
         echo $selector." {\n";
         foreach ($properties as $property => $value)
            echo "\t{$property}: {$value};\n";
         echo "}\n";
      }
      echo "</style>\n";
   }
   if($rounded_corners == 'on')
      echo '<link rel="stylesheet" href="'. get_bloginfo('template_url') . '/rounded-corners.css" type="text/css" media="screen" />'."\n";
   if(is_file(get_template_directory().'/custom.css'))
      echo '<link rel="stylesheet" href="'. get_bloginfo('template_url') . '/custom.css" type="text/css" media="screen" />'."\n";
}

add_action('wp_head', 'f2_head');


function f2_admin_head()
{
   if( $_GET['page'] == basename(__FILE__) ) {
   $template_url = get_bloginfo('template_url');
?>
<script type="text/javascript" src="<?php echo get_bloginfo('template_url'); ?>/farbtastic/farbtastic.js"></script>
<link rel="stylesheet" href="<?php echo get_bloginfo('template_url'); ?>/farbtastic/farbtastic.css" type="text/css" />

<style type="text/css">
.colorpicker { display:none; }
.colorclose { display:none; }
</style>
<?php
}
}

add_action('admin_head', 'f2_admin_head');

function f2_admin_footer()
{
   if( $_GET['page'] == basename(__FILE__) ) {
?>
<script type="text/javascript">
   jQuery(document).ready(function() {
   if(!jQuery('#f2_sidebar_l').is(':checked'))
      jQuery('.sidebar_l_dependent').hide();
   jQuery('#f2_sidebar_l').change(function() {
      if(jQuery('#f2_sidebar_l').is(':checked'))
         jQuery('.sidebar_l_dependent').show();
      else
         jQuery('.sidebar_l_dependent').hide();
   });
   if(!jQuery('#f2_sidebar_r').is(':checked'))
      jQuery('.sidebar_r_dependent').hide();
   jQuery('#f2_sidebar_r').change(function() {
      if(jQuery('#f2_sidebar_r').is(':checked'))
         jQuery('.sidebar_r_dependent').show();
      else
         jQuery('.sidebar_r_dependent').hide();
   });
   if(!jQuery('#f2_header_img').is(':checked'))
      jQuery('.header_img_dependent').hide();
   jQuery('#f2_header_img').change(function() {
      if(jQuery('#f2_header_img').is(':checked'))
         jQuery('.header_img_dependent').show();
      else
         jQuery('.header_img_dependent').hide();
   });
   if(!jQuery('#f2_hmenu').is(':checked'))
      jQuery('.hmenu_dependent').hide();
   jQuery('#f2_hmenu').change(function() {
      if(jQuery('#f2_hmenu').is(':checked'))
         jQuery('.hmenu_dependent').show();
      else
         jQuery('.hmenu_dependent').hide();
   });
   jQuery('#colorpicker-header_bg_color').farbtastic('#f2_header_bg_color');
   jQuery('#colorpicker-header_title_color').farbtastic('#f2_header_title_color');
   jQuery('#colorpicker-header_desc_color').farbtastic('#f2_header_desc_color');
   jQuery('.colorinput').focus(function() {
      if(jQuery(this).val() == '') jQuery(this).val('#');
      jQuery(this).next('.colorclose').show();
      jQuery(this).next('.colorclose').next('div.colorpicker').slideDown();
   });      
   jQuery('.colorclose').click(function() {
      jQuery(this).next('.colorpicker').slideUp();
      jQuery(this).hide();
   });
  });
</script>
<?php
   }
}

add_action('admin_footer', 'f2_admin_footer');


function f2_option($option)
{
   global $shortname, $options;
   return get_option($shortname.'_'.$option, $options[$option]['default']);
}

?>


Последний раз редактировалось: Lenskiy (09/03/11 в 18:38), всего редактировалось 1 раз
цитата
09/03/11 в 18:37
 Ado.Blogs
хоть убейте, не вижу 640-вой строки, максимум 599 вижу...
цитата
09/03/11 в 18:39
 Lenskiy
здесь нет кода виджета. Я же говорил что 600 сточек. А ошибку пишет в 640. Код виджета я толкал вниз, как автор велит. Начинался он с 600-ой строчки.

Последний раз редактировалось: Lenskiy (09/03/11 в 18:41), всего редактировалось 1 раз
цитата
09/03/11 в 18:41
 Ado.Blogs
как именно ты его толкнул? тут дело именно в этом, нужен код который не работает... зачем код который работает то?

дай полностью то, что выдает ошибку...

со скобками кстати у Yacc все в поряде, на беглый взгляд, все парное...


Yacc: рекомендую тебе в <?php и ?> не забывать указывать в твоих исходниках для копи-паста icon_wink.gif или напоминать, что все должно быть в пределах этих тегов(или как их там зовут...)
цитата
09/03/11 в 18:50
 Lenskiy
вот, то что дает ошибку. Мой, предыдущий код+ код виджета снизу.
Я тоже думаю из за отсутствия скобочек, но я автору, как бы намекал в предыдущих сообщениях icon_wink.gif
Код:
<?php

add_action( 'after_setup_theme', 'f2_setup' );

function f2_setup()
{
   // This theme uses wp_nav_menu() in one location.
   register_nav_menus( array(
      'primary' => __( 'Primary Navigation', 'f2' ),
   ) );
}

function f2_nav_menu()
{ ?>
<ul>
   <li><a href="<?php echo get_settings('home'); ?>"><?php _e('Home', 'f2') ?></a></li>
   <?php wp_list_pages('title_li=&depth=2&sort_column=menu_order&exclude='.f2_option('hmenu_exclude')) ?>
   <li class="hmenu_rss"><a href="<?php bloginfo('rss2_url'); ?>"><?php _e('Feed', 'f2') ?></a></li>
</ul>
<?php
}


automatic_feed_links();

if ( function_exists('register_sidebar') ) {
   register_sidebar(array(
      'name' => 'Left Sidebar'
   ));
   register_sidebar(array(
      'name' => 'Right Sidebar'
   ));
}

$themename = "F2";
$shortname = "f2";
$version = "1.1";

load_theme_textdomain ('f2', get_template_directory().'/languages');

$options = array (
   'header' => array (
      'name' => __('Header', 'f2'),
      'type' => 'section'
   ),
   'header_img' => array (
      'name' => __('Header background image?', 'f2'),
      'type' => 'checkbox',
      'default' => 'off',
      'category' => 'header'
   ),
   'header_img_url' => array(
      'name' => __('Header background image URL', 'f2'),
      'desc' => __('Tip: <a target="_blank" href="media-new.php">Upload your image here</a> and grab the url.', 'f2'),
      'type' => 'text',
      'category' => 'header',
      'th_class' => 'header_img_dependent',
      'class' => 'url'
   ),      
   'header_img_repeat' => array(
      'name' => __('Repeat header background image?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header',
      'th_class' => 'header_img_dependent'
   ),
   'header_textlogo' => array(
      'name' => __('Show blog title & tagline in header?', 'f2'),
      'desc' => __('You may uncheck this option if you use a background image as logo.', 'f2'),
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header',
      'th_class' => 'header_img_dependent'
   ),
   'header_height' => array(
      'name' => __('Header height', 'f2'),
      'type' => 'text',
      'desc' => '',
      'default' => '90',
      'category' => 'header',
      'class' => 'pixels'
   ),
   'header_bg_color' => array(
      'name' => __('Header background color', 'f2'),
      'desc' => '',
      'type' => 'text',
      'default' => '#6d97b7',
      'category' => 'header',
      'class' => 'colorinput'
   ),
   'header_title_color' => array(
      'name' => __('Blog title font color', 'f2'),
      'type' => 'text',
      'desc' => '',
      'default' => '#d0e0f0',
      'category' => 'header',
      'class' => 'colorinput',
   ),
   'header_desc_color' => array(
      'name' => __('Blog tagline font color', 'f2'),
      'type' => 'text',
      'desc' => '',
      'default' => '#ffffff',
      'category' => 'header',
      'class' => 'colorinput',
   ),
   'hmenu' => array(
      'name' => __('Show horizontal menu?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header'
   ),
   'hmenu_exclude' => array(
      'name' => __('Pages to be excluded in horizontal menu', 'f2'),
      'desc' => __('Comma separated page IDs', 'f2'),
      'type' => 'text',
      'default' => '',
      'category' => 'header',
      'th_class' => 'hmenu_dependent'
   ),
   'hmenu_rss' => array(
      'name' => __('Show RSS feed link in horizontal menu?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'header',
      'th_class' => 'hmenu_dependent'
   ),
   array (
      'type' => 'section_close'
   ),
   'sidebar' => array (
      'name' => __('Sidebar', 'f2'),
      'type' => 'section'
   ),
   'sidebar_l' => array(
      'name' => __('Show left sidebar?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'sidebar'
   ),
   'sidebar_l_width' => array(
      'name' => __('Left sidebar width?', 'f2'),
      'desc' => '',
      'type' => 'text',
      'default' => '200',
      'category' => 'sidebar',
      'class' => 'pixels',
      'th_class' => 'sidebar_l_dependent'
   ),
   'sidebar_l_fontsize' => array(
      'name' => __('Left sidebar fontsize', 'f2'),
      'desc' => '',
      'type' => 'select',
      'options' => array(
         array('0.85em', __('small', 'f2')),
         array('1em', __('medium', 'f2')),
         array('1.15em', __('large', 'f2'))
      ),
      'default' => '1em',
      'category' => 'sidebar',
      'class' => 'fontselect',
      'th_class' => 'sidebar_l_dependent'
   ),
   'sidebar_r' => array(
      'name' => __('Show right sidebar?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'sidebar'
   ),
   'sidebar_r_width' => array(
      'name' => __('Right sidebar width?', 'f2'),
      'desc' => '',
      'type' => 'text',
      'default' => '200',
      'category' => 'sidebar',
      'class' => 'pixels',
      'th_class' => 'sidebar_r_dependent'
   ),
   'sidebar_r_fontsize' => array(
      'name' => __('Right sidebar fontsize', 'f2'),
      'desc' => '',
      'type' => 'select',
      'options' => array(
         array('0.85em', __('small', 'f2')),
         array('1em', __('medium', 'f2')),
         array('1.15em', __('large', 'f2'))
      ),
      'default' => '1em',
      'category' => 'sidebar',
      'class' => 'fontselect',
      'th_class' => 'sidebar_r_dependent'
   ),
   array (
      'type' => 'section_close'
   ),
   'posts' => array (
      'name' => __('Blog posts', 'f2'),
      'type' => 'section'
   ),
   'content_fontsize' => array(
      'name' => __('Blog post text size', 'f2'),
      'desc' => '',
      'type' => 'select',
      'options' => array(
         array('0.85em', __('small', 'f2')),
         array('1em', __('medium', 'f2')),
         array('1.15em', __('large', 'f2'))
      ),
      'default' => '1em',
      'category' => 'posts'
   ),
   'show_author' => array(
      'name' => __('Show post author?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'off',
      'category' => 'posts'
   ),
   'show_cat' => array(
      'name' => __('Show post category?', 'f2'),
      'desc' => '',
      'type' => 'checkbox',
      'default' => 'on',
      'category' => 'posts'
   ),
   'archive_posts' => array (
      'name' => __('Full post or excerpt in archive pages?', 'f2'),
      'desc' => __('Displaying only excerpt in archive pages is a better SEO practice.', 'f2'),
      'type' => 'select',
      'options' => array (
         array('full', __('Full post', 'f2')),
         array('excerpt', __('Only excerpt', 'f2'))
      ),
      'default' => 'excerpt',
      'category' => 'posts'
   ),

   array (
      'type' => 'section_close'
   ),
   'footer' => array (
      'name' => __('Footer', 'f2'),
      'type' => 'section'
   ),
   'footer_text' => array(
      'name' => __('Footer text', 'f2'),
      'desc' => '',
      'type' => 'textarea',
      'default' => '&copy;&nbsp;'.date('Y').'&nbsp;'.get_bloginfo('name'),
      'category' => 'footer'
   ),
   array (
      'type' => 'section_close'
   ),
   'general' => array (
      'name' => __('General options', 'f2'),
      'type' => 'section'
   ),
   'rounded_corners' => array (
      'name' => __('Rounded corners?', 'f2'),
      'desc' => __('Rounded corners add to the fluid nature of the theme. Note that this will add non-standard CSS code.', 'f2'),
      'type' => 'checkbox',
      'default' => 'off',
   ),
   array (
      'type' => 'section_close'
   ),
);

function f2_add_admin()
{
   global $themename, $shortname, $options;
   if( $_GET['page'] == basename(__FILE__) ) {
      if(__('Save changes', 'f2') == $_REQUEST['action']) {
         foreach($options as $key => $option) {
            
            $id = $shortname.'_'.$key;
            
            if($option['type'] == 'checkbox')
               $value = $_REQUEST[$id]?'on':'off';
            else
               $value = isset($_REQUEST[$id])?stripslashes($_REQUEST[$id]):$option['default'];
            
            update_option($id, $value);
            
         }
         header("Location: themes.php?page=functions.php&saved=true");
         die;
      }
      else if(__('Reset to defaults', 'f2') == $_REQUEST['action']) {
         foreach($options as $key => $value)
            delete_option($shortname.'_'.$key);
         header("Location: themes.php?page=functions.php&reset=true");
         die;
      }
      
   }
    add_theme_page($themename.' '.__('Settings', 'f2'), $themename.' '.__('Settings', 'f2'), 'edit_themes', basename(__FILE__), 'f2_admin');

}

function f2_admin() {
   global $themename, $shortname, $version, $options;
    $options = $options;   

    if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.__('Settings saved', 'f2').'</strong></p></div>';
    if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.__('Settings reset', 'f2').'</strong></p></div>';

?>
<div class="wrap">
<h2><?php echo $themename.' '; _e('Settings', 'f2'); ?></h2>
<div id="poststuff" class="metabox-holder">
<div class="stuffbox">
<div class="inside">
<table><tr>
<td style="width:60%;vertical-align:top;">
<p><strong><?php echo $themename; ?> WordPress theme</strong> <?php _e('version', 'f2'); ?> <strong><?php echo $version; ?></strong>. <?php printf(__('Visit <a href="%s">theme page</a>', 'f2'), 'http://srinig.com/wordpress/themes/f2/'); ?>. <?php printf(__('View <a href="%s">readme</a>', 'f2'), get_bloginfo('template_url').'/readme.html'); ?>.</p>
<p>
<a href="#f2_header"><?php _e('Header Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_sidebar"><?php _e('Sidebar Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_posts"><?php _e('Posts Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_footer"><?php _e('Footer Settings', 'f2'); ?></a>&nbsp;|
<a href="#f2_general"><?php _e('General Settings', 'f2'); ?></a>
</p>
</td>
<td style="width:30%;vertical-align:top;">
<div style="max-width:240px;float:right;">
<p><?php _e('If you enjoy the theme, you can make a donation and support development. Thank you!', 'f2'); ?></p>
<div style="text-align:center;"><form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="7622318">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form></div>
</div>
</td>
</tr></table>
</div>
</div>
<form method="post">
<?php
   
   foreach($options as $key => $option) {

      $id = $shortname.'_'.$key;

      $value = get_option($id, $option['default']);
      
      switch ($option['type'] ) {
         case "section": { ?>
<div class="stuffbox">
<h3 id="<?php echo $shortname.'_'.$key; ?>"><?php echo $option['name']; ?></h3>
<div class="inside">
<table class="form-table">
<?php break; }
         case "section_close": { ?>
</table>
</div>
</div>
<?php break; }
         case 'text': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <input type="text" class="<?php echo $option['class']; ?>"" name="<?php echo $id; ?>" id="<?php echo $id; ?>" value="<?php echo $value; ?>"<?php if($option['class'] == 'colorinput') echo ' size="7"'; elseif($option['class'] == 'pixels') echo ' size="3"'; elseif($option['class'] == 'url') echo ' size="60"'; ?> />
      <?php if($option['class'] == 'pixels') echo "<span style='font-size:12px;'>px</span>"; ?>
      <?php if($option['class'] == 'colorinput') { ?>
      <a class="colorclose" style="cursor:pointer;"><?php _e('Close colorpicker', 'f2'); ?></a>
      <div id="colorpicker-<?php echo $key; ?>" class="colorpicker"></div>
      <?php } if($option['desc']) {
         if ($option['class'] == 'url')
            echo "<br />";
         echo "<span class='description' style='font-size:10px'>".$option['desc']."</span>";
      } ?>
      
   </td>
</tr>
<?php break; }
         case 'checkbox': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <input type="checkbox" class="<?php echo $option['class']; ?>" name="<?php echo $id; ?>" id="<?php echo $id; ?>"<?php if($value == 'on') echo ' checked="checked"'; ?> />
      <?php if($option['desc']) echo "<span class='description' style='font-size:10px'>".$option['desc']."</span>"; ?>
   </td>
</tr>
<?php break; }
         case 'select': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <select class="<?php echo $option['class']; ?>" name="<?php echo $id; ?>" id="<?php echo $id; ?>">
      <?php foreach ($option['options'] as $sel_opts) {
         echo '<option value="'.$sel_opts[0].'"';
         if($value == $sel_opts[0])
            echo ' selected="selected"';
         echo '>'.$sel_opts[1].'</option>';
      } ?>
      </select>
      <?php if($option['desc']) echo "<span class='description' style='font-size:10px'>".$option['desc']."</span>"; ?>
   </td>
</tr>
<?php break; }
         case 'textarea': { ?>
<tr<?php if($option['th_class']) echo ' class="'.$option['th_class'].'"'; ?>>
   <th scope="row"><label for="<?php echo $id; ?>"><?php echo $option['name']; ?></label></th>
   <td>
      <textarea class="<?php echo $option['class']; ?>" name="<?php echo $id; ?>" id="<?php echo $id; ?>" style="width:100%; height:6em;"><?php echo $value; ?></textarea>
      <?php if($option['desc']) echo "<br /><span class='description' style='font-size:10px'>".$option['desc']."</span>"; ?>
   </td>
</tr>
<?php break; }
      }
   }
?>
<input name="action" value="<?php _e('Save changes', 'f2'); ?>" class="button-primary" type="submit">
<input name="action" value="<?php _e('Reset to defaults', 'f2'); ?>" class="button" type="submit">
</form>
</div>
</div>
<?php
}

add_action('admin_menu', 'f2_add_admin');



function f2_head()
{
   global $shortname, $options;
   
   foreach($options as $key => $option)
      $$key = get_option($shortname.'_'.$key, $option['default']);

   if($header_img == 'on') {
      $style['#header']['background-image'] = "url('{$header_img_url}')";
      if($header_img_repeat == 'off')
         $style['#header']['background-repeat'] = "no-repeat";
   }
   if($header_bg_color && $header_bg_color != '#')
      $style['#header']['background-color'] = $header_bg_color;
   if($header_textlogo == 'off')
      $style['#headerlogo']['visibility'] = 'hidden';
   if($header_height && $header_height != 90)
      $style['#header']['height'] = $header_height.'px';
   if($hmenu == 'off')
      $style['#hmenu']['display'] = 'none';
   if($hmenu_rss == 'off')
      $style['#hmenu li.hmenu_rss']['display'] = 'none';
   if($header_title_color && $header_title_color != '#')
      $style['#headerlogo h1 a']['color'] = $header_title_color;
   if($header_desc_color && $header_desc_color != '#')
      $style['#headerlogo div.description']['color'] = $header_desc_color;
   if($sidebar_r == 'off') {
      $style['#container']['padding-right'] = 0;
      $style['#wrapper']['border-right'] = 0;
      $style['#wrapper']['margin-right'] = 0;
   }
   else if($sidebar_r_width) {
      $style['#container']['padding-right'] = ($sidebar_r_width + 40).'px';
      $style['#wrapper']['border-right-width'] = ($sidebar_r_width + 40).'px';
      $style['#wrapper']['margin-right'] = '-'.($sidebar_r_width + 40).'px';
      $style['#sidebar_right'] = array (
         'width' => $sidebar_r_width.'px',
         'margin-right' => '-'.($sidebar_r_width + 40).'px',
      );
   }   
   if($sidebar_l == 'off') {
      $style['#container']['padding-left'] = 0;
      $style['#wrapper']['border-left'] = 0;
      $style['#wrapper']['margin-left'] = 0;
   }
   else if($sidebar_l_width) {
      $style['#container']['padding-left'] = ($sidebar_l_width + 40).'px';
      $style['#wrapper']['border-left-width'] = ($sidebar_l_width + 40).'px';
      $style['#wrapper']['margin-left'] = '-'.($sidebar_l_width + 40).'px';
      $style['#sidebar_left'] = array (
         'width' => $sidebar_l_width.'px',
         'margin-left' => '-'.($sidebar_l_width + 40).'px',
      );
   }   
   if($sidebar_r_fontsize)
      $style['#sidebar_right']['font-size'] = $sidebar_r_fontsize;
   if($sidebar_l_fontsize)
      $style['#sidebar_left']['font-size'] = $sidebar_l_fontsize;
   if($content_fontsize) {
      $style['.postentry p']['font-size'] = $content_fontsize;
      $style['.postentry ul']['font-size'] = $content_fontsize;
      $style['.postentry ol']['font-size'] = $content_fontsize;
   }   
   if($style) {
      echo "\n<!-- Fluid Blue customized styles generated by functions.php -->\n";
      echo "<style type=\"text/css\">\n";
      foreach($style as $selector => $properties) {
         echo $selector." {\n";
         foreach ($properties as $property => $value)
            echo "\t{$property}: {$value};\n";
         echo "}\n";
      }
      echo "</style>\n";
   }
   if($rounded_corners == 'on')
      echo '<link rel="stylesheet" href="'. get_bloginfo('template_url') . '/rounded-corners.css" type="text/css" media="screen" />'."\n";
   if(is_file(get_template_directory().'/custom.css'))
      echo '<link rel="stylesheet" href="'. get_bloginfo('template_url') . '/custom.css" type="text/css" media="screen" />'."\n";
}

add_action('wp_head', 'f2_head');


function f2_admin_head()
{
   if( $_GET['page'] == basename(__FILE__) ) {
   $template_url = get_bloginfo('template_url');
?>
<script type="text/javascript" src="<?php echo get_bloginfo('template_url'); ?>/farbtastic/farbtastic.js"></script>
<link rel="stylesheet" href="<?php echo get_bloginfo('template_url'); ?>/farbtastic/farbtastic.css" type="text/css" />

<style type="text/css">
.colorpicker { display:none; }
.colorclose { display:none; }
</style>
<?php
}
}

add_action('admin_head', 'f2_admin_head');

function f2_admin_footer()
{
   if( $_GET['page'] == basename(__FILE__) ) {
?>
<script type="text/javascript">
   jQuery(document).ready(function() {
   if(!jQuery('#f2_sidebar_l').is(':checked'))
      jQuery('.sidebar_l_dependent').hide();
   jQuery('#f2_sidebar_l').change(function() {
      if(jQuery('#f2_sidebar_l').is(':checked'))
         jQuery('.sidebar_l_dependent').show();
      else
         jQuery('.sidebar_l_dependent').hide();
   });
   if(!jQuery('#f2_sidebar_r').is(':checked'))
      jQuery('.sidebar_r_dependent').hide();
   jQuery('#f2_sidebar_r').change(function() {
      if(jQuery('#f2_sidebar_r').is(':checked'))
         jQuery('.sidebar_r_dependent').show();
      else
         jQuery('.sidebar_r_dependent').hide();
   });
   if(!jQuery('#f2_header_img').is(':checked'))
      jQuery('.header_img_dependent').hide();
   jQuery('#f2_header_img').change(function() {
      if(jQuery('#f2_header_img').is(':checked'))
         jQuery('.header_img_dependent').show();
      else
         jQuery('.header_img_dependent').hide();
   });
   if(!jQuery('#f2_hmenu').is(':checked'))
      jQuery('.hmenu_dependent').hide();
   jQuery('#f2_hmenu').change(function() {
      if(jQuery('#f2_hmenu').is(':checked'))
         jQuery('.hmenu_dependent').show();
      else
         jQuery('.hmenu_dependent').hide();
   });
   jQuery('#colorpicker-header_bg_color').farbtastic('#f2_header_bg_color');
   jQuery('#colorpicker-header_title_color').farbtastic('#f2_header_title_color');
   jQuery('#colorpicker-header_desc_color').farbtastic('#f2_header_desc_color');
   jQuery('.colorinput').focus(function() {
      if(jQuery(this).val() == '') jQuery(this).val('#');
      jQuery(this).next('.colorclose').show();
      jQuery(this).next('.colorclose').next('div.colorpicker').slideDown();
   });      
   jQuery('.colorclose').click(function() {
      jQuery(this).next('.colorpicker').slideUp();
      jQuery(this).hide();
   });
  });
</script>
<?php
   }
}

add_action('admin_footer', 'f2_admin_footer');


function f2_option($option)
{
   global $shortname, $options;
   return get_option($shortname.'_'.$option, $options[$option]['default']);
}

?>
function get_tag_name ($tag) { return $tag->name; }

class WP_Widget_Context_Banner extends WP_Widget {
   
   function WP_Widget_Context_Banner() {
      $widget_ops = array('classname' => 'widget_context_banner',
                     'description' => 'Shows banners, if the selected context is specified keywords. Use the following format for Banners field: KEYWORD|IMG_SRC|A_HREF. Separate lines with a semicolon.');
      $this->WP_Widget('context-banner', 'Context Banner', $widget_ops);
   }
   
   function widget( $args, $instance ) {
      extract($args);
   
      $title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
      //$banners = apply_filters( 'yacc_context_banner', $instance['banners'], $instance );
      $context = empty( $instance['context'] ) ? 'post_title' : $instance['context'];
      $ads = empty( $instance['ads'] ) ? array() : $instance['ads'];
       
      echo $before_widget;
      if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
         <div class="textwidget"><?php
         if(is_singular()){
            global $post;
            if( $post ){
               foreach( array_keys($ads) as $keyword ) {
                  if($keyword) {
                     if( ( $context == 'post_title' && ( stripos( get_the_title(), $keyword ) !== false ) )
                        || ( $context == 'post_content' && ( stripos( strip_tags( get_the_content() ), $keyword ) !== false ) )
                        || ( $context == 'post_categories' && in_array( $keyword, array_map( "get_cat_name", wp_get_post_categories( get_the_id() ) ) ) )
                        || ( $context == 'post_tags' && in_array( $keyword, array_map( "get_tag_name", wp_get_post_tags( get_the_id() ) ) ) )
                     ) {
                        echo $ads[$keyword];
                     }
                  }
               }
            }
         } ?>
         </div>
      <?php
      echo $after_widget;
   }
   
   function update( $new_instance, $old_instance ) {
      $instance = $old_instance;
      $instance['title'] = $new_instance['title'];
      if ( current_user_can('unfiltered_html') ){
         $instance['banners'] =  $new_instance['banners'];
      }       
      if ( in_array( $new_instance['context'], array( 'post_title', 'post_content', 'post_categories', 'post_tags' ) ) ) {
         $instance['context'] = $new_instance['context'];
      } else {
         $instance['context'] = 'post_title';
      }       
      $lines = explode(';', $instance['banners']);
      $ads = array();
      foreach ($lines as $line) {
         $raw = explode('|', $line);
         $keyword = trim($raw[0]);
         $ads[$keyword] = '<a href="'.trim($raw[2]).'"/><img src="'.trim($raw[1]).'"/></a>';
      }
      $instance['ads'] = $ads;
      return $instance;
   }

   function form( $instance ) {
      $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'banners' => '', 'context' => 'post_title' ) );
      $title = strip_tags($instance['title']);
      $banners = format_to_edit($instance['banners']); ?>
      <p>
         <span style="color:red;"><?php echo $this->id; ?></span>
      </p>
      <p>
         <label for="<?php echo $this->get_field_id('title'); ?>"><strong><abbr title="Widget title.">Title</abbr></strong></label>
         <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
      </p>   
      <p>
         <label for="<?php echo $this->get_field_id('context'); ?>"><strong><abbr title="Where to search KEYWORD.">Context</abbr> </strong></label>
         <select class="widefat" name="<?php echo $this->get_field_name('context'); ?>" id="<?php echo $this->get_field_id('context'); ?>">
            <option value="post_title"<?php selected( $instance['context'], 'post_title' ); ?>>Post title</option>
            <option value="post_content"<?php selected( $instance['context'], 'post_content' ); ?>>Post content</option>
            <option value="post_categories"<?php selected( $instance['context'], 'post_categories' ); ?>>Post categories</option>
            <option value="post_tags"<?php selected( $instance['context'], 'post_tags' ); ?>>Post tags</option>
         </select>
      </p>
      <p style="clear: both;">
         <label for="<?php echo $this->get_field_id('banners'); ?>"><strong><abbr title="KEYWORD|IMG_SRC|A_HREF;">Banners</abbr></strong></label>
         <textarea class="widefat" rows="10" cols="20" id="<?php echo $this->get_field_id('banners'); ?>" name="<?php echo $this->get_field_name('banners'); ?>"><?php echo $banners; ?></textarea>
      </p><?php       
   }
}

add_action('widgets_init', create_function('', 'return register_widget("WP_Widget_Context_Banner");'));
цитата
09/03/11 в 18:53
 Ado.Blogs
599 строка удалить(она содержит ?> ), в конце написать ?>

icon_wink.gif

все что дает автор, пишите в пределах <?php ?>, т.к. это php код icon_wink.gif
цитата
09/03/11 в 19:28
 Lenskiy
Ado.Blogs: Спасибо за помощь.Все заработало! smail54.gif smail54.gif smail54.gif

цитата
09/03/11 в 21:50
 Lenskiy
Yacc: Напршивается ограничение на количество одновременно отображаемых баннеров.
Для любителей бусиков, можно еще сделать возможность закрывать ссылки в ноуфолоу или открывать новой вкладке.
цитата
10/03/11 в 09:38
 ibiz
можно ли как-то без редактирования другого плагина, убрать текст который выдает этот другой плагин, к примеру WP Super Cache выдает текст внизу страницы
Цитата:

<!-- Dynamic page generated in 0.292 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2011-03-10 09:38:11 -->


я редактировал в самом плагине эти строки, но обновление все мои старания убило
цитата
19/03/11 в 11:03
 ibiz
up icon_smile.gif
такая отличная тема и умерла((

может кто подскажет, есть ли плагин для авторизации через соц-сети, типа loginza.ru?
цитата
21/03/11 в 11:23
 Rockman
Нифига тема не умерла icon_wink.gif


Задача такая.
Есть категория, в постах которой необходимо добавить строку метатега.
В остальных категориях она не нужна.
Отдельных темплейтов для категорий нету в WP. Как быть.

Спасибо.
цитата
21/03/11 в 11:55
 Yacc
Что такое "строка метатега"? И куда именно её нужно добавить?
цитата
21/03/11 в 12:06
 Rockman
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
добавить туда же, где и все метатеги. В хеадере.
Просто в категории посты из RSS, все они в индексе. Мне нужно отделить эти некачественные для гугла посты от новых, свежих, рукописных.
цитата
21/03/11 в 12:28
 Yacc
Код:
<head>
...
<?php if( is_single() && in_category( 'Категория' ) ) ?>
   <meta name="robots" content="noindex, nofollow"/>
...
</head>
цитата
25/03/11 в 11:43
 amnet
Seo глазамаи девелопера , tips & tricks smail54.gif smail54.gif smail54.gif . Жесть icon_biggrin.gif
цитата
06/04/11 в 19:56
 photomuza
Что нужно сделать, чтоб посты (анонсы т.е.) на индексе, поиске, категориях и пр. отражались не сверху вниз с отбивкой строки, а ОДНОЙ строкой. Это чтоб делать анонсы соотв. ширины и они укладывались в строке по 2 или 3 по желанию. Пример - http://www.nudespuri.com/
цитата
06/04/11 в 20:39
 Yacc
Насколько я понял тебе нужно посты организовать в блоки по 2/3, вроде как в таблице. Вариантов сделать это масса.
Вот один, не самый оригинальный, но простой и эффективный:

Код:

<style>
.one, .two, .three {
   width: 30%;
   float: left;
   margin-right: 1%;
}
.one {
   clear: left;
}
</style>

<?php
   $class = array( 'one', 'two', 'three' );
   $l = count( $class );
   query_posts();
   if( have_posts() ) {
      while( have_posts() ) {
         the_post();         
         echo '<div class="' . $class[$i++ % $l] . '">';
         the_title();
         the_excerpt();
         echo '</div>';
      }
   }
?>
цитата
06/04/11 в 20:41
 stinger
Yacc: а подскажи, пожалуйста, как удалить "Revisions" которые появляются при добавлении и редактировании поста? что то я не пойму как это сделать... icon_mad.gif
цитата
06/04/11 в 22:06
 stinger
Спасибо огромное, т.к. бесило, пиздец просто! smail54.gif smail54.gif smail54.gif
цитата
06/04/11 в 23:57
 photomuza
Yacc: Спасибо, но не вышло, может руки кривые icon_sad.gif Вставил стили в ЦСС, код РНР в начало index.php темы, плюется на query_posts():

Цитата:
Warning: Missing argument 1 for query_posts(), called in /мой_сервер/WP/тема_блога/index.php on line 8 and defined in /мой_сервер/WP/wp-includes/query.php on line 90

Потом понял твою логику, всунул код вместо отбивки </div> - все равно плюется, но перед этим зациклился на пару минут.

Но по-моему там гораздо проще, ключевая фраза в моем посте ОДНОЙ СТРОКОЙ, в том примере что дал, как раз так и выдается, без отбивки и счета, по 2 штуки укладываются просто из-за размеров тумб icon_smile.gif т.е. сколько вмещается в отведенное место. Вот я скопировал код оттуда с тумбами и выложил без ЦСС, смотри сам, все одной строкой - http://photomuza-fx.narod.ru/all-in-one-row.htm
А вот тот же файл, но картинки уменьшены - http://photomuza-fx.narod.ru/all-in-one-row2.htm
Вот с егойным ЦСС-м, все равно в адын ряд icon_smile.gif - http://photomuza-fx.narod.ru/all-in-one-row3.htm
цитата
07/04/11 в 00:23
 Yacc
Будет проще, если ты выложишь весь код, который ты пытаешься изменить.
А так это гадание на кофейной гуще.

По тем ссылкам что ты дал посты завёрнуты в див с float:left. Поэтому они "в строчку".
цитата
07/04/11 в 02:13
 photomuza
Всё, разобрался, спасибо за наводку! smail54.gif Просто забыл, что стиль можно и в странице прописать, да и про float: left я плохо понимал, теперь запомню icon_smile.gif Тут кому надо, можно кое-что из более применимых подглядывать - Типы верстки – табличная и на div-ах
На той странице "укладку" в одну строку делает
Код:
<div  style="float: left; padding-left: 10px; padding-bottom: 10px;" width="180" align="center">
                         ............ЗДЕСЬ ТЕЛО ПОСТА (АНОНСА)..................
    </div>

Это надо втиснуть в index.php или куда надо чтоб укладывалось.
цитата
12/04/11 в 01:07
 photomuza
Задачка: как вставить в сайдбар РНР код (конкретно include)? Без доработок могу вставить либо в начало, либо в конец. Еще кстати, где-то вычитал, что можно делать чтоб только на главной была вставка:
Код:
<?php if(is_home()){include 'вставляемый_файл';}?>

А вот чтобы вставить в середину бара, очевидно нужно виждет создавать, по другому не получится. Поэтому - как создать свой виджет?
цитата
12/04/11 в 02:07
 Yacc
Код:
class WP_Widget_Include extends WP_Widget {
   function WP_Widget_Include() {
      $widget_ops = array( 'classname' => 'widget_include', 'description' => 'Include file.' );
      $this->WP_Widget( 'include', 'Widget Include', $widget_ops );
   }
   function widget( $args, $instance ) {
      extract( $args );
      echo $before_widget;
      $file = !isset( $instance['file'] ) ? '' : apply_filters( 'widget_include', $instance['file'] );
      $title = !isset( $instance['title'] ) ? '' : apply_filters( 'widget_include', $instance['title'] );
      if ( !empty( $title ) && $title !== '' ) echo $before_title . $title . $after_title;
      if ( !empty( $file ) && $file !== '' ) include $file;
      echo $after_widget;
   }
   function update( $new_instance, $old_instance ) {
      $instance = $old_instance;
      $instance['file'] = strip_tags($new_instance['file']);
      $instance['title'] = strip_tags($new_instance['title']);
      return $instance;
   }
   function form( $instance ) {
      $instance = wp_parse_args( (array) $instance, array( 'file' => '', 'title' => '' ) );
      $file = strip_tags( $instance['file'] );
      $title = strip_tags( $instance['title'] ); ?>
      <p>
         <label for="<?php echo $this->get_field_id('title'); ?>">Title:
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
         </label>
      </p>
      <p>
         <label for="<?php echo $this->get_field_id('file'); ?>">File:
            <input class="widefat" id="<?php echo $this->get_field_id('file'); ?>" name="<?php echo $this->get_field_name('file'); ?>" type="text" value="<?php echo esc_attr( $file ); ?>" />
         </label>
      </p><?php
   }
}


Добавить в конец functions.php

В виджете два поля:
Title - заголовок виджета. Оставь пустым, если не нужно;
File - полный путь до файла.
Стр. « первая   <  2, 3, 4, 5, 6  >  последняя »


Эта страница в полной версии