Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 08-16-2011, 11:08 PM
ipscone ipscone is offline
 
Join Date: Jul 2002
Posts: 38
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Disable Content Cashing Problem

RE: vB CMS 4.1.5

I read someone else with the problem. It was titled "Solved" but I didn't see the solution. Then it was reported as a but.

I have the same problem and not sure how to fix it. I have a Widget for, that uses Direct PHP. It works perfectly, if I set "Disable Content Caching" to "Yes". But works one time, if I set it to "No" then requires waiting a refresh interval, before it works again. If I refresh before the interval is up, the execution fails.

The code is for a Featured Photo Widget, for integrating PhotoPost into vB CMS 4.1.5 Front Page.

I'm really not sure there is any point in showing the code, since I know it works when content caching is disabled. But people always ask. Here is the code.

Code:
ob_start(); 

// I removed some particulars to the path in the line below, but it's set correctly in my code.
require '/path/to/photopost/config-int.php';

// I deleted some password stuff here

$link = mysql_connect ("$dbhost", "$dbuser", "$dbpass") or die('I cannot connect to the database.');
mysql_select_db ("$dbname")or die("Could not select photopost database");

// Number of photos to display
$num_display = 4;

// Number of columns (1 for vertical)
$columns = 4;

// which type of images do you want to show (random, most_view, latest)
$q_switch = "random";


// == END CONFIGURATION ==
////////////////////////////////////////////////////////////////////////////


function pp_get_ext( $filename )
{
    return substr($filename, strrpos($filename,"."));
}

function pp_get_filename($filename)
{
    return str_replace( pp_get_ext($filename), "", $filename );
}

function pp_is_image( $filename )
{
    $mediatypes = array( ".jpg", ".gif", ".png", ".bmp" );
    $ext = pp_get_ext( $filename );

    if ( in_array(strtolower($ext), $mediatypes) )
    {
        return( true );
    }

    return( false );
}

function pp_is_multimedia( $filename )
{
    $mediatypes = array( ".avi", ".mov", ".mpg", ".mpeg", ".swf", ".flv" );
    $ext = pp_get_ext( $filename );

    if ( in_array(strtolower($ext), $mediatypes) )
    {
        return( true );
    }

    return( false );
}

$resultc = mysql_query("SELECT setting FROM {$pp_db_prefix}settings WHERE id=133");
list( $seotype ) = mysql_fetch_row($resultc);

$resultd = mysql_query("SELECT setting FROM {$pp_db_prefix}settings WHERE id=6");
list( $data_full ) = mysql_fetch_row($resultd);
//
// Featured Photos Code
// Follow down to End Feature Photos Code
//

switch ($q_switch)
{
    case "most_view":
        $query = "SELECT p.id,p.user,p.userid,p.cat,p.bigimage,p.title,c.catname,c.photos,c.posts
                        FROM {$pp_db_prefix}photos p
                        LEFT JOIN {$pp_db_prefix}categories c ON c.id = p.cat
                        WHERE p.storecat = 0
	                ORDER BY views DESC";
        break;

    case "latest":
        $query = "SELECT p.id,p.user,p.userid,p.cat,p.bigimage,p.title,c.catname,c.photos,c.posts
                        FROM {$pp_db_prefix}photos p
                        LEFT JOIN {$pp_db_prefix}categories c ON c.id = p.cat
                        WHERE p.storecat = 0
                        ORDER BY date DESC";
        break;

    default:
        $query = "SELECT p.id,p.user,p.userid,p.cat,p.bigimage,p.title,c.catname,c.photos,c.posts
                        FROM {$pp_db_prefix}photos p
                        LEFT JOIN {$pp_db_prefix}categories c ON c.id = p.cat
                        WHERE p.storecat = 0
                        ORDER BY RAND()";
}
$result = mysql_query($query) or die(mysql_error());

$counted = 0;
$countcol = 0;
$pppro_imagebits = null;

while (list($pid,$puser,$puserid,$pcat,$photo,$ptitle,$catname,$cphotos,$cposts) = mysql_fetch_row($result))
{

    if ( pp_is_image($photo)|| pp_is_multimedia($photo) )
    {
	    if ( pp_is_image($photo) )
	    {
	        if ( $seotype == "seo" )
	        {
	            $plink = "<td><a href=\"{$url_path}/$catname/p{$pid}-{$ptitle}.html\"><img src=\"{$data_dir}/{$pcat}/thumbs/$photo\" border=\"0\" alt=\"\" /></a></td>";
	            $catlink = "<a href=\"{$url_path}/g{$pcat}-{$catname}.html\">$catname</a><br />";
	        }
	        else
	        {
	            $plink = "<td><a href=\"{$url_path}/showphoto.php?photo={$pid}\"><img src=\"{$data_dir}/{$pcat}/thumbs/$photo\" border=\"0\" alt=\"\" /></a></td>";
	            $catlink = "<a href=\"{$url_path}/showgallery.php?cat={$pcat}\">$catname</a><br />";
	        }
	    }

	    if ( pp_is_multimedia($photo) )
	    {
	        $filenoext = pp_get_filename( $photo );
	        $mmthumb = "{$data_dir}/$pcat/thumbs/$filenoext.jpg";
	        $dirthumb = "{$data_full}/$pcat/thumbs/$filenoext.jpg";

	        if ( !file_exists($dirthumb) )
	        {
	            $mmthumb = "{$url_path}/images/video.gif";
	        }

	        if ( $seotype == "seo" )
	        {
	            $plink = "<td><a href=\"{$url_path}/$catname/p{$pid}-{$ptitle}.html\"><img src=\"{$mmthumb}\" border=\"0\" alt=\"\" /></a></td>";
	            $catlink = "<a href=\"{$url_path}/g{$pcat}-{$catname}.html\">$catname</a><br />";
	        }
	        else
	        {
	            $plink = "<td><br /><a href=\"{$url_path}/showphoto.php?photo={$pid}\"><img src=\"{$mmthumb}\" border=\"0\" alt=\"\" /></a></td>";
	            $catlink = "<a href=\"{$url_path}/showgallery.php?cat={$pcat}\">$catname</a><br />";
	        }
	    }

// One box for each feature
$pppro_imagebits .= <<<PPPRINT
    <td align="left" class="alt1">
        <table cellpadding="0" cellspacing="0" border="0">
         <tr>
         $plink
         </tr>
        </table>
        <font size="1" face="verdana,arial">by {$puser}<br />
        ? ? ?<br />
        $catlink
        $cphotos photos<br />$cposts comments<br /></font>
    </td>
PPPRINT;

        $counted++;
        $countcol++;
    }

    // If we've reached our limit, quit
    if ( $counted == $num_display )
    {
        break;
    }

    // If we need to end the column, do so.
    if ( $countcol == $columns )
    {
$pppro_imagebits .= <<<PPPRINT
    </tr>
    <tr>
PPPRINT;

    $countcol = 0;
    }
}
@mysql_free_result($result);

$pppro_imagebits = '<table cellpadding="$stylevar[cellpadding]" cellspacing="1" border="0" width="100%">'.$pppro_imagebits.'</tr></table>';
print "$pppro_imagebits";

$output=ob_get_contents(); 
ob_end_clean();
Like I said, without "Disable Content Cashing" set to "Yes" the code doesn't work right.

It should display 4 photos, at the top of the Front Page. After 1 refresh, it displays 1 and the right page column drops and goes to the center. It's busted unless I disable content caching.

Is there a fix to this problem?
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:56 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03463 seconds
  • Memory Usage 2,327KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadedmode.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete