Thread: vBulletin CMS Widgets - United-Forum Nivo Slider Widget
View Single Post
  #266  
Old 09-21-2011, 12:12 AM
GamersChallenge GamersChallenge is offline
 
Join Date: Aug 2011
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

after spending hours reading all those tutorials I came up with this... what am I doing wrong?

PHP Code:
<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT''test');
define('CSRF_PROTECTION'true);  
// change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('test',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
// if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line
// chdir ('/path/to/your/forums');
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits construct_navbits(array('' => 'Terms of Service'));
$navbar render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle 'test';

// 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!
$maxwidth 620;                                  
$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 7;                                
            
//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 ( 163, 158 )
        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)
            {
            
                
//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$image0000$maxwidth$maxheight$img_width$img_height );
                            
imagedestroy($image);

                            
$img_filepath $slider_img_filepath 'slide_' $i '.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.
                        
$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'], 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' $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="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();        
}

echo 
"$output";



// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater vB_Template::create('test');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('output'$output);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());

?>
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02061 seconds
  • Memory Usage 2,001KB
  • 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_php
  • (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