Forum Replies Created

Viewing 14 replies - 1 through 14 (of 14 total)
  • Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    I see you updated. The update now creates a redirect loop on any pages that edit posts.

    I have this same issue. I get a 404 if I turn that on for New Posts and Editing.

    I know the author wishes us to donate and I might throw him some $$ if he’ll fix the plugin.

    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Finally nailed it! I incorrectly added some PHP block.

    One last problem that I can probably figure out. The output is for the next post. So the first post’s output is appearing on the second post…and so on. I can’t tell if it doesn’t appear to be a CSS issue as its the same under the page source.

    Thanks again for all your help.

    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    I think I’m right there. I’m just getting an “Unexpected T String Error” when getting here.

    Here is the error:

    Parse error: syntax error, unexpected T_STRING in /home4/philahoo/public_html/wp-content/plugins/premium-featured-posts-slider/featured-posts-slider.php on line 727

    Here is what I have in there that is causing it. I don’t know why I’d get that error:

    foreach($featured_posts as $featured) {
          $pagination .= '<li><a href="">' . get_the_post_thumbnail($featured->ID, 'FPS pagination thumbnail', array('class' => 'fps-thumbnail-mini')) . '</a><p><?php $small = get_post_meta($post->ID, 'small', true);
    echo $small;?></p></li>';

    Thanks again for all your help.

    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Thanks. I tried both and still get nothing. Just blank space.

    Do I have to add something else?

    Sorry, I feel like an idiot that I can’t figure this out. I’ve never struggled with something so simple before.

    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Sorry. I attached the full code for the slider above.

    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Still won’t work. The custom field plugin I am using has this to say.

    To use values from these fields in your theme, you can use usual post meta functions such as:

    get_post_meta()
    get_post_custom()

    Let’s give you some examples. For example we create 3 custom fields for the Page with such slugs: price (Input Text), features (Checkboxes/multiple), slide_images (Upload Media / image). To get values in templates you need to call such lines of code inside the loop functions:

    $price = get_post_meta($post->ID, 'price', true);   // we get value for input text
    $images = get_post_meta($post->ID, 'slide_images', true);  // we get array of images
    $features = get_post_meta($post->ID, 'features', true);    // we get array of checked checkboxes

    Now when you have variables with data you can print them in the template. For example like this:

    <p>Price: <?php echo $price; ?></p>
    <p>Features: <?php foreach($features as $feature) echo $feature.','; ?></p>
    <p>Images:</p>
    <?php if(!empty($images)) foreach($images as $img) : ?>
    	<div class="image"><img src="<?php echo $img['image']; ?>" alt="<?php echo esc_attr($img['title']); ?>" /></div>
    <?php endforeach; ?>
    <?php
    
    class wf_fps {
      public static $do_footer = false;
    
      public function init() {
        if (is_admin() && current_user_can('switch_themes')) {
          // add FPS menu to admin apperance(theme) menu group
          add_action('admin_menu', array('wf_fps', 'admin_menu'));
    
          // settings registration
          add_action('admin_init', array('wf_fps', 'register_settings'));
    
          // if the plugin was installed/reinstalled/broken set settings to default
          self::default_settings(false);
    
          // aditional link in plugin description
          add_action('plugin_action_links_' . basename(dirname(__FILE__)) . '/' . basename(__FILE__), array('wf_fps', 'plugin_action_links'));
          add_filter('plugin_row_meta', array(__CLASS__, 'plugin_meta_links'), 10, 2);
    
          // inject JS code in header for AJAX
          add_action('admin_head', array('wf_fps', 'admin_head'));
    
          // register AJAX endpoints
          add_action('wp_ajax_fps_post_featured', array('wf_fps', 'ajax_callback_post_featured'));
          add_action('wp_ajax_fps_copy_layout', array('wf_fps', 'ajax_callback_copy_layout'));
    
          // add custom column "featured"
          add_filter('manage_posts_columns', array('wf_fps', 'add_featured_column'));
          add_filter('manage_pages_columns', array('wf_fps', 'add_featured_column'));
          add_action('manage_posts_custom_column', array('wf_fps', 'manage_featured_column'), 10, 2);
          add_action('manage_pages_custom_column', array('wf_fps', 'manage_featured_column'), 10, 2);
    
          // enable users to mark a post featured while writing it
          add_action('add_meta_boxes', array('wf_fps', 'add_custom_box'));
          add_action('save_post', array('wf_fps', 'save_postdata'));
        } elseif (!is_admin()) {
          // use footer to inject FPS JS/CSS when needed
          add_action('wp_footer', array('wf_fps', 'wp_footer'));
        }
    
        // add shortcode support for sidebar text widget
        if (has_filter('widget_text', 'do_shortcode') === false) {
          add_filter('widget_text', 'do_shortcode');
        }
    
        $options = get_option('wf_fps');
    
        // add additional image size for slider
        if ($options['additional-height'] && $options['additional-width']) {
          add_image_size('FPS thumbnail', $options['additional-width'], $options['additional-height'], $options['additional-crop']);
        }
        if ($options['thumbnail-height'] && $options['thumbnail-width']) {
          add_image_size('FPS pagination thumbnail', $options['thumbnail-width'], $options['thumbnail-height'], true);
        }
    
        // add shortcode
        global $shortcode_tags;
        $shortcode = $options['shortcode'];
        if (isset($shortcode_tags[$shortcode])) {
          add_action('admin_footer', array('wf_fps', 'warning'));
        } else {
          add_shortcode($shortcode, array('wf_fps', 'shortcode'));
        }
      } // init
    
      // add thumbnail support for theme
      function add_thumb_support() {
        add_theme_support('post-thumbnails');
      } // add_thumb_support
    
      // add links to plugin's description in plugins table
      function plugin_meta_links($links, $file) {
         $documentation_link = '<a target="_blank" href="' . plugin_dir_url(__FILE__) . 'documentation/" title="View Premium Featured Posts Slider documentation">Documentation</a>';
        $support_link = '<a target="_blank" href="http://codecanyon.net/user/WebFactory#from" title="Contact Web factory">Support</a>';
    
        if ($file == plugin_basename(__FILE__)) {
          $links[] = $documentation_link;
          $links[] = $support_link;
        }
    
        return $links;
      } // plugin_meta_links
    
      // add settings link to plugins page
      function plugin_action_links($links) {
        $settings_link = '<a href="themes.php?page=wf-fps" title="Featured Posts Slider Settings">Settings</a>';
        array_unshift($links, $settings_link);
    
        return $links;
      } // plugin_action_links
    
      // create the admin menu item
      function admin_menu() {
        add_theme_page('Premium Featured Posts Slider', 'Premium Featured Posts Slider', 'manage_options', 'wf-fps', array('wf_fps', 'options_page'));
      } // admin_menu
    
      // all settings are saved in one option
      function register_settings() {
        register_setting('wf_fps', 'wf_fps', array('wf_fps', 'sanitize_settings'));
      } // register_settings
    
      // set default settings
      function default_settings($force = false) {
        $defaults['width'] = '600px';
        $defaults['source'] = 'post';
        $defaults['limit'] = 5;
        $defaults['thumbnail'] = 'medium';
        $defaults['layout'] = 'layout-2';
        $defaults['custom-layout'] = '';
        $defaults['prev-next'] = 1;
        $defaults['pagination'] = 1;
        $defaults['autoplay'] = 5000;
        $defaults['effect'] = 'slide';
        $defaults['effect-speed'] = 350;
        $defaults['hover-pause'] = 1;
        $defaults['randomize'] = 0;
        $defaults['include-css'] = 1;
        $defaults['include-jquery'] = 0;
        $defaults['include-slides'] = 1;
        $defaults['shortcode'] = 'fps';
        $defaults['additional-width'] = 330;
        $defaults['additional-height'] = 330;
        $defaults['additional-crop'] = 1;
        $defaults['conditional'] = '';
        $defaults['thumbnail-width'] = 50;
        $defaults['thumbnail-height'] = 50;
    
        $options = get_option('wf_fps');
    
        if ($force || !$options || !$options['source']) {
          update_option('wf_fps', $defaults);
        }
      } // default_settings
    
      // add custom boxes to all post types
      function add_custom_box() {
        add_meta_box('featured', 'Featured Posts Slider <i>per-post</i> options', array('wf_fps', 'inner_custom_box'), 'post', 'normal', 'high');
        add_meta_box('featured', 'Featured Posts Slider <i>per-post</i> options', array('wf_fps', 'inner_custom_box'), 'page', 'normal', 'high');
    
        // add box to custom post types
        $post_types = get_post_types(array('public' => true, '_builtin' => false), 'object', 'and');
        if ($post_types) {
          foreach ($post_types  as $post_type ) {
            add_meta_box('featured', 'Featured Posts Slider <i>per-post</i> options', array('wf_fps', 'inner_custom_box'), $post_type->query_var, 'normal', 'high');
          }
        }
      } // add_custom_box
    
      // custom box for post/page edit
      function inner_custom_box() {
        global $post;
    
        $layouts[] = array('val' => '',         'label' => 'Default layout defined in global FPS options');
        $layouts[] = array('val' => 'layout-1', 'label' => 'Layout 1 - Large image with title on image bottom');
        $layouts[] = array('val' => 'layout-2', 'label' => 'Layout 2 - Thumbnail with content on right');
        $layouts[] = array('val' => 'layout-3', 'label' => 'Layout 3 - Medium image with content on right');
        $layouts[] = array('val' => 'layout-4', 'label' => 'Layout 4 - Large image with title above image ');
        $layouts[] = array('val' => 'layout-5', 'label' => 'Layout 5 - Thumbnail with content on left');
        $layouts[] = array('val' => 'layout-6', 'label' => 'Layout 6 - Medium image with content on left');
        $layouts[] = array('val' => 'custom',   'label' => 'Custom layout');
    
        $featured = get_post_meta($post->ID, '_fps_featured', true);
        $thumbnail = get_post_meta($post->ID, '_fps_thumbnail', true);
        $layout = get_post_meta($post->ID, '_fps_layout', true);
        wp_nonce_field(plugin_basename(__FILE__), 'featured_noncename');
    
        echo '<p><label class="fps-label" for="fps_featured">Featured:</label> <select name="fps_featured" id="fps_featured">';
        echo '<option' . ((!$featured)? ' selected="selected"':'') . ' value="0">No, this post is not featured&nbsp;</option>';
        echo '<option' . (($featured)? ' selected="selected"':'') . ' value="1">Yes, this post is featured</option>';
        echo '</select><br /><br />';
    
        echo '<label class="fps-label" for="fps_layout">Layout:</label> <select name="fps_layout" id="fps_layout">';
          self::create_select_options($layouts, $layout);
        echo '</select><br /><br />';
    
        global $_wp_additional_image_sizes;
        $sizes[] = array('val'=> '', 'label' => 'Default thumbnail size defined in global FPS options');
        $sizes[] = array('val'=> 'thumbnail', 'label' => 'Thumbnail, ' . get_option('thumbnail_size_w') . 'x' . get_option('thumbnail_size_h') . (get_option('thumbnail_crop')? ', cropped':''));
        $sizes[] = array('val'=> 'medium', 'label' => 'Medium, ' . get_option('medium_size_w') . 'x' . get_option('medium_size_h'));
        $sizes[] = array('val'=> 'large', 'label' => 'Large, ' . get_option('large_size_w') . 'x' . get_option('large_size_h'));
        if ($_wp_additional_image_sizes) {
          foreach ($_wp_additional_image_sizes as $tmp => $tmp2) {
            $sizes[] = array('val'=> $tmp, 'label' => $tmp . ', ' . $tmp2['width'] . 'x' . $tmp2['height'] . ($tmp2['crop']? ', cropped':''));
          }
        }
        echo '<label class="fps-label" for="fps_thumbnail">Thumbnail:</label> <select name="fps_thumbnail" id="fps_thumbnail">';
          self::create_select_options($sizes, $thumbnail);
        echo '</select></p>';
    
        echo '<p><br /><a href="themes.php?page=wf-fps" title="Configure global FPS options">Configure global FPS options</a></p>';
      } // inner_custom_box
    
      // save fetured box data
      function save_postdata($post_id) {
        if (!wp_verify_nonce($_POST['featured_noncename'], plugin_basename(__FILE__)) || (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)) {
          return $post_id;
        }
    
        update_post_meta($post_id, '_fps_featured', $_POST['fps_featured']);
        update_post_meta($post_id, '_fps_layout', $_POST['fps_layout']);
        update_post_meta($post_id, '_fps_thumbnail', $_POST['fps_thumbnail']);
    
        return $post_id;
      } // save_postdata
    
      // mark post as fetured/unfeatured
      function ajax_callback_post_featured() {
        $post_id = (int) $_POST['post_id'];
        $state = (isset($_POST['state']) && !empty($_POST['state']))? 1: 0;
        update_post_meta($post_id, '_fps_featured', $state);
    
        die('1');
      } // ajax_callback_post_featured
    
      // mark post as fetured/unfeatured
      function ajax_callback_copy_layout() {
        require('slider-layout-templates.php');
    
        if (isset($layouts[$_POST['layout']])) {
          $template = $layouts[$_POST['layout']];
        } else {
          $template = '';
        }
    
        echo json_encode($template);
        die();
      } // ajax_callback_post_featured
    
      // featured column for all posts/pages/custom post types
      function add_featured_column($cols) {
        $cols['fps_featured'] = 'Featured';
    
        return $cols;
      } // add_featured_column
    
      // featured column content
      function manage_featured_column($column_name, $post_id) {
        if ($column_name == 'fps_featured') {
          echo '<input onchange="javascript: fps_featured_change(this, ' . $post_id . ');" ';
          echo 'type="checkbox" class="fps_featured" id="fps_featured_' . $post_id . '" value="1" ';
          echo checked('1', get_post_meta($post_id, '_fps_featured', true), false)  . ' />';
         }
    
      return;
      } // manage_featured_column
    
      // admin JS/CSS
      function admin_head() {
        if (strpos($_SERVER['REQUEST_URI'], 'wf-fps') === false
            && strpos($_SERVER['REQUEST_URI'], 'edit.php') === false
            && strpos($_SERVER['REQUEST_URI'], 'post.php') === false
            ) {
          return;
        }
        ?>
        <script type="text/javascript">
        function fps_featured_change(checkbox, post_id) {
          var data = {action: 'fps_post_featured',
                      state: jQuery(checkbox).attr('checked'),
                      post_id: post_id};
    
          jQuery(checkbox).attr('disabled', 'disabled');
          jQuery.post(ajaxurl, data, function(response) { jQuery(checkbox).removeAttr('disabled'); });
    
          return false;
        }
    
        function fps_copy_layout() {
          var data = {action: 'fps_copy_layout',
                      layout: jQuery('#layouts-sel').val()};
    
          jQuery('#custom-layout').attr('disabled', 'disabled');
          jQuery.post(ajaxurl, data, function(response) { jQuery('#custom-layout').val(response).removeAttr('disabled'); }, 'json');
    
          return false;
        }
        </script>
         <style type="text/css">
          div.layout-thumb {
            width: 200px;
            margin: 0 50px 20px 0;
            float: left;
          }
          div.layout-thumb img {
            padding-bottom: 5px;
          }
          div.layout-thumb input {
            margin-right: 5px;
          }
          label.fps-label {
            min-width: 75px;
            float: left;
            line-height: 23px;
          }
        </style>
        <?php
      } // admin_head
    
      // helper function for creating select's options
      function create_select_options($options, $selected = null, $output = true) {
        $out = "\n";
    
        foreach ($options as $tmp) {
          if ($selected == $tmp['val']) {
            $out .= "<option selected=\"selected\" value=\"{$tmp['val']}\">{$tmp['label']}&nbsp;</option>\n";
          } else {
            $out .= "<option value=\"{$tmp['val']}\">{$tmp['label']}&nbsp;</option>\n";
          }
        }
    
        if($output) {
          echo $out;
        } else {
          return $out;
        }
      } // create_select_options
    
      // sanitize settings on save
      function sanitize_settings($values) {
        foreach ($values as $key => $value) {
          switch ($key) {
            case 'limit':
            case 'prev-next':
            case 'pagination':
            case 'autoplay':
            case 'effect-speed':
            case 'hover-pause':
            case 'randomize':
            case 'include-css':
            case 'include-jquery':
            case 'include-slides':
            case 'additional-width':
            case 'additional-height':
            case 'thumbnail-width':
            case 'thumbnail-height':
            case 'additional-crop':
              $values[$key] = (int) $value;
            break;
            case 'width':
            case 'source':
            case 'thumbnail':
            case 'layout':
            case 'effect':
            case 'conditional':
              $values[$key] = trim($value);
            break;
            case 'shortcode':
              $values[$key] = strtolower(trim($value));
              $values[$key] = str_replace(' ', '', $values[$key]);
            break;
            case 'custom-layout':
            break;
          } // switch
        } // foreach
    
        self::check_var_isset($values, array('prev-next' => 0,
                                             'pagination' => 0,
                                             'hover-pause' => 0,
                                             'randomize' => 0,
                                             'include-css' => 0,
                                             'include-jquery' => 0,
                                             'include-slides' => 0,
                                             'additional-crop' => 0));
    
        set_transient('wf-fps-updated', true, 10);
    
        return $values;
      } // sanitize_settings
    
      // helper function for $_POST checkbox handling
      function check_var_isset(&$values, $variables) {
        foreach ($variables as $key => $value) {
          if (!isset($values[$key])) {
            $values[$key] = $value;
          }
        }
      } // check_var_isset
    
      // output the whole options page
      function options_page() {
        if (!current_user_can('manage_options'))  {
          wp_die('You do not have sufficient permissions to access this page.');
        }
    
        $options = get_option('wf_fps');
    
        if (get_transient('wf-fps-updated')) {
          echo '<div id="message-fps" class="updated"><p><b>Changes saved.</b></p></div>';
          delete_transient('wf-fps-updated');
        }
    
        echo '<div class="wrap">
              <div class="icon32" id="icon-themes"><br /></div>
              <h2>Premium Featured Posts Slider</h2>';
    
        echo '<form action="options.php" method="post">';
        settings_fields('wf_fps');
    
        echo '<h3>Content & Layout</h3>';
    
        echo '<table class="form-table"><tbody>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="width">Width</label></th>
        <td><input type="text" id="width" style="width: 100px;" class="small-text" name="wf_fps[width]" value="' . $options['width'] . '" />';
        echo ' Slider container width. Set the value according to your theme layout. Any CSS parsable value is accepted. We don\'t recommend using "100%". Default: 600px.</td>
        </tr>';
    
        $sources[] = array('val' => '_featured', 'label' => 'Posts, pages and custom types selected as featured');
        $sources[] = array('val' => 'post', 'label' => 'Latest Posts');
        $sources[] = array('val' => 'page', 'label' => 'Latest Pages');
        $post_types = get_post_types(array('public' => true, '_builtin' => false), 'object', 'and');
        if ($post_types) {
          foreach ($post_types  as $post_type ) {
            $sources[] = array('val' => $post_type->query_var, 'label' => 'Latest ' . $post_type->labels->name);
          }
        }
    
        $excluded_items = array('nav_menu', 'link_category', 'post_format');
        $taxonomies = get_taxonomies(array('public' => true), 'objects');
        if ($taxonomies) {
          foreach ($taxonomies  as $taxonomy) {
            if (!in_array($taxonomy->name, $excluded_items)) {
              $terms = get_terms($taxonomy->name);
              if ($terms) {
                foreach ($terms as $term) {
                  $sources[] = array('val' => '|' . $taxonomy->name . '|' . $term->term_id, 'label' => 'Latest content from ' . $term->name . ' (' . $taxonomy->labels->name . ')');
                } // foreach ($terms)
              } // if ($terms)
            } // if (!in_array)
          } // foreach ($taxonomies)
        } // if ($taxonomies)
    
        echo '<tr valign="top">
        <th scope="row"><label for="source">Slider Content</label></th>
        <td><select id="source" name="wf_fps[source]">';
          self::create_select_options($sources, $options['source']);
        echo '</select> It\'s expected from editors to manually choose what content is featured but you can automate the process by featuring chronologically latest content. Default: latest posts.</td>
        </tr>';
    
        $limit[] = array('val' => -1, 'label' => 'Unlimited');
        for ($i=1; $i <= 20; $i++) {
          $limit[] = array('val' => $i, 'label' => $i);
        }
        echo '<tr valign="top">
          <th scope="row"><label for="limit">Number of Slides</label></th>
        <td><select id="limit" name="wf_fps[limit]">';
        self::create_select_options($limit, $options['limit']);
        echo '</select> Number of posts shown in slider. If the number of "featured" posts is greater than "number of slides" the later will take precedence. Default: 5.
        </td></tr>';
    
        global $_wp_additional_image_sizes;
        $sizes[] = array('val'=> 'thumbnail', 'label' => 'Thumbnail, ' . get_option('thumbnail_size_w') . 'x' . get_option('thumbnail_size_h') . (get_option('thumbnail_crop')? ', cropped':''));
        $sizes[] = array('val'=> 'medium', 'label' => 'Medium, ' . get_option('medium_size_w') . 'x' . get_option('medium_size_h'));
        $sizes[] = array('val'=> 'large', 'label' => 'Large, ' . get_option('large_size_w') . 'x' . get_option('large_size_h'));
        if ($_wp_additional_image_sizes) {
          foreach ($_wp_additional_image_sizes as $tmp => $tmp2) {
            $sizes[] = array('val'=> $tmp, 'label' => $tmp . ', ' . $tmp2['width'] . 'x' . $tmp2['height'] . ($tmp2['crop']? ', cropped':''));
          }
        }
    
        echo '<tr valign="top">
          <th scope="row"><label for="thumbnail">Thumbnail Size</label></th>
        <td><select id="thumbnail" name="wf_fps[thumbnail]">';
        self::create_select_options($sizes, $options['thumbnail']);
        echo '</select> Select the size that best fits your site\'s layout and selected FPS layout. You can <a href="#additional-width">customize the FPS thumbnail</a> size. Thumbnail size can be chosen on a per-post basis while editing individual posts. Default: medium.
        </td></tr>';
    
        $img = plugins_url('/images/', __FILE__);
        $layouts[] = array('val' => 'layout-1', 'label' => 'Layout 1 - Large image with title on image bottom');
        $layouts[] = array('val' => 'layout-2', 'label' => 'Layout 2 - Thumbnail with content on right');
        $layouts[] = array('val' => 'layout-3', 'label' => 'Layout 3 - Medium image with content on right');
        $layouts[] = array('val' => 'layout-4', 'label' => 'Layout 4 - Large image with title above image ');
        $layouts[] = array('val' => 'layout-5', 'label' => 'Layout 5 - Thumbnail with content on left');
        $layouts[] = array('val' => 'layout-6', 'label' => 'Layout 6 - Medium image with content on left');
    
        echo '<tr valign="top">
        <th scope="row"><label>Layout</label></th>
        <td>
        <div class="layout-thumb"><label for="layout-1"><img src="' . $img . 'layout-image-full.png" alt="Layout 1" title="Layout 1" /></label><br /><input ' . checked('layout-1', $options['layout'], false) . ' type="radio" id="layout-1" name="wf_fps[layout]" value="layout-1" /> Large image with title on image bottom </div>
        <div class="layout-thumb"><label for="layout-2"><img src="' . $img . 'layout-image-left.png" alt="Layout 2" title="Layout 2" /></label><br /><input ' . checked('layout-2', $options['layout'], false) . ' type="radio" id="layout-2" name="wf_fps[layout]" value="layout-2" /> Thumbnail with content on right</div>
        <div class="layout-thumb"><label for="layout-3"><img src="' . $img . 'layout-image-left-short.png" alt="Layout 3" title="Layout 3" /></label><br /><input ' . checked('layout-3', $options['layout'], false) . ' type="radio" id="layout-3" name="wf_fps[layout]" value="layout-3" /> Medium image with content on right </div>
        <div class="layout-thumb"><label for="layout-4"><img src="' . $img . 'layout-image-full-top-title.png" alt="Layout 4" title="Layout 4" /></label><br /><input ' . checked('layout-4', $options['layout'], false) . ' type="radio" id="layout-4" name="wf_fps[layout]" value="layout-4" /> Large image with title above image </div>
        <div class="layout-thumb"><label for="layout-5"><img src="' . $img . 'layout-image-right.png" alt="Layout 5" title="Layout 5" /></label><br /><input ' . checked('layout-5', $options['layout'], false) . ' type="radio" id="layout-5" name="wf_fps[layout]" value="layout-5" /> Thumbnail with content on left</div>
        <div class="layout-thumb"><label for="layout-6"><img src="' . $img . 'layout-image-right-short.png" alt="Layout 6" title="Layout 6" /></label><br /><input ' . checked('layout-6', $options['layout'], false) . ' type="radio" id="layout-6" name="wf_fps[layout]" value="layout-6" /> Medium image with content on left</div><br style="clear: both;" />
    
        <input ' . checked('custom', $options['layout'], false) . ' type="radio" id="layout-custom" name="wf_fps[layout]" value="custom" /> <label for="layout-custom">Custom layout code</label>
        <textarea name="wf_fps[custom-layout]" id="custom-layout" style="width: 100%" rows="10" cols="20">' . $options['custom-layout'] . '</textarea><br />';
        echo '<p>Copy code from a predefined layout into the code editor:
        <select id="layouts-sel" name="layouts-sel">';
        self::create_select_options($layouts, '');
        echo '</select>
        <input type="button" value="Copy" class="button-secondary" name="copy" onclick="javascript:fps_copy_layout()" /></p>
        <p>The following 18 variables are available for use in custom layout code: (<a href="#" onclick="javascript:jQuery(\'#layout-variables\').toggle(); return false;">show variables</a>)</p>
        <ul id="layout-variables" style="list-style: circle inside; margin-left: 20px; display: none;">
         <li>{id} - post ID; ie: 34</li>
         <li>{permalink} - post permalink URL; ie: http://www.myweb.com/my-pos/</li>
         <li>{title} - post title; ie: My Nice Title</li>
         <li>{excerpt} - post excerpt with "the_excerpt" filter applied. If there\'s no excerpt an empty string is returned.</li>
         <li>{content-full} - complete post content with "the_content" filter applied.</li>
         <li>{content} - post content before the "<!--more-->" separator with "the_content" filter applied.</li>
         <li>{author} - post author "display name"; ie: John Doe</li>
         <li>{author-link} - URL to author\'s archive page; ie: http://www.myweb.com/author/john/</li>
         <li>{date} - post "published" date. Formatted using "date format" from <a href="options-general.php">Options - General</a>; ie: 2011/02/22</li>
         <li>{time} - post "published" time. Formatted using "time format" from <a href="options-general.php">Options - General</a>; ie: 8:22 am</li>
         <li>{comments-count} - total comments count; ie: 25</li>
         <li>{categories} - comma separated list of category links</li>
         <li>{tags} - comma separated list of tag links</li>
         <li>{thumbnail} - thumbnail <IMG> HTML element complete with src, width, height and default WP CSS classes.</li>
         <li>{thumbnail-src} - thumbnail file URL</li>
         <li>{thumbnail-width} - thumbnail width in pixels; ie: 330.</li>
         <li>{thumbnail-height} - thumbnail height in pixels; ie: 330.</li>
         <li>{slider-width} - slider width you entered in <a href="#width">FPS options above</a>; ie: 700px.</li>
        </ul>
        <p>Layouts can be chozen on a per-post basis while editing individual posts. Default: layout 2.</p>
        </td></tr>';
    
        echo '</tbody></table>';
        echo '<p class="submit"><input type="submit" value="Save Changes" class="button-primary" name="Submit" /></p>';
    
        echo '<h3>Options</h3>';
    
        echo '<table class="form-table"><tbody>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="prev-next">Auto Generate Previous and Next Buttons</label></th>
        <td><input name="wf_fps[prev-next]" id="prev-next" ' . checked('1', $options['prev-next'], false) . ' value="1" type="checkbox" /> If checked previous and next buttons will be placed on left and right edges of the slider. Default: checked.</td>
        </tr>';
    
        $pagination[] = array('val' => '0', 'label' => 'No');
        $pagination[] = array('val' => '1', 'label' => 'Yes, in form of circles');
        $pagination[] = array('val' => '2', 'label' => 'Yes, in form of post thumbnails');
    
        echo '<tr valign="top">
        <th scope="row"><label for="pagination">Auto Generate Pagination</label></th>
        <td><select id="pagination" name="wf_fps[pagination]">';
        self::create_select_options($pagination, $options['pagination']);
        echo '</select> If checked pagination circles or thumbnails will be placed below the slider. Default: circles.</td>
        </tr>';
    
        $autoplay[] = array('val' => '0', 'label' => 'Disable autoplay');
        $autoplay[] = array('val' => '500', 'label' => 'Every 0.5 seconds');
        $autoplay[] = array('val' => '1000', 'label' => 'Every second');
        $autoplay[] = array('val' => '1500', 'label' => 'Every 1.5 seconds');
        for($i=2000; $i<=20000; $i+=500) {
          $autoplay[] = array('val' => $i, 'label' => 'Every ' . number_format($i/1000, 1) . ' seconds');
        }
        echo '<tr valign="top">
        <th scope="row"><label for="autoplay">Autoplay</label></th>
        <td><select id="autoplay" name="wf_fps[autoplay]">';
        self::create_select_options($autoplay, $options['autoplay']);
        echo '</select> Time between each automatic slide switch. Default: 5 seconds.</td>
        </tr>';
    
        $effects[] = array('val' => 'slide', 'label' => 'Slide');
        $effects[] = array('val' => 'fade', 'label' => 'Fade');
        echo '<tr valign="top">
        <th scope="row"><label for="effect">Transition Effect</label></th>
        <td><select id="effect" name="wf_fps[effect]">';
        self::create_select_options($effects, $options['effect']);
        echo '</select> Effect used for transitioning between slides. Default: slide.</td>
        </tr>';
    
        for($i=50; $i<=2000; $i+=50) {
          $speed[] = array('val' => $i, 'label' => $i . ' miliseconds');
        }
        echo '<tr valign="top">
        <th scope="row"><label for="effect-speed">Transition Effect Speed</label></th>
        <td><select id="effect-speed" name="wf_fps[effect-speed]">';
        self::create_select_options($speed, $options['effect-speed']);
        echo '</select> Duration of transition effect/animation in milliseconds. Default: 350 milliseconds.</td>
        </tr>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="hover-pause">Stop on Hover</label></th>
        <td><input name="wf_fps[hover-pause]" id="hover-pause" ' . checked('1', $options['hover-pause'], false) . ' value="1" type="checkbox" /> If checked autoplay will be stopped once user hovers over the slider. Default: checked.</td>
        </tr>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="randomize">Randomize</label></th>
        <td><input name="wf_fps[randomize]" id="randomize" ' . checked('1', $options['randomize'], false) . ' value="1" type="checkbox" /> Randomize slides order. By default they are orderd by publishing date, descending. Default: unchecked.</td>
        </tr>';
    
        echo '</tbody></table>';
        echo '<p class="submit"><input type="submit" value="Save Changes" class="button-primary" name="Submit" /></p>';
    
        echo '<h3>Advanced Options</h3>';
    
        echo '<table class="form-table"><tbody>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="include-css">Include CSS</label></th>
        <td><input name="wf_fps[include-css]" id="include-css" ' . checked('1', $options['include-css'], false) . ' value="1" type="checkbox" /> If you wrote your own CSS for slides or copy/pasted our CSS code into some other file then disable this option. Default: checked.</td>
        </tr>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="include-jquery">Include jQuery</label></th>
        <td><input name="wf_fps[include-jquery]" id="include-jquery" ' . checked('1', $options['include-jquery'], false) . ' value="1" type="checkbox" /> If your theme doesn\'t already have jQuery included enable this option. Default: unchecked.</td>
        </tr>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="include-slides">Include Slides JS</label></th>
        <td><input name="wf_fps[include-slides]" id="include-slides" ' . checked('1', $options['include-slides'], false) . ' value="1" type="checkbox" /> If your theme already has <a href="http://slidesjs.com/">Slides JS</a> included uncheck this option. Default: checked.</td>
        </tr>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="shortcode">Shortcode Name</label></th>
        <td><input type="text" id="shortcode" style="width: 80px;" class="small-text" name="wf_fps[shortcode]" value="' . $options['shortcode'] . '" />';
        echo ' Write only the shortcode name, without brackets. If the shortcode name you want is already taken you\'ll be notified after saving. Default: fps.</td>
        </tr>';
    
        echo '<tr valign="top">
        <th scope="row"><label for="additional-width">Additional Image Size</label></th>
        <td><input type="text" id="additional-width" style="width: 60px;" class="small-text" name="wf_fps[additional-width]" value="' . $options['additional-width'] . '" /> x <input type="text" id="additional-height" style="width: 60px;" class="small-text" name="wf_fps[additional-height]" value="' . $options['additional-height'] . '" /> px &nbsp;&nbsp;&nbsp; <label for="additional-crop">Crop to size</label>&nbsp; <input name="wf_fps[additional-crop]" id="additional-crop" ' . checked('1', $options['additional-crop'], false) . ' value="1" type="checkbox" /> ';
        echo '<br />If you need an additional image (thumbnail) size besides the <a href="options-media.php">default WordPress sizes</a> (thumbnail, medium, large) you can define it here. Please note: changes to image sizes are not "retroactive" meaning they will only affect newly uploaded images. Once the size is changed you have to re-build or re-upload the images. We suggest using <a href="http://codecanyon.net/item/image-sizes-manager/309402">Image Sizes Manager</a>. Default: 330x330px, cropped.</td>
        </tr>';
    
    if (!$options['thumbnail-width'] || !$options['thumbnail-height']) {
      $options['thumbnail-width'] = 50;
      $options['thumbnail-height'] = 50;
    }
    
        echo '<tr valign="top">
        <th scope="row"><label for="thumbnail-width">Pagination Thumbnail Image Size</label></th>
        <td><input type="text" id="thumbnail-width" style="width: 60px;" class="small-text" name="wf_fps[thumbnail-width]" value="' . $options['thumbnail-width'] . '" /> x <input type="text" id="thumbnail-height" style="width: 60px;" class="small-text" name="wf_fps[thumbnail-height]" value="' . $options['thumbnail-height'] . '" /> px';
        echo '<br />If you\'re using thumbnails for pagination please set the size that fits your theme and needs. Please note: changes to image sizes are not "retroactive" meaning they will only affect newly uploaded images. Once the size is changed you have to re-build or re-upload the images. We suggest using <a href="http://codecanyon.net/item/image-sizes-manager/309402">Image Sizes Manager</a>. Default: 50x50px, cropped.</td>
        </tr>';
    
        $conditionals[] = array('val' => '', 'label' => 'On all pages');
        $conditionals[] = array('val' => 'is_front_page', 'label' => 'Only if is_front_page()');
        $conditionals[] = array('val' => 'is_home', 'label' => 'Only if is_home()');
        $conditionals[] = array('val' => 'is_category', 'label' => 'Only if is_category()');
        $conditionals[] = array('val' => 'is_singular', 'label' => 'Only if is_singular()');
        $conditionals[] = array('val' => 'is_not_singular', 'label' => 'Only if is_not_singular()');
    
        echo '<tr valign="top">
        <th scope="row"><label for="conditional">Show Slider</label></th>
        <td><select id="conditional" name="wf_fps[conditional]">';
        self::create_select_options($conditionals, $options['conditional']);
        echo '</select> If you want FPS shown only on certain pages but you placed FPS code in ie <i>header.php</i> set this option to enable conditional display. Default: always display FPS.</td>
        </tr>';
    
        echo '</tbody></table>';
        echo '<p class="submit"><input type="submit" value="Save Changes" class="button-primary" name="Submit" /></p>';
    
        echo '</form></div>';
      } // options_page
    
      // generate HTML code for slider
      public function generate_html() {
        $out = '';
        $options = get_option('wf_fps');
    
        // show slider only in certain circumstances
        if ($options['conditional']) {
          if ($options['conditional']       == 'is_home' && !is_home()) {
            return;
          } elseif ($options['conditional'] == 'is_front_page' && !is_front_page()) {
            return;
          } elseif ($options['conditional'] == 'is_category' && !is_category()) {
            return;
          } elseif ($options['conditional'] == 'is_singular' && !is_singular()) {
            return;
          } elseif ($options['conditional'] == 'is_not_singular' && is_singular()) {
            return;
          }
        }
    
        $types = array('post', 'page');
        $post_types = get_post_types(array('public' => true, '_builtin' => false), 'object', 'and');
        if ($post_types) {
          foreach ($post_types  as $post_type ) {
            $types[] = $post_type->query_var;
          }
        } else {
          $post_types = array();
        }
    
        if ($options['source'] == '_featured') {
          $filter = array('numberposts' => $options['limit'],
                           'meta_key'   => '_fps_featured',
                           'meta_value' => 1,
                           'order'      => 'DESC',
                           'post_type'  => $types);
        } elseif (substr($options['source'], 0, 1) != '|') {
          $filter = array('numberposts' => $options['limit'],
                          'post_type'   => $options['source'],
                          'order'       => 'DESC',);
        } else {
          $source = explode('|', $options['source']);
          if ($source[1] == 'category') {
            $category = 'category';
          } else {
            $category = $source[1] . '_category';
          }
          $filter = array('numberposts' => $options['limit'],
                          'post_type'   => $types,
                          $category     => $source[2],
                          'order'       => 'DESC',);
    
        }
        if ($options['randomize']) {
          $filter['orderby'] = 'rand';
        } else {
          $filter['orderby'] = 'post_date';
        }
    
        $featured_posts = get_posts($filter);
    
        require('slider-layout-templates.php');
    
        $out .= '<div id="fps-container" style="width: ' . $options['width'] . '">';
        $out .= '<div class="fps-slides-container">';
        $slide_nb = 1;
        $pagination = '';
    
        foreach($featured_posts as $featured) {
          $pagination .= '<li><a href="">' . get_the_post_thumbnail($featured->ID, 'FPS pagination thumbnail', array('class' => 'fps-thumbnail-mini')) . '</a></li>';
    
          // $featured "is" $post
          // get per-post or global layout
          if (get_post_meta($featured->ID, '_fps_layout', true)) {
            $layout = get_post_meta($featured->ID, '_fps_layout', true);
          } else {
            $layout = $options['layout'];
          }
          if ($layout == 'custom') {
            $template = $options['custom-layout'];
          } else {
            $template = $layouts[$layout];
          }
    
          // get per-post or global thumbnail size
          if (get_post_meta($featured->ID, '_fps_thumbnail', true)) {
            $thumbnail_size = get_post_meta($featured->ID, '_fps_thumbnail', true);
          } else {
            $thumbnail_size = $options['thumbnail'];
          }
    
          $tags = get_the_tags($featured->ID);
          $tags2 = '';
          if ($tags)
            foreach($tags as $tag) {
              $tags2 .= '<a href="/tag/' . $tag->slug . '">' . $tag->name . '</a>, ';
            }
          $tags2 = trim($tags2, ', ');
    
          $content = $featured->post_content;
          if (strpos($content, '<!--more-->')) {
            $content = substr($content, 0, strpos($content, '<!--more-->')) . '  <a href="' . get_permalink($featured->ID) . '">(more...)</a>';
          }
          $content = apply_filters('the_content', $content);
    
          $thumbnail = get_post_thumbnail_id($featured->ID);
          $thumbnail = wp_get_attachment_image_src($thumbnail, $thumbnail_size);
    
          global $post;
          $post = $featured;
          $tmp = str_replace(array('{id}',
                                   '{permalink}',
                                   '{title}',
                                   '{excerpt}',
                                   '{content-full}',
                                   '{content}',
                                   '{author}',
                                   '{author-link}',
                                   '{date}',
                                   '{time}',
                                   '{comments-count}',
                                   '{categories}',
                                   '{tags}',
                                   '{thumbnail}',
                                   '{thumbnail-src}',
                                   '{thumbnail-width}',
                                   '{thumbnail-height}',
                                   '{slider-width}'),
                            array($featured->ID,
                                   get_permalink($featured->ID),
                                   $featured->post_title,
                                   apply_filters('the_excerpt', $featured->post_excerpt),
                                   apply_filters('the_content', $featured->post_content),
                                   $content,
                                   get_the_author_meta('display_name', $featured->post_author),
                                   get_author_posts_url($featured->post_author),
                                   get_the_date(''),
                                   get_the_time(''),
                                   (int) $featured->comments_count,
                                   get_the_category_list(', ', '', $featured->ID),
                                   $tags2,
                                   get_the_post_thumbnail($featured->ID, $thumbnail_size, array('class' => 'fps-thumbnail')),
                                   $thumbnail[0],
                                   $thumbnail[1],
                                   $thumbnail[2],
                                   $options['width']), $template);
    
         if ($slide_nb != 1) {
          $tmp_display = 'display: none; ';
         } else {
          $tmp_display = '';
         }
         $out .= '<div class="post fps-slide" style="' . $tmp_display . 'width: ' . $options['width'] . ';">' . $tmp . '</div>';
         $slide_nb++;
        } // foreach post
        $out .= '</div>';
    
        if ($options['pagination'] == 2) {
          $out .= '<ul class="fps-pagination thumb-pagination">' . $pagination . '</ul>';
        }
        $out .= "</div>\n";
    
        // include JS/CSS only if needed
        if ($featured_posts) {
          self::$do_footer = true;
        }
    
        return $out;
      } // generate_html
    
      // shortcode for FPS, just a wrapper
      function shortcode($options, $content) {
        return self::generate_html();
      } // shortcode
    
      // slides JS code for footer
      function wp_footer() {
        if (!self::$do_footer) {
          return;
        }
    
        $options = get_option('wf_fps');
        $preload_img = plugins_url('/images/preload.gif', __FILE__);
    
        if($options['include-css']) {
          $slides_css = plugins_url('/css/featured-posts-slider.css?v4', __FILE__);
          echo '<style type="text/css">@import url(' . $slides_css . ");</style>\n";
        }
    
        if($options['include-jquery']) {
          $jquery_js = plugins_url('/js/jquery-1.6.2.min.js', __FILE__);
          echo '<script type="text/javascript" src="' . $jquery_js . '"></script>' . "\n";
        }
    
        if($options['include-slides']) {
          $slides_js = plugins_url('/js/slides.min.jquery.js', __FILE__);
          echo '<script type="text/javascript" src="' . $slides_js . '"></script>' . "\n";
        }
    
        echo '<script type="text/javascript">' . "\n";
        echo 'jQuery(document).ready(function() {';
        echo "jQuery('#fps-container').slides({
                  preload: true,
                  preloadImage: '{$preload_img}',
                  container: 'fps-slides-container',
                  generateNextPrev: {$options['prev-next']},
                  next: 'fps-next',
                  prev: 'fps-prev',
                  pagination: true,
                  generatePagination: " . ($options['pagination'] == '1'? '1': '0') . ",
                  paginationClass: 'fps-pagination',
                  currentClass: 'current',
                  fadeSpeed: {$options['effect-speed']},
                  slideSpeed: {$options['effect-speed']},
                  start: 1,
                  effect: '{$options['effect']}',
                  randomize: 0,
                  play: {$options['autoplay']},
                  pause: {$options['autoplay']},
                  hoverPause: {$options['hover-pause']},
                  autoHeight: 1});";
        echo "\n});";
        echo "\n</script>\n";
      } // wp_footer
    
      // warning if [fps] shortcode is already taken
      public function warning() {
        $shortcode = get_option('wf_fps');
        $shortcode = $shortcode['shortcode'];
        echo '<div id="message-shortcode" class="error"><p><strong>Featured Posts Slider shortcode is not active!</strong> The shortcode [' . $shortcode . '] is already in use by another plugin. Please <a href="themes.php?page=wf-fps#shortcode">update the settings</a> and select a different shortcode.</p></div>';
      } // warning
    } // class wf_fps
    
    // template function, echoes slider code
    function the_featured_posts_slider() {
      echo wf_fps::generate_html();
    } // the_featured_posts_slider
    
    // template function, returns slider code
    function get_the_featured_posts_slider() {
      return wf_fps::generate_html();
    } // get_the_featured_posts_slider
    
    // hook Featured Posts Plugin
    add_action('init', array('wf_fps', 'init'));
    add_action('after_setup_theme', array('wf_fps', 'add_thumb_support'));
    ?>
    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    @bcworkz

    Do you have anything further on this? I am completely stumped.

    Thanks,

    Joe

    Forum: Hacks
    In reply to: Adding Meta to Plugin
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    I’ve created a custom field called a Small Headline. I would like to output that underneath my thumbnail pagination.

    Thanks.

    http://www.philahoops.com/fakehome

    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Moderators. I accidentally clicked “Resolved”. Can you fix?

    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    PS. There is a template file, but it is bare bones.

    $layouts['layout-1'] = <<<EOT
    <div class="fps-full-img">
      <a href="{permalink}">
      <div>
        {thumbnail}
        <h2 class="entry-title fps-entry-title">{title}</h2>
      </div>
      </a>
    </div>
    EOT;
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Sorry, I’m relatively new to plugin editing. I can usually change things around to my liking, but run into trouble when I try to add things.

    What should I do? I can include more of the code if you’d like, but don’t want to post the whole thing as it is premium.

    Thanks again.

    Here is more at the bottom…I think I should have included it earlier.
    `}

    $featured_posts = get_posts($filter);

    require(‘slider-layout-templates.php’);

    $out .= ‘<div id=”fps-container” style=”width: ‘ . $options[‘width’] . ‘”>’;
    $out .= ‘<div class=”fps-slides-container”>’;
    $slide_nb = 1;
    $pagination = ”;

    foreach($featured_posts as $featured) {
    $pagination .= ‘
    <li><a href=””>’ . get_the_post_thumbnail($featured->ID, ‘FPS pagination thumbnail’, array(‘class’ => ‘fps-thumbnail-mini’)) . ‘</a></li>
    ‘;

    // $featured “is” $post
    // get per-post or global layout
    if (get_post_meta($featured->ID, ‘_fps_layout’, true)) {
    $layout = get_post_meta($featured->ID, ‘_fps_layout’, true);
    } else {
    $layout = $options[‘layout’];
    }
    if ($layout == ‘custom’) {
    $template = $options[‘custom-layout’];
    } else {
    $template = $layouts[$layout];
    }

    // get per-post or global thumbnail size
    if (get_post_meta($featured->ID, ‘_fps_thumbnail’, true)) {
    $thumbnail_size = get_post_meta($featured->ID, ‘_fps_thumbnail’, true);
    } else {
    $thumbnail_size = $options[‘thumbnail’];
    }

    $tags = get_the_tags($featured->ID);
    $tags2 = ”;
    if ($tags)
    foreach($tags as $tag) {
    $tags2 .= ‘<a>slug . ‘”>’ . $tag->name . ‘</a>, ‘;
    }
    $tags2 = trim($tags2, ‘, ‘);

    $content = $featured->post_content;
    if (strpos($content, ‘<!–more–>’)) {
    $content = substr($content, 0, strpos($content, ‘<!–more–>’)) . ‘ <a>ID) . ‘”>(more…)</a>’;
    }
    $content = apply_filters(‘the_content’, $content);

    $thumbnail = get_post_thumbnail_id($featured->ID);
    $thumbnail = wp_get_attachment_image_src($thumbnail, $thumbnail_size);

    global $post;
    $post = $featured;
    $tmp = str_replace(array(‘{id}’,
    ‘{permalink}’,
    ‘{title}’,
    ‘{excerpt}’,
    ‘{content-full}’,
    ‘{content}’,
    ‘{author}’,
    ‘{author-link}’,
    ‘{date}’,
    ‘{time}’,
    ‘{comments-count}’,
    ‘{categories}’,
    ‘{tags}’,
    ‘{thumbnail}’,
    ‘{thumbnail-src}’,
    ‘{thumbnail-width}’,
    ‘{thumbnail-height}’,
    ‘{slider-width}’),
    array($featured->ID,
    get_permalink($featured->ID),
    $featured->post_title,
    apply_filters(‘the_excerpt’, $featured->post_excerpt),
    apply_filters(‘the_content’, $featured->post_content),
    $content,
    get_the_author_meta(‘display_name’, $featured->post_author),
    get_author_posts_url($featured->post_author),
    get_the_date(”),
    get_the_time(”),
    (int) $featured->comments_count,
    get_the_category_list(‘, ‘, ”, $featured->ID),
    $tags2,
    get_the_post_thumbnail($featured->ID, $thumbnail_size, array(‘class’ => ‘fps-thumbnail’)),
    $thumbnail[0],
    $thumbnail[1],
    $thumbnail[2],
    $options[‘width’]), $template);

    if ($slide_nb != 1) {
    $tmp_display = ‘display: none; ‘;
    } else {
    $tmp_display = ”;
    }
    $out .= ‘<div class=”post fps-slide” style=”‘ . $tmp_display . ‘width: ‘ . $options[‘width’] . ‘;”>’ . $tmp . ‘</div>’;
    $slide_nb++;
    } // foreach post
    $out .= ‘</div>’;

    if ($options[‘pagination’] == 2) {
    $out .= ‘<ul class=”fps-pagination thumb-pagination”>’ . $pagination . ”;
    }
    $out .= “</div>\n”;

    // include JS/CSS only if needed
    if ($featured_posts) {
    self::$do_footer = true;
    }

    return $out;
    } // generate_html`

    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    Thanks for getting back to me. Is this enough?

    }
    
        $featured_posts = get_posts($filter);
    
        require('slider-layout-templates.php');
    
        $out .= '<div id="fps-container" style="width: ' . $options['width'] . '">';
        $out .= '<div class="fps-slides-container">';
        $slide_nb = 1;
        $pagination = '';
    
        foreach($featured_posts as $featured) {
          $pagination .= '<li><a href="">' . get_the_post_thumbnail($featured->ID, 'FPS pagination thumbnail', array('class' => 'fps-thumbnail-mini')) . '</a></li>';
    
          // $featured "is" $post
          // get per-post or global layout
          if (get_post_meta($featured->ID, '_fps_layout', true)) {
            $layout = get_post_meta($featured->ID, '_fps_layout', true);
          } else {
            $layout = $options['layout'];
          }
          if ($layout == 'custom') {
            $template = $options['custom-layout'];
          } else {
            $template = $layouts[$layout];
          }
    
          // get per-post or global thumbnail size
          if (get_post_meta($featured->ID, '_fps_thumbnail', true)) {
            $thumbnail_size = get_post_meta($featured->ID, '_fps_thumbnail', true);
          } else {
            $thumbnail_size = $options['thumbnail'];
          }
    Thread Starter joseph.fedorowicz

    (@josephfedorowicz)

    I’m going to move this to the sub-forum.

Viewing 14 replies - 1 through 14 (of 14 total)