I will try not confuse anyone as much as I have myself.
If I purge the cache or refresh the templates I get one of either of these 2 error messages, if I refresh the page it just alternates between the 2.
Parse error: syntax error, unexpected '}' in /home/*****/public_html/bb/includes/template.php(175) : eval()'d code on line 36
Parse error: syntax error, unexpected '}' in /home/*****/public_html/bb/cache/tpl_prosilver_portal.portal_body.html.php on line 36
The first 2 pieces of code are the contents of the tpl_prosilver_portal.portal_body.html.php The first is a copy of what is in the ACP and the second is an old back up file that I have. I have even tried copying the code into the Internal ACP template file but I still keep getting the same error. The second is the code that I have to re-upload to my server whenever purge the cash.
The last piece of code is of my includes/template.php file
As I said previously it works as soon I re upload the back up
<?php /** * * @package phpBB3 * @version $Id: template.php,v 1.116 2007/10/04 12:02:03 acydburn Exp $ * @copyright (c) 2005 phpBB Group, sections (c) 2001 ispi of Lincoln Inc * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */
/** * @ignore */ if (!defined('IN_PHPBB')) { exit; }
/** * Base Template class. * @package phpBB3 */ class template { /** variable that holds all the data we'll be substituting into * the compiled templates. Takes form: * --> $this->_tpldata[block][iteration#][child][iteration#][child2][iteration#][variablename] == value * if it's a root-level variable, it'll be like this: * --> $this->_tpldata[.][0][varname] == value */ var $_tpldata = array('.' => array(0 => array())); var $_rootref;
// Root dir and hash of filenames for each template handle. var $root = ''; var $cachepath = ''; var $files = array(); var $filename = array();
// this will hash handle names to the compiled/uncompiled code for that handle. var $compiled_code = array();
/** * Set template location * @access public */ function set_template() { global $phpbb_root_path, $user;
/** * Set custom template location (able to use directory outside of phpBB) * @access public */ function set_custom_template($template_path, $template_name) { global $phpbb_root_path;
/** * Sets the template filenames for handles. $filename_array * should be a hash of handle => filename pairs. * @access public */ function set_filenames($filename_array) { if (!is_array($filename_array)) { return false; }
foreach ($filename_array as $handle => $filename) { if (empty($filename)) { trigger_error("template->set_filenames: Empty filename specified for $handle", E_USER_ERROR); }
/** * Display the handle and assign the output to a template variable or return the compiled result. * @access public */ function assign_display($handle, $template_var = '', $return_content = true, $include_once = false) { ob_start(); $this->display($handle, $include_once); $contents = ob_get_clean();
if ($return_content) { return $contents; }
$this->assign_var($template_var, $contents);
return true; }
/** * Load a compiled template if possible, if not, recompile it * @access private */ function _tpl_load(&$handle) { global $user, $phpEx, $config;
// Recompile page if the original template is newer, otherwise load the compiled version if (!$recompile) { return $filename; }
global $db, $phpbb_root_path;
if (!class_exists('template_compile')) { include($phpbb_root_path . 'includes/functions_template.' . $phpEx); }
$compile = new template_compile($this);
// If we don't have a file assigned to this handle, die. if (!isset($this->files[$handle])) { trigger_error("template->_tpl_load(): No file specified for handle $handle", E_USER_ERROR); }
// Just compile if no user object is present (happens within the installer) if (!$user) { $compile->_tpl_load_file($handle); return false; }
if (isset($user->theme['template_storedb']) && $user->theme['template_storedb']) { $sql = 'SELECT * FROM ' . STYLES_TEMPLATE_DATA_TABLE . ' WHERE template_id = ' . $user->theme['template_id'] . " AND (template_filename = '" . $db->sql_escape($this->filename[$handle]) . "' OR template_included " . $db->sql_like_expression($db->any_char . $this->filename[$handle] . ':' . $db->any_char) . ')'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result);
if ($row) { do { if ($row['template_mtime'] < filemtime($phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/' . $row['template_filename'])) { if ($row['template_filename'] == $this->filename[$handle]) { $compile->_tpl_load_file($handle); } else { $this->files[$row['template_filename']] = $this->root . '/' . $row['template_filename']; $compile->_tpl_load_file($row['template_filename']); unset($this->compiled_code[$row['template_filename']]); unset($this->files[$row['template_filename']]); unset($this->filename[$row['template_filename']]); } }
if ($row['template_filename'] == $this->filename[$handle]) { $this->compiled_code[$handle] = $compile->compile(trim($row['template_data'])); $compile->compile_write($handle, $this->compiled_code[$handle]); } else { // Only bother compiling if it doesn't already exist if (!file_exists($this->cachepath . str_replace('/', '.', $row['template_filename']) . '.' . $phpEx)) { $this->filename[$row['template_filename']] = $row['template_filename']; $compile->compile_write($row['template_filename'], $compile->compile(trim($row['template_data']))); unset($this->filename[$row['template_filename']]); } } } while ($row = $db->sql_fetchrow($result)); } else { // Try to load from filesystem and instruct to insert into the styles table... $compile->_tpl_load_file($handle, true); return false; } $db->sql_freeresult($result);
// Assign S_FIRST_ROW if (!$s_row_count) { $vararray['S_FIRST_ROW'] = true; }
// Now the tricky part, we always assign S_LAST_ROW and remove the entry before // This is much more clever than going through the complete template data on display (phew) $vararray['S_LAST_ROW'] = true; if ($s_row_count > 0) { unset($str[$blocks[$blockcount]][($s_row_count - 1)]['S_LAST_ROW']); }
// Now we add the block that we're actually assigning to. // We're adding a new iteration to this block with the given // variable assignments. $str[$blocks[$blockcount]][] = $vararray; } else { // Top-level block. $s_row_count = (isset($this->_tpldata[$blockname])) ? sizeof($this->_tpldata[$blockname]) : 0; $vararray['S_ROW_COUNT'] = $s_row_count;
// Assign S_FIRST_ROW if (!$s_row_count) { $vararray['S_FIRST_ROW'] = true; }
// We always assign S_LAST_ROW and remove the entry before $vararray['S_LAST_ROW'] = true; if ($s_row_count > 0) { unset($this->_tpldata[$blockname][($s_row_count - 1)]['S_LAST_ROW']); }
// Add a new iteration to this block with the variable assignments we were given. $this->_tpldata[$blockname][] = $vararray; }
return true; }
/** * Change already assigned key variable pair (one-dimensional - single loop entry) * * An example of how to use this function: * {@example alter_block_array.php} * * @param string $blockname the blockname, for example 'loop' * @param array $vararray the var array to insert/add or merge * @param mixed $key Key to search for * * array: KEY => VALUE [the key/value pair to search for within the loop to determine the correct position] * * int: Position [the position to change or insert at directly given] * * If key is false the position is set to 0 * If key is true the position is set to the last entry * * @param string $mode Mode to execute (valid modes are 'insert' and 'change') * * If insert, the vararray is inserted at the given position (position counting from zero). * If change, the current block gets merged with the vararray (resulting in new key/value pairs be added and existing keys be replaced by the new value). * * Since counting begins by zero, inserting at the last position will result in this array: array(vararray, last positioned array) * and inserting at position 1 will result in this array: array(first positioned array, vararray, following vars) * * @return bool false on error, true on success * @access public */ function alter_block_array($blockname, $vararray, $key = false, $mode = 'insert') { if (strpos($blockname, '.') !== false) { // Nested blocks are not supported return false; }
// Change key to zero (change first position) if false and to last position if true if ($key === false || $key === true) { $key = ($key === false) ? 0 : sizeof($this->_tpldata[$blockname]); }
// Get correct position if array given if (is_array($key)) { // Search array to get correct position list($search_key, $search_value) = @each($key);
// key/value pair not found if ($key === NULL) { return false; } }
// Insert Block if ($mode == 'insert') { // Make sure we are not exceeding the last iteration if ($key >= sizeof($this->_tpldata[$blockname])) { $key = sizeof($this->_tpldata[$blockname]); unset($this->_tpldata[$blockname][($key - 1)]['S_LAST_ROW']); $vararray['S_LAST_ROW'] = true; } else if ($key === 0) { unset($this->_tpldata[$blockname][0]['S_FIRST_ROW']); $vararray['S_FIRST_ROW'] = true; }
It seems the author of this mod is AWOL at the moment, but as I have a slight installation problem I thought Id give it a shot posting here in case someone have some advice.
I've completed all the installation steps up to running the install_portal.php file. After clicking the link I assume it starts the process but after a few minutes I get a CGI Timeout error message: The specified CGI application exceeded the allowed time for processing. The server has deleted the process.
I did a quick Google search and apparently IIS servers have a default timeout setting of 5 minutes. As I am on a hosted service, this isn't something I have immediate access to alter. Is there anyway to by pass this? Any lines in the installation (checkups or the like) that I can comment out to minimize the run time?
[Edit: Running installation on portal verion 1.2.2 on a phpbb 3.0.1]
Hums, if there's no solution to the above, is it possible to run the database queries directly in myphp? Or if that dosnt work, does anyone know if Stargate Portalhas a theme looking more like phpBB3 Portal? I'm after the "lighter" look.
I am locking this topic and archiving it. It doesn't seem to be supported by the mod author anymore, although the download is still active. Reason: inactive mod
Warning: Stay away from Deck 15 if you don't have security clearance level 6 or above! Unauthorized access is prohibited.