Améliorations

v1.8
kent1@arscenic.info 8 years ago
parent 5b095b6128
commit f18554e6a0

@ -3,6 +3,7 @@
## Installation
`#INCLURE{fond=inclure/marqueur,id_rubrique,id_article,id_mot,id_secteur,lang,page}`
## Documentation
### Elements du marqueur xiti
@ -20,23 +21,23 @@
## TODO
### Gestion des niveaux deux
* Sur la page d'un objet, si un niveau 2 est utilisé pour le secteur et / ou pour la langue, l'afficher quelque part
### Espace privé / Gestion de Xiti
* Sur les pages d'objets, afficher les variables complètes du code Xiti pour les webmestre afin qu'ils puissent voir d'un coup d'oeil ce qui sera généré
### Marqueur Javascript
* Ajouter la prise en compte des visiteurs identifiés (http://help.atinternet-solutions.com/fr/implementation/specific_tags/tg_population_fr.htm)
* Regarder si les résultats de recherche peuvent être loggés : https://help.atinternet-solutions.com/FR/launch_page.htm#implementation/specific_tags/tg_clicks_FR.htm
* Ajouter la prise en compte des [visiteurs identifiés](http://help.atinternet-solutions.com/fr/implementation/specific_tags/tg_population_fr.htm)
* Regarder si les [résultats de recherche peuvent être loggés](https://help.atinternet-solutions.com/FR/launch_page.htm#implementation/specific_tags/tg_clicks_FR.htm)
## Changelog
### Version 1.x.x
#### Version 1.8.0
* Sur la page d'un objet, si un niveau 2 est utilisé pour le secteur ou pour une rubrique de la hiérarchie l'afficher quelque part
#### Version 1.7.0
* Ne pouvoir supprimer les liens de niveaux que si rien n'est lié à ce niveau

@ -5,7 +5,7 @@
* @package SPIP\Xiti\Action
**/
if (!defined("_ECRIRE_INC_VERSION")) {
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
@ -33,7 +33,7 @@ function action_dissocier_xiti_niveau_dist($arg = null) {
) {
supprimer_lien_xiti_niveau($xiti_niveau, $objet, $id_objet);
} else {
spip_log("Interdit de modifier $objet $id_objet", "spip");
spip_log("Interdit de modifier $objet $id_objet", 'spip');
}
}
@ -58,7 +58,8 @@ function supprimer_lien_xiti_niveau($id_xiti_niveau, $objet, $id_objet, $supprim
include_spip('inc/invalideur');
suivre_invalideur("id='id_xiti_niveau/$id_xiti_niveau'");
pipeline('post_edition',
pipeline(
'post_edition',
array(
'args' => array(
'operation' => 'delier_xiti_niveau', // compat v<=2
@ -72,4 +73,3 @@ function supprimer_lien_xiti_niveau($id_xiti_niveau, $objet, $id_objet, $supprim
)
);
}

@ -18,14 +18,17 @@
<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_xiti_niveau,nouveau}'>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#GET{titre_niveau}|oui)[(#SET{url,[(#GET{id_xiti_niveau}|generer_url_entite{xiti_niveau})]})]
<p class="explication"><:xiti_niveau:info_niveau_hierarchie{url=#GET{url},titre=#GET{titre_niveau}}:>]
<BOUCLE_editable(CONDITION){si #EDITABLE}>
<form method='post' action='#ENV{action}'><div>
<input type="hidden" name="visible" value="#ENV{visible,0}" id="visible-#ENV{id_objet}-#ENV{objet}"/>
<div class="over"><span class='image_loading'>&nbsp;</span><input type='submit' class='submit' value='<:bouton_changer:>' /></div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
<input type='hidden' name='id_xiti_niveau' value='#ENV{id_xiti_niveau}' />
[(#GET{titre_niveau}|oui)[(#SET{url,[(#GET{id_xiti_niveau}|generer_url_entite{xiti_niveau})]})]
<p class="explication"><:xiti_niveau:info_niveau_hierarchie{url=#GET{url},titre=#GET{titre_niveau}}:>]
<ul>
<li class="editer editer_id_xiti_niveaux[ (#ENV**{erreurs}|table_valeur{id_xiti_niveau}|oui)erreur]">
<label for="id_xiti_niveau"><:xiti_niveau:entree_xiti_niveau:></label>[

@ -22,9 +22,11 @@ function formulaires_editer_xiti_niveau_objet_charger($type, $id) {
$row = sql_fetsel('*', 'spip_xiti_niveaux_liens', 'id_objet='.intval($id).' AND objet='.sql_quote($type));
$objet = objet_info($table_objet_sql, 'field');
if (isset($objet['id_secteur']) or (isset($objet['id_rubrique']) and $type != 'rubrique') or isset($objet['id_parent'])) {
if (isset($objet['id_secteur'])
or (isset($objet['id_rubrique']) and $type != 'rubrique')
or isset($objet['id_parent'])) {
if (isset($objet['id_rubrique'])) {
if($type == 'rubrique') {
if ($type == 'rubrique') {
$info = 'id_parent';
} else {
$info = 'id_rubrique';
@ -38,7 +40,7 @@ function formulaires_editer_xiti_niveau_objet_charger($type, $id) {
}
if (in_array($type, array('article', 'rubrique')) and lire_config('xiti/secteur_xiti', '') == 'oui') {
$id_secteur = sql_getfetsel('id_secteur', $table_objet_sql, $id_table_objet.' = '.$id);
$id_secteur = sql_getfetsel('id_secteur', $table_objet_sql, $id_table_objet.' = '.intval($id));
$config_secteur = lire_config('xiti/xtsite_xiti_'.intval($id_secteur));
if ($config_secteur and $config_secteur != lire_config('xiti/xtsite_xiti')) {
$valeurs['xtsite'] = $config_secteur;
@ -60,10 +62,17 @@ function formulaires_editer_xiti_niveau_objet_charger($type, $id) {
*/
function formulaires_editer_xiti_niveau_objet_traiter($type, $id) {
$res = array('editable' => ' ');
$actuel = sql_getfetsel('id_xiti_niveau', 'spip_xiti_niveaux_liens', 'id_objet='.intval($id).' AND objet='.sql_quote($type));
$actuel = sql_getfetsel(
'id_xiti_niveau',
'spip_xiti_niveaux_liens',
'id_objet='.intval($id).' AND objet='.sql_quote($type)
);
if (_request('id_xiti_niveau') != $actuel) {
sql_delete('spip_xiti_niveaux_liens', 'id_objet='.intval($id).' AND objet='.sql_quote($type));
$top = sql_insertq('spip_xiti_niveaux_liens', array('id_xiti_niveau' => _request('id_xiti_niveau'), 'id_objet' => intval($id), 'objet' => $type));
sql_insertq(
'spip_xiti_niveaux_liens',
array('id_xiti_niveau' => _request('id_xiti_niveau'), 'id_objet' => intval($id), 'objet' => $type)
);
$res['message_ok'] = _T('xiti_niveau:message_niveau_maj');
} elseif (!_request('id_xiti_niveau') or _request('id_xiti_niveau') == '') {
sql_delete('spip_xiti_niveaux_liens', 'id_objet='.intval($id).' AND objet='.sql_quote($type));

@ -30,17 +30,18 @@ function filtre_objets_associes_xiti_niveau_dist($id_xiti_niveau) {
$associes = array();
$tables = lister_tables_objets_sql();
foreach ($tables as $table_objet_sql => $infos) {
$nb = (isset($occurrences[$id_xiti_niveau][$table_objet_sql][$id_xiti_niveau]) ? $occurrences[$id_xiti_niveau][$table_objet_sql][$id_xiti_niveau] : 0);
$nb = (isset($occurrences[$id_xiti_niveau][$table_objet_sql][$id_xiti_niveau]) ?
$occurrences[$id_xiti_niveau][$table_objet_sql][$id_xiti_niveau] : 0);
if ($nb) {
$associes[] = objet_afficher_nb($nb, $infos['type']);
}
}
$associes = pipeline(
'afficher_nombre_objets_associes_a',
array('args' => array('objet' => 'xiti_niveau', 'id_objet' => $id_xiti_niveau),
'data' => $associes)
);
'afficher_nombre_objets_associes_a',
array('args' => array('objet' => 'xiti_niveau', 'id_objet' => $id_xiti_niveau),
'data' => $associes)
);
return $associes;
}
@ -56,10 +57,10 @@ function filtre_objets_associes_xiti_niveau_dist($id_xiti_niveau) {
function calculer_utilisations_xiti_niveaux($id_xiti_niveau) {
$retour = array();
$objets = sql_allfetsel(
'DISTINCT objet',
array('spip_xiti_niveaux_liens AS L', 'spip_xiti_niveaux AS M'),
array('L.id_xiti_niveau=M.id_xiti_niveau', 'M.id_xiti_niveau=' . intval($id_xiti_niveau))
);
'DISTINCT objet',
array('spip_xiti_niveaux_liens AS L', 'spip_xiti_niveaux AS M'),
array('L.id_xiti_niveau=M.id_xiti_niveau', 'M.id_xiti_niveau=' . intval($id_xiti_niveau))
);
foreach ($objets as $o) {
$objet = $o['objet'];
@ -88,20 +89,21 @@ function calculer_utilisations_xiti_niveaux($id_xiti_niveau) {
} // objets sans champ previsu ou avec un previsu == '!' (par ex les rubriques)
else {
$statuts = ' AND ' . sql_in(
"O.$c_statut",
($GLOBALS['connect_statut'] == '0minirezo') ? array('prepa', 'prop', 'publie') : array('prop', 'publie')
);
"O.$c_statut",
($GLOBALS['connect_statut'] == '0minirezo') ?
array('prepa', 'prop', 'publie') : array('prop', 'publie')
);
}
}
$res = sql_allfetsel(
'COUNT(*) AS cnt, L.id_xiti_niveau',
'spip_xiti_niveaux_liens AS L
'COUNT(*) AS cnt, L.id_xiti_niveau',
'spip_xiti_niveaux_liens AS L
LEFT JOIN spip_xiti_niveaux AS M ON L.id_xiti_niveau=M.id_xiti_niveau
AND L.objet=' . sql_quote($objet) . '
AND L.objet=' . sql_quote($objet) . '
LEFT JOIN ' . $table_objet_sql . " AS O ON L.id_objet=O.$_id_objet",
"M.id_xiti_niveau=$id_xiti_niveau$statuts",
'L.id_xiti_niveau'
);
"M.id_xiti_niveau=$id_xiti_niveau$statuts",
'L.id_xiti_niveau'
);
foreach ($res as $row) {
$retour[$table_objet_sql][$row['id_xiti_niveau']] = $row['cnt'];
}

@ -23,7 +23,7 @@ function autoriser_xitiniveau_creer_dist($faire, $quoi, $id, $qui, $opts) {
}
function autoriser_xitiniveau_modifier_dist($faire, $quoi, $id, $qui, $opts) {
return autoriser('creer', 'xitiniveau', $id, $qui, $opt);
return autoriser('creer', 'xitiniveau', $id, $qui, $opts);
}
function autoriser_xitiniveau_supprimer_dist($faire, $quoi, $id, $qui, $opts) {

@ -29,7 +29,13 @@ function xiti_caracteres($texte) {
* @return string
*/
function xiti_nettoyeur($texte) {
return strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), xiti_caracteres($texte)));
return strtolower(
preg_replace(
array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'),
array('', '-', ''),
xiti_caracteres($texte)
)
);
}
function xiti($texte) {
@ -123,7 +129,7 @@ function strtoascii($texte, $encoding = 'utf-8') {
// Conversion
foreach ($str_ascii as $k => $v) {
$texte = mb_ereg_replace("[".$v."]", $k, $texte);
$texte = mb_ereg_replace('['.$v.']', $k, $texte);
}
return $texte;

Loading…
Cancel
Save