function ajouter_auteur_et_rediriger($type, $id, $id_auteur, $redirect) { $jointure = table_jointure('auteur', $type); if (preg_match(',^[a-z]*$,',$type)){ $res = sql_fetsel("id_$type", "spip_{$jointure}", "id_auteur=" . sql_quote($id_auteur) . " AND id_{$type}=" . $id); if (!$res) { sql_insertq("spip_{$jointure}", array('id_auteur' => $id_auteur, "id_$type" => $id)); } // Notifications, gestion des revisions, reindexation... pipeline('post_edition', array( 'args' => array( 'operation' => 'ajouter_auteur', 'table' => table_objet_sql($type), 'id_objet' => $id ), 'data' => null ) ); } if ($redirect) redirige_par_entete($redirect); }
function autoriser_iconifier_dist($faire,$quoi,$id,$qui,$opts){ // On reprend le code de l'ancien iconifier pour definir les autorisations pour les autres // objets SPIP. De ce fait meme de nouveaux objets bases sur cet algorithme peuvent continuer // a fonctionner. Cependant il est recommander de leur definir une autorisation specifique $table = table_objet_sql($quoi); $id_objet = id_table_objet($quoi); $row = sql_fetsel("id_rubrique, statut", $table, "$id_objet=$id"); $droit = autoriser('publierdans','rubrique',$row['id_rubrique']); if (!$droit AND ($row['statut'] == 'prepa' OR $row['statut'] == 'prop' OR $row['statut'] == 'poubelle')) { $jointure = table_jointure('auteur', 'article'); if ($droit = sql_fetsel("id_auteur", "spip_$jointure", "id_article=".sql_quote($id) . " AND id_auteur=$connect_id_auteur")) $droit = true; } return $droit; }
function afficher_auteurs_objet($type, $id, $edit, $cond, $script, $arg_ajax) { $from = table_jointure('auteur', $type); if (!$from) return '' ; // securite $from = "spip_{$from}"; $where = "id_{$type}=".sql_quote($id) . ($cond ? " AND $cond" : ''); $presenter_liste = charger_fonction('presenter_liste', 'inc'); $requete = array('SELECT' => "id_auteur", 'FROM' => $from, 'WHERE' => $where); $tmp_var = "editer_auteurs-$id"; $url = generer_url_ecrire('editer_auteurs',$arg_ajax); // charger ici meme si pas d'auteurs // car inc_formater_auteur peut aussi redefinir // determiner_non_auteurs qui sert plus loin if (!$formater = charger_fonction("formater_auteur_$type", 'inc',true)) $formater = charger_fonction('formater_auteur', 'inc'); $retirer = array(_T('lien_retirer_auteur')." ". http_img_pack('croix-rouge.gif', "X", " class='puce' style='vertical-align: bottom;'")); $styles = array(array('arial11', 14), array('arial2'), array('arial11'), array('arial11'), array('arial11'), array('arial1')); $tableau = array(); // ne sert pas $f = function_exists($edit) ? $edit : 'ajouter_auteur_un'; return $presenter_liste($requete, $f, $tableau, array($formater, $retirer, $arg_ajax, $edit, $id, $type, $script), false, $styles, $tmp_var, '','', $url); }