Coppermine Code Parsing Question Coppermine Code Parsing Question
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Coppermine Code Parsing Question

Started by Cron, January 18, 2006, 11:08:19 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Cron

One day as I was designing a new template I decided that life would be much easyer if I could run PHP script directly in my template. I tried using {custom_header} and {footer} tags but you can not use other Coppermine tags in those pages (e.g. {title}). So I decided that the best way to go was to directly enable PHP in my template. In order to do this I first changed this code in "functions.inc.php":

if (file_exists(TEMPLATE_FILE)) {
        $template_file = TEMPLATE_FILE;
        } elseif (file_exists($THEME_DIR . TEMPLATE_FILE)) {
            $template_file = $THEME_DIR . TEMPLATE_FILE;
        } else die("<b>Coppermine critical error</b>:<br />Unable to load template file ".TEMPLATE_FILE."!</b>");


to

// CHECK FOR .PHP EXTENTION
//GET THE TEMPLATE_FLIE NAME
list($ajs_file, $ajs_extention) = explode(".", TEMPLATE_FILE);
//CHECK FOR .PHP EXTENTION
$ajs_theme = (file_exists($THEME_DIR . $ajs_file . '.php')) ? $ajs_file . '.php' : TEMPLATE_FILE;
// FIND THE FILE
        if (file_exists($ajs_theme)) {
            $template_file = $ajs_theme;
        } elseif (file_exists($THEME_DIR . $ajs_theme)) {
            $template_file = $THEME_DIR . $ajs_theme;
        } else die("<b>Coppermine critical error</b>:<br />Unable to load template file ".$ajs_theme."!</b>");
// ALL DONE


This enabled me to change the extention for my template file from "template.html" to "template.php". However when I tried to run PHP script nothing happened. My guess is that it is due to the the way Coppermine parses the PHP code.

I was wondering where the code for this praser is located and what hooks it uses to tie in. Is there any way to turn it of? Is there any reason I shouldent try to turn it off?

Any help would be appreciated,

Cron
http://tokyocrew51.zaeat.com

Joachim Müller

http://coppermine-gallery.net/demo/cpg14x/docs/faq.htm#renameTemplateHtml

Quote from: Cron on January 18, 2006, 11:08:19 AM
Is there any reason I shouldent try to turn it off?
Yes, plenty of them, explained in many postings already. Dynamic stiff should go into theme.php, that's what it was deigned for.

Cron

I managed to enable it by changing

$template = fread(fopen($template_file, 'r'), filesize($template_file));

to

//$template = fread(fopen($template_file, 'r'), filesize($template_file));
ob_start();                     // Start output buffering
include ($template_file);       // Parsed file goes to buffer
$template = ob_get_contents();  // Assign buffer to $template
ob_end_clean();                 // Clear buffer and turn off output buffering


in my  functions.inc.php


I have previously tried doing it via my theme.php but It was much easyer to do it this way concidering the VOLUME of php I have.