Thread: vBulletin CMS Widgets - United-Forum Nivo Slider Widget
View Single Post
  #475  
Old 09-03-2012, 10:32 AM
dormopoco dormopoco is offline
 
Join Date: May 2007
Posts: 53
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not Working whit vbulletin 4.2.0 can't open attachment error. My code is:

HTML 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 = 'clientscript/slider/';   

//picture width and height !same as in the CSS FILE!
$maxwidth = 470;                                  
$maxheight = 300;    

//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 = 10;                                
            
//lengh in characters of the article descriptions
$description_length = 95;

//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) .' AND
	    category.categoryid IN ( 54 )
        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)
            {
				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'] )
					{                   				
						$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, $image, 0, 0, 0, 0, $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);
										}										
									}
									$cropx = $new_height - $maxheight;
									$cropy = $new_width - $maxwidth;
									
									imagecopyresampled($sprite, $image, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height);
									imagedestroy($image);
									
								}
								
								
								$img_filepath = $slider_img_filepath . 'slide_' . $article['nodeid'] . '.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.
							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'], 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> <a href="/content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '">Leggi Altro</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({
        effect: "fade"
		});
    });
    </script>
    </div>
    ';
        $output = $output_bits;
 
if($debug_modus === false)
{
	ob_end_clean();        
}
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01340 seconds
  • Memory Usage 1,848KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_html
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete