X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fexec%2Farticles.php;fp=www%2Fecrire%2Fexec%2Farticles.php;h=1172f6e0f23028bbb471cd6e75caed80211dccd7;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/exec/articles.php b/www/ecrire/exec/articles.php new file mode 100644 index 0000000..1172f6e --- /dev/null +++ b/www/ecrire/exec/articles.php @@ -0,0 +1,309 @@ +array('exec'=>'articles','id_article'=>$id_article),'data'=>'')); + + $row = sql_fetsel("*", "spip_articles", "id_article=$id_article"); + + if (!$row + OR !autoriser('voir', 'article', $id_article)) { + include_spip('inc/minipres'); + echo minipres(_T('public:aucun_article')); + } else { + $row['titre'] = sinon($row["titre"],_T('info_sans_titre')); + + $res = debut_gauche('accueil',true) + . articles_affiche($id_article, $row, _request('cherche_auteur'), _request('ids'), _request('cherche_mot'), _request('select_groupe'), _request('trad_err'), _request('debut')) + . "

" + . "
" + . fin_gauche(); + + $commencer_page = charger_fonction('commencer_page', 'inc'); + echo $commencer_page("« ". $row['titre'] ." »", "naviguer", "articles", $row['id_rubrique']); + + echo debut_grand_cadre(true), + afficher_hierarchie($row['id_rubrique'],_T('titre_cadre_interieur_rubrique'),$id_article,'article',$row['id_secteur'],($row['statut'] == 'publie')), + fin_grand_cadre(true), + $res, + fin_page(); + } +} + +// http://doc.spip.org/@articles_affiche +function articles_affiche($id_article, $row, $cherche_auteur, $ids, $cherche_mot, $select_groupe, $trad_err, $debut_forum=0, $statut_forum='prive') +{ + global $spip_lang_right, $dir_lang; + + $id_rubrique = $row['id_rubrique']; + $id_secteur = $row['id_secteur']; + $statut_article = $row['statut']; + $titre = $row["titre"]; + $surtitre = $row["surtitre"]; + $soustitre = $row["soustitre"]; + $descriptif = $row["descriptif"]; + $nom_site = $row["nom_site"]; + $url_site = $row["url_site"]; + $texte = $row["texte"]; + $ps = $row["ps"]; + $date = $row["date"]; + $date_redac = $row["date_redac"]; + $extra = $row["extra"]; + $id_trad = $row["id_trad"]; + + $virtuel = (strncmp($row["chapo"],'=',1)!==0) ? '' : + chapo_redirige(substr($row["chapo"], 1)); + + $statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique); + $flag_editable = autoriser('modifier', 'article', $id_article); + + // Est-ce que quelqu'un a deja ouvert l'article en edition ? + if ($flag_editable + AND $GLOBALS['meta']['articles_modif'] != 'non') { + include_spip('inc/drapeau_edition'); + $modif = mention_qui_edite($id_article, 'article'); + } else + $modif = array(); + + + // chargement prealable des fonctions produisant des formulaires + + $dater = charger_fonction('dater', 'inc'); + $editer_mots = charger_fonction('editer_mots', 'inc'); + $editer_auteurs = charger_fonction('editer_auteurs', 'inc'); + $referencer_traduction = charger_fonction('referencer_traduction', 'inc'); + $discuter = charger_fonction('discuter', 'inc'); + + $meme_rubrique = charger_fonction('meme_rubrique', 'inc'); + $iconifier = charger_fonction('iconifier', 'inc'); + $icone = $iconifier('id_article', $id_article,'articles', false, $flag_editable); + + $boite = pipeline ('boite_infos', array('data' => '', + 'args' => array( + 'type'=>'article', + 'id' => $id_article, + 'row' => $row + ) + )); + + $navigation = + debut_boite_info(true). $boite . fin_boite_info(true) + . $icone + . (_INTERFACE_ONGLETS?"":boites_de_config_articles($id_article)) + . ($flag_editable ? boite_article_virtuel($id_article, $virtuel):'') + . pipeline('affiche_gauche',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')); + + $extra = creer_colonne_droite('', true) + . $meme_rubrique($id_rubrique, $id_article, 'article') + . pipeline('affiche_droite',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')) + . debut_droite('',true); + + // affecter les globales dictant les regles de typographie de la langue + changer_typo($row['lang']); + + $actions = + ($flag_editable ? bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif",$spip_lang_right) : ""); + + $haut = + "
$actions
". + (_INTERFACE_ONGLETS?"":"" . typo($surtitre) . "\n") + . gros_titre($titre, '' , false) + . (_INTERFACE_ONGLETS?"":"" . typo($soustitre) . "\n"); + + $onglet_contenu = + afficher_corps_articles($id_article,$virtuel,$row) + . "
$actions
"; + + $onglet_proprietes = ((!_INTERFACE_ONGLETS) ? "" :"") + . $dater($id_article, $flag_editable, $statut_article, 'article', 'articles', $date, $date_redac) + . $editer_auteurs('article', $id_article, $flag_editable, $cherche_auteur, $ids) + . (!$editer_mots ? '' : $editer_mots('article', $id_article, $cherche_mot, $select_groupe, $flag_editable, false, 'articles')) + . (!$referencer_traduction ? '' : $referencer_traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err)) + . pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>'')) + . bouton_proposer_article($id_article,$statut_article) + ; + + $documenter_objet = charger_fonction('documenter_objet','inc'); + $onglet_documents = $documenter_objet($id_article,'article','articles',$flag_editable); + $onglet_interactivite = (_INTERFACE_ONGLETS?boites_de_config_articles($id_article):""); + + $onglet_discuter = !$statut_forum ? '' : ($discuter($id_article, 'articles', 'id_article', $statut_forum, $debut_forum)); + + + return + $navigation + . $extra + . pipeline('afficher_fiche_objet',array('args'=>array('type'=>'article','id'=>$id_article),'data'=> + "
" + . $haut + . afficher_onglets_pages( + array( + 'voir' => _T('onglet_contenu'), + 'props' => _T('onglet_proprietes'), + 'docs' => _T('onglet_documents'), + 'interactivite' => _T('onglet_interactivite'), + 'discuter' => _T('onglet_discuter')), + array( + 'props'=>$onglet_proprietes, + 'voir'=>$onglet_contenu, + 'docs'=>$onglet_documents, + 'interactivite'=>$onglet_interactivite, + 'discuter'=>_INTERFACE_ONGLETS?$onglet_discuter:"")) + . "
" + . (_INTERFACE_ONGLETS?"":$onglet_discuter) + )); +} + +// +// Boites de configuration avancee +// + +// http://doc.spip.org/@boites_de_config_articles +function boites_de_config_articles($id_article) +{ + if (autoriser('modererforum', 'article', $id_article)) { + $regler_moderation = charger_fonction('regler_moderation', 'inc'); + $regler = $regler_moderation($id_article,"articles","id_article=$id_article") . '
'; + } + + $petitionner = charger_fonction('petitionner', 'inc'); + $petition = $petitionner($id_article,"articles","id_article=$id_article"); + + $masque = $regler . $petition; + $masque = pipeline('afficher_config_objet',array('args'=>array('type'=>'article','id'=>$id_article),'data'=>$masque)); + + if (!$masque) return ''; + + $invite = "" + . _T('bouton_forum_petition') + . aide('confforums') + . ""; + + return + cadre_depliable("forum-interne-24.gif", + $invite, + true,//$visible = strstr($masque, '') + $masque, + 'forumpetition'); +} + +// http://doc.spip.org/@boite_article_virtuel +function boite_article_virtuel($id_article, $virtuel) +{ + if (!$virtuel + AND $GLOBALS['meta']['articles_redirection'] != 'oui') + return ''; + + $invite = '' + ._T('bouton_redirection') + . '' + . aide ("artvirt"); + + $virtualiser = charger_fonction('virtualiser', 'inc'); + + return cadre_depliable("site-24.gif", + $invite, + $virtuel, + $virtualiser($id_article, $virtuel, "articles", "id_article=$id_article"), + 'redirection'); +} + +// http://doc.spip.org/@bouton_modifier_articles +function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode, $ip, $im, $align='') +{ + if ($flag_modif) { + return icone_inline(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), $ip, $im, $align, false) + . "$mode" + . aide("artmodif"); + } + else return icone_inline(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), "article-24.gif", "edit.gif", $align); +} + +// http://doc.spip.org/@afficher_corps_articles +function afficher_corps_articles($id_article, $virtuel, $row) +{ + $res = ''; + if ($row['statut'] == 'prop') { + $res .= "

"._T('text_article_propose_publication'); + + if ($GLOBALS['meta']['forum_prive_objets'] != 'non') + $res .= ' '._T('text_article_propose_publication_forum'); + + $res.= "

"; + } + + if ($virtuel) { + $res .= debut_boite_info(true) + . "\n
" + . _T('info_renvoi_article') + . " " + . propre("[->$virtuel]") + . '
' + . fin_boite_info(true); + } + else { + $type = 'article'; + $contexte = array( + 'id'=>$id_article, + 'id_rubrique'=>$row['id_rubrique'], + 'id_secteur' => $row['id_secteur'] + ); + $fond = recuperer_fond("prive/contenu/$type",$contexte); + // permettre aux plugin de faire des modifs ou des ajouts + $fond = pipeline('afficher_contenu_objet', + array( + 'args'=>array( + 'type'=>$type, + 'id_objet'=>$id_article, + 'contexte'=>$contexte), + 'data'=> ($fond))); + + $res .= "
$fond
"; + } + return $res; +} + +function bouton_proposer_article($id_article,$statut_article){ + $ret = ""; + + if ($statut_article=='prepa' + AND $id_auteur = $GLOBALS["visiteur_session"]["id_auteur"] + AND $GLOBALS["visiteur_session"]["statut"] == "1comite" + AND autoriser('modifier', 'article', $id_article) + AND sql_fetsel("id_article", "spip_auteurs_articles", "id_article=".intval($id_article)." AND id_auteur=".intval($id_auteur))) { + $ret .= debut_cadre_relief("", true); + $ret .= "
"; + $ret .= "
"._T("texte_proposer_publication")."
"; + + $ret .= bouton_action(_T("bouton_demande_publication"), + generer_action_auteur('instituer_article', "$id_article-prop", self()), '', _T('confirm_changer_statut')); + + $ret .= "
"; + $ret .= fin_cadre_relief(true); + + } + return $ret; +} +?>