Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. <?php
  2. /*
  3. * Remplazar con autoload
  4. */
  5. require_once 'class/class.db.php';
  6. require_once 'class/class.entradas.php';
  7. require_once 'vendor/autoload.php';
  8. Twig_Autoloader::register();
  9.  
  10.  
  11. $_db = new Db('localhost', 'root', '', 'tgsm_ascm');
  12. $entradas = new Entradas( $_db );
  13. $arEntradas = $entradas->obtenerUltimasEntradas();
  14.  
  15.  
  16. $loader = new Twig_Loader_Filesystem('tpl/');
  17. $twig = new Twig_Environment($loader);
  18.  
  19. $template = $twig->loadTemplate('ctbaGrillaActividades.twig');
  20.  
  21. echo $template->render( array( 'arEntradas' => $arEntradas ) );
  22.  
  23. <?php
  24.  
  25. class Db
  26. {
  27. protected $db = NULL;
  28.  
  29. private $dbServidor,
  30. $dbUsuario,
  31. $dbClave,
  32. $dbNombre;
  33.  
  34. /*
  35. * Constructor
  36. * @args string $dbServidor
  37. * @args string $dbUsuario
  38. * @args string $dbClave
  39. * @args string $dbNombre
  40. * @return null
  41. */
  42. public function __construct( $dbServidor, $dbUsuario, $dbClave, $dbNombre )
  43. {
  44. $this->dbServidor = $dbServidor;
  45. $this->dbUsuario = $dbUsuario;
  46. $this->dbNombre = $dbNombre;
  47. $this->dbClave = $dbClave;
  48.  
  49. if( is_null( $this->db ) )
  50. {
  51. $this->conectar( $this->dbServidor, $this->dbUsuario, $this->dbClave, $this->dbNombre );
  52. }
  53. }
  54.  
  55.  
  56. /*
  57. * Conecta a la BD
  58. * @args string $dbServidor
  59. * @args string $dbUsuario
  60. * @args string $dbClave
  61. * @args string $dbNombre
  62. * @return null
  63. */
  64. public function conectar( $dbServidor="localhost", $dbUsuario="root", $dbClave="", $dbNombre="" )
  65. {
  66. $dsn = "mysql:dbname={$dbNombre};host={$dbServidor}";
  67.  
  68. try
  69. {
  70. $this->db = new PDO( $dsn, $dbUsuario, $dbClave );
  71. }
  72. catch ( PDOException $e )
  73. {
  74. echo 'Falló la conexión: ' . $e->getMessage();
  75. }
  76. }
  77.  
  78. /*
  79. * Desconecta de la DB
  80. * @return null
  81. */
  82. public function desconectar( )
  83. {
  84. $this->db = NULL;
  85. }
  86.  
  87. /*
  88. * Ejecuta una consulta directa
  89. * @args string $consulta
  90. * @args string $fetchOrFetchAll
  91. * @args string $placeHolder
  92. * @args string $retunrDataType
  93. */
  94. public function consultaDirecta( $consulta, $fetchOrFetchAll='fetch', $placeHolder='', $returnDataType=PDO::FETCH_ASSOC )
  95. {
  96. if( is_array( $placeHolder ) )
  97. {
  98. $p = $this->db->prepare( $consulta );
  99. $p->setFetchMode( $returnDataType );
  100.  
  101. if( $p->execute($placeHolder) ) {
  102. return ($fetchOrFetchAll=='fetch') ? $p->fetch() : $p->fetchAll();
  103. } else {
  104. return false;
  105. }
  106. }
  107. else
  108. {
  109. $p = $this->db->prepare( $consulta );
  110. $p->setFetchMode( $returnDataType );
  111. if( $p->execute() ) {
  112. return ($fetchOrFetchAll=='fetch') ? $p->fetch() : $p->fetchAll();
  113. } else {
  114. return false;
  115. }
  116. }
  117. }
  118. }?>
  119.  
  120. <?php
  121.  
  122. class Entradas
  123. {
  124. private $db = NULL;
  125.  
  126. public function __construct(Db $db)
  127. {
  128. $this->db = $db;
  129. }
  130.  
  131.  
  132.  
  133. public function obtenerUltimasEntradas()
  134. {
  135. $_sql = "SELECT ascm_entradas.ID,
  136. ascm_entradas.autor,
  137. ascm_entradas.titulo,
  138. ascm_entradas.leyenda,
  139. ascm_entradas.img_miniatura
  140. FROM
  141. ascm_entradas
  142. WHERE
  143. ascm_entradas.`status` = '2'
  144. ORDER BY
  145. ascm_entradas.ID DESC
  146. LIMIT 0, 15";
  147.  
  148. return $this->db->consultaDirecta( $_sql, 'fetchAll', '' );
  149. }
  150.  
  151.  
  152. /*
  153. * Debug
  154. * @return string
  155. */
  156. public function debug()
  157. {
  158. return print_r( $this->db );
  159. }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement