The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
United-Forum Nivo Slider Widget Details »» | ||||||||||||||||||||||||||||||||
Based on the Nivo Slider - all credit for slider awesomeness goes to them.
vB4 implementation goes to me. What it is: A slider for cms articles, it gets the articles via database, uses (if possible) the previewimage there and resizes it to slider size *update 1.1.0 cropping function included. Livedemo on a Big Board (>2.000.000 posts) the nivo slider on our site is customized to fit our heavily customized cms. Default look of this addon is shown in the picture below facts about the nivo slider Quote:
Custom settings: Support:
Slider not working. No idea why?
The widget here is completely free. No charge, no branding. But, we do not mind donations either. If you want to give us something. Since we are advertising free and fan based we are happy about every small donation. ( On Forumhome bottom right paypal button: http://www.united-forum.de/forum.php ) That's all Hope it works for you. Regards Mooff Download Now
Screenshots
Supporters / CoAuthors Show Your Support
|
13 благодарности(ей) от: | ||
AaronMiller, Aramist, doctorsexy, Gemma, LOGECT, mitch84, nacaruncr, owning_y0u, RaSa, Sage Knight, The Rocketeer, YkudzA |
Comments |
#212
|
|||
|
|||
ok... maybe i missed something but i tried to have two instances of the slider
(nb. as you told me in my previuos help request i changed the part of code about the selection.. i jut need articles by date) so 1) i create a second widget 2) edited the widget (changes also the the DIV id, the .css path and also doubled the .js file trying to have 2 indipendent things) at this point everything was fine, i had 2 sliders on the same page, each with a different .css customization but obviously i wanted them to be linked to 2 different CMS sections, so i added the code AND.. to the SELECT, and the correct section ids and ... that didn't wok, it seems some kind of conflict issue (if i remove one slider the other works correctly) .. the problem is: the second slider (say they are in the navbar, so the first on the top with section'a' set and the second right under with the section 'b') get "confused" mixing the articles of the sections a and b (precisely:it shows the only article of section 'a' and the first one of section 'b' which has 2 articles).. i think could be related to the result of the first SELECT, maybe if it possibile to have the second select starting from zero.. i event ried to rename all the variables but the result is still the same any help? thanks for your support |
#214
|
|||
|
|||
Thanks for this great addon.
I ve read several QA here and still I cant find why the slider displays only default uploaded image. Permissions and path checked and rechecked.. The attachments are not transformed into png btw.. Any ideas ? |
#215
|
|||
|
|||
@YkudzA
Great to see you too. Big thanks for the donation. @zairafusco Can you link me to your site where the sliders are installed? As a guess i would say you are using the same folder for both sliders and therefore it does overwrite the pictures. Can you confirm that the captions and descriptions are correct and the images are not? If that is the case i have two solutions for you: a) use different folders b) use this (browser cache issue) fix: https://vborg.vbsupport.ru/showpost....&postcount=195 @w3rk3d I don't see a page load slowdown on our site. Since we are into page speed a lot (see the sprite addon) i'm very curious where that problem might come from. If it really is the nivo slider framework we will switch the engine. But as of right now i can't reproduce that behaviour and in addition the nivo slider is used a lot on the internet, so i would assume their support forum beeing flooded if it does affect loading times. @sensimilla Please check the last FAQ question and send me the debug. @apaydin2148 you need to have the suite and cms active, then in the acp it's in the cms->widget->new_widget section |
#216
|
|||
|
|||
Thanks for your fast response.. it says
Code:
DEBUG MODE is ON! slider_img_filepath: /var/www/sites/stylwolny.pl/public/slider/ width: 500 height: 250 show_articles_without_image: bool(false) fallback_img: /var/www/sites/stylwolny.pl/public/slider/uf_fallback_slider.png #img: 5 description_length: 95 directory /var/www/sites/stylwolny.pl/public Error occurred: imagejpeg failed. http://www.stylwolny.pl/slider/palikotvsholdys.png directory: /var/www/sites/stylwolny.pl/public/var/www/sites/stylwolny.pl/public/slider/slide_0.jpg#articles - featured and databasepull int(1) int(1) |
#217
|
|||
|
|||
change
$slider_img_filepath: '/var/www/sites/stylwolny.pl/public/slider/'; to $slider_img_filepath: 'slider/' ; |
#218
|
|||
|
|||
@Moof
i followed your hint about different folders..it's almost ok but... i added also (trying everything) a static slider (slider 3) and now slider 1 and slider 2 (dynamic) are linked to the right sections but instead of articles text they both get the static text of slider 3.. if i remove slider 3 i have the same problem.. the sliders show both the same text (slider 1 articles) NB. but the link to the article is correct (clicking on the image thoug, the caption show only the slider 3 href) link: www.dogmylife.com/beta thank you not only for your mod but for the great support (and fast!) HERE THE CODE OF SLIDER 1 //////////////////////////////////////////////////////////////////////////////////////////////////////////SLIDER 1 // 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 = 'nivo1/'; //picture width and height !same as in the CSS FILE! $maxwidth = 300; $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 . 'uf_fallback_slider.png'; //hardcoded maximum is 20 - if you want more just ask $number_of_articles_shown = 5; //lengh in characters of the article descriptions $description_length = 95; //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 "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) .' AND node.parentnode IN ( 125) 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'] = ( 5 - ($time - $article['publishdate'] ) / 86400 ) * ( 5 - ($time - $article['publishdate'] ) / 86400 ) * ( 5 - ($time - $article['publishdate'] ) / 86400 ) + (10 * $article['replycount']); $database_articles[] = $article; } foreach($database_articles as $c => $key) { $sort_value[] = $key['value']; } array_multisort($sort_value, SORT_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) { //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'] ) { $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. $article['previewimage'] = $fallback_img; echo '<span style="color:red">Error occurred:</span> imagecreation failed. ' . $article['previewimage']. '<br />'; } else { $img_width = $imageinfo[0]; $img_height = $imageinfo[1]; imagecopyresampled($sprite, $image, 0, 0, 0, 0, $maxwidth, $maxheight, $img_width, $img_height ); imagedestroy($image); $img_filepath = $slider_img_filepath . 'slide_' . $i . '.jpg'; $success = imagejpeg($sprite, DIR . ($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. $article['previewimage'] = $fallback_img; echo '<span style="color:red">Error occurred:</span> picture is not readable.' . $article['previewimage']. '<br /> '; } } else { //resiziing did not work - we are using the fallback image. $article['previewimage'] = $fallback_img; echo '<span style="color:red">Warning:</span> article has no previewimage or sprite is no ressource. ' . $article['previewimage']. '<br />'; } /*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'], true, true, false, true, false); $article['previewtext'] = strip_tags($article['pagetext'], '<a>'); $len = $description_length; if ( strlen($article['previewtext']) > $len ) { $article['previewtext'] = substr( $article['previewtext'] , 0 , strrpos( substr( $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> <p style="text-align:right"><a href="content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '">Leggi tutto</a></p>'; $article_neu['htmlcaptionname'] = 'htmlcaption' . $i ; $article_neu['picture'] = '<a href="content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '"><img src="'.$article['previewimage'].'" alt="" title="#htmlcaption'. $i . '" /></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="slider1" 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() { $("#slider1").nivoSlider(); }); </script> </div> '; $output = $output_bits; if($debug_modus === false) { ob_end_clean(); } |
#219
|
|||
|
|||
//////////////////////////////////////////////////////////////////////////////////////////////////////////SLIDER 2
// 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 = 'nivo2/'; //picture width and height !same as in the CSS FILE! $maxwidth = 300; $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 . 'uf_fallback_slider.png'; //hardcoded maximum is 20 - if you want more just ask $number_of_articles_shown = 5; //lengh in characters of the article descriptions $description_length = 95; //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 "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) .' AND node.parentnode IN ( 129) 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'] = ( 5 - ($time - $article['publishdate'] ) / 86400 ) * ( 5 - ($time - $article['publishdate'] ) / 86400 ) * ( 5 - ($time - $article['publishdate'] ) / 86400 ) + (10 * $article['replycount']); $database_articles[] = $article; } foreach($database_articles as $c => $key) { $sort_value[] = $key['value']; } array_multisort($sort_value, SORT_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) { //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'] ) { $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. $article['previewimage'] = $fallback_img; echo '<span style="color:red">Error occurred:</span> imagecreation failed. ' . $article['previewimage']. '<br />'; } else { $img_width = $imageinfo[0]; $img_height = $imageinfo[1]; imagecopyresampled($sprite, $image, 0, 0, 0, 0, $maxwidth, $maxheight, $img_width, $img_height ); imagedestroy($image); $img_filepath = $slider_img_filepath . 'slide_' . $i . '.jpg'; $success = imagejpeg($sprite, DIR . ($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. $article['previewimage'] = $fallback_img; echo '<span style="color:red">Error occurred:</span> picture is not readable.' . $article['previewimage']. '<br /> '; } } else { //resiziing did not work - we are using the fallback image. $article['previewimage'] = $fallback_img; echo '<span style="color:red">Warning:</span> article has no previewimage or sprite is no ressource. ' . $article['previewimage']. '<br />'; } /*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'], true, true, false, true, false); $article['previewtext'] = strip_tags($article['pagetext'], '<a>'); $len = $description_length; if ( strlen($article['previewtext']) > $len ) { $article['previewtext'] = substr( $article['previewtext'] , 0 , strrpos( substr( $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> <p style="text-align:right"><a href="content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '">Leggi tutto</a></p>'; $article_neu['htmlcaptionname'] = 'htmlcaption' . $i ; $article_neu['picture'] = '<a href="content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '"><img src="'.$article['previewimage'].'" alt="" title="#htmlcaption'. $i . '" /></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="slider2" 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() { $("#slider2").nivoSlider(); }); </script> </div> '; $output = $output_bits; if($debug_modus === false) { ob_end_clean(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////SLIDER 3 <link rel="stylesheet" href="nivo3/nivo-slider.css" type="text/css" media="screen" /> <link rel="stylesheet" href="nivo3/nivo-slider_uf_theme.css" type="text/css" media="screen" /> <div style="height:250px;"> <div id="wrapper"> <div class="slider-wrapper theme-uf"> <div class="ribbon"></div> <div id="slider3" class="nivoSlider"> <a href="http://consortium.stormspire.net"><img src="bgheader/bgheader1.jpg" alt="" title="#htmlcaption1" /></a> <a href="http://consortium.stormspire.net"><img src="bgheader/bgheader2" alt="" title="#htmlcaption2" /></a> </div> <div id="htmlcaption1" class="nivo-html-caption"> <b>First slide..</b> </ br> testing.. <a href="http://consortium.stormspire.net">read more</a> <div id="htmlcaption2" class="nivo-html-caption"> <b>Second slide..</b> </ br> testing.. <a href="http://consortium.stormspire.net">read more</a> </div> </div> </div> <script type="text/javascript" src="' nivo3/'jquery-1.6.1.min.js"></script> <script type="text/javascript" src="nivo3/jquery.nivo.slider.pack.js"></script> <script type="text/javascript"> $(window).load(function() { $("#slider3").nivoSlider(); }); </script> </div> |
#220
|
|||
|
|||
I think this is the problem:
Code:
<div id="htmlcaption1" class="nivo-html-caption"> <b>First slide..</b> </ br> testing.. <a href="http://consortium.stormspire.net">read more</a> Please try this: replace Code:
$article_neu['htmlcaptionname'] = 'htmlcaption' . $i ; $article_neu['picture'] = '<a href="/content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '"><img src="'.$article['previewimage'].'" alt="" title="#htmlcaption'. $i . '" /></a>'; Code:
$article_neu['htmlcaptionname'] = 'htmlcaption' . $article['nodeid'] ; $article_neu['picture'] = '<a href="/content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '"><img src="'.$article['previewimage'].'" alt="" title="#'. $article_neu['htmlcaptionname'] . '" /></a>'; |
#221
|
|||
|
|||
@Moff
ok!!! you're great.. btw...what do you think about my customization? (i like it .it's still in progress) thank you again |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|