vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   vBulletin CMS Widgets - United-Forum Nivo Slider Widget (https://vborg.vbsupport.ru/showthread.php?t=267024)

dormopoco 08-13-2012 11:17 AM

The differense is:

'fade'

to

"fade"

Elenna 08-13-2012 01:09 PM

haha Oops, thanks. :)

dormopoco 08-13-2012 01:16 PM

TNx at you.

Elenna 08-14-2012 01:54 AM

I'm not sure if this has been mentioned before, but I adapted code from this site to make it crop your Slider image from the direct center of the article image.

I really can't give support for this, since I barely managed to figure it out myself, but if you DO give it a try, let us know if it works!

PHP Code:

// DEBUG MODUS !
$debug_modus false;

if(
$debug_modus === false)
{
    
ob_start();
}

//nivo slider - uf - vb.org version
//set these values as you need them:

//your slider folder - has to be read and writeable
//folder where all slider files are saved
$slider_img_filepath 'slider/';   

//picture width and height !same as in the CSS FILE! - was 650
$maxwidth 385;                                  
$maxheight 250;    

//do you want images without previewimage to be shown? slider is using the fallback then
$show_articles_without_image false;           

//picture shown if your articles has no previewpicture
$fallback_img $slider_img_filepath 'Fallback.jpg';  

//hardcoded maximum is 20 - if you want more just ask
$number_of_articles_shown 10;                                
            
//lengh in characters of the article descriptions - was 95
$description_length 50;

//stretch picture or crop them? false = strechting (default) true = cropping (beta)
$crop true;


//Debug Messages
if($debug_modus)
{
    echo 
"<span style='color:red;'>DEBUG MODE is ON! </span><br />";
    echo 
"slider_img_filepath: $slider_img_filepath <br />";
    echo 
"width: $maxwidth   height: $maxheight <br />";
    echo 
"Strech or Crop? $crop <br />";
    echo 
"show_articles_without_image: "
        
var_dump($show_articles_without_image); 
        echo 
" <br />";
    echo 
"fallback_img: $fallback_img <br />";
    echo 
"#img: $number_of_articles_shown <br />";
    echo 
"description_length: $description_length <br />";
    echo 
'directory ' DIR '<br />';

}




$article_type vb_Types::instance()->getContentTypeID("vBCms_Article");
$time TIMENOW;
 
if(!
extension_loaded('gd'))
{
    echo 
'<span style="color:red">Error occurred:</span> Your System does not support the GD-Libary. Please install the GD-Libary.<br />';
}
       
    
$article_get vB::$db->query_read('
        SELECT
            article.pagetext,
            article.previewimage,
            node.url,
            node.publishdate,
            node.parentnode,
            parentnode.url AS parenturl,
            thread.replycount,
            info.title,
            node.nodeid,            
            GROUP_CONCAT( category.category )
        FROM
            '
.TABLE_PREFIX.'cms_article AS article INNER JOIN
            '
.TABLE_PREFIX.'cms_node AS node 
                ON (node.contentid = article.contentid AND node.contenttypeid = ' 
vb::$db->sql_prepare($article_type) .') INNER JOIN
            '
.TABLE_PREFIX.'cms_nodeinfo AS info 
                ON info.nodeid = node.nodeid INNER JOIN
            '
.TABLE_PREFIX.'cms_node AS parentnode 
                ON parentnode.nodeid = node.parentnode LEFT JOIN
            '
.TABLE_PREFIX.'thread AS thread ON thread.threadid = info.associatedthreadid LEFT JOIN
            '
.TABLE_PREFIX.'cms_nodecategory AS nodecategory ON nodecategory.nodeid = node.nodeid LEFT JOIN
            '
.TABLE_PREFIX.'cms_category AS category ON nodecategory.categoryid = category.categoryid 
        WHERE
            node.setpublish = 1 AND
            node.publishdate > '
vb::$db->sql_prepare($time) .' -34560000 AND
            node.publishdate < '
vb::$db->sql_prepare($time) .
        GROUP BY node.nodeid
        ORDER BY node.publishdate
        DESC LIMIT 20'
);

    
$database_articles = array();
    
    
/* my version of sorting the articles via relevance - i'll keep it in case someone is interested*/
    
while($article vB::$db->fetch_array($article_get))
    {
        
$article['value'] = ( - ($time $article['publishdate'] ) / 86400 ) * ( - ($time $article['publishdate'] ) / 86400 ) * ( - ($time $article['publishdate'] ) / 86400 ) + (10 $article['replycount']);
        
$database_articles[] = $article;        
    }
    
    foreach(
$database_articles as $c => $key)
    {
        
$sort_value[] = $key['value'];
    }
    
    
array_multisort($sort_valueSORT_DESC$database_articles);    
    
    
//
    
$i 0;
    
$section_array = array();
    
$featured_articles = array();
    
    foreach(
$database_articles AS $article)
    {
        
$section_array[$article['parentnode']]++;

        
$categories explode(',' $article['GROUP_CONCAT( category.category )']);
     
        if(
$show_articles_without_image == true OR $article['previewimage'])
        {
            if(
$section_array[$article['parentnode']] < 50 AND $i $number_of_articles_shown)
            {
                if(
$debug_modus == true OR !file_exists($slider_img_filepath 'slide_' $article['nodeid'] . '.jpg'))
                {
                    
//rebuild image to the height and width we want in the slider 
                    //called sprite since i got the code from our sprite addon :P
                    
$sprite imagecreatetruecolor($maxwidth$maxheight);
                    if(
is_resource($sprite) AND $article['previewimage'] )
                    {                                   
                                                if(
substr($article['previewimage'],0,10) == 'attachment')
                                                {
                                                       
$article['previewimage'] = 'http://uat.echoesoftyria.com/' $article['previewimage'];
                                                };
                        
$imageinfo getimagesize($article['previewimage']);
                        if(
is_array($imageinfo))
                        {   
                            
$image null;
                            switch(
$imageinfo[2])
                            {
                                case 
IMAGETYPE_PNG:
                                
$image imagecreatefrompng($article['previewimage']);
                                break;
                                case 
IMAGETYPE_GIF:
                                
$image imagecreatefromgif($article['previewimage']);
                                break;
                                case 
IMAGETYPE_JPEG:
                                
$image imagecreatefromjpeg($article['previewimage']);
                                break;
                                default:
                                echo 
'<span style="color:red">Error occurred:</span> Unknown image format. ' $article['previewimage']. '<br />';
                                break;                        
                            }
                            
                            if(!
is_resource($image))
                            {
                                
//resiziing did not work - we are using the fallback image.
                                
echo '<span style="color:red">Error occurred:</span> imagecreation failed. ' $article['previewimage']. '<br />';
                                
$article['previewimage'] = $fallback_img;
                            }
                            else
                            {
                                
$img_width $imageinfo[0];
                                
$img_height $imageinfo[1];                            
                                
                                if(
$crop == false)
                                {                                    
                                    
imagecopyresampled($sprite$image0000$maxwidth$maxheight$img_width$img_height );
                                    
imagedestroy($image);
                                }
                                else
                                {
                                    
//cropping
                                    
$ratiox $maxheight $img_height ;
                                    
$ratioy $maxwidth $img_width ;
                                    
$new_height $img_height;
                                    
$new_width $img_width;
                                    
                                    if (
$maxheight $img_height OR $maxwidth $img_width)
                                    {
                                        if(
$ratiox $ratioy)
                                        {
                                            
$new_height round($img_height $ratiox);
                                            
$new_width round($img_width $ratiox);
                                        }
                                        else
                                        {
                                            
$new_height round($img_height $ratioy);
                                            
$new_width round($img_width $ratioy);
                                        }                                        
                                    }

                                    
$x_mid $new_width/2;  //horizontal middle - NEW CODE
                                    
$y_mid $new_height/2//vertical middle - NEW CODE

                                    // WAS $cropx = $new_height - $maxheight
                                    // WAS $cropy = $new_width - $maxwidth

                                    
                                    // WAS: imagecopyresampled($sprite, $image, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height);
                                    
imagecopyresampled($sprite$image00, ($x_mid-($maxwidth/2)), ($y_mid-($maxheight/2)), $img_width$img_height$img_width$img_height); // NEW CODE
                                    
imagedestroy($image);
                                    
                                }
                                
                                
                                
$img_filepath $slider_img_filepath 'slide_' $article['nodeid'] . '.jpg';
                                
$success imagejpeg($spriteDIR  . ($img_filepath[0] != DIRECTORY_SEPARATOR ?  DIRECTORY_SEPARATOR '') . $img_filepath);
                                
imagedestroy($sprite);
                                if(
$success)
                                {
                                    
$article['previewimage'] = $img_filepath;
                                }
                                else
                                {

                                    
$img_filepath DIR  . ($img_filepath[0] != DIRECTORY_SEPARATOR ?  DIRECTORY_SEPARATOR '') . $img_filepath;
                                    echo 
'<span style="color:red">Error occurred:</span> imagejpeg failed. ' $article['previewimage']. '<br />
                                    directory: '
$img_filepath ;
                                    
                                    
$article['previewimage'] = $fallback_img;
                                }
                            }
                            
                        }
                        else
                        {
                            
//resiziing did not work - we are using the fallback image.
                            
echo '<span style="color:red">Error occurred:</span> picture is not readable.' $article['previewimage']. '<br /> ';
                            
$article['previewimage'] = $fallback_img;
                        }                  
                    }
                    else
                    {
                        
//resiziing did not work - we are using the fallback image.
                        
echo '<span style="color:red">Warning:</span> article has no previewimage or sprite is no ressource. ' $article['previewimage']. '<br />';
                        
$article['previewimage'] = $fallback_img;
                    }
                }
                else
                {
                    
//we already have the image, no need to resize or crop anything
                    
$article['previewimage'] = $slider_img_filepath 'slide_' $article['nodeid'] . '.jpg';
                }

                
/*remove everything from the previewtext - html and bb. I do not want bold or colored text there. Cut to a decent length.*/        
                
$article['pagetext'] = strip_bbcode($article['pagetext'], truetruefalsetruefalse);

                
$article['previewtext'] = strip_tags($article['pagetext'], '<a>');
                    
                
$len $description_length;
                if ( 
strlen($article['previewtext']) > $len )
                {                    
                    
$article['previewtext'] = substr$article['previewtext'] , strrpossubstr$article['previewtext'], 0$len), ' ' ));
                }   

                
$i++;
                
//Build Array
                
$article_neu = array();
                
$article_neu['description'] = '<h2 style="font-weight:bold; font-size: 14px">'$article['title'].'</h2><span>'$article['previewtext'] .'</span> <a href="/content.php?r=' $article['nodeid'] . '-' $article['url'] . '">read on</a>';
                
$article_neu['htmlcaptionname'] = 'htmlcaption' $article['nodeid'] ;
                
$article_neu['picture'] = '<a href="/content.php?r=' $article['nodeid'] . '-' $article['url'] . '"><img src="'.$article['previewimage'].'" alt="" title="#htmlcaption'$article['nodeid'] . '" /></a>';
                
                
$featured_articles[] = $article_neu;
            }
        }
    }
    
    
//Randomize Array
    //shuffle($featured_articles);

    //Debug Messages
    
if($debug_modus)
    {
        echo 
'#articles - featured and databasepull ';
        
var_dump(count($featured_articles));
        
var_dump(count($database_articles));
    }

    
$output_bits '
    <link rel="stylesheet" href="' 
.$slider_img_filepath'nivo-slider.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="' 
.$slider_img_filepath'nivo-slider_uf_theme.css" type="text/css" media="screen" />
    <div style="height:' 
$maxheight 'px;">
    <div id="wrapper">
        <div class="slider-wrapper theme-uf">
            <div class="ribbon"></div>
            <div id="slider" class="nivoSlider">'
;
            
                foreach(
$featured_articles AS $article)
                {
                    
$output_bits .= $article['picture'];
                }
            
$output_bits .= '
            </div>'
;
            
            foreach(
$featured_articles AS $article)
            {
                
$output_bits .= '<div id="' $article['htmlcaptionname'] . '" class="nivo-html-caption">' $article['description'] .'</div>';
            }
            
            
$output_bits .= '         
        </div>

    </div>
    <script type="text/javascript" src="' 
.$slider_img_filepath'jquery-1.6.1.min.js"></script>
    <script type="text/javascript" src="' 
.$slider_img_filepath'jquery.nivo.slider.pack.js"></script>
    <script type="text/javascript">
    $(window).load(function() {
        $("#slider").nivoSlider();
    });
    </script>
    </div>
    '
;
        
$output $output_bits;
 
if(
$debug_modus === false)
{
    
ob_end_clean();        



Elenna 08-15-2012 01:35 AM

Arg, I'm not sure what I did! I have two sites, a test site and a live site (which we are getting ready to launch).

Now the Test site was an upgrade from a 4.1 board, but Live site is a fresh 4.2 install. They are using the same hosting company and both using the php.ini and php5.ini.

On my Test site things are working great. On Live, I'm getting the dreaded "Blank Box", with no images and no article text. The arrows show up and when using the Inspect Element (in Chrome) I see the script "running" and trying to switch between things.

Images are not being saved to the directory, and the fallback image isn't being used.

I triple-checked and the files and code are the exact same between my test and live sites.

My CMS permissions are the same (allow guests to download attachments). I re-copied the "no background" template.

My file permissions are the same between sites, and I'm not referencing the test site in any way.

The source code on my Test site references one jQuery line from Google, but that isn't interfering with the Test site. For kicks I copied the line into Live, and it still didn't work.

PROBLEM FIXED - please see my next post.

Elenna 08-15-2012 05:38 PM

I found and fixed my issue!! After running various queries based on the code, I figured out that it only shows articles with a Publish Date of the last 12-13 months. Since we are still building our Live site, we were testing with a few older articles, with Publish Dates in 2010.

Once I changed the dates to something more recent - voila! I have a slider. :)

Hope this helps someone else some day.

bintoro 08-22-2012 12:23 PM

:( I give up after six month on how to figure out slider in cms. Uninstalled and thanks.

DemoVFW 08-28-2012 09:37 PM

Can anyone make this work for 4.2? It's exactly what I need. I'll pay for help. PM me if interested. Thanks.

basilrath 08-28-2012 09:53 PM

use the vf coders slide its effective

DemoVFW 08-29-2012 01:40 AM

Quote:

Originally Posted by basilrath (Post 2360811)
use the vf coders slide its effective

Thanks for the suggestion, but I really prefer the look of this one. Thanks though.


All times are GMT. The time now is 07:07 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01834 seconds
  • Memory Usage 1,931KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete