vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   User defined PHP function in custom block (https://vborg.vbsupport.ru/showthread.php?t=297962)

dagg929 05-09-2013 04:03 AM

User defined PHP function in custom block
 
I've searched everywhere and I can't find a definitive answer to my question. I'm having trouble getting a user defined php function to execute inside of a custom block.

Code:

$my_output = 'Bad';
if(!function_exists('good'))
{
function good()
{
      $my_output = 'Good';   
}
}
good();
return $my_output;

This is just a test code I wrote to see if this was indeed my problem and it was. The output is always "Bad". Any suggestions to get this to work would be appreciated.

Also, do these same issues arise if I define the php code as a plugin? I haven't been able to get it to work that way either and I figured it would be better to define the code in the block anyways.

tbworld 05-09-2013 08:29 AM

Quote:

Originally Posted by dagg929 (Post 2420813)
I've searched everywhere and I can't find a definitive answer to my question. I'm having trouble getting a user defined php function to execute inside of a custom block.

Where are you currently installing your custom code? Typically custom code is installed via the Product/Plugin system.

kh99 05-09-2013 09:12 AM

You need to make sure $my_output is a global variable. You need a global statement inside the good() function, and you also may need one at the beginning of the plugin code, depending on the hook being used. So try something like:

Code:

global $my_output;
$my_output = 'Bad';
if(!function_exists('good'))
{
function good()
{
      global $my_output;
      $my_output = 'Good';   
}
}
good();
return $my_output;


ETA: or you could use a reference parameter or return a value from good(), but probably your actual code is different than the example you posted, so maybe that won't work.

dagg929 05-10-2013 02:28 AM

Thank you for the global suggestion I think that would solve part of the problem, but I don't think that was entirely the issue because I've tried returning straight from the function and it never executed.

I did solve my problem though, I just got rid of the function because it seems like too much of a hassle to try to work around. Was easier to just execute the code where needed.

To answer the first question, in a forum block. It's not a large chunk of code, but I needed to do a call to the database and some manipulating. The function was just for output formatting so I just scrapped it.


All times are GMT. The time now is 02:26 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.02126 seconds
  • Memory Usage 1,719KB
  • 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
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete