vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=4)
-   -   Embed PHP in Templates (https://vborg.vbsupport.ru/showthread.php?t=52775)

Dean C 05-11-2003 03:39 PM

N9ne - its called a ternary operator i believe ;)

I'm very interested to see how this develops as IMO i think we'll see a lot of PHP errors popping up now on vBulletin.org due to poor PHP coding in the templates :)

- miSt

filburt1 05-11-2003 04:45 PM

Quote:

Today at 05:29 AM N9ne said this in Post #6
Very nice filby! Is this efficient?
Theoretically it is only limited by the speed of the preg functions.

mx3 05-11-2003 04:54 PM

awesome! will install! i've been wanting this for awhile now!

all-the-vb 05-11-2003 07:45 PM

nice work


:) All-the-vb click install

filburt1 05-11-2003 09:04 PM

Pseudo-code of what it does:

1. Find every occurance of <? and ?> (and what's inbetween them)
2. For each occurance, make every variable within in the global scope, and then eval what's in the occurance
3. Remove the original occurances from the template.

grog6 05-11-2003 09:29 PM

And so, no need to modify PHP files to create new hack (even if I'll continue to modify the php files for my new hack, but this can be usefull for some modifications ;) )

[high]* grog6 cliks install too :)
[/high]
Thx for it Filburt

Chris M 05-12-2003 08:40 AM

Very nice filby;):)

Satna

mossyuk 05-12-2003 09:09 AM

Very nice, thanks! :bunny: :banana:

Slynderdale 05-13-2003 09:45 AM

nice hack, I fixed it slightly though to suit my needs:
PHP Code:

        if (substr_count($template,'?'.'>')>=or substr_count($template,'php?'.'>')>=or substr_count($template,'</php>')>=1) {
            while (
preg_match("/(\<\?php|\<\?|\<php\>)(\r\n)*(.*)(\r\n)*(php\?"."\>|\?"."\>|\<\/php\>)/siU"$template$matches)) {
                if (
$parse_phpcode) {
                    
preg_match_all("/\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/"$matches[3], $varnames);
                    
$varnames implode(", "$varnames[0]);
                    if (!empty(
$varnames)) {
                        @eval(
"global $varnames;");
                    }
                    
$eval_result = @eval(stripslashes($matches[3]));
                } else 
$eval_result "";
                
$template str_replace($matches[0], $eval_result$template);
            }
        } 

You can now use:
<? ?>
<?php php?>
<php></php>

and any combinations of them, such as:
<?php ?>

and so on.

Also now if you use return(stuff here); in the php script, it returns the data straight to the template itself. Like:
<?
$stuff = "stuff";
return $stuff;
?>

would return the $stuff varible right into the template for you.

kaotic 05-13-2003 11:20 AM

Odd... the following code doesn't seem to work:

Code:

<?
$default = "home";
if($page == ""){$page = $default;}elseif(isset($page)){$page = $page;}
?>
<?
include ("$page.html");
?>

What have I done wrong?


All times are GMT. The time now is 11:54 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.01014 seconds
  • Memory Usage 1,747KB
  • 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
  • (1)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (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