tintin74 |
08-11-2011 09:12 AM |
Great MOD! Thank you!
I've tried to develop a module for Vbadvanced CMPS but with no luck. I'm not a programmer. Does anyone could build this for us?
I think it's not so difficult for people with programming experience.
After building this I get this error:
Class 'vb_Types' not found
PHP Code:
<?php //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 = 'fp-slider/';
//picture width and height !same as in the CSS FILE! $maxwidth = 675; $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 . 'image.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;
$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'] = ( 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> <a rel="nofollow" href="/content.php?r=' . $article['nodeid'] . '-' . $article['url'] . '">Leggi Tutto...</a>'; $article_neu['htmlcaptionname'] = 'htmlcaption' . $i ; $article_neu['picture'] = '<a rel="nofollow" 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);
$output_bits = ' <link rel="stylesheet" href="' .$slider_img_filepath. 'slider.css" type="text/css" media="screen" /> <link rel="stylesheet" href="' .$slider_img_filepath. '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; echo "<table align='center'><tr>"; echo "<td>";
$tabhtml = "<div id=\"featured\"><ul class=\"ui-tabs-nav\">".$tabhtml."</ul>";
echo $tabhtml.$centerhtml."</div>"; echo "</td>"; echo "</table>";
?>
Thank You
|