/** * Function to output the templates * @param array $templates The collection of templates with their associated variables * */ function OutputPage($templates = array()) { if (sizeof($templates) == 0) { trigger_error("Templates not configured properly", E_USER_ERROR); } // Define a set of common variables which plugin to the structure template. $page = new Tpl(); $body = ''; // Loop through the templates array to dynamically create objects and assign variables to them. /// XXX: this is not a common way to use our template class, but I didn't want to rewrite /// the whole setup only to change the templating engine foreach ($templates as $name => $module) { foreach ($module['vars'] as $var_name => $value) { $page->assign($var_name, $value); } if ($name == 'structure') { $page->assign('body', $body); $page->display('structure.tpl'); } else { $body .= $page->fetch($module['template']); } } }
$upgrade_possible = true; foreach ($checks as $check => $result) { if ($result !== true) { $upgrade_possible = false; $page->assign('todo', $todo[$check]); break; } } if (isset($upgrade_info['options'])) { // piece of HTML which adds user input, quick and dirty*/ $page->assign('upgrade_options', implode('', $upgrade_info['options'])); } $page->assign('index', APPLICATION_SETUP_INDEX); $page->uses('checks', 'fs', 'upgrade_possible'); $page->assign('installed_version', $installed_version); $page->display('upgrade.tpl'); // Functions for checking and fixing possible duplicate entries // in database for those tables that now have a unique index. function fix_duplicate_list_entries($doit = true) { global $db, $uplog; // Categories need a bit more thinking. A real life example from // my own database: A big project originally written (horrible!) // in VB6, that I ported to .NET -environment. Categories: // BackOfficer (main category) // -> Reports (subcategory - should be allowed) // BackOfficer.NET (main category) // -> Reports (subcategory - should be allowed) // -> Reports (I added a fake duplicate - should not be allowed) $sql = $db->Query('SELECT MIN(os_id) id, project_id, os_name FROM {list_os}