[Помогите] не работает timthumb

Тема в разделе "Wordpress", создана пользователем kolala, 28 мар 2013.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. kolala

    kolala Постоялец

    Регистр.:
    12 апр 2009
    Сообщения:
    53
    Симпатии:
    9
    Уважаемые знатоки Вордпрес.
    За несколько лет знакомства с вордпрес темами, часто мне встречаются такие, которые не правилдьно работают с выводом миниатюр. Чаще всего, это происходит через скрипт тимбтумб.

    То есть, ставлю я тему, всё нормально, но миниатюрв, превьюшки (например на главной странице) не отображаются. Раньше я боролся с этим методом поиска другой темы.
    Сейчкас – запала в душу одна тема, успешно её купил на нулледе, но та же ситуация – нк отображаются и всё.
    Разрешения на папку кеш уже какие не ставил, всё включаю – ан нет. Кто знает почему тимбтумбы не отображаются. Тема вот эта - http://www.gabfirethemes.com/themes/opinions/

    Помогите советом или делом, плззз.
     
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    а у вас на сервере установлены все пхп расширения необходимые для работы? вы проверяли, создаются ли превьюхи вообще (тоесть они создаются но на сайте не показываются изза неверных url) и нету ли ошибок в логах сервера во время доступа к генерации первью?

    тут описаны базовые требования и советы к случае если что-то не работает
    http://www.der-prinz.com/images-displaying-solving-issues-timthumb/
     
  3. SEOKinG

    SEOKinG

    Регистр.:
    2 дек 2008
    Сообщения:
    346
    Симпатии:
    69
    1. мануал по установке к шаблону должен идти в комплекте
    2. проверьте чмоды на папки cashe и сам файл
    3. возможно стоить обновить сам скрипт
    4. какой код вывода миниатюр в index.php стоит?
     
  4. kolala

    kolala Постоялец

    Регистр.:
    12 апр 2009
    Сообщения:
    53
    Симпатии:
    9
    да расширения установлены, мало того многие темы на этом же скрипте успешно работают. Превьюхи не создаются и в папочку не складируются.

    1. Мануала нету:(. Но по идее там всё просто должно быть.
    2. Права все стоят правильно. Уже даже на всю папку с темой и с файлами и 777 и 755 ставил - результата 0.
    3. Скрипт обновлял - самый последний.
    4. вывод такой

    код индекса, там где должна выводиться превью

    Код:
    <div id="featured-slider" class="flexslider">
                    <ul class="slides">
                        <?php
                        $count = 1;
                        if ( of_get_option('of_op_recent', 0) == 1 ) {
                            $args = array(
                              'posts_per_page' => of_get_option('of_op_nr', 0),
                            );
                        } else {
                            if ( of_get_option('of_op_tag') <> '' ) {
                                $args = array(
                                  'posts_per_page' => of_get_option('of_op_nr', 0),
                                  'tag' => of_get_option('of_op_tag')
                                );
                            } elseif ( of_get_option('of_op_cf', 0) == 1 ) {
                                $args = array(
                                  'post_type' => 'any',
                                  'posts_per_page' => of_get_option('of_op_nr', 0),
                                  'meta_key' => 'featured',
                                  'meta_value' => 'true'
                                );
                            } else {
                                $args = array(
                                  'post__not_in'=>$do_not_duplicate,
                                  'posts_per_page' => of_get_option('of_op_nr', 0),
                                  'cat' => of_get_option('of_op_cat')
                                );               
                            }
                        }
                        $gab_query = new WP_Query();$gab_query->query($args);
                        while ($gab_query->have_posts()) : $gab_query->the_post();
                        if (of_get_option('of_dnd') == 1) { $do_not_duplicate[] = $post->ID; }
                        ?>
                            <li>
                                <?php
                                    gab_media(array(
                                    'name' => 'op-featured',
                                    'imgtag' => 1,
                                    'link' => 1,
                                    'enable_video' => 1,
                                    'catch_image' => of_get_option('of_catch_img', 0),
                                    'video_id' => 'featured',
                                    'enable_thumb' => 1,
                                    'resize_type' => 'c', /* c to crop, h to resize only height, w to resize only width */
                                    'media_width' => 450,
                                    'media_height' => 280,
                                    'thumb_align' => 'featured_media',
                                    'enable_default' => of_get_option('of_op_end1', 1),
                                    'default_name' => 'featured.jpg'   
                                ));                                       
                                ?>
     
                                <div class="postteaser">
                                    <h2 class="posttitle">
                                        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf( esc_attr__( 'Permalink to %s', 'opinions' ), the_title_attribute( 'echo=0' ) ); ?>" ><?php gab_posttitle(21,'&hellip;'); ?></a>
                                    </h2>
                                    <p><?php echo string_limit_words(get_the_excerpt(),8); ?></p>
                                    <span class="r_more">
                                        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf( esc_attr__( 'Permalink to %s', 'opinions' ), the_title_attribute( 'echo=0' ) ); ?>" ><?php _e('Read more','opinions'); ?></a>
                                    </span>
                                </div>       
                            </li>
                        <?php $count++; endwhile; wp_reset_query(); ?>                   
                  </ul>
                </div><!-- .flexslider -->
    
    код функшенс, который отрабатывает:

    Код:
    <?php
    /* Define file storage if that is a wpmu site */
    if(is_multisite()) {
        function redirect_wpmu ($img) {
            global $blog_id;
          $imageParts = explode('/files/', $img);
            if (isset($imageParts[1])) {
                $img = '/blogs.dir/' . $blog_id . '/files/' . $imageParts[1];
            }
            return($img);
        }
    }
     
    function catch_that_image() {
        if (of_get_option('of_catch_img') == 1) {
          global $post, $posts;
          $first_img = '';
          ob_start();
          ob_end_clean();
          $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
          $first_img = $matches [1] [0];
     
            return $first_img;
        }
    }
     
    function call_flv_with_add ($parameters){
        global $post, $gab_flv, $ad_flv;
       
            $video_id = $parameters['name'].'_'.$parameters['video_id'].'_'.$post->ID;
           
            echo '
                <span class="cf_gab_video '.$parameters['thumb_align'].'">
                    <a href="'.esc_url($gab_flv).'" style="display:block;width:'.$parameters['media_width'].'px;height:'.$parameters['media_height'].'px" id="'.$video_id.'"></a>
                    <script type="text/javascript">
                        $f("'.$video_id.'", "http://releases.flowplayer.org/swf/flowplayer-3.2.7.swf", {
     
                            // controlbar is initially hidden
                            plugins: {
                                controls:  {display: "none" }
                            },
                           
                            // properties that are common to both clips in the playlist
                            clip: {
                                baseUrl: "http://blip.tv/file/get",
                                wmode: "transparent",
                            },
                           
                            // playlist with two entries
                            playlist: [
                           
                                // user is forced to see this entry. pause action is disabled
                                {
                                    url: "'. esc_url( $ad_flv ).'",
     
                                    onBeforePause: function() {
                                        return false;
                                    }
                                },
                               
                                // this is the actual video. controlbar is shown
                                {
                                    url: "'. esc_url( $gab_flv ).'",
                                    onStart: function() {
                                        this.getControls().show();
                                    },
                                   
                                    // when playback finishes player is resumed back to its original state
                                    onFinish: function() {
                                        this.unload();
                                    }
                                }   
                            ]
                        });               
                    </script>
                </span>';
    }
    function call_flv ($parameters){
        global $post, $gab_flv;
            $video_id = $parameters['name'].'_'.$parameters['video_id'].'_'.$post->ID;
            echo '
            <span class="cf_gab_video '.$parameters['thumb_align'].'">
                <a href="'.esc_url($gab_flv).'" style="display:block;width:'.$parameters['media_width'].'px;height:'.$parameters['media_height'].'px" id="'.$video_id.'"></a>               
                <script type="text/javascript">
                  flowplayer(
                      "'.$video_id.'",
                      { src:"'; echo GABFIRE_JS_DIR . '/flowplayer/flowplayer-3.2.7.swf",
                        wmode: "opaque" },
                      { clip: {
                          autoPlay: false,
                          autoBuffering: true  }
                      }
                  );
                </script>
            </span>';
    }
     
    function call_swf ($parameters){
        global $post, $gab_video;
        $gab_video = get_post_meta($post->ID, 'video', true);
        echo '
            <span class="cf_gab_video '.$parameters['thumb_align'].'">
                <object type="application/x-shockwave-flash" style="width:'.$parameters['media_width'].'px; height:'.$parameters['media_height'].'px;" data="'. esc_url ( $gab_video ) .'">
                <param name="wmode" value="opaque" /><param name="movie" value="'. esc_url ( $gab_video ) .'" /></object>
            </span>';
    }
     
    function call_iframe ($parameters){
        global $post, $gab_iframe;
       
        /* Remove WWW to support videos for old gabfire theme's framework not to cause any conflict with real embed codes over regular video urls */
        $gab_iframe = str_replace("http://www.", "http://", $gab_iframe);
       
        $orj_value = array("http://youtube.com/watch?v=", "http://vimeo.com/",  "http://dailymotion.com/video/", "http://screenr.com/" );
        $new_value = array("http://youtube.com/embed/", "http://player.vimeo.com/video/", "http://dailymotion.com/embed/video/", "http://screenr.com/embed/");
        $gab_iframe = str_replace($orj_value, $new_value, $gab_iframe);
       
        if(strpos($gab_iframe, "&")) { /* Remove unnecessary part from youtube's URL */
            $gab_iframe = strpos($gab_iframe, "&") ? substr($gab_iframe, 0, strpos($gab_iframe, "&")) : $gab_iframe;
        } else if(strpos($gab_iframe, "_") and strstr($gab_iframe,'dailymotion') ) { /* Remove unnecessary part from dailymotion's URL */
            $gab_iframe = strpos($gab_iframe, "_") ? substr($gab_iframe, 0, strpos($gab_iframe, "_")) : $gab_iframe;
        }
       
        $orj_value_final = array("http://youtube.com", "http://dailymotion.com", "http://screenr.com" );
        $new_value_final = array("http://www.youtube.com", "http://www.dailymotion.com", "http://www.screenr.com");
        $gab_iframe = str_replace($orj_value_final, $new_value_final, $gab_iframe);
       
        echo '
            <span class="cf_gab_video '.$parameters['thumb_align'].'">       
                <iframe title="';the_title(''); echo '" src="'. esc_url($gab_iframe) .'?wmode=opaque&amp;showinfo=0&amp;autohide=1" width="'.$parameters['media_width'].'" height="'.$parameters['media_height'].'" allowfullscreen></iframe>
            </span>';
    }
     
    function call_tthumb ($parameters){ /* Call plain url to post thumbnail */
        global $post, $gab_thumb;
       
        if ($gab_thumb !== '') {
            echo esc_url( get_template_directory_uri()) . '/timthumb.php?src=';
            echo urlencode($gab_thumb) .'&amp;q=90&amp;';
                if (($parameters['resize_type'] == 'c') or ($parameters['resize_type'] !== 'h') ) {
                    echo 'w='.$parameters['media_width'].'&amp;';
                }
                if (($parameters['resize_type'] == 'c') or ($parameters['resize_type'] !== 'w') ) {
                    echo 'h='.$parameters['media_height'].'&amp;';
                }
            echo 'zc=1"';
        } else {
            $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'gab_featured' );
            $url = $thumb['0'];
           
            echo esc_url( get_template_directory_uri()) . '/timthumb.php?src=';
            if(is_multisite()) {
                echo urlencode(redirect_wpmu($url));
            } else {
                echo urlencode($url);
            }
            echo '&amp;q=90&amp;';
                if (($parameters['resize_type'] == 'c') or ($parameters['resize_type'] !== 'h') ) {
                    echo 'w='.$parameters['media_width'].'&amp;';
                }
                if (($parameters['resize_type'] == 'c') or ($parameters['resize_type'] !== 'w') ) {
                    echo 'h='.$parameters['media_height'].'&amp;';
                }
            echo 'zc=1';
           
        }
    }
    function call_tthumbimg ($parameters){ /* Get post thumbnail and add img tag based on parameters of gab_media array */
        global $post;
       
        echo '<img src="';
            call_tthumb($parameters);
        echo '" class="'.$parameters['thumb_align'].'" alt="';the_title(''); echo '" title="';the_title(''); echo '" />';
    }
     
    function call_tthumblink ($parameters){ /* Get post thumbnail and add a link based on parameters of gab_media array */
        global $post;
            echo '<a href="';the_permalink(); echo '" rel="bookmark">';   
                call_tthumbimg($parameters);
            echo '</a>';   
    }
     
    function call_post_thumb ($parameters){ /* Get default Post Thumbnail of WordPress */
        global $post;
        $image_id = get_post_thumbnail_id(); 
        $image_url = wp_get_attachment_image_src($image_id,$parameters['name']); 
        $image_url = $image_url[0];
       
        if ($parameters['link'] == 1) {
            echo '<a href="';the_permalink(); echo '" rel="bookmark">';   
        }
       
        if ($parameters['imgtag'] == 1) {
            echo '<img src="';
        }
        echo $image_url;
       
        if ($parameters['imgtag'] == 1) { 
            echo '" class="'.$parameters['thumb_align'].'" alt="';the_title(''); echo '" title="';the_title(''); echo '" />';
        }
       
        if ($parameters['link'] == 1) {
            echo '</a>';
        }
    }
     
    function call_firstimage ($parameters){ /* Catch first image */
        $url = catch_that_image();
       
        if ($parameters['link'] == 1) {
            echo '<a href="';the_permalink(); echo '" rel="bookmark">';   
        }
        if ($parameters['imgtag'] == 1) {
            echo '<img src="';
        }
       
        echo esc_url( get_template_directory_uri()) . '/timthumb.php?src=';
       
        if(is_multisite()) {
            echo urlencode(redirect_wpmu($url));
        } else {
            echo urlencode($url);
        }
        echo '&amp;q=90&amp;';
            if (($parameters['resize_type'] == 'c') or ($parameters['resize_type'] !== 'h') ) {
                echo 'w='.$parameters['media_width'].'&amp;';
            }
            if (($parameters['resize_type'] == 'c') or ($parameters['resize_type'] !== 'w') ) {
                echo 'h='.$parameters['media_height'].'&amp;';
            }
        echo 'zc=1';       
       
        if ($parameters['imgtag'] == 1) { 
            echo '" class="'.$parameters['thumb_align'].'" alt="';the_title(''); echo '" title="';the_title(''); echo '" />';
        }
       
        if ($parameters['link'] == 1) {
            echo '</a>';
        }
    }
     
    function call_default_thumb ($parameters){ /* Catch default thumbnail (image name is written into gab_media array. The image is located in template_url/images/thumbs dir */
        global $post;
       
        if ($parameters['link'] == 1) {
            echo '<a href="';the_permalink(); echo '" rel="bookmark">';   
        }
     
        if ($parameters['imgtag'] == 1) {
            echo '<img src="';
        }
            echo esc_url(get_template_directory_uri()); echo '/images/thumbs/'.$parameters['default_name'];
       
        if ($parameters['imgtag'] == 1) { 
            echo '" class="'.$parameters['thumb_align'].'" alt="';the_title(''); echo '" title="';the_title(''); echo '" />';
        }       
       
        if ($parameters['link'] == 1) {
            echo '</a>';
        }       
    }
     
    function gab_media($parameters)
    {
        # Define globals
        global $post, $gab_video, $gab_thumb, $gab_flv, $gab_iframe,$ad_flv;
        $gab_thumb = get_post_meta($post->ID, 'thumbnail', true);
        $gab_video = get_post_meta($post->ID, 'video', true);
        $gab_flv = get_post_meta($post->ID, 'videoflv', true);
        $ad_flv = get_post_meta($post->ID, 'adflv', true);
        $gab_iframe = get_post_meta($post->ID, 'iframe', true);
     
        if($ad_flv != '' and $gab_flv != '' and $parameters['enable_video'] == 1)
        {
            call_flv_with_add ($parameters);
        }
       
        elseif($gab_flv != '' and $parameters['enable_video'] == 1)
        {
            call_flv ($parameters);
        }
       
        elseif ($gab_video != '' and $parameters['enable_video'] == 1)
        {
            call_swf ($parameters);
        }
       
        elseif ($gab_iframe != '' and $parameters['enable_video'] == 1)
        {
            call_iframe ($parameters);
        }
       
        elseif ($gab_thumb != '' and $parameters['enable_thumb'] == 1)
        {
            if ($parameters['link'] == 1) {
                call_tthumblink($parameters);
            }
            elseif ($parameters['imgtag'] == 1) {
                call_tthumbimg($parameters);
            }
            else {
                call_tthumb ($parameters);
            }
        }       
       
        elseif((of_get_option('of_wpmumode')== 0 ) and $parameters['enable_thumb'] == 1 and has_post_thumbnail())
        {
            if ($parameters['link'] == 1)
            {
                call_tthumblink($parameters);
            }
            elseif ($parameters['imgtag'] == 1)
            {
                call_tthumbimg($parameters);
            }
            else {
                call_tthumb ($parameters);
            }
        }   
     
        elseif((of_get_option('of_wpmumode')==1) and has_post_thumbnail() and ($parameters['enable_thumb'] == 1))
        {
            call_post_thumb ($parameters);
        }
           
        else
        {
            $url = catch_that_image();
            if( (isset($url)) and ($parameters['catch_image'] == 1)) 
            {
                call_firstimage ($parameters);
            }
            elseif($parameters['enable_default'] == 1)
            {
                call_default_thumb ($parameters);
            }
        }
    }
     
  5. kolala

    kolala Постоялец

    Регистр.:
    12 апр 2009
    Сообщения:
    53
    Симпатии:
    9
    Из статьи всё уже перепробывал кроме "Use absolute paths for your images (incl. http://…)"

    Но куда этот путь вставлять?
     
  6. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    для начала разберитесь, какой путь генерируется у рисунков.
    второе, если ничего не пишет и не создаёт - проверьте настройки.
    третье, возможно в теме глюк, который не вызывает или неправильно вызывает тинтамб.
     
  7. SEOKinG

    SEOKinG

    Регистр.:
    2 дек 2008
    Сообщения:
    346
    Симпатии:
    69
    понатыкано нормально тут.
    и catch_that_image и call_tthumb и call_tthumbimg и call_post_thumb и call_firstimage.

    надо пробовать что-то поочередно вырезать, и смотреть что будет с картинкой.
    нужно найти какая функция отвечает за нужный вывод картинки, после чего ковыряться с ней и гуглить по названию функции типа "catch_that_image" - могут быть разные варианты работы функции.

    кстати да, что с урлами у картинок? чмоды для папок самого вордпресса какие-то ставил?

    очень часто бывает что нужен еще какой-нибудь плагин для полноценной работы шаблона
     
  8. ZM2007

    ZM2007

    Регистр.:
    16 окт 2007
    Сообщения:
    189
    Симпатии:
    82
    Если есть возможность лог PHP очень вам поможет или включите варнинги и сообщения об ошибках, потому что с таким замороченным functions.php долго разбираться, кто и где и что не дает или дает не правильно, короче нужен дебаг. :)
     
  9. kolala

    kolala Постоялец

    Регистр.:
    12 апр 2009
    Сообщения:
    53
    Симпатии:
    9

    Путь не генерируется. Просто картинка лежит в аплодс.
    настройки перепроверил все 100 раз.
    Возможно и глюк, но вот как его отловить.


    чмоды поставил 777 на всю папку файлы и подпапки темы ну и на аплодс 777
     
  10. kolala

    kolala Постоялец

    Регистр.:
    12 апр 2009
    Сообщения:
    53
    Симпатии:
    9

    подскажите где взять лог пхп и где что включить. Сразу всё сделаю, только скажите где и как?:confused:
     
Статус темы:
Закрыта.