From: Ludovic CHEVALIER Date: Wed, 12 Feb 2014 13:50:27 +0000 (+0100) Subject: [PLUGINS] +pages X-Git-Tag: 3.1.0~5 X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=commitdiff_plain;h=e7a69b6480a4dcdf34e74b6d62d7f3f4a10a752b [PLUGINS] +pages --- diff --git a/www/plugins/pages/base/pages_tables.php b/www/plugins/pages/base/pages_tables.php new file mode 100644 index 0000000..47fdabd --- /dev/null +++ b/www/plugins/pages/base/pages_tables.php @@ -0,0 +1,19 @@ + diff --git a/www/plugins/pages/content/articles-resume.html b/www/plugins/pages/content/articles-resume.html new file mode 100644 index 0000000..b3d1f9f --- /dev/null +++ b/www/plugins/pages/content/articles-resume.html @@ -0,0 +1,12 @@ + +
+ #ANCRE_PAGINATION +

[(#ENV{titre,<:derniers_articles:>})]

+
    + = 0} {!par date} {pagination #ENV{nb,5}}> + #INCLURE{fond=inclure/article-resume,id_article} + +
+ [

(#PAGINATION)

] +
+
diff --git a/www/plugins/pages/formulaires/editer_identifiant_page.html b/www/plugins/pages/formulaires/editer_identifiant_page.html new file mode 100644 index 0000000..94b725b --- /dev/null +++ b/www/plugins/pages/formulaires/editer_identifiant_page.html @@ -0,0 +1,40 @@ +
+ [

(#ENV*{message_ok})

] + [

(#ENV*{message_erreur})

] + [(#ENV{editable}) +
+ [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + ] +
    + #SET{name,champ_page} #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} #SET{obli,''} +
  • + + [(#GET{erreurs})] + + [(#ENV{#GET{name}}|sinon{<:pagesbis:info_aucun_champ_page:>})] + + [(#ENV{editable}) + + [<:bouton_changer:>] + + + + + ] +
  • +
+ [(#ENV{editable}) + [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + +

+   + + + +

+
+ ] +
diff --git a/www/plugins/pages/formulaires/editer_identifiant_page.php b/www/plugins/pages/formulaires/editer_identifiant_page.php new file mode 100644 index 0000000..65de5fc --- /dev/null +++ b/www/plugins/pages/formulaires/editer_identifiant_page.php @@ -0,0 +1,78 @@ + 40) + $erreurs['champ_page'] = _T('pages:erreur_champ_page_taille'); + // format : charactères alphanumériques en minuscules ou "_" + elseif (!preg_match('/^[a-z0-9_]+$/', $page)) + $erreurs['champ_page'] = _T('pages:erreur_champ_page_format'); + // doublon + elseif (sql_countsel(table_objet_sql('article'), "page=".sql_quote($page) . " AND id_article!=".intval($id_article))) + $erreurs['champ_page'] = _T('pages:erreur_champ_page_doublon'); + } +*/ + return $erreurs; +} + +/** + * Traitement + * + * @param integer $id_article + * @param string $retour + * @return Array + */ +function formulaires_editer_identifiant_page_traiter_dist($id_article, $retour=''){ + + if ( + _request('changer') + and $page = _request('champ_page') + ) { + include_spip('action/editer_objet'); + objet_modifier('article',$id_article,array('page'=>$page)); + } + + set_request('champ_page'); + $res['editable'] = true; + if ($retour) + $res['redirect'] = $retour; + + return $res; +} + +?> diff --git a/www/plugins/pages/images/page-128.png b/www/plugins/pages/images/page-128.png new file mode 100644 index 0000000..eedf501 Binary files /dev/null and b/www/plugins/pages/images/page-128.png differ diff --git a/www/plugins/pages/lang/pages.xml b/www/plugins/pages/lang/pages.xml new file mode 100644 index 0000000..b8b3676 --- /dev/null +++ b/www/plugins/pages/lang/pages.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/plugins/pages/lang/pages_ar.php b/www/plugins/pages/lang/pages_ar.php new file mode 100644 index 0000000..c8b1af8 --- /dev/null +++ b/www/plugins/pages/lang/pages_ar.php @@ -0,0 +1,29 @@ + 'لا توجد صفحات في هذه اللحظة.', # MODIF + + // C + 'convertir_article' => 'تحويل الى مقال', + 'convertir_page' => 'تحويل الى صفحة', + 'creer_page' => 'إنشاء صفحة جديدة', + + // M + 'modifier_page' => 'تغيير الصفحة :', # MODIF + + // P + 'pages_uniques' => 'صفحات فريدة', + + // T + 'titre_page' => 'صفحة', + 'toutes_les_pages' => 'كل الصفحات' +); + +?> diff --git a/www/plugins/pages/lang/pages_en.php b/www/plugins/pages/lang/pages_en.php new file mode 100644 index 0000000..3c9900a --- /dev/null +++ b/www/plugins/pages/lang/pages_en.php @@ -0,0 +1,37 @@ + 'There are no pages at the moment.', + + // C + 'convertir_article' => 'Convert to an article', + 'convertir_page' => 'Convert to a page', + 'creer_page' => 'Create a new page', + + // E + 'erreur_champ_page_doublon' => 'That ID is already in use', + 'erreur_champ_page_format' => 'Lowercase alphanumerical characters or "_" only', + 'erreur_champ_page_taille' => 'Up to 255 characters max', + + // L + 'label_champ_page' => 'Page :', + + // M + 'modifier_page' => 'Edit page:', + + // P + 'pages_uniques' => 'Unique pages', + + // T + 'titre_page' => 'Page', + 'toutes_les_pages' => 'All pages' +); + +?> diff --git a/www/plugins/pages/lang/pages_es.php b/www/plugins/pages/lang/pages_es.php new file mode 100644 index 0000000..8b38c1b --- /dev/null +++ b/www/plugins/pages/lang/pages_es.php @@ -0,0 +1,37 @@ + 'No hay ninguna página por el momento.', + + // C + 'convertir_article' => 'Convertir en artículo', + 'convertir_page' => 'Convertir en página', + 'creer_page' => 'Crear una nueva página', + + // E + 'erreur_champ_page_doublon' => 'Este identificador ya existe', + 'erreur_champ_page_format' => 'Caracteres alfanuméricos en minúsculas o "_" únicamente', + 'erreur_champ_page_taille' => '255 caracteres máximo', + + // L + 'label_champ_page' => 'Página:', + + // M + 'modifier_page' => 'Modificar la página:', + + // P + 'pages_uniques' => 'Páginas únicas', + + // T + 'titre_page' => 'Página', + 'toutes_les_pages' => 'Todas las páginas' +); + +?> diff --git a/www/plugins/pages/lang/pages_fa.php b/www/plugins/pages/lang/pages_fa.php new file mode 100644 index 0000000..ec5a92f --- /dev/null +++ b/www/plugins/pages/lang/pages_fa.php @@ -0,0 +1,29 @@ + ' براي الأن هيچ صفحه‌ي نيست', # MODIF + + // C + 'convertir_article' => 'تبديل به يك مقاله', + 'convertir_page' => 'تبديل به يك صفحه', + 'creer_page' => 'آفرينش يك صفحه‌ي نو', + + // M + 'modifier_page' => 'اصلاح صفحه: ', # MODIF + + // P + 'pages_uniques' => 'صفحه‌هاي تك', + + // T + 'titre_page' => 'صفحه', + 'toutes_les_pages' => 'تمام صفه‌ها' +); + +?> diff --git a/www/plugins/pages/lang/pages_fr.php b/www/plugins/pages/lang/pages_fr.php new file mode 100644 index 0000000..d4a286d --- /dev/null +++ b/www/plugins/pages/lang/pages_fr.php @@ -0,0 +1,35 @@ + 'Il n’y a aucune page pour l’instant.', + + // C + 'convertir_article' => 'Convertir en article', + 'convertir_page' => 'Convertir en page', + 'creer_page' => 'Créer une nouvelle page', + + // E + 'erreur_champ_page_doublon' => 'Cet identifiant existe déjà', + 'erreur_champ_page_format' => 'Charactères alphanumériques en minuscules ou "_" uniquement', + 'erreur_champ_page_taille' => '255 charactères maximum', + + // L + 'label_champ_page' => 'Page :', + + // M + 'modifier_page' => 'Modifier la page :', + + // P + 'pages_uniques' => 'Pages uniques', + + // T + 'titre_page' => 'Page', + 'toutes_les_pages' => 'Toutes les pages' +); + +?> diff --git a/www/plugins/pages/lang/pages_nl.php b/www/plugins/pages/lang/pages_nl.php new file mode 100644 index 0000000..b0d85e0 --- /dev/null +++ b/www/plugins/pages/lang/pages_nl.php @@ -0,0 +1,37 @@ + 'Er is momenteel geen enkele bladzijde.', + + // C + 'convertir_article' => 'In een artikel omzetten', + 'convertir_page' => 'In een bladzijde omzetten', + 'creer_page' => 'Een nieuwe bladzijde maken', + + // E + 'erreur_champ_page_doublon' => 'Deze identificatie bestaat al', + 'erreur_champ_page_format' => 'Uitsluitend kleine letters, cijfers of "_"', + 'erreur_champ_page_taille' => 'maximaal 255 tekens', + + // L + 'label_champ_page' => 'Bladzijde:', + + // M + 'modifier_page' => 'Aanpassen van bladzijde:', + + // P + 'pages_uniques' => 'Unieke bladzijdes', + + // T + 'titre_page' => 'Bladzijde', + 'toutes_les_pages' => 'Alle bladzijdes' +); + +?> diff --git a/www/plugins/pages/lang/pages_ru.php b/www/plugins/pages/lang/pages_ru.php new file mode 100644 index 0000000..90c1053 --- /dev/null +++ b/www/plugins/pages/lang/pages_ru.php @@ -0,0 +1,29 @@ + 'Пока нет страниц.', # MODIF + + // C + 'convertir_article' => 'Преобразовать в статью', + 'convertir_page' => 'Преобразовать в страницу', + 'creer_page' => 'Новая страница', + + // M + 'modifier_page' => 'Изменить страницу:', # MODIF + + // P + 'pages_uniques' => 'Отдельные страницы', + + // T + 'titre_page' => 'Страница', + 'toutes_les_pages' => 'Все страницы' +); + +?> diff --git a/www/plugins/pages/lang/pages_sk.php b/www/plugins/pages/lang/pages_sk.php new file mode 100644 index 0000000..ac4220c --- /dev/null +++ b/www/plugins/pages/lang/pages_sk.php @@ -0,0 +1,37 @@ + 'Momentálne tu nie je žiadna stránka.', + + // C + 'convertir_article' => 'Zmeniť na článok', + 'convertir_page' => 'Zmeniť na stránku', + 'creer_page' => 'Vytvoriť novú stránku', + + // E + 'erreur_champ_page_doublon' => 'Tento identifikátor už existuje', + 'erreur_champ_page_format' => 'Malé písmená alebo jeden "_"', + 'erreur_champ_page_taille' => 'Maximum je 255 znakov', + + // L + 'label_champ_page' => 'Stránka:', + + // M + 'modifier_page' => 'Upraviť stránku:', + + // P + 'pages_uniques' => 'Jedinečné stránky', + + // T + 'titre_page' => 'Stránka', + 'toutes_les_pages' => 'Všetky stránky' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages.xml b/www/plugins/pages/lang/paquet-pages.xml new file mode 100644 index 0000000..1dbb464 --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/plugins/pages/lang/paquet-pages_ar.php b/www/plugins/pages/lang/paquet-pages_ar.php new file mode 100644 index 0000000..93f5e6f --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_ar.php @@ -0,0 +1,17 @@ + 'هذا البرنامج المساعد يسمح لك إنشاء صفحات من البنود التي لا ترتبط بأي تسلسل معين. بيد أنها قد تترافق مع اسم القالب +يأذن للإنشاء صفحة من المعلومات القانونية ، من نحن ، اتصال ، وما إلى ذلك. +', + 'pages_slogan' => ' ' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_en.php b/www/plugins/pages/lang/paquet-pages_en.php new file mode 100644 index 0000000..763b2bf --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_en.php @@ -0,0 +1,18 @@ + 'This plugin allows you to create pages of articles that are not linked to any particular hierarchy. +However they may be associated with a name template. +This allows the creation of pages of legal information, about, contact, etc.. +', + 'pages_slogan' => 'Unlinked pages' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_es.php b/www/plugins/pages/lang/paquet-pages_es.php new file mode 100644 index 0000000..40b6eb7 --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_es.php @@ -0,0 +1,16 @@ + 'Este plugin permite crear páginas de artículos que no están asociadas a ninguna jerarquía particular. +Por contra, pueden asociarse a un nombre de esqueleto. Ello permite crear páginas de aviso legal, acerca de, contacto, etc.', + 'pages_slogan' => 'Páginas sin sección' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_fa.php b/www/plugins/pages/lang/paquet-pages_fa.php new file mode 100644 index 0000000..bb4d42b --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_fa.php @@ -0,0 +1,17 @@ + 'اين پلاگين اجازه‌ي ايجاد صفحه‌هاي مقاله‌هايي را مي‌دهد كه به هيچ سلسله مراتبي متكي نيستند. +در عضو مي‌توانند به نام يك اسلكت مرتبط شوند. +اين پلاگين اجازه‌ي ايجاد صفحه‌هايي مانند اطلاعات حقوقي، در باره‌ي ما، تماس با ما و غيره را خواهد داد.', + 'pages_slogan' => 'صفحه‌هاي بدون بخش' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_fr.php b/www/plugins/pages/lang/paquet-pages_fr.php new file mode 100644 index 0000000..672ddd0 --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_fr.php @@ -0,0 +1,15 @@ + 'Ce plugin permet de créer des pages d’articles qui ne sont reliées à aucune hiérarchie particulière. +En revanche elles peuvent être associées à un nom de squelette. +Cela permet notamment de créer des pages de notice légale, d’à-propos, de contact, etc.', + 'pages_slogan' => 'Des pages sans rubrique' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_nl.php b/www/plugins/pages/lang/paquet-pages_nl.php new file mode 100644 index 0000000..645f1d4 --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_nl.php @@ -0,0 +1,17 @@ + 'Met deze plugin kun je bladzijdes met artikelen maken die niet in de hiërarchie van de site zijn opgenomen. +Ze kunnen worden gekoppeld aan de naam van een skelet. +Op deze manier kunnen bladzijdes zoals wettelijke vermeldingen, contactinformatie, disclaimers, enz. worden gemaakt.', + 'pages_slogan' => 'Bladzijdes zonder rubriek' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_ru.php b/www/plugins/pages/lang/paquet-pages_ru.php new file mode 100644 index 0000000..70ac5ea --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_ru.php @@ -0,0 +1,16 @@ + 'Данный плагин позволяет создавать отдельные страницы вне любых разделов сайта. Это отличное решения для размещения контактной информации, условий и правил использования, а так же для любой информации, которая логически не встраивается в структуру сайта. +Cela permet notamment de créer des pages de notice légale, d’à-propos, de contact, etc.', + 'pages_slogan' => 'Отдельные страницы' +); + +?> diff --git a/www/plugins/pages/lang/paquet-pages_sk.php b/www/plugins/pages/lang/paquet-pages_sk.php new file mode 100644 index 0000000..b2917f6 --- /dev/null +++ b/www/plugins/pages/lang/paquet-pages_sk.php @@ -0,0 +1,17 @@ + 'Tento zásuvný modul vám umožňuje vytvárať stránky s článkami, ktoré nemajú žiadnu konkrétnu hierarchickú štruktúru. +Môžete ich však prepojiť s názvom šablóny. +To vám umožňuje vytvárať stránky s informáciami právneho charakteru, časové osi, zmluvy, a i.', + 'pages_slogan' => 'Stránky bez rubriky' +); + +?> diff --git a/www/plugins/pages/pages_administrations.php b/www/plugins/pages/pages_administrations.php new file mode 100644 index 0000000..e7f7e2d --- /dev/null +++ b/www/plugins/pages/pages_administrations.php @@ -0,0 +1,54 @@ + diff --git a/www/plugins/pages/pages_pipelines.php b/www/plugins/pages/pages_pipelines.php new file mode 100644 index 0000000..2c496c5 --- /dev/null +++ b/www/plugins/pages/pages_pipelines.php @@ -0,0 +1,278 @@ + 0 + and + (sql_getfetsel('page', 'spip_articles', 'id_article='.sql_quote($id_article))) + ) + ) + { + + // On cherche et remplace l'entete de la page : "modifier la page" + $cherche = "/(]*class=('|\")entete-formulaire.*?<\/span>).*?(

.*?<\/h1>.*?<\/div>)/is"; + $surtitre = _T('pages:modifier_page'); + $remplace = "$1$surtitre$3"; + $flux['data'] = preg_replace($cherche, $remplace, $flux['data']); + + // Si c'est une nouvelle page, on remplace le lien de retour dans l'entete + if (_request('new') == 'oui'){ + $cherche = "/(]*class=(?:'|\")icone[^'\"]*retour[^'\"]*(?:'|\")>" + . "]*href=(?:'|\"))[^'\"]*('|\")/is"; + $retour = generer_url_ecrire("pages_tous"); + $remplace = "$1$retour$2"; + $flux['data'] = preg_replace($cherche, $remplace, $flux['data']); + + } + + } + + } + + return $flux; + +} + + +/** + * Saisie de l'identifiant de la page sur la fiche d'une page + * + * @param array $flux + * Le contexte du pipeline + * @return array $flux + * Le contexte du pipeline modifié + */ +function pages_affiche_milieu_identifiant($flux){ + $texte = ""; + $e = trouver_objet_exec($flux['args']['exec']); + + // Si on est sur la fiche d'un article... + if (!$e['edition'] and $e['type']=='article' ) { + include_spip('base/abstract_sql'); + $id_article = isset($flux['args'][$e['id_table_objet']]) ? $flux['args'][$e['id_table_objet']] : false; + // ... et s'il s'agit d'une page + if ( + _request('modele') == 'page' + or + ( + $id_article > 0 + and + (sql_getfetsel('page', 'spip_articles', 'id_article='.sql_quote($id_article))) + ) + ) { + $texte .= recuperer_fond('prive/objets/editer/identifiant_page', + array('id_article' => $id_article), + array('ajax'=>true) + ); + } + } + + if ($texte) { + if ($p=strpos($flux['data'],"")) + $flux['data'] = substr_replace($flux['data'],$texte,$p,0); + else + $flux['data'] .= $texte; + } + + return $flux; +} + + +// Vérifier que la page n'est pas vide +function pages_formulaire_charger($flux){ + + // Si on est dans l'édition d'un article + if (is_array($flux) and $flux['args']['form'] == 'editer_article'){ + + // Si on est dans un article de modele page + if (_request('modele') == 'page' or ($flux['data']['page'] and _request('modele') != 'article')){ + $flux['data']['modele'] = 'page'; + $flux['data']['champ_page'] = $flux['data']['page']; + } + unset($flux['data']['page']); + } + + return $flux; + +} + + +/** + * Vérifications de l'identifiant d'une page + * + * @param array $flux + * Le contexte du pipeline + * @return array $flux + * Le contexte du pipeline modifié + */ +function pages_formulaire_verifier($flux){ + + // Si on est dans l'édition d'un article/page ou dans le formulaire d'édition d'un identifiant page + if ( + is_array($flux) + and ( + ( $flux['args']['form'] == 'editer_article' and _request('modele') == 'page' ) + or $flux['args']['form'] == 'editer_identifiant_page' + ) + ){ + $erreur = ''; + $page = _request('champ_page'); + $id_page = $flux['args']['args'][0]; + + // champ vide + if (!$page) + $erreur .= _T('info_obligatoire'); + // nombre de charactères : 40 max + elseif (strlen($page) > 255) + $erreur = _T('pages:erreur_champ_page_taille'); + // format : charactères alphanumériques en minuscules ou "_" + elseif (!preg_match('/^[a-z0-9_]+$/', $page)) + $erreur = _T('pages:erreur_champ_page_format'); + // doublon + elseif (sql_countsel(table_objet_sql('article'), "page=".sql_quote($page) . " AND id_article!=".intval($id_page))) + $erreur = _T('pages:erreur_champ_page_doublon'); + + if ($erreur) + $flux['data']['champ_page'] .= $erreur; + } + return $flux; + +} + + +/** + * Insertion dans le pipeline editer_contenu_objet (SPIP) + * + * Sur les articles considérés comme pages uniques, on remplace l'élément de choix de rubriques par : + * -* un input hidden id_rubrique et id_parent avec pour valeur -1 + * -* un input hidden modele avec comme valeur "page" + * -* un champ d'édition de l'identifiant de la page unique + * + * @param array $flux + * Le contexte du pipeline + * @return array $flux + * Le contexte du pipeline modifié + */ +function pages_editer_contenu_objet($flux){ + $args = $flux['args']; + if ($args['type'] == 'article' && isset($args['contexte']['modele']) && $args['contexte']['modele'] == 'page'){ + $erreurs = $args['contexte']['erreurs']; + // On cherche et remplace l'édition de la rubrique + $cherche = "/]*class=('|\")editer editer_parent.*?<\/li>/is"; + $remplace = '
  • '; + $remplace .= ''; + $remplace .= ''; + $remplace .= ''; + $remplace .= ''; + if ($erreurs['champ_page']) + $remplace .= ''.$erreurs['champ_page'].''; + $value = $args['contexte']['champ_page'] ? $args['contexte']['champ_page'] : $args['contexte']['page']; + $remplace .= ''; + $remplace .= '
  • '; + $flux['data'] = preg_replace($cherche, $remplace, $flux['data'],1); + $flux['data'] = preg_replace($cherche, '', $flux['data']); + } + return $flux; +} + +/** + * Insertion dans le pipeline pre_edition (SPIP) + * + * Si on édite un article : + * - Si on récupère un champ "champ_page" dans les _request() et qu'il est différent de "article", + * on transforme l'article en page unique, id_rubrique devient -1 + * - Si on ne récupère pas de champ_page et que id_parent est supérieur à 0, on le passe en article et on vide + * son champ page pour pouvoir réaliser le processus inverse dans le futur + * + * @param array $flux Le contexte du pipeline + * @return array $flux Le contexte modifié + */ +function pages_pre_edition_ajouter_page($flux){ + if (is_array($flux) and isset($flux['args']['type']) && $flux['args']['type'] == 'article'){ + if ((($page = _request('champ_page')) != '') AND ($page != 'article')){ + /** + * On ajoute le "champ_page" du formulaire qui deviendra "page" dans la table + * On force l'id_rubrique à -1 + */ + $flux['data']['page'] = $page; + $flux['data']['id_rubrique'] = '-1'; + $flux['data']['id_secteur'] = '0'; + } + /** + * si l'id_parent est supérieur à 0 on que l'on ne récupère pas de champ_page, + * on pense à vider le champ "page", pour pouvoir revenir après coup en page + */ + if (!_request('champ_page') && (_request('id_parent') > 0)){ + $flux['data']['page'] = ''; + } + } + return $flux; +} + +/** + * Insertion dans le pipeline boite_infos (SPIP) + * + * Ajouter un lien pour transformer une article normal en page inversement + * + * @param array $flux + * Le contexte du pipeline + * @return array $flux + * Le contexte modifié + */ +function pages_boite_infos($flux){ + if ($flux['args']['type'] == 'article' and autoriser('modifier', 'article', $flux['args']['id'])){ + include_spip('inc/presentation'); + if (sql_getfetsel('page', 'spip_articles', 'id_article='. $flux['args']['id']) == '') + $flux['data'] .= icone_horizontale(_T('pages:convertir_page'), parametre_url(parametre_url(generer_url_ecrire('article_edit'), 'id_article', $flux['args']['id']), 'modele', 'page'), 'page', $fonction="", $dummy="", $javascript=""); + else + $flux['data'] .= icone_horizontale(_T('pages:convertir_article'), parametre_url(parametre_url(generer_url_ecrire('article_edit'), 'id_article', $flux['args']['id']), 'modele', 'article'), 'article', $fonction="", $dummy="", $javascript=""); + } + return $flux; +} + + +/** + * Insertion dans le pipeline affiche_hierarchie (SPIP) + * Pour les pages, faire pointer la racine vers la liste des pages au lieux des rubriques + * Pour savoir si on se trouve sur une page, on vérifie que le champ "page" existe, faute de mieux + * + * @param array $flux + * Le contexte du pipeline + * @return array $flux + * Le contexte modifié + */ +function pages_affiche_hierarchie($flux){ + + $objet = $flux['args']['objet']; + $id_article = $flux['args']['id_objet']; + if ( + $objet == 'article' + and sql_getfetsel('page', 'spip_articles', 'id_article='.sql_quote($id_article)) + ){ + $cherche = "" . _T('info_racine_site') . ""; + $remplace = "" . _T('pages:pages_uniques') . ""; + $flux['data'] = str_replace($cherche,$remplace,$flux['data']); + } + + + return $flux; +} + +?> diff --git a/www/plugins/pages/paquet.xml b/www/plugins/pages/paquet.xml new file mode 100644 index 0000000..b72132e --- /dev/null +++ b/www/plugins/pages/paquet.xml @@ -0,0 +1,33 @@ + + + Pages + + + RastaPopoulos + Les Développements Durables + GPL v3 + + + + + + + + + + + + + + + + diff --git a/www/plugins/pages/prive/objets/editer/identifiant_page.html b/www/plugins/pages/prive/objets/editer/identifiant_page.html new file mode 100644 index 0000000..7b912a4 --- /dev/null +++ b/www/plugins/pages/prive/objets/editer/identifiant_page.html @@ -0,0 +1,3 @@ +
    + #FORMULAIRE_EDITER_IDENTIFIANT_PAGE{#ENV{id_article}} +
    diff --git a/www/plugins/pages/prive/squelettes/contenu/pages_tous.html b/www/plugins/pages/prive/squelettes/contenu/pages_tous.html new file mode 100644 index 0000000..d53a423 --- /dev/null +++ b/www/plugins/pages/prive/squelettes/contenu/pages_tous.html @@ -0,0 +1,15 @@ +

    <:pages:toutes_les_pages:>

    + +#SET{statuts,#SESSION{statut}|statuts_articles_visibles} +[(#ENV{id_auteur,''}|=={#SESSION{id_auteur}}|oui) + #SET{statuts,#GET{statuts}|array_merge{#LISTE{prepa}}} +] +, + sinon=<:pages:aucune_page:>, + env, + ajax}> diff --git a/www/plugins/pages/prive/squelettes/navigation/pages_tous.html b/www/plugins/pages/prive/squelettes/navigation/pages_tous.html new file mode 100644 index 0000000..5519805 --- /dev/null +++ b/www/plugins/pages/prive/squelettes/navigation/pages_tous.html @@ -0,0 +1,10 @@ + +[(#BOITE_OUVRIR{<:titre_cadre_raccourcis:>,'raccourcis'})] + +[(#URL_ECRIRE{article_edit} + |parametre_url{modele,page} + |parametre_url{new,oui} + |parametre_url{id_rubrique,-1} + |icone_horizontale{<:pages:creer_page:>,page,new})] + +#BOITE_FERMER diff --git a/www/plugins/pages/prive/themes/spip/images/page-16.png b/www/plugins/pages/prive/themes/spip/images/page-16.png new file mode 100644 index 0000000..9dc2e41 Binary files /dev/null and b/www/plugins/pages/prive/themes/spip/images/page-16.png differ diff --git a/www/plugins/pages/prive/themes/spip/images/page-24.png b/www/plugins/pages/prive/themes/spip/images/page-24.png new file mode 100644 index 0000000..bc3b978 Binary files /dev/null and b/www/plugins/pages/prive/themes/spip/images/page-24.png differ diff --git a/www/plugins/pages/prive/themes/spip/images/page-32.png b/www/plugins/pages/prive/themes/spip/images/page-32.png new file mode 100644 index 0000000..f6882aa Binary files /dev/null and b/www/plugins/pages/prive/themes/spip/images/page-32.png differ diff --git a/www/plugins/pages/prive/themes/spip/images/page-new-16.png b/www/plugins/pages/prive/themes/spip/images/page-new-16.png new file mode 100644 index 0000000..683b20e Binary files /dev/null and b/www/plugins/pages/prive/themes/spip/images/page-new-16.png differ diff --git a/www/plugins/pages/saisies-vues/pages_uniques.html b/www/plugins/pages/saisies-vues/pages_uniques.html new file mode 100644 index 0000000..8b7b020 --- /dev/null +++ b/www/plugins/pages/saisies-vues/pages_uniques.html @@ -0,0 +1,5 @@ + +

    #TITRE (#PAGE)

    + +

    <:saisies:vue_sans_reponse:>

    + \ No newline at end of file diff --git a/www/plugins/pages/saisies/pages_uniques.html b/www/plugins/pages/saisies/pages_uniques.html new file mode 100644 index 0000000..2b4d2e3 --- /dev/null +++ b/www/plugins/pages/saisies/pages_uniques.html @@ -0,0 +1,19 @@ +[(#REM) + Saisie permettant de sélectionner une page unique par son nom de page + + Parametres : + - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"") + - cacher_option_intro : pas de premier option vide (defaut:"") + - class : classe(s) css ajoutes au select + + Exemple d'appel : + [(#SAISIE{pages_uniques,nom, + label=<:plugin:label:>, + })] +] + \ No newline at end of file diff --git a/www/plugins/pages/svn.revision b/www/plugins/pages/svn.revision new file mode 100644 index 0000000..9c81448 --- /dev/null +++ b/www/plugins/pages/svn.revision @@ -0,0 +1,10 @@ + + +Origine: file:///home/svn/repository/spip-zone/_plugins_/pages/trunk +Revision: 80270 +Dernier commit: 2014-01-27 14:00:09 +0100 + +file:///home/svn/repository/spip-zone/_plugins_/pages/trunk +80270 +2014-01-27 14:00:09 +0100 + \ No newline at end of file diff --git a/www/plugins/skel_ptitvelo/paquet.xml b/www/plugins/skel_ptitvelo/paquet.xml index 7f85d83..a6acf9c 100644 --- a/www/plugins/skel_ptitvelo/paquet.xml +++ b/www/plugins/skel_ptitvelo/paquet.xml @@ -17,6 +17,7 @@ +