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

Reply
 
Thread Tools Display Modes
  #1  
Old 02-06-2006, 07:12 PM
Darth Cow's Avatar
Darth Cow Darth Cow is offline
 
Join Date: Nov 2001
Posts: 61
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Version specific PHP code?

This code works just fine on localhost, running PHP 5.0.5. On the live site, running PHP 4.3.2, I get the following error:

Parse error: parse error, expecting `T_VARIABLE' or `'$'' in /var/www/html/includes/class_bbcode.php(149) : eval()'d code on line 14

PHP Code:
// Deck tag plugin by Stephan Hoyer
// http://www.sccs.swarthmore.edu/users/08/hoyer/decktag/
//
// Title: Custom bbcode tag WYSIWYG fix
// This code is necessary so that when using the WYSIWYG editor to edit a post,
// vBulletin does not attempt to still show the HTML in the editor (as it does for
// simple [url] or [b] tags), but rather completely unparses the tags, returning
// the original tags around the contents of the post.
//
// vB3.5 hook location: bbcode_create

if (class_exists('vB_BbCodeParser_Wysiwyg') AND is_a($this'vB_BbCodeParser_Wysiwyg'))
{
    foreach (
$this->tag_list AS &$option)
    {
        foreach (
$option AS &$tag_name)
        {
            if (
$tag_name['callback'] == 'handle_external')
            {
                
$tag_name['callback'] = 'handle_wysiwyg_unparsable';
            }
        }
    }

Any ideas why this isn't working? Line 14 is the first foreach line, but it seems to be perfectly well formed. I'm pretty sure the live site and my localhost copy are the same in all other relevant respects.
Reply With Quote
  #2  
Old 02-06-2006, 07:20 PM
Trigunflame's Avatar
Trigunflame Trigunflame is offline
 
Join Date: Aug 2002
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I dont believe php 4 supports references in a foreach construct, which you shouldnt being using regardless.

The nature of foreach is to use a copy of an array and go through it key by key, if you want to operate on references, it would be better to use a for construct

$keys = count($array);
for ($i=0;$i<=$keys;$i++)
{
$option = &$array[$i];
}

and so on
Reply With Quote
  #3  
Old 02-06-2006, 08:17 PM
filburt1 filburt1 is offline
 
Join Date: Feb 2002
Location: Maryland, US
Posts: 6,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There's nothing wrong with using foreach in most cases. Passing damn near everything by reference introduces more opportunities to screw up the orignal data bacause you accidently modify one of the elements.

Knowing specifically what line 14 is would help.
Reply With Quote
  #4  
Old 02-06-2006, 09:52 PM
Trigunflame's Avatar
Trigunflame Trigunflame is offline
 
Join Date: Aug 2002
Posts: 742
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I was basing my reply to him on the knowledge of php4 object model specifically having problems with references in foreach constructs.

But you are right, nothing wrong with using foreach in most cases (cept large arrays where copying an array might cause excessive memory usage).
Reply With Quote
Reply


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 08:52 PM.


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.03478 seconds
  • Memory Usage 2,194KB
  • Queries Executed 13 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (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_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
  • 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