jump to navigation

Inserció d’una pàgina a NWiki 16/04/2007

Posted by Albert in PFC.
trackback

La funcionalitat més complicada que necessitem per a l’API és la inserció de pàgines. Per poder-ho implementar cal saber dues coses: què cal modificar de la base de dades i quins permisos s’han de comprovar.

Per inserir una pàgina cal afegir un nova fila a la taula wiki_pages. Podem diferenciar dos casos: quan és una pàgina nova o s’està actualitzant una existent. En el segon cas alguns paràmetres s’obtindran a partir de l’última versió de la pàgina. Els atributs s’assignen de la manera següent:

  • pagename: el nom de la pàgina. S’han de tenir compte els sinònims, es pot mirar com ho fa la funció wiki_get_real_pagename.
  • version: si és una pàgina nova és 1, sinó s’incrementa l’última versió.
  • content: el contingut de la pàgina.
  • author: el nom de l’usuari.
  • userid: l’id de l’usuari.
  • created: l’hora actual si és una pàgina nova, sinó el mateix que l’última versió.
  • lastmodified: l’hora actual.
  • refs: llista dels enllaços, per obtenir-los es pot fer amb:
    $links = array();
    foreach/wki_sintax_find_internal_links($content) as $link) {
    $clink = wiki_clean_pagename($link);
    $content = str_replace($link, $clink, $content);
    $links[] = $link;
    }
    $res = wiki_internal_link_to_string($links);
  • hits: 0
  • editable: si és una pàgina nova, copiar el valor del camp editable de la instància de la wiki, sinó copiar-lo de l’última versió de la pàgina.
  • highlight: no assignar-lo, valor per defecte
  • dfwiki: id de l’instànca de la wiki on s’insereix la pàgina.
  • editor: nwiki.
  • groupid: si és una pàgina actualitzada el copiarem de l’última versió, sinó assignaerm l’id del grup de l’usuari, que es pot obtenir amb:
    SELECT g.id FROM group g, groups_members gm
    WHERE gm.userid = $userid AND g.courseid = $courseid AND gm.groupid = g.id
    Un usuari pot pertànyer a més d’un grup? Si és així hauríem de deixar a l’usuari triar el grup.
  • ownerid: l’id de l’usuari si és una pàgina nova, sinó el mateix de l’última versió de la pàgina.
  • evaluation: no s’assigna, valor per defecte.

Ara cal investigar sobre els permisos…

 

Comentaris»

No comments yet — be the first.