1:<?php 2://clase que contiene a smarty 3:include_once('theme.php'); 4://PEAR::DB 5:include_once("DB.php"); 6: 7://parametros de conexión 8:define("TYPE","mysql"); 9:define("USER","root"); 10:define("PASSWORD","password"); 11:define("SERVER","localhost"); 12:define("DATABASE","smartytest"); 13: 14://idioma 15:define("LANG", "en"); 16://tema 17:define("THEME", "one"); 18: 19:$db = DB::connect(TYPE."://".USER.":".PASSWORD."@".SERVER."/".DATABASE); 20: 21:// verificar que se puede realizar la conexion, de otro modo termina el script 22:if (DB::isError($db)) { 23: die($db->getMessage()); 24:} 25: 26://modofetch por default 27:$db->setFetchMode(DB_FETCHMODE_ASSOC); 28: 29:$query = 'SELECT news_id, news_title FROM news'; 30:$result = $db->query($query); 31: 32:$entries = array(); 33: 34:while ($row = $result->fetchRow()) { 35: $entries[] = $row; 36:} 37: 38:if (DB::isError($db)) { 39: die($db->getMessage()); 40:} 41: 42:$theme = new Theme(THEME); 43: 44:$theme->setTemplate('menu'); 45:$theme->_smarty->assign('self', $_SERVER['PHP_SELF']); 46:$theme->_smarty->assign('entries', $entries); 47: 48://el menú es el mismo para cada caso de id 49:$menu = $theme->fetch(); 50: 51:$theme->setTemplate('index'); 52:$theme->_smarty->assign('menu', $menu); 53: 54://para la tabla 55:$theme->_smarty->assign('data',array(1,2,3,4,5,6,7,8,9)); 56:$theme->_smarty->assign('tr',array('bgcolor="#eeeeee"','bgcolor="#bbbbbb"')); 57: 58://para los radio, checkboxes y el select 59:$theme->_smarty->assign('cust_options', array( 60: 1001 => 'Joe Schmoe', 61: 1002 => 'Jack Smith', 62: 1003 => 'Jane Johnson', 63: 1004 => 'Charlie Brown')); 64://id del dato preseleccionado 65:$theme->_smarty->assign('customer_id', 1003); 66: 67://si no existe en cache, traerlo desde la DB 68:if(!$theme->isCached($_GET['id'].THEME)){ 69: echo "<div style='background-color:cornflowerblue;'><p>tomando desde la base de datos</div>"; 70: //el id de la noticia 71: //funciona tambien para identificar el cache 72: if(isset($_GET['id'])){ 73: $query = "SELECT news_content FROM news WHERE news_id='".$_GET['id']."'"; 74: $result = $db->query($query); 75: $row = $result->fetchRow(); 76: $content = $row['news_content']; 77: 78: if (DB::isError($db)) { 79: die($db->getMessage()); 80: } 81: } 82: $theme->_smarty->assign('content', $content); 83:} 84: 85:$theme->display($_GET['id']); 86: 87:$db->disconnect(); 88:?>