Browse Source

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

spip-3.1
cedric@yterium.com 7 years ago
parent
commit
3789b916aa
  1. 100
      action/editer_site.php
  2. 19
      action/exporter_bookmarks.php
  3. 117
      action/importer_bookmarks_netscape.php
  4. 105
      action/importer_bookmarks_opml.php
  5. 12
      action/instituer_syndic_article.php
  6. 10
      action/purger_site.php
  7. 13
      action/syndiquer_site.php
  8. 20
      balise/formulaire_site.php
  9. 169
      base/sites.php
  10. 48
      formulaires/configurer_sites.php
  11. 111
      formulaires/editer_site.php
  12. 15
      formulaires/editer_site_fonctions.php
  13. 23
      formulaires/exporter_sites.php
  14. 64
      formulaires/importer_sites.php
  15. 59
      formulaires/regler_moderation_site.php
  16. 35
      formulaires/site.php
  17. 141
      genie/syndic.php
  18. 215
      inc/feedfinder.php
  19. 71
      inc/site.php
  20. 408
      inc/syndic.php
  21. 12
      liens/implicite_site.php
  22. 11
      prive/objets/liste/syndic_articles_fonctions.php
  23. 13
      puce_statut/site.php
  24. 25
      sites_administrations.php
  25. 43
      sites_autoriser.php
  26. 12
      sites_fonctions.php
  27. 8
      sites_ieconfig.php
  28. 199
      sites_pipelines.php

100
action/editer_site.php

@ -12,11 +12,13 @@
/**
* Gestion de l'action editer__site et de l'API d'édition d'un site
*
*
* @package SPIP\Sites\Edition
*/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
@ -27,10 +29,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
* Si aucun identifiant n'est donné, on crée alors un nouvel article,
* à condition que la rubrique parente (id_rubrique) puisse être obtenue
* (avec _request(id_parent))
*
*
* @uses site_inserer()
* @uses site_modifier()
*
*
* @param null|int $arg
* Identifiant du site. En absence utilise l'argument
* de l'action sécurisée.
@ -39,27 +41,29 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
*/
function action_editer_site_dist($arg = null) {
if (is_null($arg)){
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
if (!$id_syndic = intval($arg)){
if (!$id_syndic = intval($arg)) {
$id_syndic = site_inserer(_request('id_parent'));
if ($logo = _request('logo')
AND $format_logo = _request('format_logo')) {
AND $format_logo = _request('format_logo')
) {
include_spip('inc/distant');
$logo = _DIR_RACINE . copie_locale($logo);
@rename($logo,_DIR_IMG . 'siteon'.$id_syndic.'.'.$format_logo);
@rename($logo, _DIR_IMG . 'siteon' . $id_syndic . '.' . $format_logo);
}
}
if (!$id_syndic)
return array(0,'');
if (!$id_syndic) {
return array(0, '');
}
$err = site_modifier($id_syndic);
return array($id_syndic,$err);
return array($id_syndic, $err);
}
@ -68,7 +72,7 @@ function action_editer_site_dist($arg = null) {
*
* @pipeline_appel pre_insertion
* @pipeline_appel post_insertion
*
*
* @param int $id_rubrique
* Identifiant de rubrique parente
* @param array|null $set
@ -82,23 +86,26 @@ function site_inserer($id_rubrique, $set = null) {
// Si id_rubrique vaut 0 ou n'est pas definie, creer le site
// dans la premiere rubrique racine
if (!$id_rubrique = intval($id_rubrique)) {
$id_rubrique = sql_getfetsel("id_rubrique", "spip_rubriques", "id_parent=0",'', '0+titre,titre', "1");
$id_rubrique = sql_getfetsel("id_rubrique", "spip_rubriques", "id_parent=0", '', '0+titre,titre', "1");
}
// Le secteur a la creation : c'est le secteur de la rubrique
$id_secteur = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=".intval($id_rubrique));
$id_secteur = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=" . intval($id_rubrique));
// eviter un null si la rubrique n'existe pas (rubrique -1 par exemple)
if (!$id_secteur)
if (!$id_secteur) {
$id_secteur = 0;
}
$champs = array(
'id_rubrique' => $id_rubrique,
'id_secteur' => $id_secteur,
'statut' => 'prop',
'date' => date('Y-m-d H:i:s'));
'date' => date('Y-m-d H:i:s')
);
if ($set)
if ($set) {
$champs = array_merge($champs, $set);
}
// Envoyer aux plugins
$champs = pipeline('pre_insertion',
@ -131,7 +138,7 @@ function site_inserer($id_rubrique, $set = null) {
*
* @uses objet_modifier_champs()
* @uses objet_instituer()
*
*
* @param int $id_syndic
* Identifiant du site à modifier
* @param array|null $set
@ -148,10 +155,17 @@ function site_modifier($id_syndic, $set = null) {
include_spip('inc/rubriques');
include_spip('inc/modifier');
$c = collecter_requests(
// white list
// white list
array(
'nom_site', 'url_site', 'descriptif', 'url_syndic', 'syndication',
'moderation','miroir','oubli','resume'
'nom_site',
'url_site',
'descriptif',
'url_syndic',
'syndication',
'moderation',
'miroir',
'oubli',
'resume'
),
// black list
array('statut', 'id_parent', 'date'),
@ -160,14 +174,16 @@ function site_modifier($id_syndic, $set = null) {
);
// resyndiquer si un element de syndication modifie
if ($t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic=".intval($id_syndic))){
foreach($t as $k=>$v)
if (isset($c[$k]) AND $v!=$c[$k])
if ($t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic=" . intval($id_syndic))) {
foreach ($t as $k => $v) {
if (isset($c[$k]) AND $v != $c[$k]) {
$resyndiquer = true;
}
}
}
// Si le site est publie, invalider les caches et demander sa reindexation
$t = sql_getfetsel("statut", "spip_syndic", "id_syndic=".intval($id_syndic));
$t = sql_getfetsel("statut", "spip_syndic", "id_syndic=" . intval($id_syndic));
$invalideur = $indexation = false;
if ($t == 'publie') {
$invalideur = "id='site/$id_syndic'";
@ -181,20 +197,22 @@ function site_modifier($id_syndic, $set = null) {
'invalideur' => $invalideur,
'indexation' => $indexation
),
$c))
$c)
) {
return $err;
}
if ($resyndiquer AND sql_getfetsel('syndication','spip_syndic',"id_syndic=".intval($id_syndic))!=='non') {
$syndiquer_site = charger_fonction('syndiquer_site','action');
if ($resyndiquer AND sql_getfetsel('syndication', 'spip_syndic', "id_syndic=" . intval($id_syndic)) !== 'non') {
$syndiquer_site = charger_fonction('syndiquer_site', 'action');
$syndiquer_site($id_syndic);
}
// Modification de statut, changement de rubrique ?
$c = collecter_requests(array('date', 'statut', 'id_parent'),array(),$set);
$c = collecter_requests(array('date', 'statut', 'id_parent'), array(), $set);
include_spip('action/editer_objet');
$err = objet_instituer('site',$id_syndic, $c);
$err = objet_instituer('site', $id_syndic, $c);
return $err;
}
@ -211,7 +229,7 @@ function site_modifier($id_syndic, $set = null) {
*
* @param int $id_rubrique
* @return int
**/
**/
function insert_syndic($id_rubrique) {
return site_inserer($id_rubrique);
}
@ -225,9 +243,9 @@ function insert_syndic($id_rubrique) {
* @param int $id_syndic
* @param array|bool $set
* @return string
**/
**/
function syndic_set($id_syndic, $set = false) {
return site_modifier($id_syndic,$set);
return site_modifier($id_syndic, $set);
}
/**
@ -239,9 +257,9 @@ function syndic_set($id_syndic, $set = false) {
* @param int $id_syndic
* @param array|bool $set
* @return string
**/
function revisions_sites($id_syndic, $set = false){
return site_modifier($id_syndic,$set);
**/
function revisions_sites($id_syndic, $set = false) {
return site_modifier($id_syndic, $set);
}
/**
@ -254,9 +272,11 @@ function revisions_sites($id_syndic, $set = false){
* @param array $c
* @param bool $calcul_rub
* @return string
**/
function instituer_syndic($id_syndic, $c, $calcul_rub = true){
**/
function instituer_syndic($id_syndic, $c, $calcul_rub = true) {
include_spip('action/editer_objet');
return objet_instituer('site',$id_syndic, $c, $calcul_rub);
return objet_instituer('site', $id_syndic, $c, $calcul_rub);
}
?>

19
action/exporter_bookmarks.php

@ -10,20 +10,22 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
function action_exporter_bookmarks_dist($arg = null){
function action_exporter_bookmarks_dist($arg = null) {
if (is_null($arg)){
if (is_null($arg)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
if (autoriser('exporter','_sites')){
list($id_parent,$exporter_publie_seulement,$exporter_avec_mots_cles) = explode("-",$arg);
$statut = ($exporter_publie_seulement?array('publie'):array('prop','publie'));
if (autoriser('exporter', '_sites')) {
list($id_parent, $exporter_publie_seulement, $exporter_avec_mots_cles) = explode("-", $arg);
$statut = ($exporter_publie_seulement ? array('publie') : array('prop', 'publie'));
$f = "bookmarks-".date('Y-m-d').".html";
$f = "bookmarks-" . date('Y-m-d') . ".html";
header('Content-Type: text/html');
header("Content-Disposition: attachment; filename=\"$f\";");
header("Content-Transfer-Encoding: 8bit");
@ -32,6 +34,7 @@ function action_exporter_bookmarks_dist($arg = null){
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
echo recuperer_fond("prive/transmettre/bookmarks",array('statut'=>$statut,'id_parent'=>intval($id_parent),'tags'=>$exporter_avec_mots_cles));
echo recuperer_fond("prive/transmettre/bookmarks",
array('statut' => $statut, 'id_parent' => intval($id_parent), 'tags' => $exporter_avec_mots_cles));
}
}

117
action/importer_bookmarks_netscape.php

@ -10,119 +10,130 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
function action_importer_bookmarks_netscape_dist($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags){
function action_importer_bookmarks_netscape_dist($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags) {
$nb = 0;
if (autoriser('importer','_sites')){
if (autoriser('importer', '_sites')) {
$out = bookmarks_netscape_fast_parse($fichier_ok['contenu']);
// le premier content ne nous interesse pas
$out = reset($out['sub']);
$nb = bookmarks_insert($out,$id_parent,$importer_statut_publie,$importer_tags);
$nb = bookmarks_insert($out, $id_parent, $importer_statut_publie, $importer_tags);
}
return $nb;
}
function bookmarks_netscape_fast_parse(&$contenu){
function bookmarks_netscape_fast_parse(&$contenu) {
$out = array();
#var_dump(">>".substr($contenu,0,200));
$po=stripos($contenu,"<h3",4);
$pf=stripos($contenu,"</dl>");
while ($po OR $pf){
$po = stripos($contenu, "<h3", 4);
$pf = stripos($contenu, "</dl>");
while ($po OR $pf) {
#var_dump("$po:$pf");
if ($po>0 AND $po<$pf){
$out['content'] .= substr($contenu,0,$po);
$contenu = substr($contenu,$po);
if ($po > 0 AND $po < $pf) {
$out['content'] .= substr($contenu, 0, $po);
$contenu = substr($contenu, $po);
$out['sub'][] = bookmarks_netscape_fast_parse($contenu);
}
else {
} else {
$out['content'] .= substr($contenu,0,$pf);
$contenu = substr($contenu,$pf+5);
$out['content'] .= substr($contenu, 0, $pf);
$contenu = substr($contenu, $pf+5);
#var_dump("<<".substr($contenu,0,200));
$out['content'] = bookmarks_extract_links($out['content']);
return $out;
}
$po=stripos($contenu,"<h3");
$pf=stripos($contenu,"</dl>");
$po = stripos($contenu, "<h3");
$pf = stripos($contenu, "</dl>");
}
$out['content'] = bookmarks_extract_links($out['content']);
return $out;
}
function bookmarks_extract_links($contenu){
function bookmarks_extract_links($contenu) {
$out = array();
$contenu = str_ireplace("<DT>","<dt>",$contenu);
$contenu = explode("<dt>",$contenu);
$contenu = str_ireplace("<DT>", "<dt>", $contenu);
$contenu = explode("<dt>", $contenu);
$h3 = array_shift($contenu);
$h3 = extraire_balise($h3,"h3");
$h3 = extraire_balise($h3, "h3");
$out['titre'] = strip_tags($h3);
foreach($contenu as $item){
foreach ($contenu as $item) {
$link = array();
if ($a = extraire_balise($item,'a')){
$link['url'] = extraire_attribut($a,'href');
if ($a = extraire_balise($item, 'a')) {
$link['url'] = extraire_attribut($a, 'href');
$link['titre'] = strip_tags($a);
$link['date'] = extraire_attribut($a,"add_date");
$link['date'] = extraire_attribut($a, "add_date");
$link['descriptif'] = "";
if ($p=stripos($item,"<dd>")){
$link['descriptif'] = textebrut(substr($item,$p));
if ($p = stripos($item, "<dd>")) {
$link['descriptif'] = textebrut(substr($item, $p));
}
$out['links'][] = $link;
}
}
return $out;
}
function bookmarks_insert($tree, $id_parent, $importer_statut_publie, $importer_tags, $level = 0){
function bookmarks_insert($tree, $id_parent, $importer_statut_publie, $importer_tags, $level = 0) {
include_spip('action/editer_rubrique');
include_spip('action/editer_site');
$nb = 0;
if (count($tree['content']['links'])
OR isset($tree['sub'])){
OR isset($tree['sub'])
) {
$titre = ($tree['content']['titre']?$tree['content']['titre']:_T('info_sans_titre'));
$id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques','id_parent='.intval($id_parent)." AND titre=".sql_quote($titre));
$titre = ($tree['content']['titre'] ? $tree['content']['titre'] : _T('info_sans_titre'));
$id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques',
'id_parent=' . intval($id_parent) . " AND titre=" . sql_quote($titre));
if (!$id_rubrique
AND $id_rubrique = rubrique_inserer($id_parent)){
rubrique_modifier($id_rubrique,array('titre'=>$titre));
AND $id_rubrique = rubrique_inserer($id_parent)
) {
rubrique_modifier($id_rubrique, array('titre' => $titre));
}
if ($id_rubrique){
if ($id_rubrique) {
$statut = 'prop';
if ($importer_statut_publie AND autoriser('publierdans','rubrique',$id_rubrique))
if ($importer_statut_publie AND autoriser('publierdans', 'rubrique', $id_rubrique)) {
$statut = 'publie';
}
$now = time();
foreach($tree['content']['links'] as $link){
foreach ($tree['content']['links'] as $link) {
if (!$id_syndic = sql_getfetsel('id_syndic',
'spip_syndic',
'id_rubrique='.intval($id_rubrique)." AND url_site=".sql_quote($link['url']))){
'spip_syndic',
'id_rubrique=' . intval($id_rubrique) . " AND url_site=" . sql_quote($link['url']))
) {
$id_syndic = site_inserer($id_rubrique);
$set = array(
'url_site' => $link['url'],
'nom_site' => $link['titre'],
'date' => date('Y-m-d H:i:s',$link['date']?$link['date']:$now),
'statut' => $statut,
'descriptif' => $link['descriptif']
);
'url_site' => $link['url'],
'nom_site' => $link['titre'],
'date' => date('Y-m-d H:i:s', $link['date'] ? $link['date'] : $now),
'statut' => $statut,
'descriptif' => $link['descriptif']
);
#echo "creation site $id_syndic ".$set['url_site']." <br />";
site_modifier($id_syndic,$set);
$nb ++;
}
else {
site_modifier($id_syndic, $set);
$nb++;
} else {
#echo "existant site $id_syndic ".$link['url']." <br />";
$nb ++;
$nb++;
}
}
if ($level<30){
if (isset($tree['sub']))
foreach($tree['sub'] as $sub)
$nb += bookmarks_insert($sub,$id_rubrique,$importer_statut_publie,$importer_tags,$level+1);
if ($level < 30) {
if (isset($tree['sub'])) {
foreach ($tree['sub'] as $sub) {
$nb += bookmarks_insert($sub, $id_rubrique, $importer_statut_publie, $importer_tags, $level+1);
}
}
}
}
}

105
action/importer_bookmarks_opml.php

@ -10,83 +10,90 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function action_importer_bookmarks_opml_dist($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags){
function action_importer_bookmarks_opml_dist($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags) {
$nb = 0;
if (autoriser('importer','_sites')){
if (autoriser('importer', '_sites')) {
$out = bookmarks_opml_parse($fichier_ok['contenu']);
$nb = bookmarks_opml_insert($out,$id_parent,$importer_statut_publie,$importer_tags);
$nb = bookmarks_opml_insert($out, $id_parent, $importer_statut_publie, $importer_tags);
}
return $nb;
}
// http://www.stargeek.com/php_scripts.php?script=20&cat=blog
function bookmarks_opml_parse(&$contenu) {
global $blogs,$folder,$inOpmlfolder, $inOpmlItem;
$inOpmlfolder = $inOpmlItem = false;
$xp = xml_parser_create();
xml_set_element_handler($xp, 'opml_startElement', 'opml_endElement');
xml_parse($xp, $contenu, true);
xml_parser_free($xp);
return $blogs;
global $blogs, $folder, $inOpmlfolder, $inOpmlItem;
$inOpmlfolder = $inOpmlItem = false;
$xp = xml_parser_create();
xml_set_element_handler($xp, 'opml_startElement', 'opml_endElement');
xml_parse($xp, $contenu, true);
xml_parser_free($xp);
return $blogs;
}
function opml_startElement($xp, $element, $attr) {
global $blogs,$folder,$inOpmlfolder, $inOpmlItem;
if (strcasecmp('outline', $element)) {
global $blogs, $folder, $inOpmlfolder, $inOpmlItem;
if (strcasecmp('outline', $element)) {
return;
}
if (!array_key_exists('XMLURL',$attr) && (array_key_exists('TEXT',$attr)||array_key_exists('TITLE',$attr)) ) {
}
if (!array_key_exists('XMLURL', $attr) && (array_key_exists('TEXT', $attr) || array_key_exists('TITLE', $attr))) {
//some opml use title instead of text to define a folder (ex: newzcrawler)
$folder = $attr['TEXT']?$attr['TEXT']:$attr['TITLE'];
$folder = $attr['TEXT'] ? $attr['TEXT'] : $attr['TITLE'];
$inOpmlfolder = true;
$inOpmlItem = false;
} else {
$inOpmlItem = true;
} else {
$inOpmlItem = true;
if ($folder != '') {
$blogs[$folder][] = $attr;
$blogs[$folder][] = $attr;
} else {
$blogs[] = $attr;
$blogs[] = $attr;
}
}
}
}
function opml_endElement($xp, $element) {
global $blogs,$folder,$inOpmlfolder, $inOpmlItem;
if (strcasecmp( $element, "outline") === 0) {
global $blogs, $folder, $inOpmlfolder, $inOpmlItem;
if (strcasecmp($element, "outline") === 0) {
if (!$inOpmlItem && $inOpmlfolder) {
// end of folder element!
$inOpmlfolder = false;
} else {
// end of item element
$inOpmlItem = false;
}
}
return;
}
}
return;
}
function bookmarks_opml_insert($tree, $id_parent, $importer_statut_publie, $importer_tags){
function bookmarks_opml_insert($tree, $id_parent, $importer_statut_publie, $importer_tags) {
include_spip('action/editer_rubrique');
include_spip('action/editer_site');
$nb = 0;
if (count($tree)){
foreach($tree as $key => $item){
if (count($tree)) {
foreach ($tree as $key => $item) {
// cas d'un flux
if (array_key_exists('XMLURL',$item)) {
if (array_key_exists('XMLURL', $item)) {
$statut = 'prop';
if ($importer_statut_publie AND autoriser('publierdans','rubrique',$id_parent))
if ($importer_statut_publie AND autoriser('publierdans', 'rubrique', $id_parent)) {
$statut = 'publie';
}
$now = time();
if (!$id_syndic = sql_getfetsel('id_syndic', 'spip_syndic', 'id_rubrique='.intval($id_parent)." AND url_site=".sql_quote($item['HTMLURL']))){
if (!$id_syndic = sql_getfetsel('id_syndic', 'spip_syndic',
'id_rubrique=' . intval($id_parent) . " AND url_site=" . sql_quote($item['HTMLURL']))
) {
$id_syndic = site_inserer($id_parent);
$set = array(
'url_site' => $item['HTMLURL'],
@ -94,24 +101,24 @@ function bookmarks_opml_insert($tree, $id_parent, $importer_statut_publie, $impo
'url_syndic' => $item['XMLURL'],
'syndication' => 'oui',
'resume' => 'non',
'date' => date('Y-m-d H:i:s',$now),
'date' => date('Y-m-d H:i:s', $now),
'statut' => $statut
);
site_modifier($id_syndic,$set);
$nb ++;
}
else {
$nb ++;
site_modifier($id_syndic, $set);
$nb++;
} else {
$nb++;
}
} else {
// cas d'un dossier
$titre = $key;
$id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques','id_parent='.intval($id_parent)." AND titre=".sql_quote($titre));
if (!$id_rubrique AND $id_rubrique = rubrique_inserer($id_parent)){
rubrique_modifier($id_rubrique,array('titre'=>$titre));
$id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques',
'id_parent=' . intval($id_parent) . " AND titre=" . sql_quote($titre));
if (!$id_rubrique AND $id_rubrique = rubrique_inserer($id_parent)) {
rubrique_modifier($id_rubrique, array('titre' => $titre));
}
if ($id_rubrique){
$nb += bookmarks_opml_insert($item,$id_rubrique,$importer_statut_publie,$importer_tags);
if ($id_rubrique) {
$nb += bookmarks_opml_insert($item, $id_rubrique, $importer_statut_publie, $importer_tags);
}
}
}

12
action/instituer_syndic_article.php

@ -10,7 +10,9 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
// http://code.spip.net/@action_instituer_syndic_article_dist
function action_instituer_syndic_article_dist() {
@ -21,9 +23,11 @@ function action_instituer_syndic_article_dist() {
list($id_syndic_article, $statut) = preg_split('/\W/', $arg);
if ($id_syndic_article = intval($id_syndic_article)
AND $id_syndic = sql_getfetsel('id_syndic','spip_syndic_articles',"id_syndic_article=".intval($id_syndic_article))
AND autoriser('moderer','site',$id_syndic)) {
sql_updateq("spip_syndic_articles", array("statut" => $statut), "id_syndic_article=".intval($id_syndic_article));
AND $id_syndic = sql_getfetsel('id_syndic', 'spip_syndic_articles',
"id_syndic_article=" . intval($id_syndic_article))
AND autoriser('moderer', 'site', $id_syndic)
) {
sql_updateq("spip_syndic_articles", array("statut" => $statut), "id_syndic_article=" . intval($id_syndic_article));
}
}

10
action/purger_site.php

@ -10,7 +10,9 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
function action_purger_site_dist($id_syndic = null) {
@ -20,10 +22,12 @@ function action_purger_site_dist($id_syndic = null) {
}
if ($id_syndic = intval($id_syndic)
AND autoriser('purger','site',$id_syndic)){
AND autoriser('purger', 'site', $id_syndic)
) {
include_spip('base/abstract_sql');
sql_delete('spip_syndic_articles','id_syndic='.intval($id_syndic));
sql_delete('spip_syndic_articles', 'id_syndic=' . intval($id_syndic));
}
}
?>

13
action/syndiquer_site.php

@ -10,25 +10,26 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
// http://code.spip.net/@action_editer_site_dist
function action_syndiquer_site_dist($id_syndic = null) {
if (is_null($id_syndic)){
if (is_null($id_syndic)) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$id_syndic = $securiser_action();
}
$id_job = job_queue_add('syndic_a_jour','syndic_a_jour',array($id_syndic),'genie/syndic',true);
$id_job = job_queue_add('syndic_a_jour', 'syndic_a_jour', array($id_syndic), 'genie/syndic', true);
// l'executer immediatement si possible
if ($id_job) {
include_spip('inc/queue');
queue_schedule(array($id_job));
}
else {
spip_log("Erreur insertion syndic_a_jour($id_syndic) dans la file des travaux",_LOG_ERREUR);
} else {
spip_log("Erreur insertion syndic_a_jour($id_syndic) dans la file des travaux", _LOG_ERREUR);
}
}

20
balise/formulaire_site.php

@ -10,14 +10,16 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return; #securite
if (!defined("_ECRIRE_INC_VERSION")) {
return;
} #securite
// Le contexte indique dans quelle rubrique le visiteur peut proposer le site
// http://code.spip.net/@balise_FORMULAIRE_SITE
function balise_FORMULAIRE_SITE ($p) {
return calculer_balise_dynamique($p,'FORMULAIRE_SITE', array('id_rubrique'));
function balise_FORMULAIRE_SITE($p) {
return calculer_balise_dynamique($p, 'FORMULAIRE_SITE', array('id_rubrique'));
}
// http://code.spip.net/@balise_FORMULAIRE_SITE_stat
@ -25,12 +27,18 @@ function balise_FORMULAIRE_SITE_stat($args, $context_compil) {
// Pas d'id_rubrique ? Erreur de contexte
if (!$args[0]) {
$msg = array('zbug_champ_hors_motif',
array ('champ' => 'FORMULAIRE_SITE',
'motif' => 'RUBRIQUES'));
$msg = array(
'zbug_champ_hors_motif',
array(
'champ' => 'FORMULAIRE_SITE',
'motif' => 'RUBRIQUES'
)
);
erreur_squelette($msg, $context_compil);
return '';
}
// Verifier que les visisteurs sont autorises a proposer un site
return (($GLOBALS['meta']["proposer_sites"] != 2) ? '' : $args);

169
base/sites.php

@ -10,7 +10,9 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Interfaces des tables syndic et syndic article
@ -18,154 +20,169 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
* @param array $interfaces
* @return array
*/
function sites_declarer_tables_interfaces($interfaces){
function sites_declarer_tables_interfaces($interfaces) {
$interfaces['table_des_tables']['sites']='syndic'; // compat pour les boucles (SITES)
$interfaces['table_des_tables']['syndication']='syndic';
$interfaces['table_des_tables']['syndic']='syndic';
$interfaces['table_des_tables']['syndic_articles']='syndic_articles';
$interfaces['table_des_tables']['sites'] = 'syndic'; // compat pour les boucles (SITES)
$interfaces['table_des_tables']['syndication'] = 'syndic';
$interfaces['table_des_tables']['syndic'] = 'syndic';
$interfaces['table_des_tables']['syndic_articles'] = 'syndic_articles';
# ne sert plus ? verifier balise_URL_ARTICLE
$interfaces['exceptions_des_tables']['syndic_articles']['url_article']='url';
$interfaces['exceptions_des_tables']['syndic_articles']['url_article'] = 'url';
# ne sert plus ? verifier balise_LESAUTEURS
$interfaces['exceptions_des_tables']['syndic_articles']['lesauteurs']='lesauteurs';
$interfaces['exceptions_des_tables']['syndic_articles']['url_site']=array('syndic', 'url_site');
$interfaces['exceptions_des_tables']['syndic_articles']['nom_site']=array('syndic', 'nom_site');
$interfaces['exceptions_des_tables']['syndic_articles']['lesauteurs'] = 'lesauteurs';
$interfaces['exceptions_des_tables']['syndic_articles']['url_site'] = array('syndic', 'url_site');
$interfaces['exceptions_des_tables']['syndic_articles']['nom_site'] = array('syndic', 'nom_site');
$interfaces['table_date']['syndication'] = 'date';
$interfaces['tables_jointures']['spip_syndic_articles'][]= 'syndic';
$interfaces['tables_jointures']['spip_syndic_articles'][] = 'syndic';
$interfaces['table_des_traitements']['NOM_SITE'][]= _TRAITEMENT_TYPO;
$interfaces['table_des_traitements']['NOM_SITE'][] = _TRAITEMENT_TYPO;
// Articles syndiques : passage des donnees telles quelles, sans traitement typo
// la securite et conformite XHTML de ces champs est assuree par safehtml()
foreach(array('DESCRIPTIF','SOURCE','URL','URL_SOURCE','LESAUTEURS','TAGS') as $balise)
if (!isset($interfaces['table_des_traitements'][$balise]['syndic_articles']))
foreach (array('DESCRIPTIF', 'SOURCE', 'URL', 'URL_SOURCE', 'LESAUTEURS', 'TAGS') as $balise) {
if (!isset($interfaces['table_des_traitements'][$balise]['syndic_articles'])) {
$interfaces['table_des_traitements'][$balise]['syndic_articles'] = 'safehtml(%s)';
else
if (strpos($interfaces['table_des_traitements'][$balise]['syndic_articles'],'safehtml')==false)
$interfaces['table_des_traitements'][$balise]['syndic_articles'] = 'safehtml('.$interfaces['table_des_traitements'][$balise]['syndic_articles'].')';
} else {
if (strpos($interfaces['table_des_traitements'][$balise]['syndic_articles'], 'safehtml') == false) {
$interfaces['table_des_traitements'][$balise]['syndic_articles'] = 'safehtml(' . $interfaces['table_des_traitements'][$balise]['syndic_articles'] . ')';
}
}
}
return $interfaces;
}
function sites_declarer_tables_objets_sql($tables){
function sites_declarer_tables_objets_sql($tables) {
$tables['spip_syndic'] = array(
'table_objet_surnoms'=>array('site'),
'type'=>'site',
'table_objet_surnoms' => array('site'),
'type' => 'site',
'type_surnoms' => array('syndic'),
'texte_retour' => 'icone_retour',
'texte_objets' => 'icone_sites_references',
'texte_objet' => 'sites:icone_site_reference',
'texte_modifier' => 'sites:icone_modifier_site',
'texte_creer' => 'sites:icone_referencer_nouveau_site',
'info_aucun_objet'=> 'sites:info_aucun_site',
'info_aucun_objet' => 'sites:info_aucun_site',
'info_1_objet' => 'sites:info_1_site',
'info_nb_objets' => 'sites:info_nb_sites',
'titre' => "nom_site AS titre, '' AS lang",
'date' => 'date',
'principale' => 'oui',
'field'=> array(
"id_syndic" => "bigint(21) NOT NULL",
"id_rubrique" => "bigint(21) DEFAULT '0' NOT NULL",
"id_secteur" => "bigint(21) DEFAULT '0' NOT NULL",
"nom_site" => "text DEFAULT '' NOT NULL",
"url_site" => "text DEFAULT '' NOT NULL",
"url_syndic" => "text DEFAULT '' NOT NULL",
"descriptif" => "text DEFAULT '' NOT NULL",
"maj" => "TIMESTAMP",
"syndication" => "VARCHAR(3) DEFAULT '' NOT NULL",
"statut" => "varchar(10) DEFAULT '0' NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_syndic" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_index" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"moderation" => "VARCHAR(3) DEFAULT 'non'",
"miroir" => "VARCHAR(3) DEFAULT 'non'",
"oubli" => "VARCHAR(3) DEFAULT 'non'",
"resume" => "VARCHAR(3) DEFAULT 'oui'"
'field' => array(
"id_syndic" => "bigint(21) NOT NULL",
"id_rubrique" => "bigint(21) DEFAULT '0' NOT NULL",
"id_secteur" => "bigint(21) DEFAULT '0' NOT NULL",
"nom_site" => "text DEFAULT '' NOT NULL",
"url_site" => "text DEFAULT '' NOT NULL",
"url_syndic" => "text DEFAULT '' NOT NULL",
"descriptif" => "text DEFAULT '' NOT NULL",
"maj" => "TIMESTAMP",
"syndication" => "VARCHAR(3) DEFAULT '' NOT NULL",
"statut" => "varchar(10) DEFAULT '0' NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_syndic" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"date_index" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"moderation" => "VARCHAR(3) DEFAULT 'non'",
"miroir" => "VARCHAR(3) DEFAULT 'non'",
"oubli" => "VARCHAR(3) DEFAULT 'non'",
"resume" => "VARCHAR(3) DEFAULT 'oui'"
),
'key' => array(
"PRIMARY KEY" => "id_syndic",
"KEY id_rubrique" => "id_rubrique",
"KEY id_secteur" => "id_secteur",
"KEY statut" => "statut, date_syndic",
"PRIMARY KEY" => "id_syndic",
"KEY id_rubrique" => "id_rubrique",
"KEY id_secteur" => "id_secteur",
"KEY statut" => "statut, date_syndic",
),
'join' => array(
"id_syndic"=>"id_syndic",
"id_rubrique"=>"id_rubrique"
"id_syndic" => "id_syndic",
"id_rubrique" => "id_rubrique"
),
'statut' => array(
array('champ'=>'statut','publie'=>'publie','previsu'=>'publie,prop','exception'=>'statut')
array('champ' => 'statut', 'publie' => 'publie', 'previsu' => 'publie,prop', 'exception' => 'statut')
),
'texte_changer_statut' => 'sites:info_statut_site_1',
'statut_textes_instituer' => array(
'statut_textes_instituer' => array(
'prop' => 'texte_statut_propose_evaluation',
'publie' => 'texte_statut_publie',
'refuse' => 'texte_statut_poubelle',
),
'rechercher_champs' => array(
'nom_site' => 5, 'url_site' => 1, 'descriptif' => 3
'nom_site' => 5,
'url_site' => 1,
'descriptif' => 3
),
'champs_versionnes' => array('id_rubrique', 'id_secteur', 'nom_site', 'url_site', 'url_syndic','descriptif'),
'champs_versionnes' => array('id_rubrique', 'id_secteur', 'nom_site', 'url_site', 'url_syndic', 'descriptif'),
);
$tables['spip_syndic_articles'] = array(
'table_objet_surnoms'=>array('syndic_article'),
'table_objet_surnoms' => array('syndic_article'),
'texte_retour' => 'icone_retour',
'texte_objets' => 'sites:icone_articles_syndic',
'texte_objet' => 'sites:icone_article_syndic',
'texte_modifier' => 'icone_modifier_article', # inutile en vrai
'info_aucun_objet'=> 'sites:info_aucun_article_syndique',
'info_aucun_objet' => 'sites:info_aucun_article_syndique',
'info_1_objet' => 'sites:info_1_article_syndique',
'info_nb_objets' => 'sites:info_nb_articles_syndiques',
'icone_objet' => 'site',
// pas de page propre ni dans ecrire ni dans le site public
'url_voir'=>'',
'url_edit'=>'',
'page'=>'',
'url_voir' => '',
'url_edit' => '',
'page' => '',
'date' => 'date',
'editable' => 'non',
'principale' => 'oui',
'field'=> array(
"id_syndic_article" => "bigint(21) NOT NULL",
"id_syndic" => "bigint(21) DEFAULT '0' NOT NULL",
"titre" => "text DEFAULT '' NOT NULL",
"url" => "text DEFAULT '' NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"lesauteurs" => "text DEFAULT '' NOT NULL",
"maj" => "TIMESTAMP",
"statut" => "varchar(10) DEFAULT '0' NOT NULL",
"descriptif" => "text DEFAULT '' NOT NULL",
"lang" => "VARCHAR(10) DEFAULT '' NOT NULL",
'field' => array(
"id_syndic_article" => "bigint(21) NOT NULL",
"id_syndic" => "bigint(21) DEFAULT '0' NOT NULL",
"titre" => "text DEFAULT '' NOT NULL",
"url" => "text DEFAULT '' NOT NULL",
"date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
"lesauteurs" => "text DEFAULT '' NOT NULL",
"maj" => "TIMESTAMP",
"statut" => "varchar(10) DEFAULT '0' NOT NULL",
"descriptif" => "text DEFAULT '' NOT NULL",
"lang" => "VARCHAR(10) DEFAULT '' NOT NULL",
"url_source" => "TINYTEXT DEFAULT '' NOT NULL",
"source" => "TINYTEXT DEFAULT '' NOT NULL",
"tags" => "TEXT DEFAULT '' NOT NULL"
),
'key' => array(
"PRIMARY KEY" => "id_syndic_article",
"KEY id_syndic" => "id_syndic",
"KEY statut" => "statut",
"KEY url" => "url(255)"
"PRIMARY KEY" => "id_syndic_article",
"KEY id_syndic" => "id_syndic",
"KEY statut" => "statut",
"KEY url" => "url(255)"
),
'join' => array(
"id_syndic_article"=>"id_syndic_article",
"id_syndic"=>"id_syndic"
"id_syndic_article" => "id_syndic_article",
"id_syndic" => "id_syndic"
),
'statut' => array(
array('champ'=>'statut','publie'=>'publie','previsu'=>'publie,prop','exception'=>'statut'),
array('champ'=>array(array('spip_syndic','id_syndic'),'statut'),'publie'=>'publie','previsu'=>'publie,prop','exception'=>'statut'),
array('champ' => 'statut', 'publie' => 'publie', 'previsu' => 'publie,prop', 'exception' => 'statut'),
array(
'champ' => array(array('spip_syndic', 'id_syndic'), 'statut'),
'publie' => 'publie',
'previsu' => 'publie,prop',
'exception' => 'statut'
),
),
'statut_images' => array(
'puce-rouge-anim.gif','publie'=>'puce-publier-8.png','refuse'=>'puce-supprimer-8.png','dispo'=>'puce-proposer-8.png','off'=>'puce-refuser-8.png',
'puce-rouge-anim.gif',
'publie' => 'puce-publier-8.png',
'refuse' => 'puce-supprimer-8.png',
'dispo' => 'puce-proposer-8.png',
'off' => 'puce-refuser-8.png',
),
'rechercher_champs' => array(
'titre' => 5, 'descriptif' => 1
'titre' => 5,
'descriptif' => 1
)
);

48
formulaires/configurer_sites.php

@ -14,24 +14,27 @@
* Gestion du formulaire de configuration des sites et de la syndication
*
* @package SPIP\Sites\Formulaires
**/
**/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
/**
* Chargement du formulaire de configuration des sites et de la syndication
*
* @return array
* Environnement du formulaire
**/
function formulaires_configurer_sites_charger_dist(){
foreach(array(
"activer_sites",
"activer_syndic",
"proposer_sites",
"moderation_sites",
) as $m)
**/
function formulaires_configurer_sites_charger_dist() {
foreach (array(
"activer_sites",
"activer_syndic",
"proposer_sites",
"moderation_sites",
) as $m) {
$valeurs[$m] = isset($GLOBALS['meta'][$m]) ? $GLOBALS['meta'][$m] : '';
}
return $valeurs;
}
@ -41,21 +44,24 @@ function formulaires_configurer_sites_charger_dist(){
*
* @return array
* Retours du traitement
**/
function formulaires_configurer_sites_traiter_dist(){
$res = array('editable'=>true);
foreach(array(
"activer_sites",
"activer_syndic",
"moderation_sites",
) as $m)
if (!is_null($v=_request($m)))
ecrire_meta($m, $v=='oui'?'oui':'non');
**/
function formulaires_configurer_sites_traiter_dist() {
$res = array('editable' => true);
foreach (array(
"activer_sites",
"activer_syndic",
"moderation_sites",
) as $m) {
if (!is_null($v = _request($m))) {
ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
}
}
$v = _request('proposer_sites');
ecrire_meta('proposer_sites', in_array($v,array('0','1','2'))?$v:'0');
ecrire_meta('proposer_sites', in_array($v, array('0', '1', '2')) ? $v : '0');
$res['message_ok'] = _T('config_info_enregistree');
return $res;
}

111
formulaires/editer_site.php

@ -14,9 +14,11 @@
* Gestion du formulaire de d'édition d'un site
*
* @package SPIP\Sites\Formulaires
**/
**/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
include_spip('inc/actions');
include_spip('inc/editer');
@ -26,7 +28,7 @@ include_spip('inc/filtres'); // pour vider_url()
* Chargement du formulaire d'édition d'un site
*
* @uses formulaires_editer_objet_charger()
*
*
* @param int|string $id_syndic
* Identifiant du site. 'new' pour un nouveau site.
* @param int $id_rubrique
@ -43,19 +45,29 @@ include_spip('inc/filtres'); // pour vider_url()
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
* @return array
* Environnement du formulaire
**/
function formulaires_editer_site_charger_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = ''){
$valeurs = formulaires_editer_objet_charger('site',$id_syndic,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
**/
function formulaires_editer_site_charger_dist(
$id_syndic = 'new',
$id_rubrique = 0,
$retour = '',
$lier_trad = 0,
$config_fonc = 'sites_edit_config',
$row = array(),
$hidden = ''
) {
$valeurs = formulaires_editer_objet_charger('site', $id_syndic, $id_rubrique, $lier_trad, $retour, $config_fonc, $row,
$hidden);
# pour recuperer le logo issu d'analyse auto
$valeurs['logo']='';
$valeurs['format_logo']='';
$valeurs['logo'] = '';
$valeurs['format_logo'] = '';
return $valeurs;
}
/**
* Identifier le formulaire en faisant abstraction des paramètres qui
* ne représentent pas l'objet edité
*
*
* @param int|string $id_syndic
* Identifiant du site. 'new' pour un nouveau site.
* @param int $id_rubrique
@ -73,8 +85,16 @@ function formulaires_editer_site_charger_dist($id_syndic = 'new', $id_rubrique =
* @return string
* Hash du formulaire
*/
function formulaires_editer_site_identifier_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = ''){
return serialize(array(intval($id_syndic),$lier_trad));
function formulaires_editer_site_identifier_dist(
$id_syndic = 'new',
$id_rubrique = 0,
$retour = '',
$lier_trad = 0,
$config_fonc = 'sites_edit_config',
$row = array(),
$hidden = ''
) {
return serialize(array(intval($id_syndic), $lier_trad));
}
/**
@ -85,8 +105,7 @@ function formulaires_editer_site_identifier_dist($id_syndic = 'new', $id_rubriqu
* return array
* Configuration pour le formulaire
*/
function sites_edit_config($row)
{
function sites_edit_config($row) {
global $spip_lang;
$config = $GLOBALS['meta'];
@ -94,6 +113,7 @@ function sites_edit_config($row)
$config['langue'] = $spip_lang;
$config['restreint'] = false;
return $config;
}
@ -101,7 +121,7 @@ function sites_edit_config($row)
* Vérifications du formulaire d'édition de site
*
* @uses formulaires_editer_objet_verifier()
*
*
* @param int|string $id_syndic
* Identifiant du site. 'new' pour un nouveau site.
* @param int $id_rubrique
@ -119,47 +139,54 @@ function sites_edit_config($row)
* @return array
* Erreurs du formulaire
*/
function formulaires_editer_site_verifier_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = ''){
function formulaires_editer_site_verifier_dist(
$id_syndic = 'new',
$id_rubrique = 0,
$retour = '',
$lier_trad = 0,
$config_fonc = 'sites_edit_config',
$row = array(),
$hidden = ''
) {
include_spip('inc/filtres');
include_spip('inc/site');
$oblis = array('nom_site','url_site','id_parent');
$oblis = array('nom_site', 'url_site', 'id_parent');
// Envoi depuis le formulaire d'analyse automatique d'un site
if (_request('ajoute_url_auto') AND strlen(vider_url($u = _request('url_auto')))) {
if ($auto = analyser_site($u)) {
// Si pas de logo, on va le chercher dans le ou les feeds
if (isset($auto['url_syndic'])
&& !(isset($auto['logo']) and $auto['logo'])
&& ($auto['url_syndic'] != _request('ajouter_url_auto'))
&& preg_match(',^select: (.+),', $auto['url_syndic'], $regs))
{
$url_syndic = str_replace('select: ','',$auto['url_syndic']);
$feeds = explode(' ',$regs[1]);
&& !(isset($auto['logo']) and $auto['logo'])
&& ($auto['url_syndic'] != _request('ajouter_url_auto'))
&& preg_match(',^select: (.+),', $auto['url_syndic'], $regs)
) {
$url_syndic = str_replace('select: ', '', $auto['url_syndic']);
$feeds = explode(' ', $regs[1]);
foreach ($feeds as $feed) {
if (($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])){
if (($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])) {
$auto['format_logo'] = $auto_syndic['format_logo'];
$auto['logo'] = $auto_syndic['logo'];
break;
}
}
}
foreach($auto as $k=>$v){
set_request($k,$v);
foreach ($auto as $k => $v) {
set_request($k, $v);
}
$erreurs['verif_url_auto'] = _T('sites:texte_referencement_automatique_verifier', array('url' => $u));
$erreurs['message_erreur'] = '';
}
else{
} else {
$erreurs['url_auto'] = _T('sites:avis_site_introuvable');
}
}
else{
} else {
// auto-renseigner le titre si il n'existe pas
// d'abord a partir du descriptif en coupant
titre_automatique('nom_site',array('descriptif'));
titre_automatique('nom_site', array('descriptif'));
// et sinon l'url du site, sans couper
titre_automatique('nom_site',array('url_site'),255);
$erreurs = formulaires_editer_objet_verifier('site',$id_syndic,$oblis);
titre_automatique('nom_site', array('url_site'), 255);
$erreurs = formulaires_editer_objet_verifier('site', $id_syndic, $oblis);
}
return $erreurs;
}
@ -167,7 +194,7 @@ function formulaires_editer_site_verifier_dist($id_syndic = 'new', $id_rubrique
* Traitements du formulaire d'édition de site
*
* @uses formulaires_editer_objet_traiter()
*
*
* @param int|string $id_syndic
* Identifiant du site. 'new' pour un nouveau site.
* @param int $id_rubrique
@ -185,12 +212,22 @@ function formulaires_editer_site_verifier_dist($id_syndic = 'new', $id_rubrique
* @return array
* Erreurs du formulaire
*/
function formulaires_editer_site_traiter_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = ''){
function formulaires_editer_site_traiter_dist(
$id_syndic = 'new',
$id_rubrique = 0,
$retour = '',
$lier_trad = 0,
$config_fonc = 'sites_edit_config',
$row = array(),
$hidden = ''
) {
// netoyer les entrees
if (!is_null(_request('url_site')))
set_request('url_site',vider_url(_request('url_site')));
if (!is_null(_request('url_site'))) {
set_request('url_site', vider_url(_request('url_site')));
}
return formulaires_editer_objet_traiter('site',$id_syndic,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
return formulaires_editer_objet_traiter('site', $id_syndic, $id_rubrique, $lier_trad, $retour, $config_fonc, $row,
$hidden);
}

15
formulaires/editer_site_fonctions.php

@ -10,23 +10,28 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) return;
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function saisie_url_syndic($url_syndic, $name = 'url_syndic', $id = 'url_syndic'){
function saisie_url_syndic($url_syndic, $name = 'url_syndic', $id = 'url_syndic') {
$res = "";
if (strlen($url_syndic) < 8) $url_syndic = "http://";
if (strlen($url_syndic) < 8) {
$url_syndic = "http://";
}
// cas d'une liste de flux detectee par feedfinder : menu
if (preg_match(',^select: (.+),', $url_syndic, $regs)) {
$feeds = explode(' ',$regs[1]);
$feeds = explode(' ', $regs[1]);
$res .= "<select name='$name' id='$id'>\n";
foreach ($feeds as $feed) {
$res .= '<option value="'.entites_html($feed).'">'.$feed."</option>\n";
$res .= '<option value="' . entites_html($feed) . '">' . $feed . "</option>\n";
}
$res .= "</select>\n";
} else {
$res .= "<input type='text' class='text' name='$name' id='$id' value=\"$url_syndic\" size='40' />\n";
}
return $res;
}

23
formulaires/exporter_sites.php

@ -10,26 +10,31 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
function formulaires_exporter_sites_charger_dist(){
function formulaires_exporter_sites_charger_dist() {
if (!autoriser('exporter','_sites'))
if (!autoriser('exporter', '_sites')) {
return false;
}
return array(
'id_parent'=>0,
'id_parent' => 0,
'exporter_publie_seulement' => 0,
'exporter_avec_mots_cles' => 1,
);
}
function formulaires_exporter_sites_traiter_dist(){
function formulaires_exporter_sites_traiter_dist() {
$id_parent = intval(_request('id_parent'));
$exporter_publie_seulement = _request('exporter_publie_seulement')?1:0;
$exporter_avec_mots_cles = _request('exporter_avec_mots_cles')?1:0;
$exporter_publie_seulement = _request('exporter_publie_seulement') ? 1 : 0;
$exporter_avec_mots_cles = _request('exporter_avec_mots_cles') ? 1 : 0;
include_spip('inc/actions');
$redirect = generer_action_auteur('exporter_bookmarks',"$id_parent-$exporter_publie_seulement-$exporter_avec_mots_cles");
return array('redirect'=>$redirect);
$redirect = generer_action_auteur('exporter_bookmarks',
"$id_parent-$exporter_publie_seulement-$exporter_avec_mots_cles");
return array('redirect' => $redirect);
}

64
formulaires/importer_sites.php

@ -10,12 +10,15 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
if (!defined("_ECRIRE_INC_VERSION")) {
return;
}
function formulaires_importer_sites_charger_dist(){
function formulaires_importer_sites_charger_dist() {
if (!autoriser('importer', '_sites'))
if (!autoriser('importer', '_sites')) {
return false;
}
return array(
'fichier_import' => 0,
@ -25,63 +28,72 @@ function formulaires_importer_sites_charger_dist(){
);
}
function formulaires_importer_sites_verifier_dist(){
function formulaires_importer_sites_verifier_dist() {
$erreurs = array();
if (!_request('id_parent'))
if (!_request('id_parent')) {
$erreurs['id_parent'] = _T('info_obligatoire');
}
$fichier_ok = info_fichiers_import('fichier_import');
if (!$fichier_ok){
if (!$fichier_ok) {
$erreurs['fichier_import'] = _T('sites:erreur_fichier_incorrect');
}
elseif (!charger_fonction('importer_bookmarks_'.$fichier_ok['format'],'action',true)){
$erreurs['fichier_import'] = _T('sites:erreur_fichier_format_inconnu',array('fichier'=>"<tt>".$fichier_ok['name']."</tt>"));
} elseif (!charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action', true)) {
$erreurs['fichier_import'] = _T('sites:erreur_fichier_format_inconnu',
array('fichier' => "<tt>" . $fichier_ok['name'] . "</tt>"));
}
return $erreurs;
}
function formulaires_importer_sites_traiter_dist(){
function formulaires_importer_sites_traiter_dist() {
$id_parent = intval(_request('id_parent'));
$importer_statut_publie = _request('importer_statut_publie') ? true : false;
$importer_tags = _request('importer_les_tags') ? true : false;
$fichier_ok = info_fichiers_import('fichier_import');
$importer_bookmarks = charger_fonction('importer_bookmarks_'.$fichier_ok['format'],'action');
$nb = $importer_bookmarks($fichier_ok,$id_parent,$importer_statut_publie,$importer_tags);
$importer_bookmarks = charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action');
$nb = $importer_bookmarks($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags);
if (!$nb)
$res = array('message_erreur'=>_T('sites:info_aucun_site_importe'));
else
$res = array('message_ok'=>singulier_ou_pluriel($nb,'sites:info_1_site_importe','sites:info_nb_sites_importes'));
if (!$nb) {
$res = array('message_erreur' => _T('sites:info_aucun_site_importe'));
} else {
$res = array(
'message_ok' => singulier_ou_pluriel($nb, 'sites:info_1_site_importe', 'sites:info_nb_sites_importes')
);
}
return $res;
}
function info_fichiers_import($name){
function info_fichiers_import($name) {
static $fichier_ok = array();
if (!isset($fichier_ok[$name])){
if (sizeof($_FILES)<0
OR !isset($_FILES[$name])
OR !$_FILES[$name]['size']>0)
if (!isset($fichier_ok[$name])) {
if (sizeof($_FILES) < 0
OR !isset($_FILES[$name])
OR !$_FILES[$name]['size'] > 0
) {
return false;
}
if ($_FILES[$name]['error']!=0)
if ($_FILES[$name]['error'] != 0) {
return false;
}
$fichier_ok[$name] = array();
$fichier_ok[$name]['name'] = $_FILES[$name]['name'];
$fichier_ok[$name]['chemin'] = $_FILES[$name]['tmp_name'];
// On récupère le contenu du fichier
// On r<EFBFBD>cup<EFBFBD>re le contenu du fichier
$fichier_ok[$name]['format'] = '';
lire_fichier($fichier_ok[$name]['chemin'],$fichier_ok[$name]['contenu']);
if (stripos($fichier_ok[$name]['contenu'], 'NETSCAPE-Bookmark-file')!==false)