View Full Version : Help with Templates
Adrian Schneider
07-08-2005, 05:46 PM
I'm working on a content management script right now and I'm having 2 problems...
First off the template is sent into the database along with updating the templatelist array in the style table, then a php file is created with the template to display set as the template created (cached too). For some reason the template doesn't want to display [blank page], it does however show up in the style manager.
The other problem is, when creating the PHP file any lines that were edited from the template php file lose their line breaks after the lines (such as:
$navbits[0] = "asdf";$navbits = construct_navbits($navbits);
eval('$CMSHTML = "' . fetch_template('CMS_asdf.php') . '";');eval('print_output("' . fetch_template('CMS_SHELL') . '");');
Does anyone have any idea how to fix either of these problems?
Thanks
Marco van Herwaarden
07-08-2005, 09:11 PM
Solution to all of this, seem to be the use of a decent text editor to me.
Adrian Schneider
07-08-2005, 09:16 PM
I think you misunderstood... I'll post the code for what I am referring to.
// ################################################## ######################
// Create CMS Page
elseif ($_POST['do'] == 'createfile')
{
globalize ($_POST, array(
'pagename' => STR_NOHTML,
'filename' => STR_NOHTML,
'body' => STR,
));
if(stristr($body, "<if") == TRUE)
{
$errormessage = "No template conditions are allowed here.";
eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
}
if ($filename == ".php")
{
$errormessage = "Sorry you must include a filename.";
eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
}
if (stristr($filename, ".php") == FALSE)
{
$errormessage = "Sorry you must create a php file.";
eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
}
$pagename = addslashes($pagename);
$body = addslashes($body);
$time = time();
$version = $vboptions['templateversion'];
$title = 'CMS_' . $filename;
$templatetype = 'template';
$styleid = 3;
// FILE CREATION
// Read File
$file = file("CMS_TEMPLATE.php");
// Settings
$counter = 0;
$newscriptname = $title;
$newtemplatename = $title;
$newscripttitle = $pagename;
$file[7] = "define('THIS_SCRIPT', '$newscriptname');";
$file[19] = " '$newtemplatename',";
$file[36] = "\$navbits[0] = \"$newscripttitle\";";
$file[41] = "eval('\$CMSHTML = \"' . fetch_template('$newtemplatename') . '\";');";
if (file_exists("$filename"))
{
$errormessage = "This file already exists.";
eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
}
else
{
$filea = fopen("$filename", 'w');
if (!$filea)
{
$errormessage = "Unable to open file for writing.";
eval('print_output("' . fetch_template('STANDARD_ERROR') . '");');
}
// Write File
foreach ($file as $line)
{
// Add Line
fputs($filea, $line);
}
fclose($filea);
chmod( dirname(__FILE__).'/'."$filename", 0777 );
}
// END FILE CREATION
// TEMPLATE CREATION
$createtemplate = $DB_site->query("
INSERT INTO template
(styleid, title, template, template_un, templatetype, dateline, username, version)
VALUES ('$styleid', '$title', '$body', '$body', '$templatetype', '$time', '$bbuserinfo[username]', '$version')
");
// Find it
$newtemp = $DB_site->query_first("
SELECT templateid
FROM template
WHERE title='$title'
");
// Create Array with New Template
$arraytomerge = array(
"$title" => $newtemp['templateid']
);
// Get Style Array
$style = $DB_site->query_first("
SELECT templatelist
FROM style
WHERE styleid=3
");
// Unserialize, Merge, Serialize
$stylearray = unserialize($style[templatelist]);
$newarray = array_merge($arraytomerge, $stylearray);
$newarray = addslashes(serialize($newarray));
// Update Style
$updatestyle = $DB_site->query("
UPDATE style
SET templatelist='$newarray'
WHERE styleid=3
");
// END TEMPLATE CREATION
// Redirect
$url = $filename;
eval(print_standard_redirect('redirecting'));
}
Whenever the template I inserted manually through this gets displayed, it is just a blank page. And the other problem is a result of creating the file this way (automatically), opposed to creating it by hand [which would defeat the purpose of using a CMS].
Andreas
07-08-2005, 09:59 PM
You are not compiling the Template ...
Adrian Schneider
07-08-2005, 10:38 PM
Compiling? Could you elaborate a bit please?
Andreas
07-08-2005, 10:48 PM
adminfunctions_template.php, especially compile_template()
Adrian Schneider
07-08-2005, 10:49 PM
Thanks I'll go take a look.
Hmm I still can't figure out why it won't work. I included that file and used that function on my template (because that is the only difference I could see). A lot of the code there looked like it was for template conditions (which I'm not going to use). Any more specific help would be greatly appreciated.
Adrian Schneider
07-10-2005, 03:11 AM
*Bump [damn doublepost automerge]
Read addition to last post.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.