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)

owning_y0u 09-20-2011 12:10 AM

installed, Thanx Pretty awsome addition way better then a previous mod i was using :-)
+like

GamersChallenge 09-20-2011 01:53 AM

Quote:

Originally Posted by Mooff (Post 2247666)
@GamersChallenge
In order to use the widget code on a test.php this test.php would have to have access to your vbulletin database. If you have the required files included on your test.php page just add (untested)
Code:

echo "$output";
at the end of the widget code and insert it into the test.php file. It should show up then.

@pmflav1
That FAQ question should help you out:

I dont understand,

this is test.php file.
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 'Terms of Service';



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

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

?>


this is test template:

PHP Code:

{vb:stylevar htmldoctype}
<
html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
  <
head>
    <
title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
    {
vb:raw headinclude}
    {
vb:raw headinclude_bottom}
  </
head>
  <
body>
    
    {
vb:raw header}
    
    {
vb:raw navbar}
    

    {
vb:raw footer}
  </
body>
</
html

whats next?

Mooff 09-20-2011 10:52 AM

Bottom of the article you just quoted:
https://vborg.vbsupport.ru/showthread.php?t=228112

Please see this article for help with rendering templates - [vB4] Rendering templates and registering variables - a short guide

In a nutshell:
a) insert the php code from the first post here
Code:

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'My Page Title';

b) register the variable $output
c) update your template so it does print the variable $output

Scalemotorcars 09-20-2011 04:07 PM

Moff, have you or do you know how to make this work without fopen. I'm not sure how to code it for curl.

My host doesn't like fopen so I'm looking for an alternative. Thanks.

GamersChallenge 09-21-2011 12:12 AM

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());

?>


Mooff 09-21-2011 09:39 AM

@Scalemotorcars
I haven't looked into it.
The options are:
- using fitting images as article images, which do not need to be resized (delete the resizing part then)
- resizing the images via CSS (might break the nivo slider transition effects, not sure about that one) - this also would mean deleting the resizing code
- cURL, which does involve reading through the cURL documentation or googleing for "replace fOpen via cURL"

@GamersChallenge
you can remove echo "$output"; since you are using the template system.
Then in the template you need to write {vb:raw output} somewhere, and that should be it.

GamersChallenge 09-22-2011 01:19 AM

Quote:

Originally Posted by Mooff (Post 2248515)
@Scalemotorcars
I haven't looked into it.
The options are:
- using fitting images as article images, which do not need to be resized (delete the resizing part then)
- resizing the images via CSS (might break the nivo slider transition effects, not sure about that one) - this also would mean deleting the resizing code
- cURL, which does involve reading through the cURL documentation or googleing for "replace fOpen via cURL"

@GamersChallenge
you can remove echo "$output"; since you are using the template system.
Then in the template you need to write {vb:raw output} somewhere, and that should be it.

I think I'm almost there. Getting this error now.

Fatal error: Class 'vb_Types' not found in /home/gamersch/public_html/test.php on line 91

this is line 91:
PHP Code:

$article_type vb_Types::instance()->getContentTypeID("vBCms_Article"); 


Mooff 09-22-2011 07:11 AM

Sorry for the question, but i kinda just have to ask: Do you have the vbcms?

Anyway, if you do i'm not exactly sure in which globalclass vb_Types is definded, just look into your database, i think the table is "contenttypes" and check which contenttypeid your articles have.
On our installation it would be
$article_type = 18;
could be different on yours though.

GamersChallenge 09-22-2011 09:22 AM

Quote:

Originally Posted by Mooff (Post 2248845)
Sorry for the question, but i kinda just have to ask: Do you have the vbcms?

Anyway, if you do i'm not exactly sure in which globalclass vb_Types is definded, just look into your database, i think the table is "contenttypes" and check which contenttypeid your articles have.
On our installation it would be
$article_type = 18;
could be different on yours though.

yes I have. I also have the slider working on my home page as a widget with the same code, I'll try yo look into what you said. thanx

Scalemotorcars 09-23-2011 01:56 AM

Thanks anyway Mooff, I ended up just going with the Content slider. The load times were dragging the homepage down horribly and my host was having an issue with Fopen.


All times are GMT. The time now is 10:06 AM.

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.01943 seconds
  • Memory Usage 1,949KB
  • 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
  • (2)bbcode_code_printable
  • (4)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)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