]> git.llucax.com Git - z.facultad/75.43/tp1.git/blobdiff - src/lib/Comentario.php
Bugfixing para el bug que reportó LLucax con respecto a que no se veian los temas...
[z.facultad/75.43/tp1.git] / src / lib / Comentario.php
index d0406a92aa9f3263a3b13b015451818b269b0934..9a412ef5548eb5035f3d8dbed724a4cbd396f945 100644 (file)
 <?php
-# vim: et sw=4 sts=4 binary noeol :
+// Grupo 10
+//
+// Lucarella, Schein, Arena
+//
+// Creado: Sebastian Arena
 
 require_once 'Item.php';
 
-/**
- * XXX detailed description
- *
- * @author    XXX
- * @copyright XXX
- */
 class Comentario extends Item
 {
-    // Attributes
-    // Associations
-    // Operations
+       var $id;
+    
+       /*Extra Data*/
+       var $autor_original;
+       var $autor_foto;
+       var $autor_apellido;
+    
+       var $comentarioCSVBaseConst = 'data/comentarios';
+       var $comentarioCSVConst = '';
+    /* 
+               Formato en Disco:
+                       id | autor | comentario | fecha
+       */
+
+       function Comentario($param, $pInfo_ID, $loadFromRecord) {
+               $this->comentarioCSVConst = $this->comentarioCSVBaseConst . "." . $pInfo_ID . ".csv";
+               if (!$loadFromRecord) {
+            if ($param) {
+                               $this->id = $param;
+                $this->reload();
+                       }
+               } else {
+                       $this->id                       = $param[0];
+                       $this->autor            = $param[1];
+            $this->texto               = $param[2];
+                       $this->fecha            = $param[3];
+               }
+    }
+
+       function reload() {
+               if (is_file($this->comentarioCSVConst)) {
+                       $record_info = fsearchcsv($this->comentarioCSVConst, $this->id);
+            if ($record_info) {
+                               $this->id                       = $param[0];
+                               $this->autor            = $param[1];
+                               $this->texto            = $param[2];
+                               $this->fecha            = $param[3];
+                       }
+               }
+       }
+
+       function saveNew() {
+               return fappendcsv($this->comentarioCSVConst, array( $this->id, $this->autor, $this->texto, $this->fecha ));
+       }
+
+       function saveExisting() {
+               if (($f = fopen($this->comentarioCSVConst, 'r')) == false) return false; // error
+               $index = 0;
+               $indexSave = 0;
+        while (!feof($f))
+               {
+                       $d = fgetcsv($f, 4096);
+                       $index++;
+                       if ($d[0] == $this->id)
+                       {
+                fclose($f);
+                               if (($f = fopen($this->comentarioCSVConst, 'r+')) == false) return false; // error
+                               while ($indexSave!=($index-1)) { fgetcsv($f, 4096); $indexSave++; }
+                fputcsv($f, array( $this->id, $this->autor, $this->texto, $this->fecha ));
+                               fclose($f);
+                               return true;
+                       }
+               }
+               fclose($f);
+               return false;
+       }
+
+       function saveLoadThis( $pId, $pInfo_ID, $pComentario, $pAutor ) {
+               $this->id                       = $pId;
+               $this->autor            = $pAutor;
+               $this->texto            = preg_replace('[\n|\r\n]','<br/>',$pComentario);
+               $this->fecha            = time();
+               $this->comentarioCSVConst = $this->comentarioCSVBaseConst . "." . $pInfo_ID . ".csv";
+       }
+
+    function ingresar( $pId, $pInfo_ID, $pComentario, $pAutor ) {
+               $this->saveLoadThis( $pId, $pInfo_ID, $pComentario, $pAutor );
+               $resultado = "";
+        if (!$this->saveNew()) {
+                       $resultado = "<strong>ERROR</strong> al agregar el comentario. Revise que los parametros sean los adecuados";
+                       file_log_add($pAutor,$resultado);
+        } else {
+                       file_log_add($pAutor,"Se agregó el comentario");
+               }
+               return $resultado;
+       }
+
+       function modificar( $pId, $pInfo_ID, $pComentario, $pAutor ) {
+               $this->saveLoadThis( $pId, $pInfo_ID, $pComentario, $pAutor );
+               $resultado = "";
+        if (!$this->saveExisting()) {
+                       $resultado = "<strong>ERROR</strong> al modificar el comentario. Revise que los parametros sean los adecuados";
+                       file_log_add($pAutor,$resultado);
+        } else {
+                       file_log_add($pAutor,"Se modificó el comentario");
+               }
+               return $resultado;
+       }
+
+       function toHTML() {
+        ?><tr>
+                       <?php
+                               if ($this->autor_original != $this->autor) {
+                       ?>
+                       <td><img src="<?php echo $this->autor_foto;?>" border="0" alt="icono usuario"/></td>
+                       <td><?php echo $this->autor_apellido;?></td><?php
+                               } else {
+                       ?>
+                       <td colspan="2"><?php echo $this->autor_original;?> (autor original)</td><?php
+                               }
+                       ?>
+            <td><?php echo $this->texto;?></td>
+                 </tr>
+               <?php
+       }
 }
 
 ?>
\ No newline at end of file