id = intval($templateid); } function getID() { return intval($this->id); } // (static) function createFromName($name) { return new TEMPLATE(TEMPLATE::getIdFromName($name)); } // (static) function getIdFromName($name) { $query = 'SELECT tdnumber' . ' FROM '.sql_table('template_desc') . ' WHERE tdname="'.addslashes($name).'"'; $res = sql_query($query); $obj = sql_fetch_object($res); return $obj->tdnumber; } /** * Updates the general information about the template */ function updateGeneralInfo($name, $desc) { $query = 'UPDATE '.sql_table('template_desc').' SET' . " tdname='" . addslashes($name) . "'," . " tddesc='" . addslashes($desc) . "'" . " WHERE tdnumber=" . $this->getID(); sql_query($query); } /** * Updates the contents of one part of the template */ function update($type, $content) { $id = $this->getID(); // delete old thingie sql_query('DELETE FROM '.sql_table('template')." WHERE tpartname='". addslashes($type) ."' and tdesc=" . intval($id)); // write new thingie if ($content) { sql_query('INSERT INTO '.sql_table('template')." SET tcontent='" . addslashes($content) . "', tpartname='" . addslashes($type) . "', tdesc=" . intval($id)); } } /** * Deletes all template parts from the database */ function deleteAllParts() { sql_query('DELETE FROM '.sql_table('template').' WHERE tdesc='.$this->getID()); } /** * Creates a new template * * (static) */ function createNew($name, $desc) { global $manager; // global $CONF; if (!$manager && $CONF['installscript']) { include_once($DIR_LIBS . 'MANAGER.php'); $manager =& MANAGER::instance(); } // $manager->notify( 'PreAddTemplate', array( 'name' => &$name, 'description' => &$desc ) ); sql_query('INSERT INTO '.sql_table('template_desc')." (tdname, tddesc) VALUES ('" . addslashes($name) . "','" . addslashes($desc) . "')"); $newId = sql_insert_id(); $manager->notify( 'PostAddTemplate', array( 'templateid' => $newId, 'name' => $name, 'description' => $desc ) ); return $newId; } /** * Reads a template and returns an array with the parts. * (static) * * @param $name name of the template file */ function read($name) { global $manager; $manager->notify( 'PreTemplateRead', array( 'template' => &$name ) ); $query = 'SELECT tpartname, tcontent' . ' FROM '.sql_table('template_desc').', '.sql_table('template') . ' WHERE tdesc=tdnumber and tdname="' . addslashes($name) . '"'; $res = sql_query($query); while ($obj = sql_fetch_object($res)) $template[$obj->tpartname] = $obj->tcontent; // set locale according to template: if (isset($template['LOCALE'])) setlocale(LC_TIME,$template['LOCALE']); else setlocale(LC_TIME,''); return $template; } /** * fills a template with values * (static) * * @param $template * Template to be used * @param $values * Array of all the values */ function fill($template, $values) { if (sizeof($values) != 0) { // go through all the values for(reset($values); $key = key($values); next($values)) { $template = str_replace("<%$key%>",$values[$key],$template); } } // remove non matched template-tags return preg_replace('/<%[a-zA-Z]+%>/','',$template); } // returns true if there is a template with the given shortname // (static) function exists($name) { $r = sql_query('select * FROM '.sql_table('template_desc').' WHERE tdname="'.addslashes($name).'"'); return (sql_num_rows($r) != 0); } // returns true if there is a template with the given ID // (static) function existsID($id) { $r = sql_query('select * FROM '.sql_table('template_desc').' WHERE tdnumber='.intval($id)); return (sql_num_rows($r) != 0); } // (static) function getNameFromId($id) { return quickQuery('SELECT tdname as result FROM '.sql_table('template_desc').' WHERE tdnumber=' . intval($id)); } // (static) function getDesc($id) { $query = 'SELECT tddesc FROM '.sql_table('template_desc').' WHERE tdnumber='. intval($id); $res = sql_query($query); $obj = sql_fetch_object($res); return $obj->tddesc; } } ?>