• Resolved akomakom

    (@akomakom)


    I like the plugin, except that it outputs everything “right there” using echo, which is incorrect and shows plugin output in the wrong part of the page when using shortcodes.

    Here is a patch (I can’t seem to attach a file, so I’m pasting it)

    <br />
    --- /tmp/ivycat_announcement.orig.php	2012-07-15 16:59:43.797019452 -0400<br />
    +++ /tmp/fz3temp-1/ivycat_announcements.php	2012-07-15 17:05:34.021030123 -0400<br />
    @@ -32,12 +32,12 @@<br />
      */<br />
         function ica_announcement( $atts=false ){<br />
             if( !$atts ):<br />
    -            self::display_announcements();<br />
    +            return self::display_announcements();<br />
             else:<br />
                 if( array_key_exists( 'id', $atts ) ):<br />
    -                self::get_announcement( $atts['id'] );<br />
    +                return self::get_announcement( $atts['id'] );<br />
                 elseif( array_key_exists( 'group', $atts ) ):<br />
    -                self::get_announcements_by_group( $atts['group'] );<br />
    +                return self::get_announcements_by_group( $atts['group'] );<br />
                 endif;<br />
             endif;<br />
         }<br />
    @@ -46,14 +46,15 @@<br />
      *  Get's a specific Announcement based on the post ID.<br />
      */<br />
         function get_announcement($id){<br />
    -<br />
    +        $result = '';<br />
             $postdata = get_post( $id, ARRAY_A );<br />
             if( is_array( $postdata ) ):<br />
                 $data[0] = (object) $postdata;<br />
    -            echo '<div class="ivycat_annc_container">';<br />
    -            self::output_posts( $data );<br />
    -            echo '</div>';<br />
    +            $result .= '<div class="ivycat_annc_container">';<br />
    +            $result .= self::output_posts( $data );<br />
    +            $result .= '</div>';<br />
             endif;<br />
    +	return $result;<br />
         }</p>
    <p> /**<br />
    @@ -67,7 +68,7 @@<br />
             $myfunc = $group.'_posts';</p>
    <p>         try{<br />
    -            self::output_posts( self::$myfunc() );<br />
    +            return self::output_posts( self::$myfunc() );<br />
             } catch ( Exception $e ) {<br />
                 return false;<br />
             }<br />
    @@ -102,37 +103,33 @@<br />
         function display_announcements(){<br />
             global $current_user;<br />
             wp_get_current_user();<br />
    -        ?><br />
    -        <div class='ivycat_annc_container'><br />
    -            <?php<br />
    +        $result = "<div class='ivycat_annc_container'>";<br />
                     switch( $current_user->roles[0] ){<br />
                         case 'administrator':<br />
    -                        self::admin_posts();<br />
    +                        $result .= self::admin_posts();<br />
                             break;<br />
                         case 'editor':<br />
    -                        self::editor_posts();<br />
    +                        $result .= self::editor_posts();<br />
                             break;<br />
                         case 'author':<br />
    -                        self::author_posts();<br />
    +                        $result .= self::author_posts();<br />
                             break;<br />
                         case 'subscriber':<br />
    -                        self::subscriber_posts();<br />
    +                        $result .= self::subscriber_posts();<br />
                             break;<br />
                         default:<br />
    -                        self::public_posts();<br />
    +                        $result .= self::public_posts();<br />
                             break;<br />
                     }<br />
    -            ?><br />
    -        </div><br />
    -        <?php<br />
    -<br />
    +        $result .= '</div>';<br />
    +        return $result;<br />
         }</p>
    <p> /**<br />
     *  Gets All posts<br />
     */<br />
         function admin_posts(){<br />
    -        self::output_posts( get_posts( array( 'post_type' => 'bulletins' ) ) );<br />
    +        return self::output_posts( get_posts( array( 'post_type' => 'bulletins' ) ) );<br />
         }</p>
    <p> /**<br />
    @@ -142,7 +139,7 @@<br />
             $tax_query = array( 'relation'=>'NOT IN',<br />
                 array( 'taxonomy' => 'announcement-type', 'terms' => array( 'admin'  ) )<br />
             );<br />
    -        self::output_posts( get_posts( array( 'post_type' => 'bulletins', 'announcement-type' => 'editor' ) ) );<br />
    +        return self::output_posts( get_posts( array( 'post_type' => 'bulletins', 'announcement-type' => 'editor' ) ) );<br />
         }</p>
    <p> /**<br />
    @@ -152,7 +149,7 @@<br />
             $tax_query = array( 'relation' => 'NOT IN',<br />
                 array( 'taxonomy' => 'announcement-type', 'terms' => array( 'admin', 'editor' ) )<br />
             );<br />
    -        self::output_posts( get_posts( array( 'post_type' => 'bulletins','announcement-type' => 'author' ) ) );<br />
    +        return self::output_posts( get_posts( array( 'post_type' => 'bulletins','announcement-type' => 'author' ) ) );<br />
         }</p>
    <p> /**<br />
    @@ -162,7 +159,7 @@<br />
             $tax_query = array( 'relation' => 'NOT IN',<br />
                 array( 'taxonomy'=> 'announcement-type', 'terms' => array( 'admin', 'editor', 'author' ) )<br />
             );<br />
    -        self::output_posts( get_posts( array( 'post_type' => 'bulletins', 'announcement-type' => 'subscriber' ) ) );<br />
    +        return self::output_posts( get_posts( array( 'post_type' => 'bulletins', 'announcement-type' => 'subscriber' ) ) );<br />
         }</p>
    <p> /**<br />
    @@ -172,7 +169,7 @@<br />
             $tax_query = array( 'relation' => 'NOT IN',<br />
                 array( 'taxonomy' => 'announcement-type', 'terms' => array( 'admin', 'editor', 'author', 'subscriber') )<br />
             );<br />
    -        self::output_posts( get_posts( array( 'post_type' => 'bulletins', 'announcement-type' => 'public' ) ) );<br />
    +        return self::output_posts( get_posts( array( 'post_type' => 'bulletins', 'announcement-type' => 'public' ) ) );<br />
         }</p>
    <p> /**<br />
    @@ -180,6 +177,7 @@<br />
     *  if they are currently active.<br />
     */<br />
         function output_posts( $data, $grp=false ){<br />
    +	$result = '';</p>
    <p>         if( is_object( $data[0] ) ):<br />
                 foreach( $data as $row ){<br />
    @@ -199,7 +197,7 @@<br />
                             if( $enddatetime && $this->today > $enddatetime ){ // if expired, deactivate<br />
                                 update_post_meta( $row->ID, 'active', 'n' );<br />
                             }else{  // otherwise print content.<br />
    -                            echo "<p>".$row->post_content."</p>";<br />
    +                            $result = "<p>".$row->post_content."</p>";<br />
                             }<br />
                         }<br />
                     }<br />
    @@ -207,6 +205,7 @@<br />
                 }</p>
    <p>         endif;<br />
    +	return $result;<br />
         }</p>
    <p> }endif;</p>
    <p>

    http://wordpress.org/extend/plugins/ivycat-announcements/

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author ivycat

    (@ivycat)

    Thanks for sending this in, akomakom; we’ll take a look. 🙂

    Eric

    Plugin Author Eric Amundson

    (@sewmyheadon)

    Hi akomakom,

    We updated the plugin to output the data correctly.

    Please have a check and let us know if you have any questions.

    Thanks,
    Eric

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘[Plugin: IvyCat Announcements] Patch to return content rather than using echo’ is closed to new replies.