Hoy fúe un día de mucho trabajo. Por lo mismo quede con las ganas de seguir tecleando en la noche.

Hacía tiempo que quería hacerle algunas modificaciones (si es que no migrar) mi weblog. Recordaba que tenía la posibilidad de extender la classe, para luego integrarla con un @REF@ref@.

Lo primero que se me ocurrió: contar las entradas. Deinyer! deinyer! que es código trasnochado y áltamente tóxico y muy poco probado!.

class LocalWeblog extends Weblog
  function subst_local($eid)
  {
    $q = $this->dbquery("SELECT
    comments.eid as eid, COUNT(comments.eid) AS howmany
    FROM entries
    RIGHT JOIN comments
    ON entries.eid = comments.eid
    GROUP BY entries.eid");
    while ($r = $this->dbfetch($q)) {
      foreach($r as $k => $v)
      {
        $this->$k = $v;
      }
      if ($this->articulo[eid] == $this->eid) {
        return "$this->howmany ";
      }
    }
  }

Luego lo llamo desde mi weblog como 4REF4eid4 y listoco, me muestra el conteo de comentarios para el eid.

Un detalle, declaro $this->articulo[eid] en la función print_entries() de weblog.inc

function print_entries($format, $r, $rows, $sep)
  {
    $af = $this->getvar($format);
    for ($i=0; $i<$rows; $i++) {
    $arr = $this->dbfetch($r);
    #
    # pichicate extra, recupero el valor de eid
    #
    $this->articulo[eid] = $arr[eid];
    echo $this->subst_tokens($af, $arr) . "
";
    echo $sep;
  }
}

Y ahora si, el constructor lo cambiamos de Weblog a LocalWeblog (la nueva clase extendida que hereda a Weblog) y listo.

Ahora estoy trabajando en incorporar el feisimo hack de los comentarios dentro de weblog. Alguna idea?.