/** * Duplicata de la fonction disponible dans _core_/forum/urls * pour permettre l'utilisation du plugin urls_etendues avec spip 2.0 * A retirer a la release 2.1 * * @param <type> $id_forum * @param <type> $args * @param <type> $ancre * @return <type> */ function urls_generer_url_forum_dist($id_forum, $args='', $ancre='') { if ($id_forum = intval($id_forum)) { include_spip('inc/forum'); list($type, $id,) = racine_forum($id_forum); if ($type) { if (!$ancre) $ancre = "forum$id_forum"; return generer_url_entite($id, $type, $args, $ancre, true); } } return ''; }
function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt) { // si on fournit un id : deleguer a modererforum sur l'objet concerne if ($id) { include_spip('inc/forum'); if ($racine = racine_forum($id) and list($objet, $id_objet, ) = $racine and $objet) { return autoriser('modererforum', $objet, $id_objet); } } // sinon : admins uniquement return $qui['statut'] == '0minirezo'; // les admins restreints peuvent moderer leurs messages }
function racine_forum($id_forum){ if (!$id_forum = intval($id_forum)) return false; $row = sql_fetsel("id_parent, id_rubrique, id_article, id_breve, id_syndic, id_message, id_thread", "spip_forum", "id_forum=".$id_forum); if (!$row) return false; if ($row['id_parent'] AND $row['id_thread'] != $id_forum) // eviter boucle infinie return racine_forum($row['id_thread']); if ($row['id_message']) return array('message', $row['id_message'], $id_forum); if ($row['id_rubrique']) return array('rubrique', $row['id_rubrique'], $id_forum); if ($row['id_article']) return array('article', $row['id_article'], $id_forum); if ($row['id_breve']) return array('breve', $row['id_breve'], $id_forum); if ($row['id_syndic']) return array('site', $row['id_syndic'], $id_forum); // On ne devrait jamais arriver ici, mais prevoir des cas de forums // poses sur autre chose que les objets prevus... spip_log("erreur racine_forum $id_forum"); return array(); }
function racine_forum($id_forum) { if (!($id_forum = intval($id_forum))) { return false; } $row = sql_fetsel("id_parent, objet, id_objet, id_thread", "spip_forum", "id_forum=" . $id_forum); if (!$row) { return false; } if ($row['id_parent'] and $row['id_thread'] != $id_forum) { return racine_forum($row['id_thread']); } return array($row['objet'], $row['id_objet'], $id_forum); }