@@ -4,886 +4,886 @@ |
||
| 4 | 4 | // ** ne pas modifier le fichier ** |
| 5 | 5 | |
| 6 | 6 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 7 | - return; |
|
| 7 | + return; |
|
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 11 | 11 | |
| 12 | - // A |
|
| 13 | - 'activer_plugin' => 'Plugin aktivieren', |
|
| 14 | - 'affichage' => 'Anzeigen', |
|
| 15 | - 'aide_non_disponible' => 'Dieser Teil der Online-Hilfe ist in dieser Sprache noch nicht verfügbar.', |
|
| 16 | - 'annuler_recherche' => 'Sucheingabe löschen', |
|
| 17 | - 'auteur' => 'Autor:', |
|
| 18 | - 'avis_acces_interdit' => 'Zugang gesperrt.', |
|
| 19 | - 'avis_acces_interdit_prive' => 'Sie haben nicht die Berechtigung zum Öffnen der Seite<b>@exec@</b>.', |
|
| 20 | - 'avis_article_modifie' => 'Achtung, @nom_auteur_modif@ hat vor @date_diff@ Minute(n) an diesem Artikel gearbeitet.', |
|
| 21 | - 'avis_aucun_resultat' => 'Kein Ergebnis.', |
|
| 22 | - 'avis_base_inaccessible' => 'Keine Verbindung mit Datenbank @base@ möglich.', |
|
| 23 | - 'avis_chemin_invalide_1' => 'Der von ihnen gewählte Pfad', |
|
| 24 | - 'avis_chemin_invalide_2' => 'scheint nicht zu stimmen. Bitte kehren Sie zur vorigen Seite zurück und überprüfen sie die Angaben.', |
|
| 25 | - 'avis_connexion_echec_1' => 'Die Verbindung zur Datenbank ist fehlgeschlagen.', |
|
| 26 | - 'avis_connexion_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.', |
|
| 27 | - 'avis_connexion_echec_3' => '<b>N.B.</b> Bei vielen Servern müssen Sie Ihre Datenbank ausdrücklich <b>freischalten lassen</b> um sie nutzen zu können. Falls die Verbindung wieder fehlschlägt, stellen Sie bitte sicher, dass Ihre Datenbank freigeschaltet wurde.', |
|
| 28 | - 'avis_connexion_erreur_creer_base' => 'Die Datenbank konnte nicht erstellt werden.', |
|
| 29 | - 'avis_connexion_erreur_fichier_cle_manquant_1' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel und seinem Passwort durchgeführt werden', |
|
| 30 | - 'avis_connexion_erreur_fichier_cle_manquant_2' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel durchgeführt werden', |
|
| 31 | - 'avis_connexion_erreur_nom_base' => 'Der Datenbankname darf nur Buchstaben, Ziffern und Bindestriche "-" enthalten.', |
|
| 32 | - 'avis_connexion_ldap_echec_1' => 'Die Verbindung zum LDAP-Server ist fehlgeschlagen.', |
|
| 33 | - 'avis_connexion_ldap_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.', |
|
| 34 | - 'avis_connexion_ldap_echec_3' => 'Sie können Benutzer auch ohne LDAP-Support importieren.', |
|
| 35 | - 'avis_deplacement_rubrique' => 'Achtung! diese Rubrik enthält @contient_breves@ Meldungen@scb@: wenn Sie Rubrik verschieben wollen, markieren Sie bitte zur Bestätigung dieses Kästchen.', |
|
| 36 | - 'avis_erreur_connexion_mysql' => 'SQL-Verbindungsfehler', |
|
| 37 | - 'avis_erreur_creation_compte' => 'Konto konnte nicht initialisiert werden', |
|
| 38 | - 'avis_espace_interdit' => '<b>Gesperrter Bereich</b> <div>SPIP ist bereits installiert.</div>', |
|
| 39 | - 'avis_lecture_noms_bases_1' => 'Das Installationsprogramm konnte die Namen der vorhandenen Datenbanken nicht lesen.', |
|
| 40 | - 'avis_lecture_noms_bases_2' => 'Entweder ist keine Datenbank vorhanden oder die Funktion zum Auflisten der Datenbanken ist aus Sicherheitsgründen abgeschaltet |
|
| 12 | + // A |
|
| 13 | + 'activer_plugin' => 'Plugin aktivieren', |
|
| 14 | + 'affichage' => 'Anzeigen', |
|
| 15 | + 'aide_non_disponible' => 'Dieser Teil der Online-Hilfe ist in dieser Sprache noch nicht verfügbar.', |
|
| 16 | + 'annuler_recherche' => 'Sucheingabe löschen', |
|
| 17 | + 'auteur' => 'Autor:', |
|
| 18 | + 'avis_acces_interdit' => 'Zugang gesperrt.', |
|
| 19 | + 'avis_acces_interdit_prive' => 'Sie haben nicht die Berechtigung zum Öffnen der Seite<b>@exec@</b>.', |
|
| 20 | + 'avis_article_modifie' => 'Achtung, @nom_auteur_modif@ hat vor @date_diff@ Minute(n) an diesem Artikel gearbeitet.', |
|
| 21 | + 'avis_aucun_resultat' => 'Kein Ergebnis.', |
|
| 22 | + 'avis_base_inaccessible' => 'Keine Verbindung mit Datenbank @base@ möglich.', |
|
| 23 | + 'avis_chemin_invalide_1' => 'Der von ihnen gewählte Pfad', |
|
| 24 | + 'avis_chemin_invalide_2' => 'scheint nicht zu stimmen. Bitte kehren Sie zur vorigen Seite zurück und überprüfen sie die Angaben.', |
|
| 25 | + 'avis_connexion_echec_1' => 'Die Verbindung zur Datenbank ist fehlgeschlagen.', |
|
| 26 | + 'avis_connexion_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.', |
|
| 27 | + 'avis_connexion_echec_3' => '<b>N.B.</b> Bei vielen Servern müssen Sie Ihre Datenbank ausdrücklich <b>freischalten lassen</b> um sie nutzen zu können. Falls die Verbindung wieder fehlschlägt, stellen Sie bitte sicher, dass Ihre Datenbank freigeschaltet wurde.', |
|
| 28 | + 'avis_connexion_erreur_creer_base' => 'Die Datenbank konnte nicht erstellt werden.', |
|
| 29 | + 'avis_connexion_erreur_fichier_cle_manquant_1' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel und seinem Passwort durchgeführt werden', |
|
| 30 | + 'avis_connexion_erreur_fichier_cle_manquant_2' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel durchgeführt werden', |
|
| 31 | + 'avis_connexion_erreur_nom_base' => 'Der Datenbankname darf nur Buchstaben, Ziffern und Bindestriche "-" enthalten.', |
|
| 32 | + 'avis_connexion_ldap_echec_1' => 'Die Verbindung zum LDAP-Server ist fehlgeschlagen.', |
|
| 33 | + 'avis_connexion_ldap_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.', |
|
| 34 | + 'avis_connexion_ldap_echec_3' => 'Sie können Benutzer auch ohne LDAP-Support importieren.', |
|
| 35 | + 'avis_deplacement_rubrique' => 'Achtung! diese Rubrik enthält @contient_breves@ Meldungen@scb@: wenn Sie Rubrik verschieben wollen, markieren Sie bitte zur Bestätigung dieses Kästchen.', |
|
| 36 | + 'avis_erreur_connexion_mysql' => 'SQL-Verbindungsfehler', |
|
| 37 | + 'avis_erreur_creation_compte' => 'Konto konnte nicht initialisiert werden', |
|
| 38 | + 'avis_espace_interdit' => '<b>Gesperrter Bereich</b> <div>SPIP ist bereits installiert.</div>', |
|
| 39 | + 'avis_lecture_noms_bases_1' => 'Das Installationsprogramm konnte die Namen der vorhandenen Datenbanken nicht lesen.', |
|
| 40 | + 'avis_lecture_noms_bases_2' => 'Entweder ist keine Datenbank vorhanden oder die Funktion zum Auflisten der Datenbanken ist aus Sicherheitsgründen abgeschaltet |
|
| 41 | 41 | (Das ist bei vielen Webhostern der Fall).', |
| 42 | - 'avis_lecture_noms_bases_3' => 'Im zweiten Fall ist wahrscheinlich eine Datenbank vorhanden, die Ihren Anmeldenamen trägt:', |
|
| 43 | - 'avis_non_acces_page' => 'Sie haben keinen Zugriff auf diese Seite.', |
|
| 44 | - 'avis_operation_echec' => 'Aktion fehlgeschlagen.', |
|
| 45 | - 'avis_operation_impossible' => 'Aktion nicht möglich', |
|
| 46 | - 'avis_suppression_base' => 'ACHTUNG, Daten werden unwiderruflich gelöscht.', |
|
| 42 | + 'avis_lecture_noms_bases_3' => 'Im zweiten Fall ist wahrscheinlich eine Datenbank vorhanden, die Ihren Anmeldenamen trägt:', |
|
| 43 | + 'avis_non_acces_page' => 'Sie haben keinen Zugriff auf diese Seite.', |
|
| 44 | + 'avis_operation_echec' => 'Aktion fehlgeschlagen.', |
|
| 45 | + 'avis_operation_impossible' => 'Aktion nicht möglich', |
|
| 46 | + 'avis_suppression_base' => 'ACHTUNG, Daten werden unwiderruflich gelöscht.', |
|
| 47 | 47 | |
| 48 | - // B |
|
| 49 | - 'bouton_acces_ldap' => 'LDAP Zugang hinzufügen', |
|
| 50 | - 'bouton_ajouter' => 'Hinzufügen', |
|
| 51 | - 'bouton_annuler' => 'Abbrechen', |
|
| 52 | - 'bouton_cache_activer' => 'Cache aktivieren', |
|
| 53 | - 'bouton_cache_desactiver' => 'Cache vorübergehend abschalten', |
|
| 54 | - 'bouton_demande_publication' => 'Artikel zur Veröffentlichung vorschlagen', |
|
| 55 | - 'bouton_desactive_tout' => 'Alles deaktivieren', |
|
| 56 | - 'bouton_desinstaller' => 'Deinstallieren', |
|
| 57 | - 'bouton_effacer_tout' => 'ALLES löschen', |
|
| 58 | - 'bouton_envoyer_message' => 'Nachricht fertig: Senden', |
|
| 59 | - 'bouton_fermer' => 'Schließen', |
|
| 60 | - 'bouton_mettre_a_jour_base' => 'Datenbank updaten', |
|
| 61 | - 'bouton_modifier' => 'Ändern', |
|
| 62 | - 'bouton_radio_afficher' => 'Anzeigen', |
|
| 63 | - 'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Auf der Liste angemeldeter Redakteure anzeigen', |
|
| 64 | - 'bouton_radio_envoi_annonces_adresse' => 'Editorische Ankündigungen an diese Adresse senden:', |
|
| 65 | - 'bouton_radio_envoi_liste_nouveautes' => 'Liste der neuesten Veröffentlichungen verschicken', |
|
| 66 | - 'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ich will nicht auf dieser Liste zu sehen sein.', |
|
| 67 | - 'bouton_radio_non_envoi_annonces_editoriales' => 'Keine editorischen Ankündigungen verschicken', |
|
| 68 | - 'bouton_redirection' => 'UMLEITUNG', |
|
| 69 | - 'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Mit Standardwerten neu initialisieren', |
|
| 70 | - 'bouton_relancer_inscription' => 'Anmeldung neu starten', |
|
| 71 | - 'bouton_relancer_inscriptions' => 'Anmeldungen neu starten', |
|
| 72 | - 'bouton_relancer_installation' => 'Installation wiederholen', |
|
| 73 | - 'bouton_reset_password' => 'Neues Passwort erzeugen und per Mail zusenden', |
|
| 74 | - 'bouton_suivant' => 'weiter', |
|
| 75 | - 'bouton_tenter_recuperation' => 'Reparatur versuchen', |
|
| 76 | - 'bouton_test_proxy' => 'Proxy testen', |
|
| 77 | - 'bouton_vider_cache' => 'Cache leeren', |
|
| 48 | + // B |
|
| 49 | + 'bouton_acces_ldap' => 'LDAP Zugang hinzufügen', |
|
| 50 | + 'bouton_ajouter' => 'Hinzufügen', |
|
| 51 | + 'bouton_annuler' => 'Abbrechen', |
|
| 52 | + 'bouton_cache_activer' => 'Cache aktivieren', |
|
| 53 | + 'bouton_cache_desactiver' => 'Cache vorübergehend abschalten', |
|
| 54 | + 'bouton_demande_publication' => 'Artikel zur Veröffentlichung vorschlagen', |
|
| 55 | + 'bouton_desactive_tout' => 'Alles deaktivieren', |
|
| 56 | + 'bouton_desinstaller' => 'Deinstallieren', |
|
| 57 | + 'bouton_effacer_tout' => 'ALLES löschen', |
|
| 58 | + 'bouton_envoyer_message' => 'Nachricht fertig: Senden', |
|
| 59 | + 'bouton_fermer' => 'Schließen', |
|
| 60 | + 'bouton_mettre_a_jour_base' => 'Datenbank updaten', |
|
| 61 | + 'bouton_modifier' => 'Ändern', |
|
| 62 | + 'bouton_radio_afficher' => 'Anzeigen', |
|
| 63 | + 'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Auf der Liste angemeldeter Redakteure anzeigen', |
|
| 64 | + 'bouton_radio_envoi_annonces_adresse' => 'Editorische Ankündigungen an diese Adresse senden:', |
|
| 65 | + 'bouton_radio_envoi_liste_nouveautes' => 'Liste der neuesten Veröffentlichungen verschicken', |
|
| 66 | + 'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ich will nicht auf dieser Liste zu sehen sein.', |
|
| 67 | + 'bouton_radio_non_envoi_annonces_editoriales' => 'Keine editorischen Ankündigungen verschicken', |
|
| 68 | + 'bouton_redirection' => 'UMLEITUNG', |
|
| 69 | + 'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Mit Standardwerten neu initialisieren', |
|
| 70 | + 'bouton_relancer_inscription' => 'Anmeldung neu starten', |
|
| 71 | + 'bouton_relancer_inscriptions' => 'Anmeldungen neu starten', |
|
| 72 | + 'bouton_relancer_installation' => 'Installation wiederholen', |
|
| 73 | + 'bouton_reset_password' => 'Neues Passwort erzeugen und per Mail zusenden', |
|
| 74 | + 'bouton_suivant' => 'weiter', |
|
| 75 | + 'bouton_tenter_recuperation' => 'Reparatur versuchen', |
|
| 76 | + 'bouton_test_proxy' => 'Proxy testen', |
|
| 77 | + 'bouton_vider_cache' => 'Cache leeren', |
|
| 78 | 78 | |
| 79 | - // C |
|
| 80 | - 'cache_modifiable_webmestre' => 'Dieser Parameter kann vom Webmaster eingestellt werden.', |
|
| 81 | - 'calendrier_synchro' => 'Wenn Sie eine mit <b>iCal</b> kompatibles PIM-Programm verwenden, könne Sie es mit den Einträgen dieser Website synchronisieren.', |
|
| 82 | - 'config_activer_champs' => 'Aktivieren Sie folgende Felder', |
|
| 83 | - 'config_choix_base_sup' => 'Eine Datenbank auf diesem Server angeben', |
|
| 84 | - 'config_erreur_base_sup' => 'SPIP kann nicht auf die Liste der verfügbaren Datenbanken zugreifen.', |
|
| 85 | - 'config_info_base_sup' => 'Wenn Sie andere Datenbanken auf dem selben Server oder auf einem anderen mit SPIP abfragen möchten, können Sie sie mit dem Formular weiter unten deklarieren. Wenn Sie Felder leer lassen, werden die Verbindungsdaten der Hauptdatenbank verwendet.', |
|
| 86 | - 'config_info_base_sup_disponibles' => 'Bereits abfragbare Datenbanken:', |
|
| 87 | - 'config_info_enregistree' => 'Neue Einstellungen wurden gespeichert', |
|
| 88 | - 'config_info_logos' => 'Jedes Element der Website kann ein Logo und ein «mouseover-Logo» erhalten.', |
|
| 89 | - 'config_info_logos_utiliser' => 'Logos verwenden', |
|
| 90 | - 'config_info_logos_utiliser_non' => 'Logos nicht verwenden', |
|
| 91 | - 'config_info_logos_utiliser_survol' => 'Mouseover-Logos verwenden', |
|
| 92 | - 'config_info_logos_utiliser_survol_non' => 'Mouseover-Logos nicht verwenden', |
|
| 93 | - 'config_info_redirection' => 'Mit dieser Option können Sie virtuelle Artikel anlegen, die als Weiterleitung zu Artikeln anderer Websites oder ausserhalb von SPIP funktionieren.', |
|
| 94 | - 'config_redirection' => 'Virtuelle Artikel', |
|
| 95 | - 'config_titre_base_sup' => 'Deklaration einer zusätzlichen Datenbank', |
|
| 96 | - 'config_titre_base_sup_choix' => 'Wählen Sie eine zusätzliche Datenbank', |
|
| 97 | - 'connexion_ldap' => 'Verbindung:', |
|
| 98 | - 'creer_et_associer_un_auteur' => 'Autor anlegen und zuordnen', |
|
| 79 | + // C |
|
| 80 | + 'cache_modifiable_webmestre' => 'Dieser Parameter kann vom Webmaster eingestellt werden.', |
|
| 81 | + 'calendrier_synchro' => 'Wenn Sie eine mit <b>iCal</b> kompatibles PIM-Programm verwenden, könne Sie es mit den Einträgen dieser Website synchronisieren.', |
|
| 82 | + 'config_activer_champs' => 'Aktivieren Sie folgende Felder', |
|
| 83 | + 'config_choix_base_sup' => 'Eine Datenbank auf diesem Server angeben', |
|
| 84 | + 'config_erreur_base_sup' => 'SPIP kann nicht auf die Liste der verfügbaren Datenbanken zugreifen.', |
|
| 85 | + 'config_info_base_sup' => 'Wenn Sie andere Datenbanken auf dem selben Server oder auf einem anderen mit SPIP abfragen möchten, können Sie sie mit dem Formular weiter unten deklarieren. Wenn Sie Felder leer lassen, werden die Verbindungsdaten der Hauptdatenbank verwendet.', |
|
| 86 | + 'config_info_base_sup_disponibles' => 'Bereits abfragbare Datenbanken:', |
|
| 87 | + 'config_info_enregistree' => 'Neue Einstellungen wurden gespeichert', |
|
| 88 | + 'config_info_logos' => 'Jedes Element der Website kann ein Logo und ein «mouseover-Logo» erhalten.', |
|
| 89 | + 'config_info_logos_utiliser' => 'Logos verwenden', |
|
| 90 | + 'config_info_logos_utiliser_non' => 'Logos nicht verwenden', |
|
| 91 | + 'config_info_logos_utiliser_survol' => 'Mouseover-Logos verwenden', |
|
| 92 | + 'config_info_logos_utiliser_survol_non' => 'Mouseover-Logos nicht verwenden', |
|
| 93 | + 'config_info_redirection' => 'Mit dieser Option können Sie virtuelle Artikel anlegen, die als Weiterleitung zu Artikeln anderer Websites oder ausserhalb von SPIP funktionieren.', |
|
| 94 | + 'config_redirection' => 'Virtuelle Artikel', |
|
| 95 | + 'config_titre_base_sup' => 'Deklaration einer zusätzlichen Datenbank', |
|
| 96 | + 'config_titre_base_sup_choix' => 'Wählen Sie eine zusätzliche Datenbank', |
|
| 97 | + 'connexion_ldap' => 'Verbindung:', |
|
| 98 | + 'creer_et_associer_un_auteur' => 'Autor anlegen und zuordnen', |
|
| 99 | 99 | |
| 100 | - // D |
|
| 101 | - 'date_mot_heures' => 'Stunden', |
|
| 100 | + // D |
|
| 101 | + 'date_mot_heures' => 'Stunden', |
|
| 102 | 102 | |
| 103 | - // E |
|
| 104 | - 'ecran_connexion_couleur_principale' => 'Grundfarbe', |
|
| 105 | - 'ecran_connexion_image_fond' => 'Hintergrundbild', |
|
| 106 | - 'ecran_connexion_image_fond_explication' => 'Ein Bild verwenden (fFormat JPEG, 1920x1080 Pixel)', |
|
| 107 | - 'ecran_connexion_image_revenir_couleur_defaut' => 'Standardfarbe verwenden', |
|
| 108 | - 'ecran_connexion_titre' => 'Anmeldebildschirm', |
|
| 109 | - 'ecran_securite' => ' + Sicherheitsschirm @version@', |
|
| 110 | - 'email' => 'E-Mail', |
|
| 111 | - 'email_2' => 'E-Mail:', |
|
| 112 | - 'en_savoir_plus' => 'Weitere Informationen', |
|
| 113 | - 'entree_adresse_annuaire' => 'Adresse des Verzeichnisses', |
|
| 114 | - 'entree_adresse_email' => 'Ihre E-Mail Adresse', |
|
| 115 | - 'entree_adresse_email_2' => 'Mailadresse', |
|
| 116 | - 'entree_base_donnee_1' => 'Adresse des Datenbankservers', |
|
| 117 | - 'entree_base_donnee_2' => '(Oftmals entspricht diese Adresse der Ihrer Website, sie kann auch einfach „localhost“ lauten und gelegentlich darf das Feld leer bleiben.)', |
|
| 118 | - 'entree_biographie' => 'Ganz kurze Vorstellung / Lebenslauf', |
|
| 119 | - 'entree_chemin_acces' => 'Bitte den <b>Pfad angeben</b>:', |
|
| 120 | - 'entree_cle_pgp' => 'Ihr öffentlicher PGP-Schlüssel', |
|
| 121 | - 'entree_cle_pgp_2' => 'PGP-Schlüssel', |
|
| 122 | - 'entree_contenu_rubrique' => '(Inhalt der Rubrik)', |
|
| 123 | - 'entree_identifiants_connexion' => 'Ihre Verbindungsdaten ...', |
|
| 124 | - 'entree_identifiants_connexion_2' => 'Logindaten', |
|
| 125 | - 'entree_informations_connexion_ldap' => 'Bitte tragen Sie in dieses Formular die Zugangsdaten zu Ihrem LDAP-Verzeichnis ein. Sie erhalten diese Informationen von Ihrem System- oder Netzwerkadministrator.', |
|
| 126 | - 'entree_infos_perso' => 'Wer sind Sie?', |
|
| 127 | - 'entree_infos_perso_2' => 'Wer ist der Autor?', |
|
| 128 | - 'entree_interieur_rubrique' => 'In der Rubrik:', |
|
| 129 | - 'entree_liens_sites' => '<b>Hyperlink</b> (Quelle, Website zum Thema ...)', |
|
| 130 | - 'entree_login' => 'Ihr Login', |
|
| 131 | - 'entree_login_connexion_1' => 'Login für die Verbindung', |
|
| 132 | - 'entree_login_connexion_2' => '(Dieser entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)', |
|
| 133 | - 'entree_mot_passe' => 'Ihr Passwort', |
|
| 134 | - 'entree_mot_passe_1' => 'Passwort für die Verbindung', |
|
| 135 | - 'entree_mot_passe_2' => '(Entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)', |
|
| 136 | - 'entree_nom_fichier' => 'Bitte geben Sie den Namen der Datei @texte_compresse@ an:', |
|
| 137 | - 'entree_nom_pseudo' => 'Ihr Name oder Pseudonym', |
|
| 138 | - 'entree_nom_pseudo_1' => '(Ihr Name oder Nickname)', |
|
| 139 | - 'entree_nom_pseudo_2' => 'Name oder Pseudonym', |
|
| 140 | - 'entree_nom_site' => 'Der Titel Ihrer Website', |
|
| 141 | - 'entree_nom_site_2' => 'Name der Website des Autors', |
|
| 142 | - 'entree_nouveau_passe' => 'Neues Passwort', |
|
| 143 | - 'entree_passe_ldap' => 'Passwort', |
|
| 144 | - 'entree_port_annuaire' => 'Port (Nummer) des Verzeichnisses', |
|
| 145 | - 'entree_signature' => 'Unterschrift', |
|
| 146 | - 'entree_titre_obligatoire' => '<b>Titel</b> [Pflichtfeld]<br />', |
|
| 147 | - 'entree_url' => 'Adresse (URL) Ihrer Website', |
|
| 148 | - 'entree_url_2' => 'Adresse (URL) der Website', |
|
| 149 | - 'erreur_connect_deja_existant' => 'Ein Server mit diesem Namen existiert bereits.', |
|
| 150 | - 'erreur_contenu_suspect' => 'Text mit Escape-Zeichen', |
|
| 151 | - 'erreur_email_deja_existant' => 'Diese Adresse ist bereits gespeichert.', |
|
| 152 | - 'erreur_nom_connect_incorrect' => 'Dieser Servername ist nicht zulässig.', |
|
| 153 | - 'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ fehlt im Tag @balise@.', |
|
| 154 | - 'erreur_plugin_desinstalation_echouee' => 'Das Deinstallieren des Plugins ist fehlgeschlagen. Sie können es jedoch deaktivieren.', |
|
| 155 | - 'erreur_plugin_fichier_absent' => 'Datei nicht vorhanden', |
|
| 156 | - 'erreur_plugin_fichier_def_absent' => 'Definitionsdatei nicht vorhanden', |
|
| 157 | - 'erreur_plugin_nom_fonction_interdit' => 'Unzulässiger Funktionsname', |
|
| 158 | - 'erreur_plugin_nom_manquant' => 'Name des Plugin fehlt', |
|
| 159 | - 'erreur_plugin_prefix_manquant' => 'Namespace des Plugin nicht definiert', |
|
| 160 | - 'erreur_plugin_tag_plugin_absent' => '<plugin> fehlt in der Definitionsdatei', |
|
| 161 | - 'erreur_plugin_version_manquant' => 'Version des Plugin fehlt', |
|
| 162 | - 'erreur_type_fichier' => 'Falsches Dateiformat', |
|
| 103 | + // E |
|
| 104 | + 'ecran_connexion_couleur_principale' => 'Grundfarbe', |
|
| 105 | + 'ecran_connexion_image_fond' => 'Hintergrundbild', |
|
| 106 | + 'ecran_connexion_image_fond_explication' => 'Ein Bild verwenden (fFormat JPEG, 1920x1080 Pixel)', |
|
| 107 | + 'ecran_connexion_image_revenir_couleur_defaut' => 'Standardfarbe verwenden', |
|
| 108 | + 'ecran_connexion_titre' => 'Anmeldebildschirm', |
|
| 109 | + 'ecran_securite' => ' + Sicherheitsschirm @version@', |
|
| 110 | + 'email' => 'E-Mail', |
|
| 111 | + 'email_2' => 'E-Mail:', |
|
| 112 | + 'en_savoir_plus' => 'Weitere Informationen', |
|
| 113 | + 'entree_adresse_annuaire' => 'Adresse des Verzeichnisses', |
|
| 114 | + 'entree_adresse_email' => 'Ihre E-Mail Adresse', |
|
| 115 | + 'entree_adresse_email_2' => 'Mailadresse', |
|
| 116 | + 'entree_base_donnee_1' => 'Adresse des Datenbankservers', |
|
| 117 | + 'entree_base_donnee_2' => '(Oftmals entspricht diese Adresse der Ihrer Website, sie kann auch einfach „localhost“ lauten und gelegentlich darf das Feld leer bleiben.)', |
|
| 118 | + 'entree_biographie' => 'Ganz kurze Vorstellung / Lebenslauf', |
|
| 119 | + 'entree_chemin_acces' => 'Bitte den <b>Pfad angeben</b>:', |
|
| 120 | + 'entree_cle_pgp' => 'Ihr öffentlicher PGP-Schlüssel', |
|
| 121 | + 'entree_cle_pgp_2' => 'PGP-Schlüssel', |
|
| 122 | + 'entree_contenu_rubrique' => '(Inhalt der Rubrik)', |
|
| 123 | + 'entree_identifiants_connexion' => 'Ihre Verbindungsdaten ...', |
|
| 124 | + 'entree_identifiants_connexion_2' => 'Logindaten', |
|
| 125 | + 'entree_informations_connexion_ldap' => 'Bitte tragen Sie in dieses Formular die Zugangsdaten zu Ihrem LDAP-Verzeichnis ein. Sie erhalten diese Informationen von Ihrem System- oder Netzwerkadministrator.', |
|
| 126 | + 'entree_infos_perso' => 'Wer sind Sie?', |
|
| 127 | + 'entree_infos_perso_2' => 'Wer ist der Autor?', |
|
| 128 | + 'entree_interieur_rubrique' => 'In der Rubrik:', |
|
| 129 | + 'entree_liens_sites' => '<b>Hyperlink</b> (Quelle, Website zum Thema ...)', |
|
| 130 | + 'entree_login' => 'Ihr Login', |
|
| 131 | + 'entree_login_connexion_1' => 'Login für die Verbindung', |
|
| 132 | + 'entree_login_connexion_2' => '(Dieser entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)', |
|
| 133 | + 'entree_mot_passe' => 'Ihr Passwort', |
|
| 134 | + 'entree_mot_passe_1' => 'Passwort für die Verbindung', |
|
| 135 | + 'entree_mot_passe_2' => '(Entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)', |
|
| 136 | + 'entree_nom_fichier' => 'Bitte geben Sie den Namen der Datei @texte_compresse@ an:', |
|
| 137 | + 'entree_nom_pseudo' => 'Ihr Name oder Pseudonym', |
|
| 138 | + 'entree_nom_pseudo_1' => '(Ihr Name oder Nickname)', |
|
| 139 | + 'entree_nom_pseudo_2' => 'Name oder Pseudonym', |
|
| 140 | + 'entree_nom_site' => 'Der Titel Ihrer Website', |
|
| 141 | + 'entree_nom_site_2' => 'Name der Website des Autors', |
|
| 142 | + 'entree_nouveau_passe' => 'Neues Passwort', |
|
| 143 | + 'entree_passe_ldap' => 'Passwort', |
|
| 144 | + 'entree_port_annuaire' => 'Port (Nummer) des Verzeichnisses', |
|
| 145 | + 'entree_signature' => 'Unterschrift', |
|
| 146 | + 'entree_titre_obligatoire' => '<b>Titel</b> [Pflichtfeld]<br />', |
|
| 147 | + 'entree_url' => 'Adresse (URL) Ihrer Website', |
|
| 148 | + 'entree_url_2' => 'Adresse (URL) der Website', |
|
| 149 | + 'erreur_connect_deja_existant' => 'Ein Server mit diesem Namen existiert bereits.', |
|
| 150 | + 'erreur_contenu_suspect' => 'Text mit Escape-Zeichen', |
|
| 151 | + 'erreur_email_deja_existant' => 'Diese Adresse ist bereits gespeichert.', |
|
| 152 | + 'erreur_nom_connect_incorrect' => 'Dieser Servername ist nicht zulässig.', |
|
| 153 | + 'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ fehlt im Tag @balise@.', |
|
| 154 | + 'erreur_plugin_desinstalation_echouee' => 'Das Deinstallieren des Plugins ist fehlgeschlagen. Sie können es jedoch deaktivieren.', |
|
| 155 | + 'erreur_plugin_fichier_absent' => 'Datei nicht vorhanden', |
|
| 156 | + 'erreur_plugin_fichier_def_absent' => 'Definitionsdatei nicht vorhanden', |
|
| 157 | + 'erreur_plugin_nom_fonction_interdit' => 'Unzulässiger Funktionsname', |
|
| 158 | + 'erreur_plugin_nom_manquant' => 'Name des Plugin fehlt', |
|
| 159 | + 'erreur_plugin_prefix_manquant' => 'Namespace des Plugin nicht definiert', |
|
| 160 | + 'erreur_plugin_tag_plugin_absent' => '<plugin> fehlt in der Definitionsdatei', |
|
| 161 | + 'erreur_plugin_version_manquant' => 'Version des Plugin fehlt', |
|
| 162 | + 'erreur_type_fichier' => 'Falsches Dateiformat', |
|
| 163 | 163 | |
| 164 | - // H |
|
| 165 | - 'htaccess_a_simuler' => 'Achtung: Ihr HTTP-Server ist so konfiguriert, daß er @htaccess@ Dateien ignoriert. Eine sichere Konfiguration des Servers erzielen sie, indem sie diese Einstellung ändern, oder indem sie die Konstanten @constantes@ in der Datei mes_options.php so setzen, daß die Verzeichnisse außerhalb des @document_root@ liegen.', |
|
| 166 | - 'htaccess_inoperant' => 'htaccess unwirksam', |
|
| 164 | + // H |
|
| 165 | + 'htaccess_a_simuler' => 'Achtung: Ihr HTTP-Server ist so konfiguriert, daß er @htaccess@ Dateien ignoriert. Eine sichere Konfiguration des Servers erzielen sie, indem sie diese Einstellung ändern, oder indem sie die Konstanten @constantes@ in der Datei mes_options.php so setzen, daß die Verzeichnisse außerhalb des @document_root@ liegen.', |
|
| 166 | + 'htaccess_inoperant' => 'htaccess unwirksam', |
|
| 167 | 167 | |
| 168 | - // I |
|
| 169 | - 'ical_info1' => 'Diese Seite ermöglicht auf mehrere Arten an der Entwicklung der Website teilzunehmen.', |
|
| 170 | - 'ical_info2' => 'Um mehr über diese Techniken zu erfahren, lesen Sie bitte die <a href="@spipnet@">SPIP Dokumentation</a>.', |
|
| 171 | - 'ical_info_calendrier' => 'Sie verfügen über zwei Kalender. Einer gibt Ihnen eine Übersicht über die Website und alle dort veröffentlichten Artikel. Der zweite enthält editorische Ankündigungen und Ihre persönlichen Nachrichten. Sie allein haben Zugriff auf ihn indem Sie Ihr Passwort eingeben. Sie könne es ändern, indem Sie Ihr Zugangspasswort für diese Website ändern.', |
|
| 172 | - 'ical_methode_http' => 'Download', |
|
| 173 | - 'ical_methode_webcal' => 'Synchronisierung (webcal://)', |
|
| 174 | - 'ical_texte_prive' => 'Dieser nur für Sie selbst zugängliche Kalender hält Sie auf dem Laufenden über die internen redaktionellen Vorgänge dieser Website (Aufgaben und persönliche Termine, vorgeschlagene Artikel und Meldungen ...).', |
|
| 175 | - 'ical_texte_public' => 'Dieser Kalender gibt Ihnen einen Überblick über die Ereignisse im öffentlichen Bereich der Website.', |
|
| 176 | - 'ical_texte_rss' => 'Sie können die Neuheiten dieser Website mit einem beliebigen Programm anzeigen, dass das Format XML/RSS (Rich Site Summary) beherrscht. SPIP nutz dieses Protokoll auch, um neue Einträge aus anderen Websites zu übernehmen (sog. syndizierte Websites).', |
|
| 177 | - 'ical_titre_js' => 'Javascript', |
|
| 178 | - 'ical_titre_mailing' => 'Mailing-List', |
|
| 179 | - 'ical_titre_rss' => '"Backend" Datei', |
|
| 180 | - 'icone_accueil' => 'Start', |
|
| 181 | - 'icone_activer_cookie' => 'Verwaltungs-Cookie setzen', |
|
| 182 | - 'icone_activite' => 'Aktivität', |
|
| 183 | - 'icone_admin_plugin' => 'Plugin-Verwaltung', |
|
| 184 | - 'icone_administration' => 'Wartung', |
|
| 185 | - 'icone_afficher_auteurs' => 'Autoren anzeigen', |
|
| 186 | - 'icone_afficher_visiteurs' => 'Besucher anzeigen', |
|
| 187 | - 'icone_arret_discussion' => 'Aus dieser Diskussion aussteigen', |
|
| 188 | - 'icone_calendrier' => 'Kalender', |
|
| 189 | - 'icone_configuration' => 'Konfiguration', |
|
| 190 | - 'icone_creer_auteur' => 'Neuen Autor anlegen und diesem Artikel zuordnen', |
|
| 191 | - 'icone_creer_mot_cle' => 'Neues Schlagwort anlegen und mit diesem Artikel verknüpfen', |
|
| 192 | - 'icone_creer_rubrique_2' => 'Neue Rubrik anlegen', |
|
| 193 | - 'icone_developpement' => 'Entwicklung', |
|
| 194 | - 'icone_edition' => 'Redaktion', |
|
| 195 | - 'icone_ma_langue' => 'Meine Sprache', |
|
| 196 | - 'icone_mes_infos' => 'Meine Informationen', |
|
| 197 | - 'icone_mes_preferences' => 'Meine Einstellungen', |
|
| 198 | - 'icone_modifier_article' => 'Artikel bearbeiten', |
|
| 199 | - 'icone_modifier_rubrique' => 'Rubrik bearbeiten', |
|
| 200 | - 'icone_publication' => 'Veröffentlichen', |
|
| 201 | - 'icone_relancer_signataire' => 'Unterzeichner erneut benachrichtigen', |
|
| 202 | - 'icone_retour' => 'Zurück', |
|
| 203 | - 'icone_retour_article' => 'Zurück zum Artikel', |
|
| 204 | - 'icone_squelette' => 'Skelette', |
|
| 205 | - 'icone_suivi_publication' => 'Verlauf der Veröffentlichungen', |
|
| 206 | - 'icone_supprimer_cookie' => 'Verwaltungs-Cookie löschen', |
|
| 207 | - 'icone_supprimer_rubrique' => 'Rubrik löschen', |
|
| 208 | - 'icone_supprimer_signature' => 'Unterschrift löschen', |
|
| 209 | - 'icone_valider_signature' => 'Unterschrift bestätigen', |
|
| 210 | - 'image_administrer_rubrique' => 'Sie können diese Rubrik verwalten', |
|
| 211 | - 'impossible_modifier_login_auteur' => 'Login-ID kann nicht geändert werden.', |
|
| 212 | - 'impossible_modifier_pass_auteur' => 'Passwort kann nicht geändert werden.', |
|
| 213 | - 'info_1_article' => '1 Artikel', |
|
| 214 | - 'info_1_auteur' => '1 Autor', |
|
| 215 | - 'info_1_message' => '1 Nachricht', |
|
| 216 | - 'info_1_mot_cle' => '1 Schlagwort', |
|
| 217 | - 'info_1_rubrique' => '1 Rubrik', |
|
| 218 | - 'info_1_visiteur' => '1 Besucher', |
|
| 219 | - 'info_activer_cookie' => 'Sie können ein <b>Verwaltungs-Cookie</b> setzen. Es erlaubt Ihnen, Artikel und Rubriken direkt aus der Website zu bearbeiten.', |
|
| 220 | - 'info_activer_menu_developpement' => 'Entwicklermenü anzeigen', |
|
| 221 | - 'info_admin_etre_webmestre' => 'Mir Webmaster-Rechte geben', |
|
| 222 | - 'info_admin_je_suis_webmestre' => 'Ich bin <b>Webmaster</b>', |
|
| 223 | - 'info_admin_statuer_webmestre' => 'Diesem Administrator Webmaster-Rechte geben', |
|
| 224 | - 'info_admin_webmestre' => 'Dieser Administrator ist <b>Webmaster</b>', |
|
| 225 | - 'info_administrateur' => 'Administrator', |
|
| 226 | - 'info_administrateur_1' => 'Administrator', |
|
| 227 | - 'info_administrateur_2' => 'der Website (<i>vorsichtig einsetzen</i>)', |
|
| 228 | - 'info_administrateur_site_01' => 'Wenn Sie Administrator der Website sind, bitte', |
|
| 229 | - 'info_administrateur_site_02' => 'auf diesen Link klicken.', |
|
| 230 | - 'info_administrateurs' => 'Administratoren', |
|
| 231 | - 'info_administrer_rubrique' => 'Sie können diese Rubrik verwalten', |
|
| 232 | - 'info_adresse' => 'an Adresse:', |
|
| 233 | - 'info_adresse_desinscription' => 'Adresse für die Abmeldung:', |
|
| 234 | - 'info_adresse_url' => 'Adresse (URL) der öffentlichen Website', |
|
| 235 | - 'info_afficher_par_nb' => 'Anzeigen nach', |
|
| 236 | - 'info_aide_en_ligne' => 'SPIP Online-Hilfe', |
|
| 237 | - 'info_ajout_image' => 'Wenn Sie Bilder als Dokumente anlegen, die einem Artikel zugeordnet sind, kann SPIP automatisch (Miniatur-)Vorschaubilder dazu erstellen. Sie können so eine automatische Galerie oder Bildermappe einrichten.', |
|
| 238 | - 'info_ajouter_rubrique' => 'Eine weitere zu verwaltende Rubrik hinzufügen:', |
|
| 239 | - 'info_annonce_nouveautes' => 'Ankündigung der Neuigkeiten', |
|
| 240 | - 'info_article' => 'Artikel', |
|
| 241 | - 'info_article_2' => 'Artikel', |
|
| 242 | - 'info_article_a_paraitre' => 'Vordatierte Artikel, die noch nicht erschienen sind.', |
|
| 243 | - 'info_articles_02' => 'Artikel', |
|
| 244 | - 'info_articles_2' => 'Artikel', |
|
| 245 | - 'info_articles_auteur' => 'Alle Artikel dieses Autors', |
|
| 246 | - 'info_articles_miens' => 'Meine Artikel', |
|
| 247 | - 'info_articles_tous' => 'Alle Artikel', |
|
| 248 | - 'info_articles_trouves' => 'Gefundene Artikel', |
|
| 249 | - 'info_attente_validation' => 'Ihre zur Veröffentlichung vorgeschlagenen Artikel', |
|
| 250 | - 'info_aucun_article' => 'Kein Artikel', |
|
| 251 | - 'info_aucun_auteur' => 'Kein Autor', |
|
| 252 | - 'info_aucun_message' => 'Keine Nachricht', |
|
| 253 | - 'info_aucun_rubrique' => 'Keine Rubrik', |
|
| 254 | - 'info_aujourdhui' => 'heute: ', |
|
| 255 | - 'info_auteur_gere_rubriques' => 'Dieser Autor verwaltet folgende Rubriken :', |
|
| 256 | - 'info_auteur_gere_toutes_rubriques' => 'Dieser Autor verwaltet <b>alle Rubriken</b>.', |
|
| 257 | - 'info_auteur_gere_toutes_rubriques_2' => 'Ich verwalte <b>alle Rubriken</b>.', |
|
| 258 | - 'info_auteurs' => 'Autoren', |
|
| 259 | - 'info_auteurs_par_tri' => 'Autoren@partri@', |
|
| 260 | - 'info_auteurs_trouves' => 'Gefundene Autoren', |
|
| 261 | - 'info_authentification_externe' => 'Externe Authentifizierung', |
|
| 262 | - 'info_avertissement' => 'Warnung', |
|
| 263 | - 'info_barre_outils' => 'mit Symbolleiste?', |
|
| 264 | - 'info_base_installee' => 'Die Struktur Ihrer Datenbank wurde angelegt.', |
|
| 265 | - 'info_bio' => 'Biographie', |
|
| 266 | - 'info_cache_desactive' => 'Der Cache ist vorübergehend deaktiviert.', |
|
| 267 | - 'info_chapeau' => 'Kopf', |
|
| 268 | - 'info_chapeau_2' => 'Kopf:', |
|
| 269 | - 'info_chemin_acces_1' => 'Optionen: <b>Pfad im Verzeichnis</b>', |
|
| 270 | - 'info_chemin_acces_2' => 'Sie müssen jetzt den Pfad zu den Informationen im Verzeichnis angeben. Diese Information ist unbedingt erforderlich, um die Benutzerprofile im Verzeichnis lesen zu können.', |
|
| 271 | - 'info_chemin_acces_annuaire' => 'Optionen: <b>Pfad im Verzeichnis</b>', |
|
| 272 | - 'info_choix_base' => 'Schritt 3: ', |
|
| 273 | - 'info_classement_1' => ' von @liste@', |
|
| 274 | - 'info_classement_2' => 'von @liste@', |
|
| 275 | - 'info_code_acces' => 'Vergessen Sie ihre Zugangsdaten nicht!', |
|
| 276 | - 'info_config_suivi' => 'Wenn es sich bei dieser Adresse um eine Mailing-Liste handelt, können Sie unten die Adresse angeben, unter der sich Teilnehmer der Website anmelden können. Es kann sich um den URL einer Webseite handeln (die ein Anmeldeformular enthält) oder um eine E-Mail Adresse mit angehängtem Parameter (z.B. <tt>@adresse_suivi@?subject=subscribe</tt>):', |
|
| 277 | - 'info_config_suivi_explication' => 'Sie können die Mailing-Liste dieser Website abonnieren. Sie werden dann per E-Mail über neu zur Veröffentlichung vorgeschlagene Artikel informiert.', |
|
| 278 | - 'info_confirmer_passe' => 'Neues Passwort bestätigen:', |
|
| 279 | - 'info_conflit_edition_avis_non_sauvegarde' => 'Achtung, die folgenden Felder wurden von anderen geändert. Ihre Änderungen in diesen Feldern wurden deshalb nicht gespeichert.', |
|
| 280 | - 'info_conflit_edition_differences' => 'Unterschiede:', |
|
| 281 | - 'info_conflit_edition_version_enregistree' => 'Die gespeicherte Fassung:', |
|
| 282 | - 'info_conflit_edition_votre_version' => 'Ihre Fassung:', |
|
| 283 | - 'info_connexion_base' => 'Test der Verbindung zur Datenbank', |
|
| 284 | - 'info_connexion_base_donnee' => 'Verbindung mit Ihrer Datenbank', |
|
| 285 | - 'info_connexion_ldap_ok' => 'Die LDAP-Verbindung wurde hergestellt.</b><p> Sie können mit dem nächsten Schritt fortfahren.</p>', |
|
| 286 | - 'info_connexion_mysql' => 'Verbindung zur SQL-Datenbank', |
|
| 287 | - 'info_connexion_ok' => 'Die Verbindung wurde hergestellt.', |
|
| 288 | - 'info_contact' => 'Kontakt', |
|
| 289 | - 'info_contenu_articles' => 'Inhalt der Artikel', |
|
| 290 | - 'info_contributions' => 'Beiträge', |
|
| 291 | - 'info_creation_paragraphe' => 'Um einen Absatz einzufügen, lassen Sie einfach eine Zeile frei.', |
|
| 292 | - 'info_creation_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.<br />', |
|
| 293 | - 'info_creation_tables' => 'Anlegen der Datentabellen', |
|
| 294 | - 'info_creer_base' => 'Neue Datenbank <b>anlegen</b>:', |
|
| 295 | - 'info_dans_rubrique' => 'In der Rubrik:', |
|
| 296 | - 'info_date_publication_anterieure' => 'Datum einer früheren Bearbeitung:', |
|
| 297 | - 'info_date_referencement' => 'DATUM DER VERLINKUNG DIESER WEBSITE:', |
|
| 298 | - 'info_derniere_etape' => 'Fertig!', |
|
| 299 | - 'info_descriptif' => 'Beschreibung:', |
|
| 300 | - 'info_desinstaller_plugin' => 'löscht die Daten und desktiviert das Plugin', |
|
| 301 | - 'info_discussion_cours' => 'Aktuelle Diskussionen', |
|
| 302 | - 'info_ecrire_article' => 'Bevor Sie Artikel schreiben könnnen, müssen Sie mindestens eine Rubrik anlegen.', |
|
| 303 | - 'info_email_envoi' => 'Absenderadresse (freiwillige Angabe)', |
|
| 304 | - 'info_email_envoi_txt' => 'Geben Sie hier die Absenderadresse der E-Mails an (ohne diese Angabe wird die Empfängeradresse als Absender eingetragen). ', |
|
| 305 | - 'info_email_webmestre' => 'E-Mail des Webmasters', |
|
| 306 | - 'info_envoi_email_automatique' => 'Automatischer Mailversand', |
|
| 307 | - 'info_envoyer_maintenant' => 'Jetzt schicken', |
|
| 308 | - 'info_etape_suivante' => 'Weiter', |
|
| 309 | - 'info_etape_suivante_1' => 'Sie können den nächsten Schritt ausführen.', |
|
| 310 | - 'info_etape_suivante_2' => 'Sie können den nächsten Schritt ausführen.', |
|
| 311 | - 'info_exceptions_proxy' => 'Ausnahmen für den Proxy', |
|
| 312 | - 'info_exportation_base' => 'Export der Datenbank nach @archive@', |
|
| 313 | - 'info_facilite_suivi_activite' => 'Um die editorische Arbeit zu erleichtern kann SPIP Veröffentlichungsvorschläge und Freischaltungen z.B. an eine Mailing-Liste der Redakteure schicken. Geben Sie eine oder mehrere Adressen an, die durch Kommata getrennt sind. ', |
|
| 314 | - 'info_fichiers_authent' => '“.htpasswd” Dateien', |
|
| 315 | - 'info_forums_abo_invites' => 'Ihre Website hat Foren für eingetragene Teilnehmer. Ihre Leser werden aus diesem Gund aufgefordert, sich bei Ihrer Website anzumelden.', |
|
| 316 | - 'info_gauche_admin_tech' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.', |
|
| 317 | - 'info_gauche_admin_vider' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.', |
|
| 318 | - 'info_gauche_auteurs' => 'Hier sehen Sie alle Autoren der Website. |
|
| 168 | + // I |
|
| 169 | + 'ical_info1' => 'Diese Seite ermöglicht auf mehrere Arten an der Entwicklung der Website teilzunehmen.', |
|
| 170 | + 'ical_info2' => 'Um mehr über diese Techniken zu erfahren, lesen Sie bitte die <a href="@spipnet@">SPIP Dokumentation</a>.', |
|
| 171 | + 'ical_info_calendrier' => 'Sie verfügen über zwei Kalender. Einer gibt Ihnen eine Übersicht über die Website und alle dort veröffentlichten Artikel. Der zweite enthält editorische Ankündigungen und Ihre persönlichen Nachrichten. Sie allein haben Zugriff auf ihn indem Sie Ihr Passwort eingeben. Sie könne es ändern, indem Sie Ihr Zugangspasswort für diese Website ändern.', |
|
| 172 | + 'ical_methode_http' => 'Download', |
|
| 173 | + 'ical_methode_webcal' => 'Synchronisierung (webcal://)', |
|
| 174 | + 'ical_texte_prive' => 'Dieser nur für Sie selbst zugängliche Kalender hält Sie auf dem Laufenden über die internen redaktionellen Vorgänge dieser Website (Aufgaben und persönliche Termine, vorgeschlagene Artikel und Meldungen ...).', |
|
| 175 | + 'ical_texte_public' => 'Dieser Kalender gibt Ihnen einen Überblick über die Ereignisse im öffentlichen Bereich der Website.', |
|
| 176 | + 'ical_texte_rss' => 'Sie können die Neuheiten dieser Website mit einem beliebigen Programm anzeigen, dass das Format XML/RSS (Rich Site Summary) beherrscht. SPIP nutz dieses Protokoll auch, um neue Einträge aus anderen Websites zu übernehmen (sog. syndizierte Websites).', |
|
| 177 | + 'ical_titre_js' => 'Javascript', |
|
| 178 | + 'ical_titre_mailing' => 'Mailing-List', |
|
| 179 | + 'ical_titre_rss' => '"Backend" Datei', |
|
| 180 | + 'icone_accueil' => 'Start', |
|
| 181 | + 'icone_activer_cookie' => 'Verwaltungs-Cookie setzen', |
|
| 182 | + 'icone_activite' => 'Aktivität', |
|
| 183 | + 'icone_admin_plugin' => 'Plugin-Verwaltung', |
|
| 184 | + 'icone_administration' => 'Wartung', |
|
| 185 | + 'icone_afficher_auteurs' => 'Autoren anzeigen', |
|
| 186 | + 'icone_afficher_visiteurs' => 'Besucher anzeigen', |
|
| 187 | + 'icone_arret_discussion' => 'Aus dieser Diskussion aussteigen', |
|
| 188 | + 'icone_calendrier' => 'Kalender', |
|
| 189 | + 'icone_configuration' => 'Konfiguration', |
|
| 190 | + 'icone_creer_auteur' => 'Neuen Autor anlegen und diesem Artikel zuordnen', |
|
| 191 | + 'icone_creer_mot_cle' => 'Neues Schlagwort anlegen und mit diesem Artikel verknüpfen', |
|
| 192 | + 'icone_creer_rubrique_2' => 'Neue Rubrik anlegen', |
|
| 193 | + 'icone_developpement' => 'Entwicklung', |
|
| 194 | + 'icone_edition' => 'Redaktion', |
|
| 195 | + 'icone_ma_langue' => 'Meine Sprache', |
|
| 196 | + 'icone_mes_infos' => 'Meine Informationen', |
|
| 197 | + 'icone_mes_preferences' => 'Meine Einstellungen', |
|
| 198 | + 'icone_modifier_article' => 'Artikel bearbeiten', |
|
| 199 | + 'icone_modifier_rubrique' => 'Rubrik bearbeiten', |
|
| 200 | + 'icone_publication' => 'Veröffentlichen', |
|
| 201 | + 'icone_relancer_signataire' => 'Unterzeichner erneut benachrichtigen', |
|
| 202 | + 'icone_retour' => 'Zurück', |
|
| 203 | + 'icone_retour_article' => 'Zurück zum Artikel', |
|
| 204 | + 'icone_squelette' => 'Skelette', |
|
| 205 | + 'icone_suivi_publication' => 'Verlauf der Veröffentlichungen', |
|
| 206 | + 'icone_supprimer_cookie' => 'Verwaltungs-Cookie löschen', |
|
| 207 | + 'icone_supprimer_rubrique' => 'Rubrik löschen', |
|
| 208 | + 'icone_supprimer_signature' => 'Unterschrift löschen', |
|
| 209 | + 'icone_valider_signature' => 'Unterschrift bestätigen', |
|
| 210 | + 'image_administrer_rubrique' => 'Sie können diese Rubrik verwalten', |
|
| 211 | + 'impossible_modifier_login_auteur' => 'Login-ID kann nicht geändert werden.', |
|
| 212 | + 'impossible_modifier_pass_auteur' => 'Passwort kann nicht geändert werden.', |
|
| 213 | + 'info_1_article' => '1 Artikel', |
|
| 214 | + 'info_1_auteur' => '1 Autor', |
|
| 215 | + 'info_1_message' => '1 Nachricht', |
|
| 216 | + 'info_1_mot_cle' => '1 Schlagwort', |
|
| 217 | + 'info_1_rubrique' => '1 Rubrik', |
|
| 218 | + 'info_1_visiteur' => '1 Besucher', |
|
| 219 | + 'info_activer_cookie' => 'Sie können ein <b>Verwaltungs-Cookie</b> setzen. Es erlaubt Ihnen, Artikel und Rubriken direkt aus der Website zu bearbeiten.', |
|
| 220 | + 'info_activer_menu_developpement' => 'Entwicklermenü anzeigen', |
|
| 221 | + 'info_admin_etre_webmestre' => 'Mir Webmaster-Rechte geben', |
|
| 222 | + 'info_admin_je_suis_webmestre' => 'Ich bin <b>Webmaster</b>', |
|
| 223 | + 'info_admin_statuer_webmestre' => 'Diesem Administrator Webmaster-Rechte geben', |
|
| 224 | + 'info_admin_webmestre' => 'Dieser Administrator ist <b>Webmaster</b>', |
|
| 225 | + 'info_administrateur' => 'Administrator', |
|
| 226 | + 'info_administrateur_1' => 'Administrator', |
|
| 227 | + 'info_administrateur_2' => 'der Website (<i>vorsichtig einsetzen</i>)', |
|
| 228 | + 'info_administrateur_site_01' => 'Wenn Sie Administrator der Website sind, bitte', |
|
| 229 | + 'info_administrateur_site_02' => 'auf diesen Link klicken.', |
|
| 230 | + 'info_administrateurs' => 'Administratoren', |
|
| 231 | + 'info_administrer_rubrique' => 'Sie können diese Rubrik verwalten', |
|
| 232 | + 'info_adresse' => 'an Adresse:', |
|
| 233 | + 'info_adresse_desinscription' => 'Adresse für die Abmeldung:', |
|
| 234 | + 'info_adresse_url' => 'Adresse (URL) der öffentlichen Website', |
|
| 235 | + 'info_afficher_par_nb' => 'Anzeigen nach', |
|
| 236 | + 'info_aide_en_ligne' => 'SPIP Online-Hilfe', |
|
| 237 | + 'info_ajout_image' => 'Wenn Sie Bilder als Dokumente anlegen, die einem Artikel zugeordnet sind, kann SPIP automatisch (Miniatur-)Vorschaubilder dazu erstellen. Sie können so eine automatische Galerie oder Bildermappe einrichten.', |
|
| 238 | + 'info_ajouter_rubrique' => 'Eine weitere zu verwaltende Rubrik hinzufügen:', |
|
| 239 | + 'info_annonce_nouveautes' => 'Ankündigung der Neuigkeiten', |
|
| 240 | + 'info_article' => 'Artikel', |
|
| 241 | + 'info_article_2' => 'Artikel', |
|
| 242 | + 'info_article_a_paraitre' => 'Vordatierte Artikel, die noch nicht erschienen sind.', |
|
| 243 | + 'info_articles_02' => 'Artikel', |
|
| 244 | + 'info_articles_2' => 'Artikel', |
|
| 245 | + 'info_articles_auteur' => 'Alle Artikel dieses Autors', |
|
| 246 | + 'info_articles_miens' => 'Meine Artikel', |
|
| 247 | + 'info_articles_tous' => 'Alle Artikel', |
|
| 248 | + 'info_articles_trouves' => 'Gefundene Artikel', |
|
| 249 | + 'info_attente_validation' => 'Ihre zur Veröffentlichung vorgeschlagenen Artikel', |
|
| 250 | + 'info_aucun_article' => 'Kein Artikel', |
|
| 251 | + 'info_aucun_auteur' => 'Kein Autor', |
|
| 252 | + 'info_aucun_message' => 'Keine Nachricht', |
|
| 253 | + 'info_aucun_rubrique' => 'Keine Rubrik', |
|
| 254 | + 'info_aujourdhui' => 'heute: ', |
|
| 255 | + 'info_auteur_gere_rubriques' => 'Dieser Autor verwaltet folgende Rubriken :', |
|
| 256 | + 'info_auteur_gere_toutes_rubriques' => 'Dieser Autor verwaltet <b>alle Rubriken</b>.', |
|
| 257 | + 'info_auteur_gere_toutes_rubriques_2' => 'Ich verwalte <b>alle Rubriken</b>.', |
|
| 258 | + 'info_auteurs' => 'Autoren', |
|
| 259 | + 'info_auteurs_par_tri' => 'Autoren@partri@', |
|
| 260 | + 'info_auteurs_trouves' => 'Gefundene Autoren', |
|
| 261 | + 'info_authentification_externe' => 'Externe Authentifizierung', |
|
| 262 | + 'info_avertissement' => 'Warnung', |
|
| 263 | + 'info_barre_outils' => 'mit Symbolleiste?', |
|
| 264 | + 'info_base_installee' => 'Die Struktur Ihrer Datenbank wurde angelegt.', |
|
| 265 | + 'info_bio' => 'Biographie', |
|
| 266 | + 'info_cache_desactive' => 'Der Cache ist vorübergehend deaktiviert.', |
|
| 267 | + 'info_chapeau' => 'Kopf', |
|
| 268 | + 'info_chapeau_2' => 'Kopf:', |
|
| 269 | + 'info_chemin_acces_1' => 'Optionen: <b>Pfad im Verzeichnis</b>', |
|
| 270 | + 'info_chemin_acces_2' => 'Sie müssen jetzt den Pfad zu den Informationen im Verzeichnis angeben. Diese Information ist unbedingt erforderlich, um die Benutzerprofile im Verzeichnis lesen zu können.', |
|
| 271 | + 'info_chemin_acces_annuaire' => 'Optionen: <b>Pfad im Verzeichnis</b>', |
|
| 272 | + 'info_choix_base' => 'Schritt 3: ', |
|
| 273 | + 'info_classement_1' => ' von @liste@', |
|
| 274 | + 'info_classement_2' => 'von @liste@', |
|
| 275 | + 'info_code_acces' => 'Vergessen Sie ihre Zugangsdaten nicht!', |
|
| 276 | + 'info_config_suivi' => 'Wenn es sich bei dieser Adresse um eine Mailing-Liste handelt, können Sie unten die Adresse angeben, unter der sich Teilnehmer der Website anmelden können. Es kann sich um den URL einer Webseite handeln (die ein Anmeldeformular enthält) oder um eine E-Mail Adresse mit angehängtem Parameter (z.B. <tt>@adresse_suivi@?subject=subscribe</tt>):', |
|
| 277 | + 'info_config_suivi_explication' => 'Sie können die Mailing-Liste dieser Website abonnieren. Sie werden dann per E-Mail über neu zur Veröffentlichung vorgeschlagene Artikel informiert.', |
|
| 278 | + 'info_confirmer_passe' => 'Neues Passwort bestätigen:', |
|
| 279 | + 'info_conflit_edition_avis_non_sauvegarde' => 'Achtung, die folgenden Felder wurden von anderen geändert. Ihre Änderungen in diesen Feldern wurden deshalb nicht gespeichert.', |
|
| 280 | + 'info_conflit_edition_differences' => 'Unterschiede:', |
|
| 281 | + 'info_conflit_edition_version_enregistree' => 'Die gespeicherte Fassung:', |
|
| 282 | + 'info_conflit_edition_votre_version' => 'Ihre Fassung:', |
|
| 283 | + 'info_connexion_base' => 'Test der Verbindung zur Datenbank', |
|
| 284 | + 'info_connexion_base_donnee' => 'Verbindung mit Ihrer Datenbank', |
|
| 285 | + 'info_connexion_ldap_ok' => 'Die LDAP-Verbindung wurde hergestellt.</b><p> Sie können mit dem nächsten Schritt fortfahren.</p>', |
|
| 286 | + 'info_connexion_mysql' => 'Verbindung zur SQL-Datenbank', |
|
| 287 | + 'info_connexion_ok' => 'Die Verbindung wurde hergestellt.', |
|
| 288 | + 'info_contact' => 'Kontakt', |
|
| 289 | + 'info_contenu_articles' => 'Inhalt der Artikel', |
|
| 290 | + 'info_contributions' => 'Beiträge', |
|
| 291 | + 'info_creation_paragraphe' => 'Um einen Absatz einzufügen, lassen Sie einfach eine Zeile frei.', |
|
| 292 | + 'info_creation_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.<br />', |
|
| 293 | + 'info_creation_tables' => 'Anlegen der Datentabellen', |
|
| 294 | + 'info_creer_base' => 'Neue Datenbank <b>anlegen</b>:', |
|
| 295 | + 'info_dans_rubrique' => 'In der Rubrik:', |
|
| 296 | + 'info_date_publication_anterieure' => 'Datum einer früheren Bearbeitung:', |
|
| 297 | + 'info_date_referencement' => 'DATUM DER VERLINKUNG DIESER WEBSITE:', |
|
| 298 | + 'info_derniere_etape' => 'Fertig!', |
|
| 299 | + 'info_descriptif' => 'Beschreibung:', |
|
| 300 | + 'info_desinstaller_plugin' => 'löscht die Daten und desktiviert das Plugin', |
|
| 301 | + 'info_discussion_cours' => 'Aktuelle Diskussionen', |
|
| 302 | + 'info_ecrire_article' => 'Bevor Sie Artikel schreiben könnnen, müssen Sie mindestens eine Rubrik anlegen.', |
|
| 303 | + 'info_email_envoi' => 'Absenderadresse (freiwillige Angabe)', |
|
| 304 | + 'info_email_envoi_txt' => 'Geben Sie hier die Absenderadresse der E-Mails an (ohne diese Angabe wird die Empfängeradresse als Absender eingetragen). ', |
|
| 305 | + 'info_email_webmestre' => 'E-Mail des Webmasters', |
|
| 306 | + 'info_envoi_email_automatique' => 'Automatischer Mailversand', |
|
| 307 | + 'info_envoyer_maintenant' => 'Jetzt schicken', |
|
| 308 | + 'info_etape_suivante' => 'Weiter', |
|
| 309 | + 'info_etape_suivante_1' => 'Sie können den nächsten Schritt ausführen.', |
|
| 310 | + 'info_etape_suivante_2' => 'Sie können den nächsten Schritt ausführen.', |
|
| 311 | + 'info_exceptions_proxy' => 'Ausnahmen für den Proxy', |
|
| 312 | + 'info_exportation_base' => 'Export der Datenbank nach @archive@', |
|
| 313 | + 'info_facilite_suivi_activite' => 'Um die editorische Arbeit zu erleichtern kann SPIP Veröffentlichungsvorschläge und Freischaltungen z.B. an eine Mailing-Liste der Redakteure schicken. Geben Sie eine oder mehrere Adressen an, die durch Kommata getrennt sind. ', |
|
| 314 | + 'info_fichiers_authent' => '“.htpasswd” Dateien', |
|
| 315 | + 'info_forums_abo_invites' => 'Ihre Website hat Foren für eingetragene Teilnehmer. Ihre Leser werden aus diesem Gund aufgefordert, sich bei Ihrer Website anzumelden.', |
|
| 316 | + 'info_gauche_admin_tech' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.', |
|
| 317 | + 'info_gauche_admin_vider' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.', |
|
| 318 | + 'info_gauche_auteurs' => 'Hier sehen Sie alle Autoren der Website. |
|
| 319 | 319 | Ihr Status wird durch die Farbe ihres Symbols angezeigt (Redakteur = gelb; Administrator = grün). ', |
| 320 | - 'info_gauche_auteurs_exterieurs' => 'Externe Autoren ohne Zugang zum Redaktionssystem werden mit einem blauen Symbol gekennzeichnet, gelöschte Autoren haben eine Mülltonne als Symbol.', |
|
| 321 | - 'info_gauche_messagerie' => 'Nachrichtensystem: SPIP ermöglicht den Austausch von Nachrichten zwischen Redakteuren, persönliche Merkzettel und Ankündigungen im privaten Arbeitsbereich der Redakteure (nur Administratoren können diese verschicken).', |
|
| 322 | - 'info_gauche_statistiques_referers' => 'Diese Seite zeigt Ihnen <i>REFERER</i>, d.h. Webadressen mit Links zu Ihrer Website. Angezeigt werden nur Links von gestern und heute, diese Liste wird alle 24 Stunden auf Null gesetzt.', |
|
| 323 | - 'info_gauche_visiteurs_enregistres' => 'Hier sehen Sie die im öffentlichen Bereich der Website angemeldeten Besucher (Teilnahme an Foren nur mit gültiger E-Mail Adresse).', |
|
| 324 | - 'info_generation_miniatures_images' => 'Anlegen der Vorschaubilder', |
|
| 325 | - 'info_gerer_trad_objets' => '@objets@: Übersetzungslinks verwalten', |
|
| 326 | - 'info_hebergeur_desactiver_envoi_email' => 'Manche ISPs verhindern den Versand von Mails mit PHP. Die Mailfunktionen von SPIP funktionieren dann nicht.', |
|
| 327 | - 'info_hier' => 'Gestern:', |
|
| 328 | - 'info_identification_publique' => 'Ihre öffentliche Identität ...', |
|
| 329 | - 'info_image_process' => 'Bitte wählen Sie das beste Verfahren zum Generieren der Miniaturbilder, indem Sie auf ein Bild klicken.', |
|
| 330 | - 'info_image_process2' => 'Wenn kein Bild angezeigt wird, ist der Server ihrer Website nicht für die Verwendung solcher Werkzeuge eingerichtet. Wenn Sie diese Funktionen nutzen möchten, wenden Sie sich bitte an den verantwortlichen Techniker und bitten ihn, die Erweiterungen «GD» oder «Imagick» einzurichten.', |
|
| 331 | - 'info_images_auto' => 'automatisch berechnete Bilder', |
|
| 332 | - 'info_informations_personnelles' => 'Persönliche Informationen', |
|
| 333 | - 'info_inscription' => 'Angemeldet am', |
|
| 334 | - 'info_inscription_automatique' => 'Automatische Anmeldung neuer Redakteure', |
|
| 335 | - 'info_jeu_caractere' => 'Zeichensatz der Website', |
|
| 336 | - 'info_jours' => 'Tage', |
|
| 337 | - 'info_laisser_champs_vides' => 'diese Felder frei lassen)', |
|
| 338 | - 'info_langues' => 'Sprachen der Website', |
|
| 339 | - 'info_ldap_ok' => 'Die LDAP-Authentifizierung ist installiert.', |
|
| 340 | - 'info_lien_hypertexte' => 'Hyperlink:', |
|
| 341 | - 'info_liste_nouveautes_envoyee' => 'Die Liste der Neuerscheinungen wurde versand.', |
|
| 342 | - 'info_liste_redacteurs_connectes' => 'Liste der zur Zeit angemeldeten Redakteure', |
|
| 343 | - 'info_login_existant' => 'Dieses Login ist bereits vergeben.', |
|
| 344 | - 'info_login_trop_court' => 'Login zu kurz.', |
|
| 345 | - 'info_login_trop_court_car_pluriel' => 'Ihr Login muss mindestens @nb@ Zeichen haben.', |
|
| 346 | - 'info_logos' => 'Die Logos', |
|
| 347 | - 'info_maximum' => 'Maximum:', |
|
| 348 | - 'info_meme_rubrique' => 'In der gleichen Rubrik', |
|
| 349 | - 'info_message_en_redaction' => 'IHRE NACHRICHTEN IN BEARBEITUNG', |
|
| 350 | - 'info_message_technique' => 'Technische Nachricht:', |
|
| 351 | - 'info_messagerie_interne' => 'Interne Nachrichten', |
|
| 352 | - 'info_mise_a_niveau_base' => 'Update Ihrer SQL-Datenbank', |
|
| 353 | - 'info_mise_a_niveau_base_2' => '{{ACHTUNG!}} Sie haben eine {ältere} Version der SPIP-Dateien installiert als sich vorher auf Ihrem Server befand. Ihre Datenbank wird möglicherweise zerstört und Ihre Website wird nict mehr funktionieren.<br />{{Installieren Sie SPIP noch einmal.}}', |
|
| 354 | - 'info_modification_enregistree' => 'Ihre Änderung wurde gespeichert.', |
|
| 355 | - 'info_modifier_auteur' => 'Autor bearbeiten:', |
|
| 356 | - 'info_modifier_rubrique' => 'Rubrik bearbeiten:', |
|
| 357 | - 'info_modifier_titre' => 'Bearbeiten: @titre@', |
|
| 358 | - 'info_mon_site_spip' => 'Meine SPIP-Site', |
|
| 359 | - 'info_moyenne' => 'Durchschnitt: ', |
|
| 360 | - 'info_multi_cet_article' => 'Dieser Artikel ist auf: ', |
|
| 361 | - 'info_multi_langues_choisies' => 'Bitte wählen Sie hier die Sprachen aus, die den Redakteuren Ihrer Website zur Verfügung stehen sollen. Die Sprachen, welche bereits in Ihrer Website verwendet werden (oben auf der Liste), können nicht abgeschaltet werden.', |
|
| 362 | - 'info_multi_objets' => '@objets@: Sprachauswahlmenü aktivieren', |
|
| 363 | - 'info_multi_secteurs' => '... nur für Rubriken der obersten Ebene?', |
|
| 364 | - 'info_nb_articles' => '@nb@ Artikel', |
|
| 365 | - 'info_nb_auteurs' => '@nb@ Autoren', |
|
| 366 | - 'info_nb_messages' => '@nb@ Nachrichten', |
|
| 367 | - 'info_nb_mots_cles' => '@nb@ Schlagworte', |
|
| 368 | - 'info_nb_rubriques' => '@nb@ Rubriken', |
|
| 369 | - 'info_nb_visiteurs' => '@nb@ Besucher', |
|
| 370 | - 'info_nom' => 'Name', |
|
| 371 | - 'info_nom_destinataire' => 'Name des Empfängers', |
|
| 372 | - 'info_nom_pas_conforme' => 'HTNL-Tags sind nicht zugelassen.', |
|
| 373 | - 'info_nom_site' => 'Name Ihrer Website', |
|
| 374 | - 'info_nombre_articles' => '@nb_articles@ Artikel,', |
|
| 375 | - 'info_nombre_rubriques' => '@nb_rubriques@ Rubriken, ', |
|
| 376 | - 'info_nombre_sites' => '@nb_sites@ Websites, ', |
|
| 377 | - 'info_non_deplacer' => 'Bitte nicht verschieben...', |
|
| 378 | - 'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kann regelmäßig die letzten Neuigkeiten der Website verschicken. (vor Kurzem erschienene Artikel und Meldungen).', |
|
| 379 | - 'info_non_envoi_liste_nouveautes' => 'Keine Liste der Neuigkeiten verschicken.', |
|
| 380 | - 'info_non_modifiable' => 'kann nicht geändert werden.', |
|
| 381 | - 'info_non_suppression_mot_cle' => 'ich möchte dieses Schlagwort nicht löschen.', |
|
| 382 | - 'info_notes' => 'Anmerkungen', # Fußnoten bzw. #NOTES werden besser als "Anmerkungen" denn als "Notizen" bezeichnet. |
|
| 383 | - 'info_nouvel_article' => 'Neuer Artikel', |
|
| 384 | - 'info_nouvelle_traduction' => 'Neue Übersetzung:', |
|
| 385 | - 'info_numero_article' => 'ARTIKEL NUMMER:', |
|
| 386 | - 'info_obligatoire_02' => ' (erforderlich)', |
|
| 387 | - 'info_option_accepter_visiteurs' => 'Besucher dürfen sich als Leser der Website anmelden.', |
|
| 388 | - 'info_option_ne_pas_accepter_visiteurs' => 'Anmeldung von Lesern verhindern', |
|
| 389 | - 'info_options_avancees' => 'SPEZIALFUNKTIONEN', |
|
| 390 | - 'info_ou' => 'oder ... ', |
|
| 391 | - 'info_page_interdite' => 'Seite gesperrt', |
|
| 392 | - 'info_par_nom' => 'nach Namen', |
|
| 393 | - 'info_par_nombre_article' => 'nach Anzahl der Artikel', |
|
| 394 | - 'info_par_statut' => 'nach Status', |
|
| 395 | - 'info_par_tri' => '’(nach @tri@)’', |
|
| 396 | - 'info_passe_trop_court' => 'Passwort zu kurz.', |
|
| 397 | - 'info_passe_trop_court_car_pluriel' => 'Das Passwort muss mindestens @nb@ Zeichen haben.', |
|
| 398 | - 'info_passes_identiques' => 'Die zwei Passworte stimmen nicht überein.', |
|
| 399 | - 'info_plus_cinq_car' => 'mehr als 5 Zeichen', |
|
| 400 | - 'info_plus_cinq_car_2' => '(mehr als 5 Zeichen)', |
|
| 401 | - 'info_plus_trois_car' => '(mehr als 3 Zeichen)', |
|
| 402 | - 'info_popularite' => 'Beliebtheit: @popularite@ ; Besuche: @visites@', |
|
| 403 | - 'info_post_scriptum' => 'Post-Scriptum', |
|
| 404 | - 'info_post_scriptum_2' => 'Post-scriptum:', |
|
| 405 | - 'info_pour' => 'für', |
|
| 406 | - 'info_preview_texte' => 'Man kann sich alle Elemente der Website so anzeigen lassen, als ob sie veröffentlicht wären, vorausgesetzt sie haben mindestens den Status « vorgeschlagen » oder man ist ihr Autor . Wem soll diese Möglichkeit zur Verfügung stehen (Adminsitratoren, Redakteure, niemand)?', |
|
| 407 | - 'info_procedez_par_etape' => 'gehen Sie Schritt für Schritt vor', |
|
| 408 | - 'info_procedure_maj_version' => 'Sie müssen die Update-Funktion starten, um Ihre Datenbank an die neue Version von SPIP anzupassen.', |
|
| 409 | - 'info_proxy_ok' => 'Proxytest erfolgreich.', |
|
| 410 | - 'info_ps' => 'P.S.', |
|
| 411 | - 'info_publier' => 'veröffentlichen', |
|
| 412 | - 'info_publies' => 'Ihre veröffentlichten Artikel', |
|
| 413 | - 'info_question_accepter_visiteurs' => 'Bitte aktivieren Sie die folgende Option, wenn sich Besucher Ihrer Website als <i>Leser ohne Zugang zum Redaktionssystem</i> anmelden können.', |
|
| 414 | - 'info_question_inscription_nouveaux_redacteurs' => 'Möchten Sie, dass sich neue Redakteure vom öffentlichen Bereich |
|
| 320 | + 'info_gauche_auteurs_exterieurs' => 'Externe Autoren ohne Zugang zum Redaktionssystem werden mit einem blauen Symbol gekennzeichnet, gelöschte Autoren haben eine Mülltonne als Symbol.', |
|
| 321 | + 'info_gauche_messagerie' => 'Nachrichtensystem: SPIP ermöglicht den Austausch von Nachrichten zwischen Redakteuren, persönliche Merkzettel und Ankündigungen im privaten Arbeitsbereich der Redakteure (nur Administratoren können diese verschicken).', |
|
| 322 | + 'info_gauche_statistiques_referers' => 'Diese Seite zeigt Ihnen <i>REFERER</i>, d.h. Webadressen mit Links zu Ihrer Website. Angezeigt werden nur Links von gestern und heute, diese Liste wird alle 24 Stunden auf Null gesetzt.', |
|
| 323 | + 'info_gauche_visiteurs_enregistres' => 'Hier sehen Sie die im öffentlichen Bereich der Website angemeldeten Besucher (Teilnahme an Foren nur mit gültiger E-Mail Adresse).', |
|
| 324 | + 'info_generation_miniatures_images' => 'Anlegen der Vorschaubilder', |
|
| 325 | + 'info_gerer_trad_objets' => '@objets@: Übersetzungslinks verwalten', |
|
| 326 | + 'info_hebergeur_desactiver_envoi_email' => 'Manche ISPs verhindern den Versand von Mails mit PHP. Die Mailfunktionen von SPIP funktionieren dann nicht.', |
|
| 327 | + 'info_hier' => 'Gestern:', |
|
| 328 | + 'info_identification_publique' => 'Ihre öffentliche Identität ...', |
|
| 329 | + 'info_image_process' => 'Bitte wählen Sie das beste Verfahren zum Generieren der Miniaturbilder, indem Sie auf ein Bild klicken.', |
|
| 330 | + 'info_image_process2' => 'Wenn kein Bild angezeigt wird, ist der Server ihrer Website nicht für die Verwendung solcher Werkzeuge eingerichtet. Wenn Sie diese Funktionen nutzen möchten, wenden Sie sich bitte an den verantwortlichen Techniker und bitten ihn, die Erweiterungen «GD» oder «Imagick» einzurichten.', |
|
| 331 | + 'info_images_auto' => 'automatisch berechnete Bilder', |
|
| 332 | + 'info_informations_personnelles' => 'Persönliche Informationen', |
|
| 333 | + 'info_inscription' => 'Angemeldet am', |
|
| 334 | + 'info_inscription_automatique' => 'Automatische Anmeldung neuer Redakteure', |
|
| 335 | + 'info_jeu_caractere' => 'Zeichensatz der Website', |
|
| 336 | + 'info_jours' => 'Tage', |
|
| 337 | + 'info_laisser_champs_vides' => 'diese Felder frei lassen)', |
|
| 338 | + 'info_langues' => 'Sprachen der Website', |
|
| 339 | + 'info_ldap_ok' => 'Die LDAP-Authentifizierung ist installiert.', |
|
| 340 | + 'info_lien_hypertexte' => 'Hyperlink:', |
|
| 341 | + 'info_liste_nouveautes_envoyee' => 'Die Liste der Neuerscheinungen wurde versand.', |
|
| 342 | + 'info_liste_redacteurs_connectes' => 'Liste der zur Zeit angemeldeten Redakteure', |
|
| 343 | + 'info_login_existant' => 'Dieses Login ist bereits vergeben.', |
|
| 344 | + 'info_login_trop_court' => 'Login zu kurz.', |
|
| 345 | + 'info_login_trop_court_car_pluriel' => 'Ihr Login muss mindestens @nb@ Zeichen haben.', |
|
| 346 | + 'info_logos' => 'Die Logos', |
|
| 347 | + 'info_maximum' => 'Maximum:', |
|
| 348 | + 'info_meme_rubrique' => 'In der gleichen Rubrik', |
|
| 349 | + 'info_message_en_redaction' => 'IHRE NACHRICHTEN IN BEARBEITUNG', |
|
| 350 | + 'info_message_technique' => 'Technische Nachricht:', |
|
| 351 | + 'info_messagerie_interne' => 'Interne Nachrichten', |
|
| 352 | + 'info_mise_a_niveau_base' => 'Update Ihrer SQL-Datenbank', |
|
| 353 | + 'info_mise_a_niveau_base_2' => '{{ACHTUNG!}} Sie haben eine {ältere} Version der SPIP-Dateien installiert als sich vorher auf Ihrem Server befand. Ihre Datenbank wird möglicherweise zerstört und Ihre Website wird nict mehr funktionieren.<br />{{Installieren Sie SPIP noch einmal.}}', |
|
| 354 | + 'info_modification_enregistree' => 'Ihre Änderung wurde gespeichert.', |
|
| 355 | + 'info_modifier_auteur' => 'Autor bearbeiten:', |
|
| 356 | + 'info_modifier_rubrique' => 'Rubrik bearbeiten:', |
|
| 357 | + 'info_modifier_titre' => 'Bearbeiten: @titre@', |
|
| 358 | + 'info_mon_site_spip' => 'Meine SPIP-Site', |
|
| 359 | + 'info_moyenne' => 'Durchschnitt: ', |
|
| 360 | + 'info_multi_cet_article' => 'Dieser Artikel ist auf: ', |
|
| 361 | + 'info_multi_langues_choisies' => 'Bitte wählen Sie hier die Sprachen aus, die den Redakteuren Ihrer Website zur Verfügung stehen sollen. Die Sprachen, welche bereits in Ihrer Website verwendet werden (oben auf der Liste), können nicht abgeschaltet werden.', |
|
| 362 | + 'info_multi_objets' => '@objets@: Sprachauswahlmenü aktivieren', |
|
| 363 | + 'info_multi_secteurs' => '... nur für Rubriken der obersten Ebene?', |
|
| 364 | + 'info_nb_articles' => '@nb@ Artikel', |
|
| 365 | + 'info_nb_auteurs' => '@nb@ Autoren', |
|
| 366 | + 'info_nb_messages' => '@nb@ Nachrichten', |
|
| 367 | + 'info_nb_mots_cles' => '@nb@ Schlagworte', |
|
| 368 | + 'info_nb_rubriques' => '@nb@ Rubriken', |
|
| 369 | + 'info_nb_visiteurs' => '@nb@ Besucher', |
|
| 370 | + 'info_nom' => 'Name', |
|
| 371 | + 'info_nom_destinataire' => 'Name des Empfängers', |
|
| 372 | + 'info_nom_pas_conforme' => 'HTNL-Tags sind nicht zugelassen.', |
|
| 373 | + 'info_nom_site' => 'Name Ihrer Website', |
|
| 374 | + 'info_nombre_articles' => '@nb_articles@ Artikel,', |
|
| 375 | + 'info_nombre_rubriques' => '@nb_rubriques@ Rubriken, ', |
|
| 376 | + 'info_nombre_sites' => '@nb_sites@ Websites, ', |
|
| 377 | + 'info_non_deplacer' => 'Bitte nicht verschieben...', |
|
| 378 | + 'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kann regelmäßig die letzten Neuigkeiten der Website verschicken. (vor Kurzem erschienene Artikel und Meldungen).', |
|
| 379 | + 'info_non_envoi_liste_nouveautes' => 'Keine Liste der Neuigkeiten verschicken.', |
|
| 380 | + 'info_non_modifiable' => 'kann nicht geändert werden.', |
|
| 381 | + 'info_non_suppression_mot_cle' => 'ich möchte dieses Schlagwort nicht löschen.', |
|
| 382 | + 'info_notes' => 'Anmerkungen', # Fußnoten bzw. #NOTES werden besser als "Anmerkungen" denn als "Notizen" bezeichnet. |
|
| 383 | + 'info_nouvel_article' => 'Neuer Artikel', |
|
| 384 | + 'info_nouvelle_traduction' => 'Neue Übersetzung:', |
|
| 385 | + 'info_numero_article' => 'ARTIKEL NUMMER:', |
|
| 386 | + 'info_obligatoire_02' => ' (erforderlich)', |
|
| 387 | + 'info_option_accepter_visiteurs' => 'Besucher dürfen sich als Leser der Website anmelden.', |
|
| 388 | + 'info_option_ne_pas_accepter_visiteurs' => 'Anmeldung von Lesern verhindern', |
|
| 389 | + 'info_options_avancees' => 'SPEZIALFUNKTIONEN', |
|
| 390 | + 'info_ou' => 'oder ... ', |
|
| 391 | + 'info_page_interdite' => 'Seite gesperrt', |
|
| 392 | + 'info_par_nom' => 'nach Namen', |
|
| 393 | + 'info_par_nombre_article' => 'nach Anzahl der Artikel', |
|
| 394 | + 'info_par_statut' => 'nach Status', |
|
| 395 | + 'info_par_tri' => '’(nach @tri@)’', |
|
| 396 | + 'info_passe_trop_court' => 'Passwort zu kurz.', |
|
| 397 | + 'info_passe_trop_court_car_pluriel' => 'Das Passwort muss mindestens @nb@ Zeichen haben.', |
|
| 398 | + 'info_passes_identiques' => 'Die zwei Passworte stimmen nicht überein.', |
|
| 399 | + 'info_plus_cinq_car' => 'mehr als 5 Zeichen', |
|
| 400 | + 'info_plus_cinq_car_2' => '(mehr als 5 Zeichen)', |
|
| 401 | + 'info_plus_trois_car' => '(mehr als 3 Zeichen)', |
|
| 402 | + 'info_popularite' => 'Beliebtheit: @popularite@ ; Besuche: @visites@', |
|
| 403 | + 'info_post_scriptum' => 'Post-Scriptum', |
|
| 404 | + 'info_post_scriptum_2' => 'Post-scriptum:', |
|
| 405 | + 'info_pour' => 'für', |
|
| 406 | + 'info_preview_texte' => 'Man kann sich alle Elemente der Website so anzeigen lassen, als ob sie veröffentlicht wären, vorausgesetzt sie haben mindestens den Status « vorgeschlagen » oder man ist ihr Autor . Wem soll diese Möglichkeit zur Verfügung stehen (Adminsitratoren, Redakteure, niemand)?', |
|
| 407 | + 'info_procedez_par_etape' => 'gehen Sie Schritt für Schritt vor', |
|
| 408 | + 'info_procedure_maj_version' => 'Sie müssen die Update-Funktion starten, um Ihre Datenbank an die neue Version von SPIP anzupassen.', |
|
| 409 | + 'info_proxy_ok' => 'Proxytest erfolgreich.', |
|
| 410 | + 'info_ps' => 'P.S.', |
|
| 411 | + 'info_publier' => 'veröffentlichen', |
|
| 412 | + 'info_publies' => 'Ihre veröffentlichten Artikel', |
|
| 413 | + 'info_question_accepter_visiteurs' => 'Bitte aktivieren Sie die folgende Option, wenn sich Besucher Ihrer Website als <i>Leser ohne Zugang zum Redaktionssystem</i> anmelden können.', |
|
| 414 | + 'info_question_inscription_nouveaux_redacteurs' => 'Möchten Sie, dass sich neue Redakteure vom öffentlichen Bereich |
|
| 415 | 415 | aus anmelden können? Wenn Sie es wollen, können sich Besucher über ein automatisch |
| 416 | 416 | erstelltes Formular anmelden und Artikel vorschlagen. |
| 417 | 417 | <div class="notice">Nach der Anmeldung erhalten die neuen Redakteure automatisch |
| 418 | 418 | eine E-Mail mit ihren Zugangsdaten. Manche Webhoster unterbinden den Mailversand |
| 419 | 419 | von ihren Webservern aus. |
| 420 | 420 | In diesem Fall funktioniert die automatische Anmeldung nicht.</div>', |
| 421 | - 'info_qui_edite' => '@nom_auteur_modif@ hat vor @date_diff@ Minuten an diesem Objekt gearbeitet.', |
|
| 422 | - 'info_racine_site' => 'OBERSTE EBENE DER WEBSITE', |
|
| 423 | - 'info_recharger_page' => 'Bitte laden Sie diese Seite in ein paar Augenblicken erneut.', |
|
| 424 | - 'info_recherche_auteur_zero' => 'Kein Ergebnis zu “@cherche_auteur@” gefunden.', |
|
| 425 | - 'info_recommencer' => 'Bitte wiederholen.', |
|
| 426 | - 'info_redacteur_1' => 'Redakteur', |
|
| 427 | - 'info_redacteur_2' => 'mit Zugang zum Redaktionssystem (<i>empfohlen</i>)', |
|
| 428 | - 'info_redacteurs' => 'Redakteure', |
|
| 429 | - 'info_redaction_en_cours' => 'IN BEARBEITUNG', |
|
| 430 | - 'info_redirection' => 'Umleitung', |
|
| 431 | - 'info_redirection_activee' => 'Die Weiterleitung ist aktiviert.', |
|
| 432 | - 'info_redirection_boucle' => 'Sie versuchen, den Artikel mit sich selber zu verlinken.', |
|
| 433 | - 'info_redirection_desactivee' => 'Die Weiterleitung wurde abgeschaltet.', |
|
| 434 | - 'info_refuses' => 'Ihre abgelehnten Artikel', |
|
| 435 | - 'info_reglage_ldap' => 'Optionen: <b>LDAP-Import Einstellungen</b>', |
|
| 436 | - 'info_renvoi_article' => '<b>Umleitung.</b> Dieser Artikel zeigt auf die Seite: ', |
|
| 437 | - 'info_reserve_admin' => 'Nur Administratoren können diese Seite ändern.', |
|
| 438 | - 'info_restreindre_rubrique' => 'Administrationsrechte auf diese Rubrik beschränken:', |
|
| 439 | - 'info_resultat_recherche' => 'Suchergebnisse:', |
|
| 440 | - 'info_rubriques' => 'Rubriken', |
|
| 441 | - 'info_rubriques_02' => 'Rubriken', |
|
| 442 | - 'info_rubriques_trouvees' => 'Rubriken gefunden', |
|
| 443 | - 'info_sans_titre' => 'Ohne Titel', |
|
| 444 | - 'info_selection_chemin_acces' => '<b>Wählen Sie</b> hier den Pfad zu Ihrem Verzeichnis:', |
|
| 445 | - 'info_signatures' => 'Unterschriften', |
|
| 446 | - 'info_site' => 'Website', |
|
| 447 | - 'info_site_2' => 'Website: ', |
|
| 448 | - 'info_site_min' => 'Website', |
|
| 449 | - 'info_site_reference_2' => 'Verlinkte Website', |
|
| 450 | - 'info_site_web' => 'Website:', |
|
| 451 | - 'info_sites' => 'Websites', |
|
| 452 | - 'info_sites_lies_mot' => 'Mit dieser Website verknüpfte Schlagworte', |
|
| 453 | - 'info_sites_proxy' => 'HTTP-Proxy verwenden', |
|
| 454 | - 'info_sites_trouves' => 'Gefundene Websites', |
|
| 455 | - 'info_sous_titre' => 'Untertitel:', |
|
| 456 | - 'info_statut_administrateur' => 'Administrator', |
|
| 457 | - 'info_statut_auteur' => 'Status des Autors:', |
|
| 458 | - 'info_statut_auteur_2' => 'Ich bin', |
|
| 459 | - 'info_statut_auteur_a_confirmer' => 'Anmeldung bestätigen', |
|
| 460 | - 'info_statut_auteur_autre' => 'Anderer Status:', |
|
| 461 | - 'info_statut_redacteur' => 'Redakteur', |
|
| 462 | - 'info_statut_utilisateurs_1' => 'Vorgegebener Status der importierten Benutzer', |
|
| 463 | - 'info_statut_utilisateurs_2' => 'Wählen Sie den Status, der Personen im LDAP-Verzeichnis zugeordnet wird, wenn sie sich zum ersten Mal anmelden. Sie können diesen Wert später für jeden Autor individuell einstellen.', |
|
| 464 | - 'info_suivi_activite' => 'Unterstützung der Redaktionsabläufe', |
|
| 465 | - 'info_surtitre' => 'Einleitender Titel:', |
|
| 466 | - 'info_syndication_integrale_1' => 'Ihre Website biete Backend-Dateien zur Syndikation an (siehe « <a href="@url@">@titre@</a> »).', |
|
| 467 | - 'info_syndication_integrale_2' => 'Möchten sie den gesamten Text der Artikel überragen oder nur eine Zusammenfassung von ein paar hundert Zeichen?', |
|
| 468 | - 'info_table_prefix' => 'Sie können den ersten Teil (das Prefix) der Datentabellen ändern. Das ist unerlässlich, wenn sie mehrere Websites in der selben Datenbank speichern möchten. Das Prefix besteht aus kleinen Buchstaben ohne Akzente, Sonder- oder Leerzeichen', |
|
| 469 | - 'info_taille_maximale_images' => 'SPIP wird die maximale Größe der Bilder (in Millionen Pixel) testen, die es bearbeiten kann.<br /> Größere Bilder werden nicht verkleinert.', |
|
| 470 | - 'info_taille_maximale_vignette' => 'Maximale Grösse der Icons des Systems:', |
|
| 471 | - 'info_terminer_installation' => 'Sie können jetzt die Standardinstallation abschliessen.', |
|
| 472 | - 'info_texte' => 'Text', |
|
| 473 | - 'info_texte_explicatif' => 'Beschreibung', |
|
| 474 | - 'info_texte_long' => '(Das ist ein langer Text. Er wird in mehreren Teilen angezeigt, die nach der Veröffentlichung zusammen gefügt werden.)', |
|
| 475 | - 'info_texte_message' => 'Text Ihrer Nachricht', |
|
| 476 | - 'info_texte_message_02' => 'Text Ihrer Nachricht', |
|
| 477 | - 'info_titre' => 'Titel:', |
|
| 478 | - 'info_total' => 'Gesamt: ', |
|
| 479 | - 'info_tous_articles_en_redaction' => 'Alle Artikel in Bearbeitung', |
|
| 480 | - 'info_tous_articles_presents' => 'Alle veröffentlichten Artikel dieser Rubrik', |
|
| 481 | - 'info_tous_articles_refuses' => 'Alle abgelehnten Artikel', |
|
| 482 | - 'info_tous_les' => 'alle', |
|
| 483 | - 'info_tout_site' => 'Ganze Website', |
|
| 484 | - 'info_tout_site2' => 'Der Artikel wurde nicht in diese Sprache übersetzt.', |
|
| 485 | - 'info_tout_site3' => 'Der Artikel wurde in diese Sprache übersetzt, aber der Originalartikel wurde erneut verändert. Die Übersetzung muss überarbeitet werden.', |
|
| 486 | - 'info_tout_site4' => 'Der Artikel wurde in diese Sprache übersetzt und die Übersetzung ist aktuel.', |
|
| 487 | - 'info_tout_site5' => 'Originalartikel.', |
|
| 488 | - 'info_tout_site6' => '<b>Achtung:</b> Nur die Originalartikel werden aufgelistet.. |
|
| 421 | + 'info_qui_edite' => '@nom_auteur_modif@ hat vor @date_diff@ Minuten an diesem Objekt gearbeitet.', |
|
| 422 | + 'info_racine_site' => 'OBERSTE EBENE DER WEBSITE', |
|
| 423 | + 'info_recharger_page' => 'Bitte laden Sie diese Seite in ein paar Augenblicken erneut.', |
|
| 424 | + 'info_recherche_auteur_zero' => 'Kein Ergebnis zu “@cherche_auteur@” gefunden.', |
|
| 425 | + 'info_recommencer' => 'Bitte wiederholen.', |
|
| 426 | + 'info_redacteur_1' => 'Redakteur', |
|
| 427 | + 'info_redacteur_2' => 'mit Zugang zum Redaktionssystem (<i>empfohlen</i>)', |
|
| 428 | + 'info_redacteurs' => 'Redakteure', |
|
| 429 | + 'info_redaction_en_cours' => 'IN BEARBEITUNG', |
|
| 430 | + 'info_redirection' => 'Umleitung', |
|
| 431 | + 'info_redirection_activee' => 'Die Weiterleitung ist aktiviert.', |
|
| 432 | + 'info_redirection_boucle' => 'Sie versuchen, den Artikel mit sich selber zu verlinken.', |
|
| 433 | + 'info_redirection_desactivee' => 'Die Weiterleitung wurde abgeschaltet.', |
|
| 434 | + 'info_refuses' => 'Ihre abgelehnten Artikel', |
|
| 435 | + 'info_reglage_ldap' => 'Optionen: <b>LDAP-Import Einstellungen</b>', |
|
| 436 | + 'info_renvoi_article' => '<b>Umleitung.</b> Dieser Artikel zeigt auf die Seite: ', |
|
| 437 | + 'info_reserve_admin' => 'Nur Administratoren können diese Seite ändern.', |
|
| 438 | + 'info_restreindre_rubrique' => 'Administrationsrechte auf diese Rubrik beschränken:', |
|
| 439 | + 'info_resultat_recherche' => 'Suchergebnisse:', |
|
| 440 | + 'info_rubriques' => 'Rubriken', |
|
| 441 | + 'info_rubriques_02' => 'Rubriken', |
|
| 442 | + 'info_rubriques_trouvees' => 'Rubriken gefunden', |
|
| 443 | + 'info_sans_titre' => 'Ohne Titel', |
|
| 444 | + 'info_selection_chemin_acces' => '<b>Wählen Sie</b> hier den Pfad zu Ihrem Verzeichnis:', |
|
| 445 | + 'info_signatures' => 'Unterschriften', |
|
| 446 | + 'info_site' => 'Website', |
|
| 447 | + 'info_site_2' => 'Website: ', |
|
| 448 | + 'info_site_min' => 'Website', |
|
| 449 | + 'info_site_reference_2' => 'Verlinkte Website', |
|
| 450 | + 'info_site_web' => 'Website:', |
|
| 451 | + 'info_sites' => 'Websites', |
|
| 452 | + 'info_sites_lies_mot' => 'Mit dieser Website verknüpfte Schlagworte', |
|
| 453 | + 'info_sites_proxy' => 'HTTP-Proxy verwenden', |
|
| 454 | + 'info_sites_trouves' => 'Gefundene Websites', |
|
| 455 | + 'info_sous_titre' => 'Untertitel:', |
|
| 456 | + 'info_statut_administrateur' => 'Administrator', |
|
| 457 | + 'info_statut_auteur' => 'Status des Autors:', |
|
| 458 | + 'info_statut_auteur_2' => 'Ich bin', |
|
| 459 | + 'info_statut_auteur_a_confirmer' => 'Anmeldung bestätigen', |
|
| 460 | + 'info_statut_auteur_autre' => 'Anderer Status:', |
|
| 461 | + 'info_statut_redacteur' => 'Redakteur', |
|
| 462 | + 'info_statut_utilisateurs_1' => 'Vorgegebener Status der importierten Benutzer', |
|
| 463 | + 'info_statut_utilisateurs_2' => 'Wählen Sie den Status, der Personen im LDAP-Verzeichnis zugeordnet wird, wenn sie sich zum ersten Mal anmelden. Sie können diesen Wert später für jeden Autor individuell einstellen.', |
|
| 464 | + 'info_suivi_activite' => 'Unterstützung der Redaktionsabläufe', |
|
| 465 | + 'info_surtitre' => 'Einleitender Titel:', |
|
| 466 | + 'info_syndication_integrale_1' => 'Ihre Website biete Backend-Dateien zur Syndikation an (siehe « <a href="@url@">@titre@</a> »).', |
|
| 467 | + 'info_syndication_integrale_2' => 'Möchten sie den gesamten Text der Artikel überragen oder nur eine Zusammenfassung von ein paar hundert Zeichen?', |
|
| 468 | + 'info_table_prefix' => 'Sie können den ersten Teil (das Prefix) der Datentabellen ändern. Das ist unerlässlich, wenn sie mehrere Websites in der selben Datenbank speichern möchten. Das Prefix besteht aus kleinen Buchstaben ohne Akzente, Sonder- oder Leerzeichen', |
|
| 469 | + 'info_taille_maximale_images' => 'SPIP wird die maximale Größe der Bilder (in Millionen Pixel) testen, die es bearbeiten kann.<br /> Größere Bilder werden nicht verkleinert.', |
|
| 470 | + 'info_taille_maximale_vignette' => 'Maximale Grösse der Icons des Systems:', |
|
| 471 | + 'info_terminer_installation' => 'Sie können jetzt die Standardinstallation abschliessen.', |
|
| 472 | + 'info_texte' => 'Text', |
|
| 473 | + 'info_texte_explicatif' => 'Beschreibung', |
|
| 474 | + 'info_texte_long' => '(Das ist ein langer Text. Er wird in mehreren Teilen angezeigt, die nach der Veröffentlichung zusammen gefügt werden.)', |
|
| 475 | + 'info_texte_message' => 'Text Ihrer Nachricht', |
|
| 476 | + 'info_texte_message_02' => 'Text Ihrer Nachricht', |
|
| 477 | + 'info_titre' => 'Titel:', |
|
| 478 | + 'info_total' => 'Gesamt: ', |
|
| 479 | + 'info_tous_articles_en_redaction' => 'Alle Artikel in Bearbeitung', |
|
| 480 | + 'info_tous_articles_presents' => 'Alle veröffentlichten Artikel dieser Rubrik', |
|
| 481 | + 'info_tous_articles_refuses' => 'Alle abgelehnten Artikel', |
|
| 482 | + 'info_tous_les' => 'alle', |
|
| 483 | + 'info_tout_site' => 'Ganze Website', |
|
| 484 | + 'info_tout_site2' => 'Der Artikel wurde nicht in diese Sprache übersetzt.', |
|
| 485 | + 'info_tout_site3' => 'Der Artikel wurde in diese Sprache übersetzt, aber der Originalartikel wurde erneut verändert. Die Übersetzung muss überarbeitet werden.', |
|
| 486 | + 'info_tout_site4' => 'Der Artikel wurde in diese Sprache übersetzt und die Übersetzung ist aktuel.', |
|
| 487 | + 'info_tout_site5' => 'Originalartikel.', |
|
| 488 | + 'info_tout_site6' => '<b>Achtung:</b> Nur die Originalartikel werden aufgelistet.. |
|
| 489 | 489 | Die Übersetzungen entsprechen dem Original, |
| 490 | 490 | in einer Farbe, die den Status anzeigt :', |
| 491 | - 'info_traductions' => 'Übersetzungen', |
|
| 492 | - 'info_travail_colaboratif' => 'Gemeinsame Arbeit an den Artikeln', |
|
| 493 | - 'info_un_article' => ' ein Artikel, ', |
|
| 494 | - 'info_un_site' => ' eine Website, ', |
|
| 495 | - 'info_une_rubrique' => ' eine Rubrik, ', |
|
| 496 | - 'info_une_rubrique_02' => '1 Rubrik', |
|
| 497 | - 'info_url' => 'URL:', |
|
| 498 | - 'info_url_proxy' => 'URL des Proxy', |
|
| 499 | - 'info_url_proxy_pas_conforme' => 'ungültige Proxy-URL', |
|
| 500 | - 'info_url_site_pas_conforme' => 'Ungültiger Website-URL', |
|
| 501 | - 'info_url_test_proxy' => 'Test-URL', |
|
| 502 | - 'info_urlref' => 'Hyperlink:', |
|
| 503 | - 'info_utilisation_spip' => 'Sie können SPIP jetzt verwenden ...', |
|
| 504 | - 'info_visites_par_mois' => 'Anzeige pro Monat:', |
|
| 505 | - 'info_visiteur_1' => 'Besucher', |
|
| 506 | - 'info_visiteur_2' => 'des öffentlichen Bereichs', |
|
| 507 | - 'info_visiteurs' => 'Besucher', |
|
| 508 | - 'info_visiteurs_02' => 'Besucher des öffentlichen Bereichs', |
|
| 509 | - 'info_webmestre_forces' => 'Die Webmaster sind in der Datei <tt>@file_options@</tt> konfiguriert.', |
|
| 510 | - 'install_adresse_base_hebergeur' => 'Adresse der vom Provider zugewiesenen Datenbank', |
|
| 511 | - 'install_connect_ok' => 'Die neue Datenbank wurde unter dem Namen @connect@ deklariert.', |
|
| 512 | - 'install_echec_annonce' => 'Die Installation wird wahrscheinlich fehlschlagen oder eine nicht funktionierende Site ergeben.', |
|
| 513 | - 'install_extension_mbstring' => 'SPIP funktioniert nicht mit:', |
|
| 514 | - 'install_extension_php_obligatoire' => 'SPIP benötigt die Dateierweiterung php:', |
|
| 515 | - 'install_login_base_hebergeur' => 'Vom Provider zugeteiltes Login', |
|
| 516 | - 'install_nom_base_hebergeur' => 'Name der vom Provider zugewiesenen Datenbank:', |
|
| 517 | - 'install_pas_table' => 'Datenbank zur Zeit ohne Tabellen', |
|
| 518 | - 'install_pass_base_hebergeur' => 'Vom Provider zugeteiltes Passwort', |
|
| 519 | - 'install_php_extension' => 'Folgende Erweiterungen fehlen: @extensions@', |
|
| 520 | - 'install_php_version' => 'Die PHP-Version @version@ ist zu alt. (Mindestens erforderlich = @minimum@)', |
|
| 521 | - 'install_php_version_max' => 'PHP Version @version@ zu neu (maximum = @maximum@)', |
|
| 522 | - 'install_select_langue' => 'Wählen Sie eine Sprache aus und klicken Sie auf «Weiter», um die Installation zu starten.', |
|
| 523 | - 'install_select_type_db' => 'Geben Sie den Typ der Datenbank an:', |
|
| 524 | - 'install_select_type_mysql' => 'MySQL', |
|
| 525 | - 'install_select_type_pg' => 'PostgreSQL', |
|
| 526 | - 'install_select_type_sqlite2' => 'SQLite 2', |
|
| 527 | - 'install_select_type_sqlite3' => 'SQLite 3', |
|
| 528 | - 'install_serveur_hebergeur' => 'Vom Provider bereitgestellter Datenbankserver', |
|
| 529 | - 'install_table_prefix_hebergeur' => 'Prefix der vom Provider zugeteilten Tabelle', |
|
| 530 | - 'install_tables_base' => 'Tabellen der Datenbank', |
|
| 531 | - 'install_types_db_connus' => 'SPIP beherrscht <b>MySQL</b> (am weitesten verbreitet) und <b>SQLite</b>.', # Geht PostGreSQL jetzt nicht mehr? |
|
| 532 | - 'install_types_db_connus_avertissement' => '<b>PostgreSQL</b> wird testweise unterstützt.', |
|
| 533 | - 'instituer_erreur_statut_a_change' => 'Der Status wurde bereits geändert.', |
|
| 534 | - 'instituer_erreur_statut_non_autorise' => 'Sie dürfen diesen Status nicht auswählen.', |
|
| 535 | - 'intem_redacteur' => 'Redakteur', |
|
| 536 | - 'intitule_licence' => 'Lizenz', |
|
| 537 | - 'item_accepter_inscriptions' => 'Anmeldungen erlauben', |
|
| 538 | - 'item_activer_messages_avertissement' => 'Aktuelle Benachrichtigungen einschalten', |
|
| 539 | - 'item_administrateur_2' => 'Administrator', |
|
| 540 | - 'item_afficher_calendrier' => 'Im Kalender anzeigen', |
|
| 541 | - 'item_autoriser_syndication_integrale' => 'Vollständige Artikel im Feed übertragen', |
|
| 542 | - 'item_choix_administrateurs' => 'Administratoren', |
|
| 543 | - 'item_choix_generation_miniature' => 'Vorschaubilder automatisch generieren.', |
|
| 544 | - 'item_choix_non_generation_miniature' => 'Keine Vorschaubilder generieren.', |
|
| 545 | - 'item_choix_redacteurs' => 'Redakteure', |
|
| 546 | - 'item_choix_visiteurs' => 'Besucher im öffentlichen Bereich', |
|
| 547 | - 'item_creer_fichiers_authent' => '.htpasswd-Dateien anlegen', |
|
| 548 | - 'item_login' => 'Login', |
|
| 549 | - 'item_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders aktivieren', |
|
| 550 | - 'item_mots_cles_association_articles' => 'Artikeln zuordnen', |
|
| 551 | - 'item_mots_cles_association_rubriques' => 'Rubriken zuordnen', |
|
| 552 | - 'item_mots_cles_association_sites' => 'syndizierten Websites zuordnen.', |
|
| 553 | - 'item_non' => 'Nein', |
|
| 554 | - 'item_non_accepter_inscriptions' => 'Anmeldungen verhindern', |
|
| 555 | - 'item_non_activer_messages_avertissement' => 'Keine aktuellen Benachrichtigungen', |
|
| 556 | - 'item_non_afficher_calendrier' => 'Nicht im Kalender anzeigen', |
|
| 557 | - 'item_non_autoriser_syndication_integrale' => 'Nur Zusammenfassung übertragen', |
|
| 558 | - 'item_non_creer_fichiers_authent' => 'Diese Dateien nicht anlegen', |
|
| 559 | - 'item_non_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders abschalten', |
|
| 560 | - 'item_non_publier_articles' => 'Artikel nicht vor dem eingestellten Datum veröffentlichen.', |
|
| 561 | - 'item_nouvel_auteur' => 'Neuer Autor', |
|
| 562 | - 'item_nouvelle_rubrique' => 'Neue Rubrik', |
|
| 563 | - 'item_oui' => 'Ja', |
|
| 564 | - 'item_publier_articles' => 'Sofort veröffentlichen, egal welches Datum ein Artikel trägt. ', |
|
| 565 | - 'item_reponse_article' => 'Antwort auf Artikel', |
|
| 566 | - 'item_visiteur' => 'Besucher', |
|
| 491 | + 'info_traductions' => 'Übersetzungen', |
|
| 492 | + 'info_travail_colaboratif' => 'Gemeinsame Arbeit an den Artikeln', |
|
| 493 | + 'info_un_article' => ' ein Artikel, ', |
|
| 494 | + 'info_un_site' => ' eine Website, ', |
|
| 495 | + 'info_une_rubrique' => ' eine Rubrik, ', |
|
| 496 | + 'info_une_rubrique_02' => '1 Rubrik', |
|
| 497 | + 'info_url' => 'URL:', |
|
| 498 | + 'info_url_proxy' => 'URL des Proxy', |
|
| 499 | + 'info_url_proxy_pas_conforme' => 'ungültige Proxy-URL', |
|
| 500 | + 'info_url_site_pas_conforme' => 'Ungültiger Website-URL', |
|
| 501 | + 'info_url_test_proxy' => 'Test-URL', |
|
| 502 | + 'info_urlref' => 'Hyperlink:', |
|
| 503 | + 'info_utilisation_spip' => 'Sie können SPIP jetzt verwenden ...', |
|
| 504 | + 'info_visites_par_mois' => 'Anzeige pro Monat:', |
|
| 505 | + 'info_visiteur_1' => 'Besucher', |
|
| 506 | + 'info_visiteur_2' => 'des öffentlichen Bereichs', |
|
| 507 | + 'info_visiteurs' => 'Besucher', |
|
| 508 | + 'info_visiteurs_02' => 'Besucher des öffentlichen Bereichs', |
|
| 509 | + 'info_webmestre_forces' => 'Die Webmaster sind in der Datei <tt>@file_options@</tt> konfiguriert.', |
|
| 510 | + 'install_adresse_base_hebergeur' => 'Adresse der vom Provider zugewiesenen Datenbank', |
|
| 511 | + 'install_connect_ok' => 'Die neue Datenbank wurde unter dem Namen @connect@ deklariert.', |
|
| 512 | + 'install_echec_annonce' => 'Die Installation wird wahrscheinlich fehlschlagen oder eine nicht funktionierende Site ergeben.', |
|
| 513 | + 'install_extension_mbstring' => 'SPIP funktioniert nicht mit:', |
|
| 514 | + 'install_extension_php_obligatoire' => 'SPIP benötigt die Dateierweiterung php:', |
|
| 515 | + 'install_login_base_hebergeur' => 'Vom Provider zugeteiltes Login', |
|
| 516 | + 'install_nom_base_hebergeur' => 'Name der vom Provider zugewiesenen Datenbank:', |
|
| 517 | + 'install_pas_table' => 'Datenbank zur Zeit ohne Tabellen', |
|
| 518 | + 'install_pass_base_hebergeur' => 'Vom Provider zugeteiltes Passwort', |
|
| 519 | + 'install_php_extension' => 'Folgende Erweiterungen fehlen: @extensions@', |
|
| 520 | + 'install_php_version' => 'Die PHP-Version @version@ ist zu alt. (Mindestens erforderlich = @minimum@)', |
|
| 521 | + 'install_php_version_max' => 'PHP Version @version@ zu neu (maximum = @maximum@)', |
|
| 522 | + 'install_select_langue' => 'Wählen Sie eine Sprache aus und klicken Sie auf «Weiter», um die Installation zu starten.', |
|
| 523 | + 'install_select_type_db' => 'Geben Sie den Typ der Datenbank an:', |
|
| 524 | + 'install_select_type_mysql' => 'MySQL', |
|
| 525 | + 'install_select_type_pg' => 'PostgreSQL', |
|
| 526 | + 'install_select_type_sqlite2' => 'SQLite 2', |
|
| 527 | + 'install_select_type_sqlite3' => 'SQLite 3', |
|
| 528 | + 'install_serveur_hebergeur' => 'Vom Provider bereitgestellter Datenbankserver', |
|
| 529 | + 'install_table_prefix_hebergeur' => 'Prefix der vom Provider zugeteilten Tabelle', |
|
| 530 | + 'install_tables_base' => 'Tabellen der Datenbank', |
|
| 531 | + 'install_types_db_connus' => 'SPIP beherrscht <b>MySQL</b> (am weitesten verbreitet) und <b>SQLite</b>.', # Geht PostGreSQL jetzt nicht mehr? |
|
| 532 | + 'install_types_db_connus_avertissement' => '<b>PostgreSQL</b> wird testweise unterstützt.', |
|
| 533 | + 'instituer_erreur_statut_a_change' => 'Der Status wurde bereits geändert.', |
|
| 534 | + 'instituer_erreur_statut_non_autorise' => 'Sie dürfen diesen Status nicht auswählen.', |
|
| 535 | + 'intem_redacteur' => 'Redakteur', |
|
| 536 | + 'intitule_licence' => 'Lizenz', |
|
| 537 | + 'item_accepter_inscriptions' => 'Anmeldungen erlauben', |
|
| 538 | + 'item_activer_messages_avertissement' => 'Aktuelle Benachrichtigungen einschalten', |
|
| 539 | + 'item_administrateur_2' => 'Administrator', |
|
| 540 | + 'item_afficher_calendrier' => 'Im Kalender anzeigen', |
|
| 541 | + 'item_autoriser_syndication_integrale' => 'Vollständige Artikel im Feed übertragen', |
|
| 542 | + 'item_choix_administrateurs' => 'Administratoren', |
|
| 543 | + 'item_choix_generation_miniature' => 'Vorschaubilder automatisch generieren.', |
|
| 544 | + 'item_choix_non_generation_miniature' => 'Keine Vorschaubilder generieren.', |
|
| 545 | + 'item_choix_redacteurs' => 'Redakteure', |
|
| 546 | + 'item_choix_visiteurs' => 'Besucher im öffentlichen Bereich', |
|
| 547 | + 'item_creer_fichiers_authent' => '.htpasswd-Dateien anlegen', |
|
| 548 | + 'item_login' => 'Login', |
|
| 549 | + 'item_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders aktivieren', |
|
| 550 | + 'item_mots_cles_association_articles' => 'Artikeln zuordnen', |
|
| 551 | + 'item_mots_cles_association_rubriques' => 'Rubriken zuordnen', |
|
| 552 | + 'item_mots_cles_association_sites' => 'syndizierten Websites zuordnen.', |
|
| 553 | + 'item_non' => 'Nein', |
|
| 554 | + 'item_non_accepter_inscriptions' => 'Anmeldungen verhindern', |
|
| 555 | + 'item_non_activer_messages_avertissement' => 'Keine aktuellen Benachrichtigungen', |
|
| 556 | + 'item_non_afficher_calendrier' => 'Nicht im Kalender anzeigen', |
|
| 557 | + 'item_non_autoriser_syndication_integrale' => 'Nur Zusammenfassung übertragen', |
|
| 558 | + 'item_non_creer_fichiers_authent' => 'Diese Dateien nicht anlegen', |
|
| 559 | + 'item_non_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders abschalten', |
|
| 560 | + 'item_non_publier_articles' => 'Artikel nicht vor dem eingestellten Datum veröffentlichen.', |
|
| 561 | + 'item_nouvel_auteur' => 'Neuer Autor', |
|
| 562 | + 'item_nouvelle_rubrique' => 'Neue Rubrik', |
|
| 563 | + 'item_oui' => 'Ja', |
|
| 564 | + 'item_publier_articles' => 'Sofort veröffentlichen, egal welches Datum ein Artikel trägt. ', |
|
| 565 | + 'item_reponse_article' => 'Antwort auf Artikel', |
|
| 566 | + 'item_visiteur' => 'Besucher', |
|
| 567 | 567 | |
| 568 | - // J |
|
| 569 | - 'jour_non_connu_nc' => 'unbekannt', |
|
| 568 | + // J |
|
| 569 | + 'jour_non_connu_nc' => 'unbekannt', |
|
| 570 | 570 | |
| 571 | - // L |
|
| 572 | - 'label_bando_outils' => 'Werkzeugleiste', |
|
| 573 | - 'label_bando_outils_afficher' => 'Werkzeuge anzeigen', |
|
| 574 | - 'label_bando_outils_masquer' => 'Werkzeuge ausblenden', |
|
| 575 | - 'label_choix_langue' => 'Ihre Sprache wählen', |
|
| 576 | - 'label_langue' => 'Sprache', |
|
| 577 | - 'label_nom_fichier_connect' => 'Geben Sie den für diesen Server verwendeten Namen an.', |
|
| 578 | - 'label_slogan_site' => 'Slogan der Website', |
|
| 579 | - 'label_taille_ecran' => 'Bildschirmbreite', |
|
| 580 | - 'label_texte_et_icones_navigation' => 'Navigationsmenü', |
|
| 581 | - 'label_texte_et_icones_page' => 'Auf der Seite anzeigen', |
|
| 582 | - 'ldap_correspondance' => 'Vererbung von Feld @champ@', |
|
| 583 | - 'ldap_correspondance_1' => 'Vererbung des LDAP Felds', |
|
| 584 | - 'ldap_correspondance_2' => 'Geben sie bitte für jedes der folgenden SPIP-Felder das entsprechende LDAP-Feld an. Leere Felder werden nicht genutzt, LDAP-Felder mit Leerzeichen oder Kommata trennen, um mehrere zu probieren. ', |
|
| 585 | - 'lien_ajouter_auteur' => 'Autor hinzufügen', |
|
| 586 | - 'lien_ajouter_une_rubrique' => 'Diese Rubrik hinzufügen', |
|
| 587 | - 'lien_email' => 'E-Mail', |
|
| 588 | - 'lien_nom_site' => 'NAME DER WEBSITE:', |
|
| 589 | - 'lien_rapide_contenu' => 'zum Inhalt', |
|
| 590 | - 'lien_rapide_navigation' => 'zur Navigation', |
|
| 591 | - 'lien_rapide_recherche' => 'zur Suche', |
|
| 592 | - 'lien_retirer_auteur' => 'Autor entfernen', |
|
| 593 | - 'lien_retirer_rubrique' => 'Rubrik entfernen', |
|
| 594 | - 'lien_retirer_tous_auteurs' => 'Alle Autoren entfernen', |
|
| 595 | - 'lien_retirer_toutes_rubriques' => 'Alle Rubriken entfernen ', |
|
| 596 | - 'lien_site' => 'Website', |
|
| 597 | - 'lien_tout_decocher' => 'Alles abwählen', |
|
| 598 | - 'lien_tout_deplier' => 'Alle anzeigen', |
|
| 599 | - 'lien_tout_replier' => 'Alle ausblenden', |
|
| 600 | - 'lien_tout_supprimer' => 'Alles löschen', |
|
| 601 | - 'lien_trier_nom' => 'Nach Namen sortieren', |
|
| 602 | - 'lien_trier_nombre_articles' => 'Nach Zahl der Artikel sortieren', |
|
| 603 | - 'lien_trier_statut' => 'Nach Status sortieren', |
|
| 604 | - 'lien_voir_en_ligne' => 'ONLINE ANZEIGEN:', |
|
| 605 | - 'logo_article' => 'Artikel-Logo', |
|
| 606 | - 'logo_auteur' => 'Autoren-Logo', |
|
| 607 | - 'logo_rubrique' => 'Rubrik-Logo', |
|
| 608 | - 'logo_site' => 'Website-Logo', |
|
| 609 | - 'logo_standard_rubrique' => 'Standardlogo für Rubriken', |
|
| 610 | - 'logo_survol' => 'Mouseover-Logo', |
|
| 571 | + // L |
|
| 572 | + 'label_bando_outils' => 'Werkzeugleiste', |
|
| 573 | + 'label_bando_outils_afficher' => 'Werkzeuge anzeigen', |
|
| 574 | + 'label_bando_outils_masquer' => 'Werkzeuge ausblenden', |
|
| 575 | + 'label_choix_langue' => 'Ihre Sprache wählen', |
|
| 576 | + 'label_langue' => 'Sprache', |
|
| 577 | + 'label_nom_fichier_connect' => 'Geben Sie den für diesen Server verwendeten Namen an.', |
|
| 578 | + 'label_slogan_site' => 'Slogan der Website', |
|
| 579 | + 'label_taille_ecran' => 'Bildschirmbreite', |
|
| 580 | + 'label_texte_et_icones_navigation' => 'Navigationsmenü', |
|
| 581 | + 'label_texte_et_icones_page' => 'Auf der Seite anzeigen', |
|
| 582 | + 'ldap_correspondance' => 'Vererbung von Feld @champ@', |
|
| 583 | + 'ldap_correspondance_1' => 'Vererbung des LDAP Felds', |
|
| 584 | + 'ldap_correspondance_2' => 'Geben sie bitte für jedes der folgenden SPIP-Felder das entsprechende LDAP-Feld an. Leere Felder werden nicht genutzt, LDAP-Felder mit Leerzeichen oder Kommata trennen, um mehrere zu probieren. ', |
|
| 585 | + 'lien_ajouter_auteur' => 'Autor hinzufügen', |
|
| 586 | + 'lien_ajouter_une_rubrique' => 'Diese Rubrik hinzufügen', |
|
| 587 | + 'lien_email' => 'E-Mail', |
|
| 588 | + 'lien_nom_site' => 'NAME DER WEBSITE:', |
|
| 589 | + 'lien_rapide_contenu' => 'zum Inhalt', |
|
| 590 | + 'lien_rapide_navigation' => 'zur Navigation', |
|
| 591 | + 'lien_rapide_recherche' => 'zur Suche', |
|
| 592 | + 'lien_retirer_auteur' => 'Autor entfernen', |
|
| 593 | + 'lien_retirer_rubrique' => 'Rubrik entfernen', |
|
| 594 | + 'lien_retirer_tous_auteurs' => 'Alle Autoren entfernen', |
|
| 595 | + 'lien_retirer_toutes_rubriques' => 'Alle Rubriken entfernen ', |
|
| 596 | + 'lien_site' => 'Website', |
|
| 597 | + 'lien_tout_decocher' => 'Alles abwählen', |
|
| 598 | + 'lien_tout_deplier' => 'Alle anzeigen', |
|
| 599 | + 'lien_tout_replier' => 'Alle ausblenden', |
|
| 600 | + 'lien_tout_supprimer' => 'Alles löschen', |
|
| 601 | + 'lien_trier_nom' => 'Nach Namen sortieren', |
|
| 602 | + 'lien_trier_nombre_articles' => 'Nach Zahl der Artikel sortieren', |
|
| 603 | + 'lien_trier_statut' => 'Nach Status sortieren', |
|
| 604 | + 'lien_voir_en_ligne' => 'ONLINE ANZEIGEN:', |
|
| 605 | + 'logo_article' => 'Artikel-Logo', |
|
| 606 | + 'logo_auteur' => 'Autoren-Logo', |
|
| 607 | + 'logo_rubrique' => 'Rubrik-Logo', |
|
| 608 | + 'logo_site' => 'Website-Logo', |
|
| 609 | + 'logo_standard_rubrique' => 'Standardlogo für Rubriken', |
|
| 610 | + 'logo_survol' => 'Mouseover-Logo', |
|
| 611 | 611 | |
| 612 | - // M |
|
| 613 | - 'menu_aide_installation_choix_base' => 'Datenbank auswählen', |
|
| 614 | - 'module_fichier_langue' => 'Sprachdatei', |
|
| 615 | - 'module_raccourci' => 'Abkürzung', |
|
| 616 | - 'module_texte_affiche' => 'angezeigter Text', |
|
| 617 | - 'module_texte_explicatif' => 'Sie können die folgenden Abkürzungen in den HTML-Vorlagen Ihrer Website verwenden. Sie werden automatisch in den Sprachen angezeigt, für die eine Sprachdatei existiert.', |
|
| 618 | - 'module_texte_traduction' => 'Die Sprachdatei für « @module@ » liegt vor auf ', |
|
| 619 | - 'mois_non_connu' => 'unbekannt', |
|
| 612 | + // M |
|
| 613 | + 'menu_aide_installation_choix_base' => 'Datenbank auswählen', |
|
| 614 | + 'module_fichier_langue' => 'Sprachdatei', |
|
| 615 | + 'module_raccourci' => 'Abkürzung', |
|
| 616 | + 'module_texte_affiche' => 'angezeigter Text', |
|
| 617 | + 'module_texte_explicatif' => 'Sie können die folgenden Abkürzungen in den HTML-Vorlagen Ihrer Website verwenden. Sie werden automatisch in den Sprachen angezeigt, für die eine Sprachdatei existiert.', |
|
| 618 | + 'module_texte_traduction' => 'Die Sprachdatei für « @module@ » liegt vor auf ', |
|
| 619 | + 'mois_non_connu' => 'unbekannt', |
|
| 620 | 620 | |
| 621 | - // N |
|
| 622 | - 'nouvelle_version_spip' => 'SPIP Version @version@ ist verfügbar.', |
|
| 623 | - 'nouvelle_version_spip_majeure' => 'Eine neue SPIP Version @version@ steht zur Verfügung.', |
|
| 621 | + // N |
|
| 622 | + 'nouvelle_version_spip' => 'SPIP Version @version@ ist verfügbar.', |
|
| 623 | + 'nouvelle_version_spip_majeure' => 'Eine neue SPIP Version @version@ steht zur Verfügung.', |
|
| 624 | 624 | |
| 625 | - // O |
|
| 626 | - 'onglet_contenu' => 'Inhalt', |
|
| 627 | - 'onglet_declarer_une_autre_base' => 'Weitere Datenbank deklarieren', |
|
| 628 | - 'onglet_discuter' => 'Diskussionen', |
|
| 629 | - 'onglet_interactivite' => 'Interaktivität', |
|
| 630 | - 'onglet_proprietes' => 'Eigenschaften', |
|
| 631 | - 'onglet_repartition_actuelle' => 'zur Zeit', |
|
| 632 | - 'onglet_sous_rubriques' => 'Unterrubriken', |
|
| 625 | + // O |
|
| 626 | + 'onglet_contenu' => 'Inhalt', |
|
| 627 | + 'onglet_declarer_une_autre_base' => 'Weitere Datenbank deklarieren', |
|
| 628 | + 'onglet_discuter' => 'Diskussionen', |
|
| 629 | + 'onglet_interactivite' => 'Interaktivität', |
|
| 630 | + 'onglet_proprietes' => 'Eigenschaften', |
|
| 631 | + 'onglet_repartition_actuelle' => 'zur Zeit', |
|
| 632 | + 'onglet_sous_rubriques' => 'Unterrubriken', |
|
| 633 | 633 | |
| 634 | - // P |
|
| 635 | - 'page_pas_proxy' => 'Diese Seite darf nicht durch den Proxy übertragen werden.', |
|
| 636 | - 'pas_de_proxy_pour' => 'Falls erforderlich, könne Sie die Rechner und Domainen angeben, die nicht über den Proxy angesprochen werden (z.B. @exemple@)', |
|
| 637 | - 'phpinfo' => 'PHP-Konfiguration', |
|
| 638 | - 'plugin_charge_paquet' => 'Paket @name@ wird geladen', |
|
| 639 | - 'plugin_charger' => 'Übertragen', |
|
| 640 | - 'plugin_erreur_charger' => 'Fehler: @zip@ kann nicht geladen werden', |
|
| 641 | - 'plugin_erreur_droit1' => 'In das Verzeichnis <code>@dest@</code> kann nicht geschrieben werden.', |
|
| 642 | - 'plugin_erreur_droit2' => 'Bitte überprüfen Sie die Schreibrechte für dieses Verzeichnis oder legen Sie es an, falls es noch nicht existiert, oder installieren Sie die Dateien per FTP.', |
|
| 643 | - 'plugin_erreur_zip' => 'Pclzip fehlgeschlagen: Fehler @status@', |
|
| 644 | - 'plugin_etat_developpement' => 'In Entwicklung', |
|
| 645 | - 'plugin_etat_experimental' => 'Experimentell', |
|
| 646 | - 'plugin_etat_stable' => 'Stabil', |
|
| 647 | - 'plugin_etat_test' => 'Im Test', |
|
| 648 | - 'plugin_impossible_activer' => 'Das Plugin @plugin@ kann nicht aktiviert werden.', |
|
| 649 | - 'plugin_info_automatique1' => 'Wenn Sie die automatische Installation von Plugins nutzen möchten, führen Sie bitte folgende Schritte aus:', |
|
| 650 | - 'plugin_info_automatique1_lib' => 'Wenn diese Bibliothek automatisch installiert werden soll, führen sie bitte diese Schritte aus:', |
|
| 651 | - 'plugin_info_automatique2' => 'Anlegen des Verzeichnis <code>@rep@</code> ;', |
|
| 652 | - 'plugin_info_automatique3' => 'überprüfen, ob der Server in das Verzeichnis schreiben kann.', |
|
| 653 | - 'plugin_info_automatique_creer' => 'im Wurzelverzeichnis der Website.', |
|
| 654 | - 'plugin_info_automatique_exemples' => 'Beispiele:', |
|
| 655 | - 'plugin_info_automatique_ftp' => 'Sie können Plugins per FTP in dem Vezeichnis <tt>@rep@</tt> installieren', |
|
| 656 | - 'plugin_info_automatique_lib' => 'Manche Plugins benötigen das Verzeichnis <code>lib/</code>, um Dateien downloaden zu können, das im Wurzelverzeichnis der Website angelegt werden muss.', |
|
| 657 | - 'plugin_info_automatique_liste' => 'Ihre Plugin-Listen:', |
|
| 658 | - 'plugin_info_automatique_liste_officielle' => 'Die offiziellen Plugins', |
|
| 659 | - 'plugin_info_automatique_liste_update' => 'Listen aktualisieren', |
|
| 660 | - 'plugin_info_automatique_ou' => 'oder...', |
|
| 661 | - 'plugin_info_automatique_select' => 'Wählen Sie ein Plugin aus. SPIP wird es herunterladen und im Verzeichnis <code>@rep@</code> installieren. Falls das Plugin bereits installiert ist, wird es auf den neuesten Stand gebracht.', |
|
| 662 | - 'plugin_info_credit' => 'Beteiligte', |
|
| 663 | - 'plugin_info_erreur_xml' => 'Die Deklaration dieses Plugins ist nicht korrekt.', |
|
| 664 | - 'plugin_info_install_ok' => 'Installation war erfolgreich.', |
|
| 665 | - 'plugin_info_necessite' => 'Erfordert:', |
|
| 666 | - 'plugin_info_non_compatible_spip' => 'Dieses Plugin ist nicht mit SPIP kompatibel.', |
|
| 667 | - 'plugin_info_plugins_dist_1' => 'Diese Erweiterungen liegen im Verzeichnis @plugins_dist@ und werden dort aktiviert.', |
|
| 668 | - 'plugin_info_plugins_dist_2' => 'Man kann sie nicht deaktivieren.', |
|
| 669 | - 'plugin_info_telecharger' => 'herunterladen von @url@ und in @rep@ installieren', |
|
| 670 | - 'plugin_info_upgrade_ok' => 'Upgrade erfolgreich', |
|
| 671 | - 'plugin_librairies_installees' => 'Installierte Bibliotheken', |
|
| 672 | - 'plugin_necessite_extension_php' => 'benötigt die PHP-Erweiterung @plugin@ Version @version@.', |
|
| 673 | - 'plugin_necessite_extension_php_sans_version' => 'benötigt die PHP-Erweiterung @plugin@', |
|
| 674 | - 'plugin_necessite_lib' => 'Dieses Plugin benötigt die Bibliothek @lib@', |
|
| 675 | - 'plugin_necessite_php' => 'benötigt @plugin@ Version @version@.', |
|
| 676 | - 'plugin_necessite_plugin' => 'Benötigt Version @version@ des Plugin @plugin@.', |
|
| 677 | - 'plugin_necessite_plugin_sans_version' => 'Benötigt das Plugin @plugin@', |
|
| 678 | - 'plugin_necessite_spip' => 'Benötigt mindestens Version @version@ von SPIP.', |
|
| 679 | - 'plugin_source' => 'Quelle: ', |
|
| 680 | - 'plugin_titre_automatique' => 'Automatische Installation', |
|
| 681 | - 'plugin_titre_automatique_ajouter' => 'Plugins hinzufügen', |
|
| 682 | - 'plugin_titre_installation' => 'Installation des Plugins @plugin@', |
|
| 683 | - 'plugin_titre_modifier' => 'Meine Plugins', |
|
| 684 | - 'plugin_utilise_extension_php' => 'PHP-Erweiterung @plugin@ muss Version @version@ sein.', |
|
| 685 | - 'plugin_utilise_php' => '@plugin@ muss Version @version@ sein.', |
|
| 686 | - 'plugin_utilise_plugin' => 'Das Plugin @plugin@ muss Version @version@ sein.', |
|
| 687 | - 'plugin_zip_active' => 'Weiter zum Aktivieren', |
|
| 688 | - 'plugin_zip_adresse' => 'Geben Sie hier die Adresse einer ZIP-Datei, die das Plugin enthält, oder die Adresse einer Plugin-Liste an.', |
|
| 689 | - 'plugin_zip_adresse_champ' => 'Adresse des Plugins oder der Liste ', |
|
| 690 | - 'plugin_zip_content' => 'Enthält die folgenden Dateien (@taille@),<br />die im Verzeichnis <code>@rep@</code> installiert werden können.', |
|
| 691 | - 'plugin_zip_installe_finie' => 'Die Datei @zip@ wurde entpackt und installiert.', |
|
| 692 | - 'plugin_zip_installe_rep_finie' => 'Die Datei @zip@ wurde entpackt und in das Verzeichnis @rep@ installiert.', |
|
| 693 | - 'plugin_zip_installer' => 'Sie können es jetzt installieren.', |
|
| 694 | - 'plugin_zip_telecharge' => 'Die Datei @zip@ wurde heruntergeladen', |
|
| 695 | - 'plugins_actif_aucun' => 'Kein aktives Plugin.', |
|
| 696 | - 'plugins_actif_un' => 'Ein aktives Plugin.', |
|
| 697 | - 'plugins_actifs' => '@count@ aktive Plugins.', |
|
| 698 | - 'plugins_actifs_liste' => 'Aktiv', |
|
| 699 | - 'plugins_compte' => '@count@ Plugins', |
|
| 700 | - 'plugins_disponible_un' => 'Ein Plugin verfügbar.', |
|
| 701 | - 'plugins_disponibles' => '@count@ verfügbare Plugins.', |
|
| 702 | - 'plugins_erreur' => 'Fehler in den Plugins: @plugins@', |
|
| 703 | - 'plugins_liste' => 'Installierte Plugins', |
|
| 704 | - 'plugins_liste_dist' => 'Gesicherte Plugins', # Das hat jetzt aber mit plugins_liste_dist nichts mehr zu tun. |
|
| 705 | - 'plugins_recents' => 'Neueste Plugins.', |
|
| 706 | - 'plugins_tous_liste' => 'Alle', |
|
| 707 | - 'plugins_vue_hierarchie' => 'Hierarchie', |
|
| 708 | - 'plugins_vue_liste' => 'Liste', |
|
| 709 | - 'protocole_ldap' => 'Version des Protokolls:', |
|
| 634 | + // P |
|
| 635 | + 'page_pas_proxy' => 'Diese Seite darf nicht durch den Proxy übertragen werden.', |
|
| 636 | + 'pas_de_proxy_pour' => 'Falls erforderlich, könne Sie die Rechner und Domainen angeben, die nicht über den Proxy angesprochen werden (z.B. @exemple@)', |
|
| 637 | + 'phpinfo' => 'PHP-Konfiguration', |
|
| 638 | + 'plugin_charge_paquet' => 'Paket @name@ wird geladen', |
|
| 639 | + 'plugin_charger' => 'Übertragen', |
|
| 640 | + 'plugin_erreur_charger' => 'Fehler: @zip@ kann nicht geladen werden', |
|
| 641 | + 'plugin_erreur_droit1' => 'In das Verzeichnis <code>@dest@</code> kann nicht geschrieben werden.', |
|
| 642 | + 'plugin_erreur_droit2' => 'Bitte überprüfen Sie die Schreibrechte für dieses Verzeichnis oder legen Sie es an, falls es noch nicht existiert, oder installieren Sie die Dateien per FTP.', |
|
| 643 | + 'plugin_erreur_zip' => 'Pclzip fehlgeschlagen: Fehler @status@', |
|
| 644 | + 'plugin_etat_developpement' => 'In Entwicklung', |
|
| 645 | + 'plugin_etat_experimental' => 'Experimentell', |
|
| 646 | + 'plugin_etat_stable' => 'Stabil', |
|
| 647 | + 'plugin_etat_test' => 'Im Test', |
|
| 648 | + 'plugin_impossible_activer' => 'Das Plugin @plugin@ kann nicht aktiviert werden.', |
|
| 649 | + 'plugin_info_automatique1' => 'Wenn Sie die automatische Installation von Plugins nutzen möchten, führen Sie bitte folgende Schritte aus:', |
|
| 650 | + 'plugin_info_automatique1_lib' => 'Wenn diese Bibliothek automatisch installiert werden soll, führen sie bitte diese Schritte aus:', |
|
| 651 | + 'plugin_info_automatique2' => 'Anlegen des Verzeichnis <code>@rep@</code> ;', |
|
| 652 | + 'plugin_info_automatique3' => 'überprüfen, ob der Server in das Verzeichnis schreiben kann.', |
|
| 653 | + 'plugin_info_automatique_creer' => 'im Wurzelverzeichnis der Website.', |
|
| 654 | + 'plugin_info_automatique_exemples' => 'Beispiele:', |
|
| 655 | + 'plugin_info_automatique_ftp' => 'Sie können Plugins per FTP in dem Vezeichnis <tt>@rep@</tt> installieren', |
|
| 656 | + 'plugin_info_automatique_lib' => 'Manche Plugins benötigen das Verzeichnis <code>lib/</code>, um Dateien downloaden zu können, das im Wurzelverzeichnis der Website angelegt werden muss.', |
|
| 657 | + 'plugin_info_automatique_liste' => 'Ihre Plugin-Listen:', |
|
| 658 | + 'plugin_info_automatique_liste_officielle' => 'Die offiziellen Plugins', |
|
| 659 | + 'plugin_info_automatique_liste_update' => 'Listen aktualisieren', |
|
| 660 | + 'plugin_info_automatique_ou' => 'oder...', |
|
| 661 | + 'plugin_info_automatique_select' => 'Wählen Sie ein Plugin aus. SPIP wird es herunterladen und im Verzeichnis <code>@rep@</code> installieren. Falls das Plugin bereits installiert ist, wird es auf den neuesten Stand gebracht.', |
|
| 662 | + 'plugin_info_credit' => 'Beteiligte', |
|
| 663 | + 'plugin_info_erreur_xml' => 'Die Deklaration dieses Plugins ist nicht korrekt.', |
|
| 664 | + 'plugin_info_install_ok' => 'Installation war erfolgreich.', |
|
| 665 | + 'plugin_info_necessite' => 'Erfordert:', |
|
| 666 | + 'plugin_info_non_compatible_spip' => 'Dieses Plugin ist nicht mit SPIP kompatibel.', |
|
| 667 | + 'plugin_info_plugins_dist_1' => 'Diese Erweiterungen liegen im Verzeichnis @plugins_dist@ und werden dort aktiviert.', |
|
| 668 | + 'plugin_info_plugins_dist_2' => 'Man kann sie nicht deaktivieren.', |
|
| 669 | + 'plugin_info_telecharger' => 'herunterladen von @url@ und in @rep@ installieren', |
|
| 670 | + 'plugin_info_upgrade_ok' => 'Upgrade erfolgreich', |
|
| 671 | + 'plugin_librairies_installees' => 'Installierte Bibliotheken', |
|
| 672 | + 'plugin_necessite_extension_php' => 'benötigt die PHP-Erweiterung @plugin@ Version @version@.', |
|
| 673 | + 'plugin_necessite_extension_php_sans_version' => 'benötigt die PHP-Erweiterung @plugin@', |
|
| 674 | + 'plugin_necessite_lib' => 'Dieses Plugin benötigt die Bibliothek @lib@', |
|
| 675 | + 'plugin_necessite_php' => 'benötigt @plugin@ Version @version@.', |
|
| 676 | + 'plugin_necessite_plugin' => 'Benötigt Version @version@ des Plugin @plugin@.', |
|
| 677 | + 'plugin_necessite_plugin_sans_version' => 'Benötigt das Plugin @plugin@', |
|
| 678 | + 'plugin_necessite_spip' => 'Benötigt mindestens Version @version@ von SPIP.', |
|
| 679 | + 'plugin_source' => 'Quelle: ', |
|
| 680 | + 'plugin_titre_automatique' => 'Automatische Installation', |
|
| 681 | + 'plugin_titre_automatique_ajouter' => 'Plugins hinzufügen', |
|
| 682 | + 'plugin_titre_installation' => 'Installation des Plugins @plugin@', |
|
| 683 | + 'plugin_titre_modifier' => 'Meine Plugins', |
|
| 684 | + 'plugin_utilise_extension_php' => 'PHP-Erweiterung @plugin@ muss Version @version@ sein.', |
|
| 685 | + 'plugin_utilise_php' => '@plugin@ muss Version @version@ sein.', |
|
| 686 | + 'plugin_utilise_plugin' => 'Das Plugin @plugin@ muss Version @version@ sein.', |
|
| 687 | + 'plugin_zip_active' => 'Weiter zum Aktivieren', |
|
| 688 | + 'plugin_zip_adresse' => 'Geben Sie hier die Adresse einer ZIP-Datei, die das Plugin enthält, oder die Adresse einer Plugin-Liste an.', |
|
| 689 | + 'plugin_zip_adresse_champ' => 'Adresse des Plugins oder der Liste ', |
|
| 690 | + 'plugin_zip_content' => 'Enthält die folgenden Dateien (@taille@),<br />die im Verzeichnis <code>@rep@</code> installiert werden können.', |
|
| 691 | + 'plugin_zip_installe_finie' => 'Die Datei @zip@ wurde entpackt und installiert.', |
|
| 692 | + 'plugin_zip_installe_rep_finie' => 'Die Datei @zip@ wurde entpackt und in das Verzeichnis @rep@ installiert.', |
|
| 693 | + 'plugin_zip_installer' => 'Sie können es jetzt installieren.', |
|
| 694 | + 'plugin_zip_telecharge' => 'Die Datei @zip@ wurde heruntergeladen', |
|
| 695 | + 'plugins_actif_aucun' => 'Kein aktives Plugin.', |
|
| 696 | + 'plugins_actif_un' => 'Ein aktives Plugin.', |
|
| 697 | + 'plugins_actifs' => '@count@ aktive Plugins.', |
|
| 698 | + 'plugins_actifs_liste' => 'Aktiv', |
|
| 699 | + 'plugins_compte' => '@count@ Plugins', |
|
| 700 | + 'plugins_disponible_un' => 'Ein Plugin verfügbar.', |
|
| 701 | + 'plugins_disponibles' => '@count@ verfügbare Plugins.', |
|
| 702 | + 'plugins_erreur' => 'Fehler in den Plugins: @plugins@', |
|
| 703 | + 'plugins_liste' => 'Installierte Plugins', |
|
| 704 | + 'plugins_liste_dist' => 'Gesicherte Plugins', # Das hat jetzt aber mit plugins_liste_dist nichts mehr zu tun. |
|
| 705 | + 'plugins_recents' => 'Neueste Plugins.', |
|
| 706 | + 'plugins_tous_liste' => 'Alle', |
|
| 707 | + 'plugins_vue_hierarchie' => 'Hierarchie', |
|
| 708 | + 'plugins_vue_liste' => 'Liste', |
|
| 709 | + 'protocole_ldap' => 'Version des Protokolls:', |
|
| 710 | 710 | |
| 711 | - // Q |
|
| 712 | - 'queue_executer_maintenant' => 'Jetzt ausführen', |
|
| 713 | - 'queue_info_purger' => 'Sie können alle anstehenden Aufgaben löschen und so die Liste der regelmäßigen Aufgaben neu einlesen.', |
|
| 714 | - 'queue_nb_jobs_in_queue' => '@nb@ Aufgaben in der Warteschlange', |
|
| 715 | - 'queue_next_job_in_nb_sec' => 'Nächste Aufgabe in @nb@ s', |
|
| 716 | - 'queue_no_job_in_queue' => 'Keine Aufgaben in der Warteschlange', |
|
| 717 | - 'queue_one_job_in_queue' => '1 Aufgabe in der Warteschlange', |
|
| 718 | - 'queue_priorite_tache' => 'Rangfolge', |
|
| 719 | - 'queue_purger_queue' => 'Aufgabenliste löschen', |
|
| 720 | - 'queue_titre' => 'Hintergrundprozesse', |
|
| 711 | + // Q |
|
| 712 | + 'queue_executer_maintenant' => 'Jetzt ausführen', |
|
| 713 | + 'queue_info_purger' => 'Sie können alle anstehenden Aufgaben löschen und so die Liste der regelmäßigen Aufgaben neu einlesen.', |
|
| 714 | + 'queue_nb_jobs_in_queue' => '@nb@ Aufgaben in der Warteschlange', |
|
| 715 | + 'queue_next_job_in_nb_sec' => 'Nächste Aufgabe in @nb@ s', |
|
| 716 | + 'queue_no_job_in_queue' => 'Keine Aufgaben in der Warteschlange', |
|
| 717 | + 'queue_one_job_in_queue' => '1 Aufgabe in der Warteschlange', |
|
| 718 | + 'queue_priorite_tache' => 'Rangfolge', |
|
| 719 | + 'queue_purger_queue' => 'Aufgabenliste löschen', |
|
| 720 | + 'queue_titre' => 'Hintergrundprozesse', |
|
| 721 | 721 | |
| 722 | - // R |
|
| 723 | - 'repertoire_plugins' => 'Verzeichnis:', |
|
| 724 | - 'required' => ' (erforderlich)', |
|
| 722 | + // R |
|
| 723 | + 'repertoire_plugins' => 'Verzeichnis:', |
|
| 724 | + 'required' => ' (erforderlich)', |
|
| 725 | 725 | |
| 726 | - // S |
|
| 727 | - 'sans_heure' => 'Ohne Zeit', |
|
| 728 | - 'statut_admin_restreint' => 'Rubrik-Admin', |
|
| 729 | - 'statut_webmestre' => 'Webmaster', |
|
| 726 | + // S |
|
| 727 | + 'sans_heure' => 'Ohne Zeit', |
|
| 728 | + 'statut_admin_restreint' => 'Rubrik-Admin', |
|
| 729 | + 'statut_webmestre' => 'Webmaster', |
|
| 730 | 730 | |
| 731 | - // T |
|
| 732 | - 'tache_cron_asap' => 'Cronjob @function@ (unverzüglich)', |
|
| 733 | - 'tache_cron_secondes' => 'Cronjob @function@ (alle @nb@ Sekunden)', |
|
| 734 | - 'taille_cache_image' => 'Die von SPIP automatisch berechneten Grafiken (Icons für Dokumente, als Grafiken gespeicherte Titel, mathematische Ausdrücke im Format TeX...) belegen insgesamt @taille@ im Verzeichnis @dir@.', |
|
| 735 | - 'taille_cache_moins_de' => 'Die Größe des Caches beträgt mindestens @octets@.', |
|
| 736 | - 'taille_cache_octets' => 'Aktuelle Grösse des Cache: @octets@ Byte', |
|
| 737 | - 'taille_cache_vide' => 'Der Cache ist leer.', |
|
| 738 | - 'taille_repertoire_cache' => 'Grösse des Cache-Verzeichnis', |
|
| 739 | - 'text_article_propose_publication' => 'Dieser Artikel ist zur Veröffentlichung vorgeschlagen.', |
|
| 740 | - 'texte_acces_ldap_anonyme_1' => 'Manche LDAP-Server erlauben keinen anonymen Zugriff. In diesem Fall muss man Zugangsdaten für die erste Anmeldung eingeben, um Informationen im Verzeichnis suchen zu können. Meistens kann man hingegen die folgenden Felder frei lassen.', |
|
| 741 | - 'texte_admin_effacer_01' => 'Dieser Befehl löscht den <i>gesamten</i> Inhalt der Datenbank mit <i>allen</i> Redakteuren und Administratoren. Nach der Ausführung dieses Befehls müssen Sie SPIP neu installieren und einen ersten Administrator anlegen.', |
|
| 742 | - 'texte_adresse_annuaire_1' => '(Wenn Ihr Verzeichnis auf dem selben Rechner installiert ist wie diese Website, müssen Sie wahrscheinlich „localhost“ angeben.)', |
|
| 743 | - 'texte_ajout_auteur' => 'Folgender Autor ist diesem Artikel zugeordnet worden:', |
|
| 744 | - 'texte_annuaire_ldap_1' => 'Wenn Sie Zugang zu einem LDAP-Verzeichnis haben, können Sie es verwenden, um Benutzer automatisch nach SPIP zu importieren.', |
|
| 745 | - 'texte_article_statut' => 'Dieser Artikel ist:', |
|
| 746 | - 'texte_article_virtuel' => 'Virtueller Artikel', |
|
| 747 | - 'texte_article_virtuel_reference' => '<b>Virtueller Artikel:</b> Dieser Artikel ist Teil Ihrer Website, leitet Besucher aber zu einer anderen URL um. Sie können die Umleitung abschalten, indem Sie den URL oben löschen.', |
|
| 748 | - 'texte_aucun_resultat_auteur' => 'Kein Ergebnis für “@cherche_auteur@”', |
|
| 749 | - 'texte_auteur_messagerie' => 'Die Website kann Ihnen eine Liste aktuell eingelogter Redakteure anzeigen, so dass Sie sofort miteinander in Kontakt treten können (Wenn das Nachrichtensystem abgeschaltet ist, gibt es auch keine Liste angemeldeter Redakteure). Sie haben die Möglichkeit, nicht in diese Liste aufgenommen zu werden (damit sind Sie für andere Benutzer "unsichtbar").', |
|
| 750 | - 'texte_auteurs' => 'AUTOREN', |
|
| 751 | - 'texte_choix_base_1' => 'Wählen Sie die Datenbank:', |
|
| 752 | - 'texte_choix_base_2' => 'Der SQL-Server enthält mehrere Datenbanken.', |
|
| 753 | - 'texte_choix_base_3' => '<b>Wählen</b> Sie die von Ihrem Webhoster für Sie angelegte aus:', |
|
| 754 | - 'texte_choix_table_prefix' => 'Prefix der Tabellen:', |
|
| 755 | - 'texte_compte_element' => '@count@ Element', |
|
| 756 | - 'texte_compte_elements' => '@count@ Elemente', |
|
| 757 | - 'texte_conflit_edition_correction' => 'Bitte überprüfen sie hier die Unterschiede zwischen zwei Versionen des Textes. Sie können Ihre Änderungen kopieren und neu eingeben.', |
|
| 758 | - 'texte_connexion_mysql' => 'Sie erhalten die erforderlichen SQL-Zugangsdaten von Ihrem Provider: Name des Datenbankservers und persönliche Zugangsdaten.', |
|
| 759 | - 'texte_contenu_article' => '(Zusammenfassung des Artikels in wenigen Worten.)', |
|
| 760 | - 'texte_contenu_articles' => 'Ja nach Vorlage, die Sie für Ihre Website verwenden, können Sie Elemente von Artikeln aktivieren oder abschalten. Bitte bestimmen Sie mit dieser Liste, welche Elemente verfügbar sein sollen.', |
|
| 761 | - 'texte_crash_base' => 'Wenn Ihre Datenbank abgestürzt ist, können Sie eine automatische Reparatur versuchen.', |
|
| 762 | - 'texte_creer_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.', |
|
| 763 | - 'texte_date_creation_article' => 'ARTIKEL ANGELEGT AM:', |
|
| 764 | - 'texte_date_creation_objet' => 'Erstellungsdatum:', # on ajoute le ":" |
|
| 765 | - 'texte_date_publication_anterieure' => 'DATUM EINER FRÜHEREN BEARBEITUNG', |
|
| 766 | - 'texte_date_publication_anterieure_nonaffichee' => 'Kein Datum einer früheren Bearbeitung anzeigen.', |
|
| 767 | - 'texte_date_publication_article' => 'ONLINE VERÖFFENTLICHT AM:', |
|
| 768 | - 'texte_date_publication_objet' => 'Veröffentlichungsdatum:', |
|
| 769 | - 'texte_definir_comme_traduction_rubrique' => 'Diese Rubrik ist eine Übersetzung der Rubik mit der Nummer', |
|
| 770 | - 'texte_descriptif_rapide' => 'Kurzbeschreibung', |
|
| 771 | - 'texte_effacer_base' => 'SPIP-Datenbank löschen', |
|
| 772 | - 'texte_effacer_statistiques' => 'Statistiken löschen', |
|
| 773 | - 'texte_en_cours_validation' => 'Die folgenden Einträge sind zur Veröffentlichung vorgeschlagen.', |
|
| 774 | - 'texte_enrichir_mise_a_jour' => 'Sie können Ihren Text ansprechend gestalten, indem Sie die typografischen Abkürzungen verwenden.', |
|
| 775 | - 'texte_fichier_authent' => '<b>Soll SPIP die Dateien <tt>.htpasswd</tt> und <tt>.htpasswd-admin</tt> im Verzeichnis @dossier@ anlegen?</b><p> |
|
| 731 | + // T |
|
| 732 | + 'tache_cron_asap' => 'Cronjob @function@ (unverzüglich)', |
|
| 733 | + 'tache_cron_secondes' => 'Cronjob @function@ (alle @nb@ Sekunden)', |
|
| 734 | + 'taille_cache_image' => 'Die von SPIP automatisch berechneten Grafiken (Icons für Dokumente, als Grafiken gespeicherte Titel, mathematische Ausdrücke im Format TeX...) belegen insgesamt @taille@ im Verzeichnis @dir@.', |
|
| 735 | + 'taille_cache_moins_de' => 'Die Größe des Caches beträgt mindestens @octets@.', |
|
| 736 | + 'taille_cache_octets' => 'Aktuelle Grösse des Cache: @octets@ Byte', |
|
| 737 | + 'taille_cache_vide' => 'Der Cache ist leer.', |
|
| 738 | + 'taille_repertoire_cache' => 'Grösse des Cache-Verzeichnis', |
|
| 739 | + 'text_article_propose_publication' => 'Dieser Artikel ist zur Veröffentlichung vorgeschlagen.', |
|
| 740 | + 'texte_acces_ldap_anonyme_1' => 'Manche LDAP-Server erlauben keinen anonymen Zugriff. In diesem Fall muss man Zugangsdaten für die erste Anmeldung eingeben, um Informationen im Verzeichnis suchen zu können. Meistens kann man hingegen die folgenden Felder frei lassen.', |
|
| 741 | + 'texte_admin_effacer_01' => 'Dieser Befehl löscht den <i>gesamten</i> Inhalt der Datenbank mit <i>allen</i> Redakteuren und Administratoren. Nach der Ausführung dieses Befehls müssen Sie SPIP neu installieren und einen ersten Administrator anlegen.', |
|
| 742 | + 'texte_adresse_annuaire_1' => '(Wenn Ihr Verzeichnis auf dem selben Rechner installiert ist wie diese Website, müssen Sie wahrscheinlich „localhost“ angeben.)', |
|
| 743 | + 'texte_ajout_auteur' => 'Folgender Autor ist diesem Artikel zugeordnet worden:', |
|
| 744 | + 'texte_annuaire_ldap_1' => 'Wenn Sie Zugang zu einem LDAP-Verzeichnis haben, können Sie es verwenden, um Benutzer automatisch nach SPIP zu importieren.', |
|
| 745 | + 'texte_article_statut' => 'Dieser Artikel ist:', |
|
| 746 | + 'texte_article_virtuel' => 'Virtueller Artikel', |
|
| 747 | + 'texte_article_virtuel_reference' => '<b>Virtueller Artikel:</b> Dieser Artikel ist Teil Ihrer Website, leitet Besucher aber zu einer anderen URL um. Sie können die Umleitung abschalten, indem Sie den URL oben löschen.', |
|
| 748 | + 'texte_aucun_resultat_auteur' => 'Kein Ergebnis für “@cherche_auteur@”', |
|
| 749 | + 'texte_auteur_messagerie' => 'Die Website kann Ihnen eine Liste aktuell eingelogter Redakteure anzeigen, so dass Sie sofort miteinander in Kontakt treten können (Wenn das Nachrichtensystem abgeschaltet ist, gibt es auch keine Liste angemeldeter Redakteure). Sie haben die Möglichkeit, nicht in diese Liste aufgenommen zu werden (damit sind Sie für andere Benutzer "unsichtbar").', |
|
| 750 | + 'texte_auteurs' => 'AUTOREN', |
|
| 751 | + 'texte_choix_base_1' => 'Wählen Sie die Datenbank:', |
|
| 752 | + 'texte_choix_base_2' => 'Der SQL-Server enthält mehrere Datenbanken.', |
|
| 753 | + 'texte_choix_base_3' => '<b>Wählen</b> Sie die von Ihrem Webhoster für Sie angelegte aus:', |
|
| 754 | + 'texte_choix_table_prefix' => 'Prefix der Tabellen:', |
|
| 755 | + 'texte_compte_element' => '@count@ Element', |
|
| 756 | + 'texte_compte_elements' => '@count@ Elemente', |
|
| 757 | + 'texte_conflit_edition_correction' => 'Bitte überprüfen sie hier die Unterschiede zwischen zwei Versionen des Textes. Sie können Ihre Änderungen kopieren und neu eingeben.', |
|
| 758 | + 'texte_connexion_mysql' => 'Sie erhalten die erforderlichen SQL-Zugangsdaten von Ihrem Provider: Name des Datenbankservers und persönliche Zugangsdaten.', |
|
| 759 | + 'texte_contenu_article' => '(Zusammenfassung des Artikels in wenigen Worten.)', |
|
| 760 | + 'texte_contenu_articles' => 'Ja nach Vorlage, die Sie für Ihre Website verwenden, können Sie Elemente von Artikeln aktivieren oder abschalten. Bitte bestimmen Sie mit dieser Liste, welche Elemente verfügbar sein sollen.', |
|
| 761 | + 'texte_crash_base' => 'Wenn Ihre Datenbank abgestürzt ist, können Sie eine automatische Reparatur versuchen.', |
|
| 762 | + 'texte_creer_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.', |
|
| 763 | + 'texte_date_creation_article' => 'ARTIKEL ANGELEGT AM:', |
|
| 764 | + 'texte_date_creation_objet' => 'Erstellungsdatum:', # on ajoute le ":" |
|
| 765 | + 'texte_date_publication_anterieure' => 'DATUM EINER FRÜHEREN BEARBEITUNG', |
|
| 766 | + 'texte_date_publication_anterieure_nonaffichee' => 'Kein Datum einer früheren Bearbeitung anzeigen.', |
|
| 767 | + 'texte_date_publication_article' => 'ONLINE VERÖFFENTLICHT AM:', |
|
| 768 | + 'texte_date_publication_objet' => 'Veröffentlichungsdatum:', |
|
| 769 | + 'texte_definir_comme_traduction_rubrique' => 'Diese Rubrik ist eine Übersetzung der Rubik mit der Nummer', |
|
| 770 | + 'texte_descriptif_rapide' => 'Kurzbeschreibung', |
|
| 771 | + 'texte_effacer_base' => 'SPIP-Datenbank löschen', |
|
| 772 | + 'texte_effacer_statistiques' => 'Statistiken löschen', |
|
| 773 | + 'texte_en_cours_validation' => 'Die folgenden Einträge sind zur Veröffentlichung vorgeschlagen.', |
|
| 774 | + 'texte_enrichir_mise_a_jour' => 'Sie können Ihren Text ansprechend gestalten, indem Sie die typografischen Abkürzungen verwenden.', |
|
| 775 | + 'texte_fichier_authent' => '<b>Soll SPIP die Dateien <tt>.htpasswd</tt> und <tt>.htpasswd-admin</tt> im Verzeichnis @dossier@ anlegen?</b><p> |
|
| 776 | 776 | Mit diesen Dateien können Sie den Zugang zu anderen Bereichen Ihrer Website (z.B. externe Logfile-Auswertungen) auf Redakteure und Administratoren beschränken.</p><p>Wenn Sie diese Möglickeit nicht nutzen, könnn Sie hier die Grundeinstellung (Dateien werden nicht angelegt) beibehalten.</p>', |
| 777 | - 'texte_informations_personnelles_1' => 'Das System wird nun persönliche Zugangsdaten für Sie anlegen.', |
|
| 778 | - 'texte_informations_personnelles_2' => '(Hinweis: Wenn Sie die Site erneut installieren, und Ihre Zugangsdaten funktionieren, können Sie', |
|
| 779 | - 'texte_introductif_article' => '(Einleitender Text des Artikels.)', |
|
| 780 | - 'texte_jeu_caractere' => 'Es empfiehlt sich, das Universalalphabet (<tt>utf-8</tt>) für ihre Website zu verwenden. Es ermöglicht die Darstellung der Zeichen aller Sprachen und wird nunmehr von allen modernen Webbrowsern unterstützt.', |
|
| 781 | - 'texte_jeu_caractere_3' => 'Ihre Website verwendet zur Zeit den Zeichensatz:', |
|
| 782 | - 'texte_jeu_caractere_4' => 'Wenn das nicht mit den Erfordernissen ihrer Daten übereinstimmt (z.B. nach der Wiederherstellung einer Datensicherung), oder wenn sie die Website neu einrichten und einen anderen Zeichernsatz verwenden möchten, stellen sie ihn bitte hier ein:', |
|
| 783 | - 'texte_login_ldap_1' => '(Keine Angabe bzw. vollständiger Pfad, z.B. „<tt>uid=meier, ou=mitglieder, dc=MeineDomäne, dc=com</tt>“.)', |
|
| 784 | - 'texte_login_precaution' => 'Achtung! Sie sind zur Zeit mit diesem Namen angemeldet. Bitte verwenden Sie diese Seite mit der erforderlichen Vorsicht.', |
|
| 785 | - 'texte_messagerie_agenda' => 'Mit dem Nachrichtensystem können Redakteure im Redaktionsbereich direkt miteinander kommunizieren. Es ist mit einem Kalender verbunden.', |
|
| 786 | - 'texte_mise_a_niveau_base_1' => 'Sie haben den Programmcode von SPIP aktualisiert. Jetzt muss die Datenbank aktualisiert werden.', |
|
| 787 | - 'texte_modifier_article' => 'Artikel bearbeiten:', |
|
| 788 | - 'texte_multilinguisme' => 'Wenn Sie Artikel in mehreren Sprachen mit entsprecher komplexer Navigation verwalten möchten, können Sie den Rubriken und/oder den Artikeln ein Menü zur Sprachauswahl hinzufügen. Diese Funktion ist abhängig von der Struktur Ihrer Website.', |
|
| 789 | - 'texte_multilinguisme_trad' => 'Sie können ein System zur automatischen Verlinkung der verschiedenen Sprachversionen von Objekten aktivieren.', |
|
| 790 | - 'texte_non_compresse' => '<i>unkomprimiert</i> (ihr Server unterstützt diese Funktion nicht)', |
|
| 791 | - 'texte_nouvelle_version_spip_1' => 'Sie haben eine neue Version von SPIP installiert.', |
|
| 792 | - 'texte_nouvelle_version_spip_2' => 'Diese neue Version erfordert eine weiter gehende Aktualisierung Ihres Systems als gewöhnlich. Wenn Sie Webmaster dieser Site sind, löschen Sie bitte die Datei @connect@ und setzen Sie die Installation fort, indem Sie die Verbindungsdaten zur Datenbank neu eingeben.<p>(Tipp: Sollten Sie Ihre Verbindungsdaten vergessen haben, schauen Sie in der Datei @connect@ nach, bevor Sie sie löschen ...)</p>', |
|
| 793 | - 'texte_operation_echec' => 'Gehen Sie zur vorigen Seite zurück und wählen Sie eine andere Datenbank aus bzw. legen Sie eine neue an. Überprüfen Sie die Angaben Ihres Providers.', |
|
| 794 | - 'texte_plus_trois_car' => 'mehr als 3 Zeichen', |
|
| 795 | - 'texte_plusieurs_articles' => 'Mehrere Autoren für „@cherche_auteur@“ gefunden:', |
|
| 796 | - 'texte_port_annuaire' => '(Der Standardwert kann meistens beibehalten werden.)', |
|
| 797 | - 'texte_presente_plugin' => 'Diese Seite zeigt eine Liste der auf dieser Website verfügbaren Plugins. Sie können sie aktivieren, indem sie die entsprechenden Einträge mit einem Häkchen merkieren.', |
|
| 798 | - 'texte_proposer_publication' => 'Wenn Ihr Artikel fertig ist,<br /> können Sie ihn zur Veröffentlichung vorschlagen.', |
|
| 799 | - 'texte_proxy' => 'In manchen Fällen (Intranet, Rechner hinter einer Firewall...), |
|
| 777 | + 'texte_informations_personnelles_1' => 'Das System wird nun persönliche Zugangsdaten für Sie anlegen.', |
|
| 778 | + 'texte_informations_personnelles_2' => '(Hinweis: Wenn Sie die Site erneut installieren, und Ihre Zugangsdaten funktionieren, können Sie', |
|
| 779 | + 'texte_introductif_article' => '(Einleitender Text des Artikels.)', |
|
| 780 | + 'texte_jeu_caractere' => 'Es empfiehlt sich, das Universalalphabet (<tt>utf-8</tt>) für ihre Website zu verwenden. Es ermöglicht die Darstellung der Zeichen aller Sprachen und wird nunmehr von allen modernen Webbrowsern unterstützt.', |
|
| 781 | + 'texte_jeu_caractere_3' => 'Ihre Website verwendet zur Zeit den Zeichensatz:', |
|
| 782 | + 'texte_jeu_caractere_4' => 'Wenn das nicht mit den Erfordernissen ihrer Daten übereinstimmt (z.B. nach der Wiederherstellung einer Datensicherung), oder wenn sie die Website neu einrichten und einen anderen Zeichernsatz verwenden möchten, stellen sie ihn bitte hier ein:', |
|
| 783 | + 'texte_login_ldap_1' => '(Keine Angabe bzw. vollständiger Pfad, z.B. „<tt>uid=meier, ou=mitglieder, dc=MeineDomäne, dc=com</tt>“.)', |
|
| 784 | + 'texte_login_precaution' => 'Achtung! Sie sind zur Zeit mit diesem Namen angemeldet. Bitte verwenden Sie diese Seite mit der erforderlichen Vorsicht.', |
|
| 785 | + 'texte_messagerie_agenda' => 'Mit dem Nachrichtensystem können Redakteure im Redaktionsbereich direkt miteinander kommunizieren. Es ist mit einem Kalender verbunden.', |
|
| 786 | + 'texte_mise_a_niveau_base_1' => 'Sie haben den Programmcode von SPIP aktualisiert. Jetzt muss die Datenbank aktualisiert werden.', |
|
| 787 | + 'texte_modifier_article' => 'Artikel bearbeiten:', |
|
| 788 | + 'texte_multilinguisme' => 'Wenn Sie Artikel in mehreren Sprachen mit entsprecher komplexer Navigation verwalten möchten, können Sie den Rubriken und/oder den Artikeln ein Menü zur Sprachauswahl hinzufügen. Diese Funktion ist abhängig von der Struktur Ihrer Website.', |
|
| 789 | + 'texte_multilinguisme_trad' => 'Sie können ein System zur automatischen Verlinkung der verschiedenen Sprachversionen von Objekten aktivieren.', |
|
| 790 | + 'texte_non_compresse' => '<i>unkomprimiert</i> (ihr Server unterstützt diese Funktion nicht)', |
|
| 791 | + 'texte_nouvelle_version_spip_1' => 'Sie haben eine neue Version von SPIP installiert.', |
|
| 792 | + 'texte_nouvelle_version_spip_2' => 'Diese neue Version erfordert eine weiter gehende Aktualisierung Ihres Systems als gewöhnlich. Wenn Sie Webmaster dieser Site sind, löschen Sie bitte die Datei @connect@ und setzen Sie die Installation fort, indem Sie die Verbindungsdaten zur Datenbank neu eingeben.<p>(Tipp: Sollten Sie Ihre Verbindungsdaten vergessen haben, schauen Sie in der Datei @connect@ nach, bevor Sie sie löschen ...)</p>', |
|
| 793 | + 'texte_operation_echec' => 'Gehen Sie zur vorigen Seite zurück und wählen Sie eine andere Datenbank aus bzw. legen Sie eine neue an. Überprüfen Sie die Angaben Ihres Providers.', |
|
| 794 | + 'texte_plus_trois_car' => 'mehr als 3 Zeichen', |
|
| 795 | + 'texte_plusieurs_articles' => 'Mehrere Autoren für „@cherche_auteur@“ gefunden:', |
|
| 796 | + 'texte_port_annuaire' => '(Der Standardwert kann meistens beibehalten werden.)', |
|
| 797 | + 'texte_presente_plugin' => 'Diese Seite zeigt eine Liste der auf dieser Website verfügbaren Plugins. Sie können sie aktivieren, indem sie die entsprechenden Einträge mit einem Häkchen merkieren.', |
|
| 798 | + 'texte_proposer_publication' => 'Wenn Ihr Artikel fertig ist,<br /> können Sie ihn zur Veröffentlichung vorschlagen.', |
|
| 799 | + 'texte_proxy' => 'In manchen Fällen (Intranet, Rechner hinter einer Firewall...), |
|
| 800 | 800 | kann ein <i>HTTP-Proxy</i> erforderlich sein, um die syndizierten Websites zu erreichen. |
| 801 | 801 | In diesem Fall geben Sie seine Adresse im Format |
| 802 | 802 | <tt><html>http://proxy:8080</html></tt>. an. |
| 803 | 803 | Meistens kann dieses Feld aber leer bleiben.', |
| 804 | - 'texte_publication_articles_post_dates' => 'Wie soll SPIP Artikel behandeln, deren Erscheinungsdatum in die Zukunft gelegt wurde?', |
|
| 805 | - 'texte_rappel_selection_champs' => '[Vergessen Sie nicht, dieses Feld korrekt auszufüllen.]', |
|
| 806 | - 'texte_recalcul_page' => 'Wenn Sie nur eine einzelne Seite aktualisieren wollen, verwenden Sie besser den Schalter „Seite aus Cache löschen“.', |
|
| 807 | - 'texte_recuperer_base' => 'Datenbank reparieren', |
|
| 808 | - 'texte_reference_mais_redirige' => 'Artikel Ihrer Website, der eine Umleitung zu einem anderen URL enthält.', |
|
| 809 | - 'texte_requetes_echouent' => '<b>Wenn manche SQL-Befehle ohne ersichtlichen Grund systematisch fehlschlagen, kann es an einer beschädigten Datenbank liegen.</b><p> |
|
| 804 | + 'texte_publication_articles_post_dates' => 'Wie soll SPIP Artikel behandeln, deren Erscheinungsdatum in die Zukunft gelegt wurde?', |
|
| 805 | + 'texte_rappel_selection_champs' => '[Vergessen Sie nicht, dieses Feld korrekt auszufüllen.]', |
|
| 806 | + 'texte_recalcul_page' => 'Wenn Sie nur eine einzelne Seite aktualisieren wollen, verwenden Sie besser den Schalter „Seite aus Cache löschen“.', |
|
| 807 | + 'texte_recuperer_base' => 'Datenbank reparieren', |
|
| 808 | + 'texte_reference_mais_redirige' => 'Artikel Ihrer Website, der eine Umleitung zu einem anderen URL enthält.', |
|
| 809 | + 'texte_requetes_echouent' => '<b>Wenn manche SQL-Befehle ohne ersichtlichen Grund systematisch fehlschlagen, kann es an einer beschädigten Datenbank liegen.</b><p> |
|
| 810 | 810 | SQL kann Tabellen reparieren, die beschädigt worden sind. Starten Sie hier einen Reparaturversuch. Sollte das fehlschlagen, notieren Sie bitte die Fehlermeldung, die u.U. einen Hinweis auf die Ursache des Problems gibt ...<p> |
| 811 | 811 | Wenn das Problem weiter besteht, nehmen Sie bitte Kontakt mit Ihrem Provider auf.<p>', |
| 812 | - 'texte_selection_langue_principale' => 'Hier können Sie die «Hauptsprache» der Website auswählen. Das zwingt Sie - zum Glück - nicht, Ihre Artikel in dieser Sprache zu schreiben, sondern ermöglicht: |
|
| 812 | + 'texte_selection_langue_principale' => 'Hier können Sie die «Hauptsprache» der Website auswählen. Das zwingt Sie - zum Glück - nicht, Ihre Artikel in dieser Sprache zu schreiben, sondern ermöglicht: |
|
| 813 | 813 | <ul><li> das Format der Datumsanzeige einzustellen;</li> |
| 814 | 814 | <li> die Art der typografischen Korrekturen von SPIP zu bestimmen;</li> |
| 815 | 815 | <li> über die Sprachversion der eingebauten Formulare zu entscheiden;</li> |
| 816 | 816 | <li> die Standardsprache des Redaktionssystems zu verändern.</li></ul>', |
| 817 | - 'texte_sous_titre' => 'Untertitel', |
|
| 818 | - 'texte_statistiques_visites' => '(dunkle Balken : Sonntag / dunkle Kurve : Entwicklung der Durchschnittswerte)', |
|
| 819 | - 'texte_statut_attente_validation' => 'vorgeschlagen', |
|
| 820 | - 'texte_statut_publies' => 'veröffentlicht', |
|
| 821 | - 'texte_statut_refuses' => 'abgelehnt', |
|
| 822 | - 'texte_suppression_fichiers' => 'Benutzen Sie diesen Befehl, um alle Dateien aus dem Zwischenspeicher von SPIP zu löschen. Damit können Sie eine erneute Berechnung aller Seiten erzwingen, wenn Sie z.B. wesentliche Änderungen am Inhalt und Layout Ihrer Site gemacht haben. ', |
|
| 823 | - 'texte_sur_titre' => 'Einleitender Titel', |
|
| 824 | - 'texte_table_ok' => ': Tabelle OK.', |
|
| 825 | - 'texte_tentative_recuperation' => 'Reparaturversuch', |
|
| 826 | - 'texte_tenter_reparation' => 'Reparatur der Datenbank versuchen', |
|
| 827 | - 'texte_test_proxy' => 'Um den Proxy zu testen, geben Sie hier die Adresse einer gewünschten Website ein.', |
|
| 828 | - 'texte_titre_02' => 'Titel:', |
|
| 829 | - 'texte_titre_obligatoire' => '<b>Titel</b> [obligatorisch]', |
|
| 830 | - 'texte_travail_article' => '@nom_auteur_modif@ hat diesen Artikel vor @date_diff@ Minuten bearbeitet', |
|
| 831 | - 'texte_travail_collaboratif' => 'Wenn es öfter vorkommt, dass mehrere Redakteure gemeinsam an Artikeln arbeiten, kann SPIP die vor kurzem „geöffneten“ Artikel anzeigen, um gleichzeitige Änderungen vorzubeugen. Diese Funktion ist normalerweise abgeschaltet, um störende Meldungen zu reduzieren.', |
|
| 832 | - 'texte_vide' => 'leer', |
|
| 833 | - 'texte_vider_cache' => 'Cache leeren', |
|
| 834 | - 'titre_admin_tech' => 'Wartung', |
|
| 835 | - 'titre_admin_vider' => 'Wartung', |
|
| 836 | - 'titre_ajouter_un_auteur' => 'Autor hinzufügen', |
|
| 837 | - 'titre_ajouter_un_mot' => 'Schlagwort hinzufügen', |
|
| 838 | - 'titre_cadre_afficher_article' => 'Artikel anzeigen', |
|
| 839 | - 'titre_cadre_afficher_traductions' => 'Stand der Übersetzungen für diese Sprachen anzeigen', |
|
| 840 | - 'titre_cadre_ajouter_auteur' => 'AUTOR HINZUFÜGEN: ', |
|
| 841 | - 'titre_cadre_interieur_rubrique' => 'In der Rubrik', |
|
| 842 | - 'titre_cadre_numero_auteur' => 'AUTOR NUMMER', |
|
| 843 | - 'titre_cadre_numero_objet' => '@objet@ Nummer:', |
|
| 844 | - 'titre_cadre_signature_obligatoire' => '<b>Unterschrift</b> [obligatorisch]<br />', |
|
| 845 | - 'titre_config_contenu_notifications' => 'Benachrichtigungen', |
|
| 846 | - 'titre_config_contenu_prive' => 'Im Redaktionsbereich', |
|
| 847 | - 'titre_config_contenu_public' => 'Auf der öffentlichen Website', |
|
| 848 | - 'titre_config_fonctions' => 'Website konfigurieren', |
|
| 849 | - 'titre_config_langage' => 'Sprache einstellen', |
|
| 850 | - 'titre_configuration' => 'Website konfigurieren', |
|
| 851 | - 'titre_configurer_preferences' => 'Ihre Einstellungen', |
|
| 852 | - 'titre_configurer_preferences_menus' => 'Konfigurieren Sie Ihre Menüeinstellungen', |
|
| 853 | - 'titre_conflit_edition' => 'Bearbeitungskonflikt', |
|
| 854 | - 'titre_connexion_ldap' => 'Optionen: <b>LDAP-Verbindung</b>', |
|
| 855 | - 'titre_groupe_mots' => 'KATEGORIE:', |
|
| 856 | - 'titre_identite_site' => 'Name der Website', # "Identité du site" war "Identität der Website", jetzt "Name der Website", auch möglich "Websitebezeichnung" o.ä. |
|
| 857 | - 'titre_langue_article' => 'Sprache des Artikels', |
|
| 858 | - 'titre_langue_rubrique' => 'Sprache der Rubrik', |
|
| 859 | - 'titre_langue_trad_article' => 'SPRACHE UND ÜBERSETZUNGEN DES ARTIKELS', |
|
| 860 | - 'titre_les_articles' => 'ARTIKEL', |
|
| 861 | - 'titre_messagerie_agenda' => 'Nachrichten und Kalender', |
|
| 862 | - 'titre_naviguer_dans_le_site' => 'Sitenavigation ...', |
|
| 863 | - 'titre_nouvelle_rubrique' => 'Neue Rubrik', |
|
| 864 | - 'titre_numero_rubrique' => 'RUBRIK NUMMER:', |
|
| 865 | - 'titre_page_articles_edit' => 'Bearbeiten: @titre@', |
|
| 866 | - 'titre_page_articles_page' => 'Artikel', |
|
| 867 | - 'titre_page_articles_tous' => 'Ganze Website', |
|
| 868 | - 'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@', |
|
| 869 | - 'titre_page_config_contenu' => 'Website konfigurieren', |
|
| 870 | - 'titre_page_delete_all' => 'vollständig unwiderruflich löschen', |
|
| 871 | - 'titre_page_recherche' => 'Ergebnisse der Suche nach @recherche@', |
|
| 872 | - 'titre_page_statistiques_referers' => 'Statistik (Referer)', |
|
| 873 | - 'titre_page_upgrade' => 'Aktualisierung von SPIP', |
|
| 874 | - 'titre_preference_menus_favoris' => 'Lieblingsmenüs', |
|
| 875 | - 'titre_publication_articles_post_dates' => 'Veröffentlichung von vordatierten Artikeln', |
|
| 876 | - 'titre_reparation' => 'Reparatur', |
|
| 877 | - 'titre_suivi_petition' => 'Petitionen verwalten', |
|
| 878 | - 'tls_ldap' => 'Transport Layer Security:', |
|
| 879 | - 'trad_article_traduction' => 'Alle Fassungen dieses Artikels:', |
|
| 880 | - 'trad_delier' => 'Nicht mehr mit diesen Übersetzungen verbinden', |
|
| 881 | - 'trad_lier' => 'Dieser Artikel ist eine Übersetzung des Artikels Nummer ', |
|
| 882 | - 'trad_new' => 'Neue Übersetzung beginnen', |
|
| 817 | + 'texte_sous_titre' => 'Untertitel', |
|
| 818 | + 'texte_statistiques_visites' => '(dunkle Balken : Sonntag / dunkle Kurve : Entwicklung der Durchschnittswerte)', |
|
| 819 | + 'texte_statut_attente_validation' => 'vorgeschlagen', |
|
| 820 | + 'texte_statut_publies' => 'veröffentlicht', |
|
| 821 | + 'texte_statut_refuses' => 'abgelehnt', |
|
| 822 | + 'texte_suppression_fichiers' => 'Benutzen Sie diesen Befehl, um alle Dateien aus dem Zwischenspeicher von SPIP zu löschen. Damit können Sie eine erneute Berechnung aller Seiten erzwingen, wenn Sie z.B. wesentliche Änderungen am Inhalt und Layout Ihrer Site gemacht haben. ', |
|
| 823 | + 'texte_sur_titre' => 'Einleitender Titel', |
|
| 824 | + 'texte_table_ok' => ': Tabelle OK.', |
|
| 825 | + 'texte_tentative_recuperation' => 'Reparaturversuch', |
|
| 826 | + 'texte_tenter_reparation' => 'Reparatur der Datenbank versuchen', |
|
| 827 | + 'texte_test_proxy' => 'Um den Proxy zu testen, geben Sie hier die Adresse einer gewünschten Website ein.', |
|
| 828 | + 'texte_titre_02' => 'Titel:', |
|
| 829 | + 'texte_titre_obligatoire' => '<b>Titel</b> [obligatorisch]', |
|
| 830 | + 'texte_travail_article' => '@nom_auteur_modif@ hat diesen Artikel vor @date_diff@ Minuten bearbeitet', |
|
| 831 | + 'texte_travail_collaboratif' => 'Wenn es öfter vorkommt, dass mehrere Redakteure gemeinsam an Artikeln arbeiten, kann SPIP die vor kurzem „geöffneten“ Artikel anzeigen, um gleichzeitige Änderungen vorzubeugen. Diese Funktion ist normalerweise abgeschaltet, um störende Meldungen zu reduzieren.', |
|
| 832 | + 'texte_vide' => 'leer', |
|
| 833 | + 'texte_vider_cache' => 'Cache leeren', |
|
| 834 | + 'titre_admin_tech' => 'Wartung', |
|
| 835 | + 'titre_admin_vider' => 'Wartung', |
|
| 836 | + 'titre_ajouter_un_auteur' => 'Autor hinzufügen', |
|
| 837 | + 'titre_ajouter_un_mot' => 'Schlagwort hinzufügen', |
|
| 838 | + 'titre_cadre_afficher_article' => 'Artikel anzeigen', |
|
| 839 | + 'titre_cadre_afficher_traductions' => 'Stand der Übersetzungen für diese Sprachen anzeigen', |
|
| 840 | + 'titre_cadre_ajouter_auteur' => 'AUTOR HINZUFÜGEN: ', |
|
| 841 | + 'titre_cadre_interieur_rubrique' => 'In der Rubrik', |
|
| 842 | + 'titre_cadre_numero_auteur' => 'AUTOR NUMMER', |
|
| 843 | + 'titre_cadre_numero_objet' => '@objet@ Nummer:', |
|
| 844 | + 'titre_cadre_signature_obligatoire' => '<b>Unterschrift</b> [obligatorisch]<br />', |
|
| 845 | + 'titre_config_contenu_notifications' => 'Benachrichtigungen', |
|
| 846 | + 'titre_config_contenu_prive' => 'Im Redaktionsbereich', |
|
| 847 | + 'titre_config_contenu_public' => 'Auf der öffentlichen Website', |
|
| 848 | + 'titre_config_fonctions' => 'Website konfigurieren', |
|
| 849 | + 'titre_config_langage' => 'Sprache einstellen', |
|
| 850 | + 'titre_configuration' => 'Website konfigurieren', |
|
| 851 | + 'titre_configurer_preferences' => 'Ihre Einstellungen', |
|
| 852 | + 'titre_configurer_preferences_menus' => 'Konfigurieren Sie Ihre Menüeinstellungen', |
|
| 853 | + 'titre_conflit_edition' => 'Bearbeitungskonflikt', |
|
| 854 | + 'titre_connexion_ldap' => 'Optionen: <b>LDAP-Verbindung</b>', |
|
| 855 | + 'titre_groupe_mots' => 'KATEGORIE:', |
|
| 856 | + 'titre_identite_site' => 'Name der Website', # "Identité du site" war "Identität der Website", jetzt "Name der Website", auch möglich "Websitebezeichnung" o.ä. |
|
| 857 | + 'titre_langue_article' => 'Sprache des Artikels', |
|
| 858 | + 'titre_langue_rubrique' => 'Sprache der Rubrik', |
|
| 859 | + 'titre_langue_trad_article' => 'SPRACHE UND ÜBERSETZUNGEN DES ARTIKELS', |
|
| 860 | + 'titre_les_articles' => 'ARTIKEL', |
|
| 861 | + 'titre_messagerie_agenda' => 'Nachrichten und Kalender', |
|
| 862 | + 'titre_naviguer_dans_le_site' => 'Sitenavigation ...', |
|
| 863 | + 'titre_nouvelle_rubrique' => 'Neue Rubrik', |
|
| 864 | + 'titre_numero_rubrique' => 'RUBRIK NUMMER:', |
|
| 865 | + 'titre_page_articles_edit' => 'Bearbeiten: @titre@', |
|
| 866 | + 'titre_page_articles_page' => 'Artikel', |
|
| 867 | + 'titre_page_articles_tous' => 'Ganze Website', |
|
| 868 | + 'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@', |
|
| 869 | + 'titre_page_config_contenu' => 'Website konfigurieren', |
|
| 870 | + 'titre_page_delete_all' => 'vollständig unwiderruflich löschen', |
|
| 871 | + 'titre_page_recherche' => 'Ergebnisse der Suche nach @recherche@', |
|
| 872 | + 'titre_page_statistiques_referers' => 'Statistik (Referer)', |
|
| 873 | + 'titre_page_upgrade' => 'Aktualisierung von SPIP', |
|
| 874 | + 'titre_preference_menus_favoris' => 'Lieblingsmenüs', |
|
| 875 | + 'titre_publication_articles_post_dates' => 'Veröffentlichung von vordatierten Artikeln', |
|
| 876 | + 'titre_reparation' => 'Reparatur', |
|
| 877 | + 'titre_suivi_petition' => 'Petitionen verwalten', |
|
| 878 | + 'tls_ldap' => 'Transport Layer Security:', |
|
| 879 | + 'trad_article_traduction' => 'Alle Fassungen dieses Artikels:', |
|
| 880 | + 'trad_delier' => 'Nicht mehr mit diesen Übersetzungen verbinden', |
|
| 881 | + 'trad_lier' => 'Dieser Artikel ist eine Übersetzung des Artikels Nummer ', |
|
| 882 | + 'trad_new' => 'Neue Übersetzung beginnen', |
|
| 883 | 883 | |
| 884 | - // U |
|
| 885 | - 'utf8_convert_erreur_orig' => 'Fehler: Der Zeichensatz @charset@ wird nicht unterstützt.', |
|
| 884 | + // U |
|
| 885 | + 'utf8_convert_erreur_orig' => 'Fehler: Der Zeichensatz @charset@ wird nicht unterstützt.', |
|
| 886 | 886 | |
| 887 | - // V |
|
| 888 | - 'version' => 'Version:' |
|
| 887 | + // V |
|
| 888 | + 'version' => 'Version:' |
|
| 889 | 889 | ); |
@@ -19,7 +19,7 @@ discard block |
||
| 19 | 19 | * @package SPIP\Core\Compilateur\References |
| 20 | 20 | **/ |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /** |
@@ -44,14 +44,14 @@ discard block |
||
| 44 | 44 | * - '' si une référence explicite incorrecte est envoyée |
| 45 | 45 | */ |
| 46 | 46 | function index_boucle($p) { |
| 47 | - if (strlen($p->nom_boucle)) { |
|
| 48 | - // retourne l’index explicite demandé s’il existe |
|
| 49 | - if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 50 | - return $p->nom_boucle; |
|
| 51 | - } |
|
| 52 | - return ''; |
|
| 53 | - } |
|
| 54 | - return $p->id_boucle; |
|
| 47 | + if (strlen($p->nom_boucle)) { |
|
| 48 | + // retourne l’index explicite demandé s’il existe |
|
| 49 | + if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 50 | + return $p->nom_boucle; |
|
| 51 | + } |
|
| 52 | + return ''; |
|
| 53 | + } |
|
| 54 | + return $p->id_boucle; |
|
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | |
@@ -74,17 +74,17 @@ discard block |
||
| 74 | 74 | * - '' si une référence explicite incorrecte est envoyée |
| 75 | 75 | */ |
| 76 | 76 | function index_boucle_mere($p) { |
| 77 | - if (strlen($p->nom_boucle)) { |
|
| 78 | - // retourne l’index explicite demandé s’il existe |
|
| 79 | - if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 80 | - return $p->nom_boucle; |
|
| 81 | - } |
|
| 82 | - return ''; |
|
| 83 | - } |
|
| 84 | - if (!empty($p->descr['id_mere'])) { |
|
| 85 | - return $p->descr['id_mere']; |
|
| 86 | - } |
|
| 87 | - return ''; |
|
| 77 | + if (strlen($p->nom_boucle)) { |
|
| 78 | + // retourne l’index explicite demandé s’il existe |
|
| 79 | + if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 80 | + return $p->nom_boucle; |
|
| 81 | + } |
|
| 82 | + return ''; |
|
| 83 | + } |
|
| 84 | + if (!empty($p->descr['id_mere'])) { |
|
| 85 | + return $p->descr['id_mere']; |
|
| 86 | + } |
|
| 87 | + return ''; |
|
| 88 | 88 | } |
| 89 | 89 | |
| 90 | 90 | /** |
@@ -118,74 +118,74 @@ discard block |
||
| 118 | 118 | * Code PHP pour obtenir le champ SQL |
| 119 | 119 | */ |
| 120 | 120 | function index_pile( |
| 121 | - $idb, |
|
| 122 | - $nom_champ, |
|
| 123 | - &$boucles, |
|
| 124 | - $explicite = '', |
|
| 125 | - $defaut = null, |
|
| 126 | - $remonte_pile = true, |
|
| 127 | - $select = true |
|
| 121 | + $idb, |
|
| 122 | + $nom_champ, |
|
| 123 | + &$boucles, |
|
| 124 | + $explicite = '', |
|
| 125 | + $defaut = null, |
|
| 126 | + $remonte_pile = true, |
|
| 127 | + $select = true |
|
| 128 | 128 | ) { |
| 129 | - if (!is_string($defaut)) { |
|
| 130 | - $defaut = '($Pile[0][\'' . strtolower($nom_champ) . '\'] ?? null)'; |
|
| 131 | - } |
|
| 132 | - |
|
| 133 | - $idb_origine = $idb; |
|
| 134 | - $nom_champ_origine = $nom_champ; |
|
| 135 | - |
|
| 136 | - $i = 0; |
|
| 137 | - if (strlen($explicite)) { |
|
| 138 | - // Recherche d'un champ dans un etage superieur |
|
| 139 | - while (($idb !== $explicite) && ($idb !== '')) { |
|
| 140 | - # spip_log("Cherchexpl: $nom_champ '$explicite' '$idb' '$i'"); |
|
| 141 | - $i++; |
|
| 142 | - $idb = $boucles[$idb]->id_parent; |
|
| 143 | - } |
|
| 144 | - } |
|
| 145 | - |
|
| 146 | - # spip_log("Cherche: $nom_champ a partir de '$idb'"); |
|
| 147 | - $nom_champ = strtolower($nom_champ); |
|
| 148 | - $conditionnel = []; |
|
| 149 | - // attention: entre la boucle nommee 0, "" et le tableau vide, |
|
| 150 | - // il y a incoherences qu'il vaut mieux eviter |
|
| 151 | - while (isset($boucles[$idb])) { |
|
| 152 | - $joker = true; |
|
| 153 | - // modifie $joker si tous les champs sont autorisés. |
|
| 154 | - // $t = le select pour le champ, si on l'a trouvé (ou si joker) |
|
| 155 | - // $c = le nom du champ demandé |
|
| 156 | - [$t, $c] = index_tables_en_pile($idb, $nom_champ, $boucles, $joker); |
|
| 157 | - if ($t) { |
|
| 158 | - if ($select and !in_array($t, $boucles[$idb]->select)) { |
|
| 159 | - $boucles[$idb]->select[] = $t; |
|
| 160 | - } |
|
| 161 | - // renseigner la boucle source de ce champ pour les traitements |
|
| 162 | - $boucles[$idb_origine]->index_champ[$nom_champ_origine] = $idb; |
|
| 163 | - $champ = '$Pile[$SP' . ($i ? "-$i" : '') . '][\'' . $c . '\']'; |
|
| 164 | - if (!$joker) { |
|
| 165 | - return index_compose($conditionnel, $champ); |
|
| 166 | - } |
|
| 167 | - |
|
| 168 | - // tant que l'on trouve des tables avec joker, on continue |
|
| 169 | - // avec la boucle parente et on conditionne à l'exécution |
|
| 170 | - // la présence du champ. Si le champ existe à l'exécution |
|
| 171 | - // dans une boucle, il est pris, sinon on le cherche dans le parent... |
|
| 172 | - $conditionnel[] = "isset($champ)?$champ"; |
|
| 173 | - } |
|
| 174 | - |
|
| 175 | - if ($remonte_pile) { |
|
| 176 | - # spip_log("On remonte vers $i"); |
|
| 177 | - // Sinon on remonte d'un cran |
|
| 178 | - $idb = $boucles[$idb]->id_parent; |
|
| 179 | - $i++; |
|
| 180 | - } else { |
|
| 181 | - $idb = null; |
|
| 182 | - } |
|
| 183 | - } |
|
| 184 | - |
|
| 185 | - # spip_log("Pas vu $nom_champ"); |
|
| 186 | - // esperons qu'il y sera |
|
| 187 | - // ou qu'on a fourni une valeur par "defaut" plus pertinent |
|
| 188 | - return index_compose($conditionnel, $defaut); |
|
| 129 | + if (!is_string($defaut)) { |
|
| 130 | + $defaut = '($Pile[0][\'' . strtolower($nom_champ) . '\'] ?? null)'; |
|
| 131 | + } |
|
| 132 | + |
|
| 133 | + $idb_origine = $idb; |
|
| 134 | + $nom_champ_origine = $nom_champ; |
|
| 135 | + |
|
| 136 | + $i = 0; |
|
| 137 | + if (strlen($explicite)) { |
|
| 138 | + // Recherche d'un champ dans un etage superieur |
|
| 139 | + while (($idb !== $explicite) && ($idb !== '')) { |
|
| 140 | + # spip_log("Cherchexpl: $nom_champ '$explicite' '$idb' '$i'"); |
|
| 141 | + $i++; |
|
| 142 | + $idb = $boucles[$idb]->id_parent; |
|
| 143 | + } |
|
| 144 | + } |
|
| 145 | + |
|
| 146 | + # spip_log("Cherche: $nom_champ a partir de '$idb'"); |
|
| 147 | + $nom_champ = strtolower($nom_champ); |
|
| 148 | + $conditionnel = []; |
|
| 149 | + // attention: entre la boucle nommee 0, "" et le tableau vide, |
|
| 150 | + // il y a incoherences qu'il vaut mieux eviter |
|
| 151 | + while (isset($boucles[$idb])) { |
|
| 152 | + $joker = true; |
|
| 153 | + // modifie $joker si tous les champs sont autorisés. |
|
| 154 | + // $t = le select pour le champ, si on l'a trouvé (ou si joker) |
|
| 155 | + // $c = le nom du champ demandé |
|
| 156 | + [$t, $c] = index_tables_en_pile($idb, $nom_champ, $boucles, $joker); |
|
| 157 | + if ($t) { |
|
| 158 | + if ($select and !in_array($t, $boucles[$idb]->select)) { |
|
| 159 | + $boucles[$idb]->select[] = $t; |
|
| 160 | + } |
|
| 161 | + // renseigner la boucle source de ce champ pour les traitements |
|
| 162 | + $boucles[$idb_origine]->index_champ[$nom_champ_origine] = $idb; |
|
| 163 | + $champ = '$Pile[$SP' . ($i ? "-$i" : '') . '][\'' . $c . '\']'; |
|
| 164 | + if (!$joker) { |
|
| 165 | + return index_compose($conditionnel, $champ); |
|
| 166 | + } |
|
| 167 | + |
|
| 168 | + // tant que l'on trouve des tables avec joker, on continue |
|
| 169 | + // avec la boucle parente et on conditionne à l'exécution |
|
| 170 | + // la présence du champ. Si le champ existe à l'exécution |
|
| 171 | + // dans une boucle, il est pris, sinon on le cherche dans le parent... |
|
| 172 | + $conditionnel[] = "isset($champ)?$champ"; |
|
| 173 | + } |
|
| 174 | + |
|
| 175 | + if ($remonte_pile) { |
|
| 176 | + # spip_log("On remonte vers $i"); |
|
| 177 | + // Sinon on remonte d'un cran |
|
| 178 | + $idb = $boucles[$idb]->id_parent; |
|
| 179 | + $i++; |
|
| 180 | + } else { |
|
| 181 | + $idb = null; |
|
| 182 | + } |
|
| 183 | + } |
|
| 184 | + |
|
| 185 | + # spip_log("Pas vu $nom_champ"); |
|
| 186 | + // esperons qu'il y sera |
|
| 187 | + // ou qu'on a fourni une valeur par "defaut" plus pertinent |
|
| 188 | + return index_compose($conditionnel, $defaut); |
|
| 189 | 189 | } |
| 190 | 190 | |
| 191 | 191 | /** |
@@ -199,12 +199,12 @@ discard block |
||
| 199 | 199 | * @return string Code PHP complet de recherche d'un champ |
| 200 | 200 | */ |
| 201 | 201 | function index_compose($conditionnel, $defaut) { |
| 202 | - while ($c = array_pop($conditionnel)) { |
|
| 203 | - // si on passe defaut = '', ne pas générer d'erreur de compilation. |
|
| 204 | - $defaut = "($c:(" . ($defaut ?: "''") . '))'; |
|
| 205 | - } |
|
| 202 | + while ($c = array_pop($conditionnel)) { |
|
| 203 | + // si on passe defaut = '', ne pas générer d'erreur de compilation. |
|
| 204 | + $defaut = "($c:(" . ($defaut ?: "''") . '))'; |
|
| 205 | + } |
|
| 206 | 206 | |
| 207 | - return $defaut; |
|
| 207 | + return $defaut; |
|
| 208 | 208 | } |
| 209 | 209 | |
| 210 | 210 | /** |
@@ -240,97 +240,97 @@ discard block |
||
| 240 | 240 | **/ |
| 241 | 241 | function index_tables_en_pile($idb, $nom_champ, &$boucles, &$joker) { |
| 242 | 242 | |
| 243 | - $r = $boucles[$idb]->type_requete; |
|
| 244 | - // boucle recursive, c'est foutu... |
|
| 245 | - if ($r == TYPE_RECURSIF) { |
|
| 246 | - return []; |
|
| 247 | - } |
|
| 248 | - if (!$r) { |
|
| 249 | - $joker = false; // indiquer a l'appelant |
|
| 250 | - # continuer pour chercher l'erreur suivante |
|
| 251 | - return ["'#" . $r . ':' . $nom_champ . "'", '']; |
|
| 252 | - } |
|
| 253 | - |
|
| 254 | - $desc = $boucles[$idb]->show; |
|
| 255 | - // le nom du champ est il une exception de la table ? un alias ? |
|
| 256 | - $excep = $GLOBALS['exceptions_des_tables'][$r] ?? ''; |
|
| 257 | - if ($excep) { |
|
| 258 | - $excep = $excep[$nom_champ] ?? ''; |
|
| 259 | - } |
|
| 260 | - |
|
| 261 | - // il y a un alias connu pour ce champ |
|
| 262 | - if ($excep) { |
|
| 263 | - $joker = false; // indiquer a l'appelant |
|
| 264 | - return index_exception($boucles[$idb], $desc, $nom_champ, $excep); |
|
| 265 | - } |
|
| 266 | - |
|
| 267 | - // le champ existe dans la table, on le prend. |
|
| 268 | - if (isset($desc['field'][$nom_champ])) { |
|
| 269 | - $t = $boucles[$idb]->id_table ?? ''; |
|
| 270 | - $joker = false; // indiquer a l'appelant |
|
| 271 | - // note: dans certains cas ('valeur' d’une boucle DATA, sans id_table), retourne ['.valeur', 'valeur'] … |
|
| 272 | - return ["$t.$nom_champ", $nom_champ]; |
|
| 273 | - } |
|
| 274 | - |
|
| 275 | - // Tous les champs sont-ils acceptés ? |
|
| 276 | - // Si oui, on retourne le champ, et on lève le flag joker |
|
| 277 | - // C'est le cas des itérateurs DATA qui acceptent tout |
|
| 278 | - // et testent la présence du champ à l'exécution et non à la compilation |
|
| 279 | - // car ils ne connaissent pas ici leurs contenus. |
|
| 280 | - if ( |
|
| 281 | - /*$joker AND */ |
|
| 282 | - isset($desc['field']['*']) |
|
| 283 | - ) { |
|
| 284 | - $joker = true; // indiquer a l'appelant |
|
| 285 | - return [$nom_champ, $nom_champ]; |
|
| 286 | - } |
|
| 287 | - |
|
| 288 | - $joker = false; // indiquer a l'appelant |
|
| 289 | - |
|
| 290 | - // la table de jointure est explicitement indiquée (rubrique.titre) |
|
| 291 | - if (preg_match('/^(.*)\.(.*)$/', $nom_champ, $r)) { |
|
| 292 | - [, $_table, $_nom_champ] = $r; |
|
| 293 | - if ($cle = trouver_jointure_champ($_nom_champ, $boucles[$idb], [$_table])) { |
|
| 294 | - $_alias = $cle . '_' . $_nom_champ; |
|
| 295 | - return index_exception( |
|
| 296 | - $boucles[$idb], |
|
| 297 | - $desc, |
|
| 298 | - $_alias, |
|
| 299 | - [$_table, $_nom_champ] |
|
| 300 | - ); |
|
| 301 | - } |
|
| 302 | - return ['', '']; |
|
| 303 | - } |
|
| 304 | - |
|
| 305 | - // pas d'alias, pas de champ, pas de joker... |
|
| 306 | - // tenter via une jointure... |
|
| 307 | - |
|
| 308 | - // regarder si le champ est deja dans une jointure existante |
|
| 309 | - // sinon, si il y a des joitures explicites, la construire |
|
| 310 | - if (!$t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb])) { |
|
| 311 | - if ($boucles[$idb]->jointures_explicites) { |
|
| 312 | - // [todo] Ne pas lancer que lorsque il y a des jointures explicites !!!! |
|
| 313 | - // fonctionnel, il suffit d'utiliser $boucles[$idb]->jointures au lieu de jointures_explicites |
|
| 314 | - // mais est-ce ce qu'on veut ? |
|
| 315 | - $jointures = preg_split('/\s+/', $boucles[$idb]->jointures_explicites); |
|
| 316 | - if ($cle = trouver_jointure_champ($nom_champ, $boucles[$idb], $jointures)) { |
|
| 317 | - $t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb]); |
|
| 318 | - } |
|
| 319 | - } |
|
| 320 | - } |
|
| 321 | - |
|
| 322 | - if ($t) { |
|
| 323 | - // si on a trouvé une jointure possible, on fait comme |
|
| 324 | - // si c'était une exception pour le champ demandé |
|
| 325 | - return index_exception( |
|
| 326 | - $boucles[$idb], |
|
| 327 | - $desc, |
|
| 328 | - $nom_champ, |
|
| 329 | - [$t[1]['id_table'], reset($t[2])] |
|
| 330 | - ); |
|
| 331 | - } |
|
| 332 | - |
|
| 333 | - return ['', '']; |
|
| 243 | + $r = $boucles[$idb]->type_requete; |
|
| 244 | + // boucle recursive, c'est foutu... |
|
| 245 | + if ($r == TYPE_RECURSIF) { |
|
| 246 | + return []; |
|
| 247 | + } |
|
| 248 | + if (!$r) { |
|
| 249 | + $joker = false; // indiquer a l'appelant |
|
| 250 | + # continuer pour chercher l'erreur suivante |
|
| 251 | + return ["'#" . $r . ':' . $nom_champ . "'", '']; |
|
| 252 | + } |
|
| 253 | + |
|
| 254 | + $desc = $boucles[$idb]->show; |
|
| 255 | + // le nom du champ est il une exception de la table ? un alias ? |
|
| 256 | + $excep = $GLOBALS['exceptions_des_tables'][$r] ?? ''; |
|
| 257 | + if ($excep) { |
|
| 258 | + $excep = $excep[$nom_champ] ?? ''; |
|
| 259 | + } |
|
| 260 | + |
|
| 261 | + // il y a un alias connu pour ce champ |
|
| 262 | + if ($excep) { |
|
| 263 | + $joker = false; // indiquer a l'appelant |
|
| 264 | + return index_exception($boucles[$idb], $desc, $nom_champ, $excep); |
|
| 265 | + } |
|
| 266 | + |
|
| 267 | + // le champ existe dans la table, on le prend. |
|
| 268 | + if (isset($desc['field'][$nom_champ])) { |
|
| 269 | + $t = $boucles[$idb]->id_table ?? ''; |
|
| 270 | + $joker = false; // indiquer a l'appelant |
|
| 271 | + // note: dans certains cas ('valeur' d’une boucle DATA, sans id_table), retourne ['.valeur', 'valeur'] … |
|
| 272 | + return ["$t.$nom_champ", $nom_champ]; |
|
| 273 | + } |
|
| 274 | + |
|
| 275 | + // Tous les champs sont-ils acceptés ? |
|
| 276 | + // Si oui, on retourne le champ, et on lève le flag joker |
|
| 277 | + // C'est le cas des itérateurs DATA qui acceptent tout |
|
| 278 | + // et testent la présence du champ à l'exécution et non à la compilation |
|
| 279 | + // car ils ne connaissent pas ici leurs contenus. |
|
| 280 | + if ( |
|
| 281 | + /*$joker AND */ |
|
| 282 | + isset($desc['field']['*']) |
|
| 283 | + ) { |
|
| 284 | + $joker = true; // indiquer a l'appelant |
|
| 285 | + return [$nom_champ, $nom_champ]; |
|
| 286 | + } |
|
| 287 | + |
|
| 288 | + $joker = false; // indiquer a l'appelant |
|
| 289 | + |
|
| 290 | + // la table de jointure est explicitement indiquée (rubrique.titre) |
|
| 291 | + if (preg_match('/^(.*)\.(.*)$/', $nom_champ, $r)) { |
|
| 292 | + [, $_table, $_nom_champ] = $r; |
|
| 293 | + if ($cle = trouver_jointure_champ($_nom_champ, $boucles[$idb], [$_table])) { |
|
| 294 | + $_alias = $cle . '_' . $_nom_champ; |
|
| 295 | + return index_exception( |
|
| 296 | + $boucles[$idb], |
|
| 297 | + $desc, |
|
| 298 | + $_alias, |
|
| 299 | + [$_table, $_nom_champ] |
|
| 300 | + ); |
|
| 301 | + } |
|
| 302 | + return ['', '']; |
|
| 303 | + } |
|
| 304 | + |
|
| 305 | + // pas d'alias, pas de champ, pas de joker... |
|
| 306 | + // tenter via une jointure... |
|
| 307 | + |
|
| 308 | + // regarder si le champ est deja dans une jointure existante |
|
| 309 | + // sinon, si il y a des joitures explicites, la construire |
|
| 310 | + if (!$t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb])) { |
|
| 311 | + if ($boucles[$idb]->jointures_explicites) { |
|
| 312 | + // [todo] Ne pas lancer que lorsque il y a des jointures explicites !!!! |
|
| 313 | + // fonctionnel, il suffit d'utiliser $boucles[$idb]->jointures au lieu de jointures_explicites |
|
| 314 | + // mais est-ce ce qu'on veut ? |
|
| 315 | + $jointures = preg_split('/\s+/', $boucles[$idb]->jointures_explicites); |
|
| 316 | + if ($cle = trouver_jointure_champ($nom_champ, $boucles[$idb], $jointures)) { |
|
| 317 | + $t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb]); |
|
| 318 | + } |
|
| 319 | + } |
|
| 320 | + } |
|
| 321 | + |
|
| 322 | + if ($t) { |
|
| 323 | + // si on a trouvé une jointure possible, on fait comme |
|
| 324 | + // si c'était une exception pour le champ demandé |
|
| 325 | + return index_exception( |
|
| 326 | + $boucles[$idb], |
|
| 327 | + $desc, |
|
| 328 | + $nom_champ, |
|
| 329 | + [$t[1]['id_table'], reset($t[2])] |
|
| 330 | + ); |
|
| 331 | + } |
|
| 332 | + |
|
| 333 | + return ['', '']; |
|
| 334 | 334 | } |
| 335 | 335 | |
| 336 | 336 | |
@@ -358,52 +358,52 @@ discard block |
||
| 358 | 358 | * est une expression pour le SELECT de la boucle du style "mots.titre AS titre_mot" |
| 359 | 359 | **/ |
| 360 | 360 | function index_exception(&$boucle, $desc, $nom_champ, $excep) { |
| 361 | - static $trouver_table; |
|
| 362 | - if (!$trouver_table) { |
|
| 363 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 364 | - } |
|
| 365 | - |
|
| 366 | - if (is_array($excep)) { |
|
| 367 | - // permettre aux plugins de gerer eux meme des jointures derogatoire ingerables |
|
| 368 | - $t = null; |
|
| 369 | - if (count($excep) == 3) { |
|
| 370 | - $index_exception_derogatoire = array_pop($excep); |
|
| 371 | - $t = $index_exception_derogatoire($boucle, $desc, $nom_champ, $excep); |
|
| 372 | - } |
|
| 373 | - if ($t == null) { |
|
| 374 | - [$e, $x] = $excep; #PHP4 affecte de gauche a droite |
|
| 375 | - $excep = $x; #PHP5 de droite a gauche ! |
|
| 376 | - $j = $trouver_table($e, $boucle->sql_serveur); |
|
| 377 | - if (!$j) { |
|
| 378 | - return ['', '']; |
|
| 379 | - } |
|
| 380 | - $e = $j['table']; |
|
| 381 | - if (!$t = array_search($e, $boucle->from)) { |
|
| 382 | - $k = $j['key']['PRIMARY KEY']; |
|
| 383 | - if (strpos($k, ',')) { |
|
| 384 | - $l = (preg_split('/\s*,\s*/', $k)); |
|
| 385 | - $k = $desc['key']['PRIMARY KEY']; |
|
| 386 | - if (!in_array($k, $l)) { |
|
| 387 | - spip_log("jointure impossible $e " . join(',', $l)); |
|
| 388 | - |
|
| 389 | - return ['', '']; |
|
| 390 | - } |
|
| 391 | - } |
|
| 392 | - $k = [$boucle->id_table, [$e], $k]; |
|
| 393 | - fabrique_jointures($boucle, [$k]); |
|
| 394 | - $t = array_search($e, $boucle->from); |
|
| 395 | - } |
|
| 396 | - } |
|
| 397 | - } else { |
|
| 398 | - $t = $boucle->id_table; |
|
| 399 | - } |
|
| 400 | - // demander a SQL de gerer le synonyme |
|
| 401 | - // ca permet que excep soit dynamique (Cedric, 2/3/06) |
|
| 402 | - if ($excep != $nom_champ) { |
|
| 403 | - $excep .= ' AS ' . $nom_champ; |
|
| 404 | - } |
|
| 405 | - |
|
| 406 | - return ["$t.$excep", $nom_champ]; |
|
| 361 | + static $trouver_table; |
|
| 362 | + if (!$trouver_table) { |
|
| 363 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 364 | + } |
|
| 365 | + |
|
| 366 | + if (is_array($excep)) { |
|
| 367 | + // permettre aux plugins de gerer eux meme des jointures derogatoire ingerables |
|
| 368 | + $t = null; |
|
| 369 | + if (count($excep) == 3) { |
|
| 370 | + $index_exception_derogatoire = array_pop($excep); |
|
| 371 | + $t = $index_exception_derogatoire($boucle, $desc, $nom_champ, $excep); |
|
| 372 | + } |
|
| 373 | + if ($t == null) { |
|
| 374 | + [$e, $x] = $excep; #PHP4 affecte de gauche a droite |
|
| 375 | + $excep = $x; #PHP5 de droite a gauche ! |
|
| 376 | + $j = $trouver_table($e, $boucle->sql_serveur); |
|
| 377 | + if (!$j) { |
|
| 378 | + return ['', '']; |
|
| 379 | + } |
|
| 380 | + $e = $j['table']; |
|
| 381 | + if (!$t = array_search($e, $boucle->from)) { |
|
| 382 | + $k = $j['key']['PRIMARY KEY']; |
|
| 383 | + if (strpos($k, ',')) { |
|
| 384 | + $l = (preg_split('/\s*,\s*/', $k)); |
|
| 385 | + $k = $desc['key']['PRIMARY KEY']; |
|
| 386 | + if (!in_array($k, $l)) { |
|
| 387 | + spip_log("jointure impossible $e " . join(',', $l)); |
|
| 388 | + |
|
| 389 | + return ['', '']; |
|
| 390 | + } |
|
| 391 | + } |
|
| 392 | + $k = [$boucle->id_table, [$e], $k]; |
|
| 393 | + fabrique_jointures($boucle, [$k]); |
|
| 394 | + $t = array_search($e, $boucle->from); |
|
| 395 | + } |
|
| 396 | + } |
|
| 397 | + } else { |
|
| 398 | + $t = $boucle->id_table; |
|
| 399 | + } |
|
| 400 | + // demander a SQL de gerer le synonyme |
|
| 401 | + // ca permet que excep soit dynamique (Cedric, 2/3/06) |
|
| 402 | + if ($excep != $nom_champ) { |
|
| 403 | + $excep .= ' AS ' . $nom_champ; |
|
| 404 | + } |
|
| 405 | + |
|
| 406 | + return ["$t.$excep", $nom_champ]; |
|
| 407 | 407 | } |
| 408 | 408 | |
| 409 | 409 | /** |
@@ -428,7 +428,7 @@ discard block |
||
| 428 | 428 | * Code PHP pour retrouver le champ |
| 429 | 429 | */ |
| 430 | 430 | function champ_sql($champ, $p, $defaut = null, $remonte_pile = true) { |
| 431 | - return index_pile($p->id_boucle, $champ, $p->boucles, $p->nom_boucle, $defaut, $remonte_pile); |
|
| 431 | + return index_pile($p->id_boucle, $champ, $p->boucles, $p->nom_boucle, $defaut, $remonte_pile); |
|
| 432 | 432 | } |
| 433 | 433 | |
| 434 | 434 | |
@@ -448,9 +448,9 @@ discard block |
||
| 448 | 448 | * Code PHP pour d'exécution de la balise et de ses filtres |
| 449 | 449 | **/ |
| 450 | 450 | function calculer_champ($p) { |
| 451 | - $p = calculer_balise($p->nom_champ, $p); |
|
| 451 | + $p = calculer_balise($p->nom_champ, $p); |
|
| 452 | 452 | |
| 453 | - return applique_filtres($p); |
|
| 453 | + return applique_filtres($p); |
|
| 454 | 454 | } |
| 455 | 455 | |
| 456 | 456 | |
@@ -487,26 +487,26 @@ discard block |
||
| 487 | 487 | **/ |
| 488 | 488 | function calculer_balise(string $nom, Champ $p): Champ { |
| 489 | 489 | |
| 490 | - // S'agit-t-il d'une balise_XXXX[_dist]() ? |
|
| 491 | - if ($f = charger_fonction($nom, 'balise', true)) { |
|
| 492 | - $p->balise_calculee = true; |
|
| 493 | - $res = $f($p); |
|
| 494 | - if ($res !== null and is_object($res)) { |
|
| 495 | - return $res; |
|
| 496 | - } |
|
| 497 | - } |
|
| 498 | - |
|
| 499 | - // Certaines des balises comportant un _ sont generiques |
|
| 500 | - if ($balise_generique = chercher_balise_generique($nom)) { |
|
| 501 | - $res = $balise_generique['fonction_generique']($p); |
|
| 502 | - if ($res !== null and is_object($res)) { |
|
| 503 | - return $res; |
|
| 504 | - } |
|
| 505 | - } |
|
| 506 | - |
|
| 507 | - $f = charger_fonction('DEFAUT', 'calculer_balise'); |
|
| 508 | - |
|
| 509 | - return $f($nom, $p); |
|
| 490 | + // S'agit-t-il d'une balise_XXXX[_dist]() ? |
|
| 491 | + if ($f = charger_fonction($nom, 'balise', true)) { |
|
| 492 | + $p->balise_calculee = true; |
|
| 493 | + $res = $f($p); |
|
| 494 | + if ($res !== null and is_object($res)) { |
|
| 495 | + return $res; |
|
| 496 | + } |
|
| 497 | + } |
|
| 498 | + |
|
| 499 | + // Certaines des balises comportant un _ sont generiques |
|
| 500 | + if ($balise_generique = chercher_balise_generique($nom)) { |
|
| 501 | + $res = $balise_generique['fonction_generique']($p); |
|
| 502 | + if ($res !== null and is_object($res)) { |
|
| 503 | + return $res; |
|
| 504 | + } |
|
| 505 | + } |
|
| 506 | + |
|
| 507 | + $f = charger_fonction('DEFAUT', 'calculer_balise'); |
|
| 508 | + |
|
| 509 | + return $f($nom, $p); |
|
| 510 | 510 | } |
| 511 | 511 | |
| 512 | 512 | |
@@ -534,37 +534,37 @@ discard block |
||
| 534 | 534 | **/ |
| 535 | 535 | function calculer_balise_DEFAUT_dist($nom, $p) { |
| 536 | 536 | |
| 537 | - // ca pourrait etre un champ SQL homonyme, |
|
| 538 | - $p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle); |
|
| 539 | - |
|
| 540 | - // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 541 | - // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 542 | - if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 543 | - $code = addslashes($p->fonctions[0][1]); |
|
| 544 | - $p->code .= " . '$code'"; |
|
| 545 | - } |
|
| 546 | - |
|
| 547 | - // ne pas passer le filtre securite sur les id_xxx |
|
| 548 | - if (strpos($nom, 'ID_') === 0) { |
|
| 549 | - $p->interdire_scripts = false; |
|
| 550 | - } |
|
| 551 | - |
|
| 552 | - // Compatibilite ascendante avec les couleurs html (#FEFEFE) : |
|
| 553 | - // SI le champ SQL n'est pas trouve |
|
| 554 | - // ET si la balise a une forme de couleur |
|
| 555 | - // ET s'il n'y a ni filtre ni etoile |
|
| 556 | - // ALORS retourner la couleur. |
|
| 557 | - // Ca permet si l'on veut vraiment de recuperer [(#ACCEDE*)] |
|
| 558 | - if ( |
|
| 559 | - preg_match('/^[A-F]{1,6}$/i', $nom) |
|
| 560 | - and !$p->etoile |
|
| 561 | - and !$p->fonctions |
|
| 562 | - ) { |
|
| 563 | - $p->code = "'#$nom'"; |
|
| 564 | - $p->interdire_scripts = false; |
|
| 565 | - } |
|
| 566 | - |
|
| 567 | - return $p; |
|
| 537 | + // ca pourrait etre un champ SQL homonyme, |
|
| 538 | + $p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle); |
|
| 539 | + |
|
| 540 | + // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 541 | + // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 542 | + if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 543 | + $code = addslashes($p->fonctions[0][1]); |
|
| 544 | + $p->code .= " . '$code'"; |
|
| 545 | + } |
|
| 546 | + |
|
| 547 | + // ne pas passer le filtre securite sur les id_xxx |
|
| 548 | + if (strpos($nom, 'ID_') === 0) { |
|
| 549 | + $p->interdire_scripts = false; |
|
| 550 | + } |
|
| 551 | + |
|
| 552 | + // Compatibilite ascendante avec les couleurs html (#FEFEFE) : |
|
| 553 | + // SI le champ SQL n'est pas trouve |
|
| 554 | + // ET si la balise a une forme de couleur |
|
| 555 | + // ET s'il n'y a ni filtre ni etoile |
|
| 556 | + // ALORS retourner la couleur. |
|
| 557 | + // Ca permet si l'on veut vraiment de recuperer [(#ACCEDE*)] |
|
| 558 | + if ( |
|
| 559 | + preg_match('/^[A-F]{1,6}$/i', $nom) |
|
| 560 | + and !$p->etoile |
|
| 561 | + and !$p->fonctions |
|
| 562 | + ) { |
|
| 563 | + $p->code = "'#$nom'"; |
|
| 564 | + $p->interdire_scripts = false; |
|
| 565 | + } |
|
| 566 | + |
|
| 567 | + return $p; |
|
| 568 | 568 | } |
| 569 | 569 | |
| 570 | 570 | |
@@ -613,53 +613,53 @@ discard block |
||
| 613 | 613 | **/ |
| 614 | 614 | function calculer_balise_dynamique($p, $nom, $l, $supp = []) { |
| 615 | 615 | |
| 616 | - if (!balise_distante_interdite($p)) { |
|
| 617 | - $p->code = "''"; |
|
| 618 | - |
|
| 619 | - return $p; |
|
| 620 | - } |
|
| 621 | - // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 622 | - // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 623 | - if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 624 | - $p->fonctions = []; |
|
| 625 | - } |
|
| 626 | - |
|
| 627 | - if ($p->param and ($c = $p->param[0])) { |
|
| 628 | - // liste d'arguments commence toujours par la chaine vide |
|
| 629 | - array_shift($c); |
|
| 630 | - // construire la liste d'arguments comme pour un filtre |
|
| 631 | - $param = compose_filtres_args($p, $c, ','); |
|
| 632 | - } else { |
|
| 633 | - $param = ''; |
|
| 634 | - } |
|
| 635 | - $collecte = collecter_balise_dynamique($l, $p, $nom); |
|
| 636 | - |
|
| 637 | - $dans_un_modele = false; |
|
| 638 | - if (!empty($p->descr['sourcefile']) |
|
| 639 | - and $f = $p->descr['sourcefile'] |
|
| 640 | - and basename(dirname($f)) === 'modeles' |
|
| 641 | - ) { |
|
| 642 | - $dans_un_modele = true; |
|
| 643 | - } |
|
| 644 | - |
|
| 645 | - // un modele est toujours inséré en texte dans son contenant |
|
| 646 | - // donc si on est dans le public avec un cache on va perdre le dynamisme |
|
| 647 | - // et on risque de mettre en cache les valeurs pre-remplies du formulaire |
|
| 648 | - // on passe donc par une fonction proxy qui si besoin va collecter les arguments |
|
| 649 | - // et injecter le PHP qui va appeler la fonction pour generer le formulaire au lieu de directement la fonction |
|
| 650 | - // (dans l'espace prive on a pas de cache, donc pas de soucis (et un leak serait moins grave)) |
|
| 651 | - $p->code = sprintf( |
|
| 652 | - $dans_un_modele ? CODE_EXECUTER_BALISE_MODELE : CODE_EXECUTER_BALISE, |
|
| 653 | - $nom, |
|
| 654 | - join(',', $collecte), |
|
| 655 | - ($collecte ? $param : substr($param, 1)), # virer la virgule |
|
| 656 | - memoriser_contexte_compil($p), |
|
| 657 | - (!$supp ? '' : (', ' . join(',', $supp))) |
|
| 658 | - ); |
|
| 659 | - |
|
| 660 | - $p->interdire_scripts = false; |
|
| 661 | - |
|
| 662 | - return $p; |
|
| 616 | + if (!balise_distante_interdite($p)) { |
|
| 617 | + $p->code = "''"; |
|
| 618 | + |
|
| 619 | + return $p; |
|
| 620 | + } |
|
| 621 | + // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 622 | + // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 623 | + if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 624 | + $p->fonctions = []; |
|
| 625 | + } |
|
| 626 | + |
|
| 627 | + if ($p->param and ($c = $p->param[0])) { |
|
| 628 | + // liste d'arguments commence toujours par la chaine vide |
|
| 629 | + array_shift($c); |
|
| 630 | + // construire la liste d'arguments comme pour un filtre |
|
| 631 | + $param = compose_filtres_args($p, $c, ','); |
|
| 632 | + } else { |
|
| 633 | + $param = ''; |
|
| 634 | + } |
|
| 635 | + $collecte = collecter_balise_dynamique($l, $p, $nom); |
|
| 636 | + |
|
| 637 | + $dans_un_modele = false; |
|
| 638 | + if (!empty($p->descr['sourcefile']) |
|
| 639 | + and $f = $p->descr['sourcefile'] |
|
| 640 | + and basename(dirname($f)) === 'modeles' |
|
| 641 | + ) { |
|
| 642 | + $dans_un_modele = true; |
|
| 643 | + } |
|
| 644 | + |
|
| 645 | + // un modele est toujours inséré en texte dans son contenant |
|
| 646 | + // donc si on est dans le public avec un cache on va perdre le dynamisme |
|
| 647 | + // et on risque de mettre en cache les valeurs pre-remplies du formulaire |
|
| 648 | + // on passe donc par une fonction proxy qui si besoin va collecter les arguments |
|
| 649 | + // et injecter le PHP qui va appeler la fonction pour generer le formulaire au lieu de directement la fonction |
|
| 650 | + // (dans l'espace prive on a pas de cache, donc pas de soucis (et un leak serait moins grave)) |
|
| 651 | + $p->code = sprintf( |
|
| 652 | + $dans_un_modele ? CODE_EXECUTER_BALISE_MODELE : CODE_EXECUTER_BALISE, |
|
| 653 | + $nom, |
|
| 654 | + join(',', $collecte), |
|
| 655 | + ($collecte ? $param : substr($param, 1)), # virer la virgule |
|
| 656 | + memoriser_contexte_compil($p), |
|
| 657 | + (!$supp ? '' : (', ' . join(',', $supp))) |
|
| 658 | + ); |
|
| 659 | + |
|
| 660 | + $p->interdire_scripts = false; |
|
| 661 | + |
|
| 662 | + return $p; |
|
| 663 | 663 | } |
| 664 | 664 | |
| 665 | 665 | |
@@ -689,17 +689,17 @@ discard block |
||
| 689 | 689 | * Liste des codes PHP d'éxecution des balises collectées |
| 690 | 690 | **/ |
| 691 | 691 | function collecter_balise_dynamique(array $l, Champ &$p, string $nom): array { |
| 692 | - $args = []; |
|
| 693 | - foreach ($l as $c) { |
|
| 694 | - if ($c === null) { |
|
| 695 | - $args[] = 'null'; |
|
| 696 | - } else { |
|
| 697 | - $x = calculer_balise($c, $p); |
|
| 698 | - $args[] = $x->code; |
|
| 699 | - } |
|
| 700 | - } |
|
| 701 | - |
|
| 702 | - return $args; |
|
| 692 | + $args = []; |
|
| 693 | + foreach ($l as $c) { |
|
| 694 | + if ($c === null) { |
|
| 695 | + $args[] = 'null'; |
|
| 696 | + } else { |
|
| 697 | + $x = calculer_balise($c, $p); |
|
| 698 | + $args[] = $x->code; |
|
| 699 | + } |
|
| 700 | + } |
|
| 701 | + |
|
| 702 | + return $args; |
|
| 703 | 703 | } |
| 704 | 704 | |
| 705 | 705 | |
@@ -714,22 +714,22 @@ discard block |
||
| 714 | 714 | * Nom de la connexion |
| 715 | 715 | **/ |
| 716 | 716 | function trouver_nom_serveur_distant($p) { |
| 717 | - $nom = $p->id_boucle; |
|
| 718 | - if ( |
|
| 719 | - $nom |
|
| 720 | - and isset($p->boucles[$nom]) |
|
| 721 | - ) { |
|
| 722 | - $s = $p->boucles[$nom]->sql_serveur; |
|
| 723 | - if ( |
|
| 724 | - strlen($s) |
|
| 725 | - and strlen($serveur = strtolower($s)) |
|
| 726 | - and !in_array($serveur, $GLOBALS['exception_des_connect']) |
|
| 727 | - ) { |
|
| 728 | - return $serveur; |
|
| 729 | - } |
|
| 730 | - } |
|
| 731 | - |
|
| 732 | - return ''; |
|
| 717 | + $nom = $p->id_boucle; |
|
| 718 | + if ( |
|
| 719 | + $nom |
|
| 720 | + and isset($p->boucles[$nom]) |
|
| 721 | + ) { |
|
| 722 | + $s = $p->boucles[$nom]->sql_serveur; |
|
| 723 | + if ( |
|
| 724 | + strlen($s) |
|
| 725 | + and strlen($serveur = strtolower($s)) |
|
| 726 | + and !in_array($serveur, $GLOBALS['exception_des_connect']) |
|
| 727 | + ) { |
|
| 728 | + return $serveur; |
|
| 729 | + } |
|
| 730 | + } |
|
| 731 | + |
|
| 732 | + return ''; |
|
| 733 | 733 | } |
| 734 | 734 | |
| 735 | 735 | |
@@ -753,15 +753,15 @@ discard block |
||
| 753 | 753 | * - false : La balise est interdite car le serveur est distant |
| 754 | 754 | **/ |
| 755 | 755 | function balise_distante_interdite($p) { |
| 756 | - $nom = $p->id_boucle; |
|
| 756 | + $nom = $p->id_boucle; |
|
| 757 | 757 | |
| 758 | - if ($nom and trouver_nom_serveur_distant($p)) { |
|
| 759 | - spip_log($nom . ':' . $p->nom_champ . ' ' . _T('zbug_distant_interdit')); |
|
| 758 | + if ($nom and trouver_nom_serveur_distant($p)) { |
|
| 759 | + spip_log($nom . ':' . $p->nom_champ . ' ' . _T('zbug_distant_interdit')); |
|
| 760 | 760 | |
| 761 | - return false; |
|
| 762 | - } |
|
| 761 | + return false; |
|
| 762 | + } |
|
| 763 | 763 | |
| 764 | - return true; |
|
| 764 | + return true; |
|
| 765 | 765 | } |
| 766 | 766 | |
| 767 | 767 | |
@@ -771,84 +771,84 @@ discard block |
||
| 771 | 771 | // |
| 772 | 772 | function champs_traitements($p) { |
| 773 | 773 | |
| 774 | - if (isset($GLOBALS['table_des_traitements'][$p->nom_champ])) { |
|
| 775 | - $ps = $GLOBALS['table_des_traitements'][$p->nom_champ]; |
|
| 776 | - } else { |
|
| 777 | - // quand on utilise un traitement catch-all * |
|
| 778 | - // celui-ci ne s'applique pas sur les balises calculees qui peuvent gerer |
|
| 779 | - // leur propre securite |
|
| 780 | - if (!$p->balise_calculee) { |
|
| 781 | - $ps = $GLOBALS['table_des_traitements']['*']; |
|
| 782 | - } else { |
|
| 783 | - $ps = false; |
|
| 784 | - } |
|
| 785 | - } |
|
| 786 | - |
|
| 787 | - if (is_array($ps)) { |
|
| 788 | - // Recuperer le type de boucle (articles, DATA) et la table SQL sur laquelle elle porte |
|
| 789 | - $idb = index_boucle($p); |
|
| 790 | - // si le champ a ete trouve dans une boucle parente sa source est renseignee ici |
|
| 791 | - if (!empty($p->boucles[$idb]->index_champ[$p->nom_champ])) { |
|
| 792 | - $idb = $p->boucles[$idb]->index_champ[$p->nom_champ]; |
|
| 793 | - } |
|
| 794 | - |
|
| 795 | - // mais on peut aussi etre hors boucle. Se mefier. |
|
| 796 | - $type_requete = $p->boucles[$idb]->type_requete ?? false; |
|
| 797 | - $table_sql = $p->boucles[$idb]->show['table_sql'] ?? false; |
|
| 798 | - |
|
| 799 | - // bien prendre en compte les alias de boucles (hierarchie => rubrique, syndication => syncdic, etc.) |
|
| 800 | - if ($type_requete and isset($GLOBALS['table_des_tables'][$type_requete])) { |
|
| 801 | - $type_alias = $type_requete; |
|
| 802 | - $type_requete = $GLOBALS['table_des_tables'][$type_requete]; |
|
| 803 | - } else { |
|
| 804 | - $type_alias = false; |
|
| 805 | - } |
|
| 806 | - |
|
| 807 | - // le traitement peut n'etre defini que pour une table en particulier "spip_articles" |
|
| 808 | - if ($table_sql and isset($ps[$table_sql])) { |
|
| 809 | - $ps = $ps[$table_sql]; |
|
| 810 | - } // ou pour une boucle en particulier "DATA","articles" |
|
| 811 | - elseif ($type_requete and isset($ps[$type_requete])) { |
|
| 812 | - $ps = $ps[$type_requete]; |
|
| 813 | - } // ou pour une boucle utilisant un alias ("hierarchie") |
|
| 814 | - elseif ($type_alias and isset($ps[$type_alias])) { |
|
| 815 | - $ps = $ps[$type_alias]; |
|
| 816 | - } // ou pour indifféremment quelle que soit la boucle |
|
| 817 | - elseif (isset($ps[0])) { |
|
| 818 | - $ps = $ps[0]; |
|
| 819 | - } else { |
|
| 820 | - $ps = false; |
|
| 821 | - } |
|
| 822 | - } |
|
| 823 | - |
|
| 824 | - if (!$ps) { |
|
| 825 | - return $p->code; |
|
| 826 | - } |
|
| 827 | - |
|
| 828 | - // Si une boucle DOCUMENTS{doublons} est presente dans le squelette, |
|
| 829 | - // ou si in INCLURE contient {doublons} |
|
| 830 | - // on insere une fonction de remplissage du tableau des doublons |
|
| 831 | - // dans les filtres propre() ou typo() |
|
| 832 | - // (qui traitent les raccourcis <docXX> referencant les docs) |
|
| 833 | - |
|
| 834 | - if ( |
|
| 835 | - isset($p->descr['documents']) |
|
| 836 | - and |
|
| 837 | - $p->descr['documents'] |
|
| 838 | - and ( |
|
| 839 | - (strpos($ps, 'propre') !== false) |
|
| 840 | - or |
|
| 841 | - (strpos($ps, 'typo') !== false) |
|
| 842 | - ) |
|
| 843 | - ) { |
|
| 844 | - $ps = 'traiter_doublons_documents($doublons, ' . $ps . ')'; |
|
| 845 | - } |
|
| 846 | - |
|
| 847 | - // La protection des champs par |safehtml est assuree par les extensions |
|
| 848 | - // dans la declaration des traitements des champs sensibles |
|
| 849 | - |
|
| 850 | - // Remplacer enfin le placeholder %s par le vrai code de la balise |
|
| 851 | - return str_replace('%s', $p->code, $ps); |
|
| 774 | + if (isset($GLOBALS['table_des_traitements'][$p->nom_champ])) { |
|
| 775 | + $ps = $GLOBALS['table_des_traitements'][$p->nom_champ]; |
|
| 776 | + } else { |
|
| 777 | + // quand on utilise un traitement catch-all * |
|
| 778 | + // celui-ci ne s'applique pas sur les balises calculees qui peuvent gerer |
|
| 779 | + // leur propre securite |
|
| 780 | + if (!$p->balise_calculee) { |
|
| 781 | + $ps = $GLOBALS['table_des_traitements']['*']; |
|
| 782 | + } else { |
|
| 783 | + $ps = false; |
|
| 784 | + } |
|
| 785 | + } |
|
| 786 | + |
|
| 787 | + if (is_array($ps)) { |
|
| 788 | + // Recuperer le type de boucle (articles, DATA) et la table SQL sur laquelle elle porte |
|
| 789 | + $idb = index_boucle($p); |
|
| 790 | + // si le champ a ete trouve dans une boucle parente sa source est renseignee ici |
|
| 791 | + if (!empty($p->boucles[$idb]->index_champ[$p->nom_champ])) { |
|
| 792 | + $idb = $p->boucles[$idb]->index_champ[$p->nom_champ]; |
|
| 793 | + } |
|
| 794 | + |
|
| 795 | + // mais on peut aussi etre hors boucle. Se mefier. |
|
| 796 | + $type_requete = $p->boucles[$idb]->type_requete ?? false; |
|
| 797 | + $table_sql = $p->boucles[$idb]->show['table_sql'] ?? false; |
|
| 798 | + |
|
| 799 | + // bien prendre en compte les alias de boucles (hierarchie => rubrique, syndication => syncdic, etc.) |
|
| 800 | + if ($type_requete and isset($GLOBALS['table_des_tables'][$type_requete])) { |
|
| 801 | + $type_alias = $type_requete; |
|
| 802 | + $type_requete = $GLOBALS['table_des_tables'][$type_requete]; |
|
| 803 | + } else { |
|
| 804 | + $type_alias = false; |
|
| 805 | + } |
|
| 806 | + |
|
| 807 | + // le traitement peut n'etre defini que pour une table en particulier "spip_articles" |
|
| 808 | + if ($table_sql and isset($ps[$table_sql])) { |
|
| 809 | + $ps = $ps[$table_sql]; |
|
| 810 | + } // ou pour une boucle en particulier "DATA","articles" |
|
| 811 | + elseif ($type_requete and isset($ps[$type_requete])) { |
|
| 812 | + $ps = $ps[$type_requete]; |
|
| 813 | + } // ou pour une boucle utilisant un alias ("hierarchie") |
|
| 814 | + elseif ($type_alias and isset($ps[$type_alias])) { |
|
| 815 | + $ps = $ps[$type_alias]; |
|
| 816 | + } // ou pour indifféremment quelle que soit la boucle |
|
| 817 | + elseif (isset($ps[0])) { |
|
| 818 | + $ps = $ps[0]; |
|
| 819 | + } else { |
|
| 820 | + $ps = false; |
|
| 821 | + } |
|
| 822 | + } |
|
| 823 | + |
|
| 824 | + if (!$ps) { |
|
| 825 | + return $p->code; |
|
| 826 | + } |
|
| 827 | + |
|
| 828 | + // Si une boucle DOCUMENTS{doublons} est presente dans le squelette, |
|
| 829 | + // ou si in INCLURE contient {doublons} |
|
| 830 | + // on insere une fonction de remplissage du tableau des doublons |
|
| 831 | + // dans les filtres propre() ou typo() |
|
| 832 | + // (qui traitent les raccourcis <docXX> referencant les docs) |
|
| 833 | + |
|
| 834 | + if ( |
|
| 835 | + isset($p->descr['documents']) |
|
| 836 | + and |
|
| 837 | + $p->descr['documents'] |
|
| 838 | + and ( |
|
| 839 | + (strpos($ps, 'propre') !== false) |
|
| 840 | + or |
|
| 841 | + (strpos($ps, 'typo') !== false) |
|
| 842 | + ) |
|
| 843 | + ) { |
|
| 844 | + $ps = 'traiter_doublons_documents($doublons, ' . $ps . ')'; |
|
| 845 | + } |
|
| 846 | + |
|
| 847 | + // La protection des champs par |safehtml est assuree par les extensions |
|
| 848 | + // dans la declaration des traitements des champs sensibles |
|
| 849 | + |
|
| 850 | + // Remplacer enfin le placeholder %s par le vrai code de la balise |
|
| 851 | + return str_replace('%s', $p->code, $ps); |
|
| 852 | 852 | } |
| 853 | 853 | |
| 854 | 854 | |
@@ -860,110 +860,110 @@ discard block |
||
| 860 | 860 | // |
| 861 | 861 | function applique_filtres($p) { |
| 862 | 862 | |
| 863 | - // Traitements standards (cf. supra) |
|
| 864 | - if ($p->etoile == '') { |
|
| 865 | - $code = champs_traitements($p); |
|
| 866 | - } else { |
|
| 867 | - $code = $p->code; |
|
| 868 | - } |
|
| 863 | + // Traitements standards (cf. supra) |
|
| 864 | + if ($p->etoile == '') { |
|
| 865 | + $code = champs_traitements($p); |
|
| 866 | + } else { |
|
| 867 | + $code = $p->code; |
|
| 868 | + } |
|
| 869 | 869 | |
| 870 | - // Appliquer les filtres perso |
|
| 871 | - if ($p->param) { |
|
| 872 | - $code = compose_filtres($p, $code); |
|
| 873 | - } |
|
| 870 | + // Appliquer les filtres perso |
|
| 871 | + if ($p->param) { |
|
| 872 | + $code = compose_filtres($p, $code); |
|
| 873 | + } |
|
| 874 | 874 | |
| 875 | - // S'il y a un lien avec la session, ajouter un code qui levera |
|
| 876 | - // un drapeau dans la structure d'invalidation $Cache |
|
| 877 | - if (isset($p->descr['session'])) { |
|
| 878 | - $code = "invalideur_session(\$Cache, $code)"; |
|
| 879 | - } |
|
| 875 | + // S'il y a un lien avec la session, ajouter un code qui levera |
|
| 876 | + // un drapeau dans la structure d'invalidation $Cache |
|
| 877 | + if (isset($p->descr['session'])) { |
|
| 878 | + $code = "invalideur_session(\$Cache, $code)"; |
|
| 879 | + } |
|
| 880 | 880 | |
| 881 | - $code = sandbox_composer_interdire_scripts($code, $p); |
|
| 881 | + $code = sandbox_composer_interdire_scripts($code, $p); |
|
| 882 | 882 | |
| 883 | - return $code; |
|
| 883 | + return $code; |
|
| 884 | 884 | } |
| 885 | 885 | |
| 886 | 886 | // Cf. function pipeline dans ecrire/inc_utils.php |
| 887 | 887 | function compose_filtres(&$p, $code) { |
| 888 | 888 | |
| 889 | - $image_miette = false; |
|
| 890 | - foreach ($p->param as $filtre) { |
|
| 891 | - $fonc = array_shift($filtre); |
|
| 892 | - if (!$fonc) { |
|
| 893 | - continue; |
|
| 894 | - } // normalement qu'au premier tour. |
|
| 895 | - $is_filtre_image = ((substr($fonc, 0, 6) == 'image_') and $fonc != 'image_graver'); |
|
| 896 | - if ($image_miette and !$is_filtre_image) { |
|
| 897 | - // il faut graver maintenant car apres le filtre en cours |
|
| 898 | - // on est pas sur d'avoir encore le nom du fichier dans le pipe |
|
| 899 | - $code = "filtrer('image_graver', $code)"; |
|
| 900 | - $image_miette = false; |
|
| 901 | - } |
|
| 902 | - |
|
| 903 | - // recuperer les arguments du filtre, |
|
| 904 | - // a separer par "," ou ":" dans le cas du filtre "?{a,b}" |
|
| 905 | - $countfiltre = is_countable($filtre) ? count($filtre) : 0; |
|
| 906 | - if ($fonc !== '?') { |
|
| 907 | - $sep = ','; |
|
| 908 | - } else { |
|
| 909 | - $sep = ':'; |
|
| 910 | - // |?{a,b} *doit* avoir exactement 2 arguments ; on les force |
|
| 911 | - if ($countfiltre != 2) { |
|
| 912 | - $filtre = [$filtre[0] ?? '', $filtre[1] ?? '']; |
|
| 913 | - $countfiltre = 2; |
|
| 914 | - } |
|
| 915 | - } |
|
| 916 | - $arglist = compose_filtres_args($p, $filtre, $sep); |
|
| 917 | - $logique = filtre_logique($fonc, $code, substr($arglist, 1)); |
|
| 918 | - if ($logique) { |
|
| 919 | - $code = $logique; |
|
| 920 | - } else { |
|
| 921 | - $code = sandbox_composer_filtre($fonc, $code, $arglist, $p, $countfiltre); |
|
| 922 | - if ($is_filtre_image) { |
|
| 923 | - $image_miette = true; |
|
| 924 | - } |
|
| 925 | - } |
|
| 926 | - } |
|
| 927 | - // ramasser les images intermediaires inutiles et graver l'image finale |
|
| 928 | - if ($image_miette) { |
|
| 929 | - $code = "filtrer('image_graver',$code)"; |
|
| 930 | - } |
|
| 931 | - |
|
| 932 | - return $code; |
|
| 889 | + $image_miette = false; |
|
| 890 | + foreach ($p->param as $filtre) { |
|
| 891 | + $fonc = array_shift($filtre); |
|
| 892 | + if (!$fonc) { |
|
| 893 | + continue; |
|
| 894 | + } // normalement qu'au premier tour. |
|
| 895 | + $is_filtre_image = ((substr($fonc, 0, 6) == 'image_') and $fonc != 'image_graver'); |
|
| 896 | + if ($image_miette and !$is_filtre_image) { |
|
| 897 | + // il faut graver maintenant car apres le filtre en cours |
|
| 898 | + // on est pas sur d'avoir encore le nom du fichier dans le pipe |
|
| 899 | + $code = "filtrer('image_graver', $code)"; |
|
| 900 | + $image_miette = false; |
|
| 901 | + } |
|
| 902 | + |
|
| 903 | + // recuperer les arguments du filtre, |
|
| 904 | + // a separer par "," ou ":" dans le cas du filtre "?{a,b}" |
|
| 905 | + $countfiltre = is_countable($filtre) ? count($filtre) : 0; |
|
| 906 | + if ($fonc !== '?') { |
|
| 907 | + $sep = ','; |
|
| 908 | + } else { |
|
| 909 | + $sep = ':'; |
|
| 910 | + // |?{a,b} *doit* avoir exactement 2 arguments ; on les force |
|
| 911 | + if ($countfiltre != 2) { |
|
| 912 | + $filtre = [$filtre[0] ?? '', $filtre[1] ?? '']; |
|
| 913 | + $countfiltre = 2; |
|
| 914 | + } |
|
| 915 | + } |
|
| 916 | + $arglist = compose_filtres_args($p, $filtre, $sep); |
|
| 917 | + $logique = filtre_logique($fonc, $code, substr($arglist, 1)); |
|
| 918 | + if ($logique) { |
|
| 919 | + $code = $logique; |
|
| 920 | + } else { |
|
| 921 | + $code = sandbox_composer_filtre($fonc, $code, $arglist, $p, $countfiltre); |
|
| 922 | + if ($is_filtre_image) { |
|
| 923 | + $image_miette = true; |
|
| 924 | + } |
|
| 925 | + } |
|
| 926 | + } |
|
| 927 | + // ramasser les images intermediaires inutiles et graver l'image finale |
|
| 928 | + if ($image_miette) { |
|
| 929 | + $code = "filtrer('image_graver',$code)"; |
|
| 930 | + } |
|
| 931 | + |
|
| 932 | + return $code; |
|
| 933 | 933 | } |
| 934 | 934 | |
| 935 | 935 | // Filtres et,ou,oui,non,sinon,xou,xor,and,or,not,yes |
| 936 | 936 | // et comparateurs |
| 937 | 937 | function filtre_logique($fonc, $code, $arg) { |
| 938 | 938 | |
| 939 | - switch (true) { |
|
| 940 | - case in_array($fonc, $GLOBALS['table_criteres_infixes']): |
|
| 941 | - return "($code $fonc $arg)"; |
|
| 942 | - case ($fonc == 'and') or ($fonc == 'et'): |
|
| 943 | - return "((($code) AND ($arg)) ?' ' :'')"; |
|
| 944 | - case ($fonc == 'or') or ($fonc == 'ou'): |
|
| 945 | - return "((($code) OR ($arg)) ?' ' :'')"; |
|
| 946 | - case ($fonc == 'xor') or ($fonc == 'xou'): |
|
| 947 | - return "((($code) XOR ($arg)) ?' ' :'')"; |
|
| 948 | - case ($fonc == 'sinon'): |
|
| 949 | - return "(((\$a = $code) OR (is_string(\$a) AND strlen(\$a))) ? \$a : $arg)"; |
|
| 950 | - case ($fonc == 'not') or ($fonc == 'non'): |
|
| 951 | - return "(($code) ?'' :' ')"; |
|
| 952 | - case ($fonc == 'yes') or ($fonc == 'oui'): |
|
| 953 | - return "(($code) ?' ' :'')"; |
|
| 954 | - } |
|
| 955 | - |
|
| 956 | - return ''; |
|
| 939 | + switch (true) { |
|
| 940 | + case in_array($fonc, $GLOBALS['table_criteres_infixes']): |
|
| 941 | + return "($code $fonc $arg)"; |
|
| 942 | + case ($fonc == 'and') or ($fonc == 'et'): |
|
| 943 | + return "((($code) AND ($arg)) ?' ' :'')"; |
|
| 944 | + case ($fonc == 'or') or ($fonc == 'ou'): |
|
| 945 | + return "((($code) OR ($arg)) ?' ' :'')"; |
|
| 946 | + case ($fonc == 'xor') or ($fonc == 'xou'): |
|
| 947 | + return "((($code) XOR ($arg)) ?' ' :'')"; |
|
| 948 | + case ($fonc == 'sinon'): |
|
| 949 | + return "(((\$a = $code) OR (is_string(\$a) AND strlen(\$a))) ? \$a : $arg)"; |
|
| 950 | + case ($fonc == 'not') or ($fonc == 'non'): |
|
| 951 | + return "(($code) ?'' :' ')"; |
|
| 952 | + case ($fonc == 'yes') or ($fonc == 'oui'): |
|
| 953 | + return "(($code) ?' ' :'')"; |
|
| 954 | + } |
|
| 955 | + |
|
| 956 | + return ''; |
|
| 957 | 957 | } |
| 958 | 958 | |
| 959 | 959 | function compose_filtres_args($p, $args, $sep) { |
| 960 | - $arglist = ''; |
|
| 961 | - foreach ($args as $arg) { |
|
| 962 | - $arglist .= $sep . |
|
| 963 | - calculer_liste($arg, $p->descr, $p->boucles, $p->id_boucle); |
|
| 964 | - } |
|
| 960 | + $arglist = ''; |
|
| 961 | + foreach ($args as $arg) { |
|
| 962 | + $arglist .= $sep . |
|
| 963 | + calculer_liste($arg, $p->descr, $p->boucles, $p->id_boucle); |
|
| 964 | + } |
|
| 965 | 965 | |
| 966 | - return $arglist; |
|
| 966 | + return $arglist; |
|
| 967 | 967 | } |
| 968 | 968 | |
| 969 | 969 | |
@@ -981,15 +981,15 @@ discard block |
||
| 981 | 981 | **/ |
| 982 | 982 | function calculer_argument_precedent($idb, $nom_champ, &$boucles, $defaut = null) { |
| 983 | 983 | |
| 984 | - // si recursif, forcer l'extraction du champ SQL mais ignorer le code |
|
| 985 | - if ($boucles[$idb]->externe) { |
|
| 986 | - index_pile($idb, $nom_champ, $boucles, '', $defaut); |
|
| 987 | - // retourner $Pile[$SP] et pas $Pile[0] si recursion en 1ere boucle |
|
| 988 | - // on ignore le defaut fourni dans ce cas |
|
| 989 | - $defaut = "(\$Pile[\$SP]['$nom_champ'] ?? null)"; |
|
| 990 | - } |
|
| 984 | + // si recursif, forcer l'extraction du champ SQL mais ignorer le code |
|
| 985 | + if ($boucles[$idb]->externe) { |
|
| 986 | + index_pile($idb, $nom_champ, $boucles, '', $defaut); |
|
| 987 | + // retourner $Pile[$SP] et pas $Pile[0] si recursion en 1ere boucle |
|
| 988 | + // on ignore le defaut fourni dans ce cas |
|
| 989 | + $defaut = "(\$Pile[\$SP]['$nom_champ'] ?? null)"; |
|
| 990 | + } |
|
| 991 | 991 | |
| 992 | - return index_pile($boucles[$idb]->id_parent, $nom_champ, $boucles, '', $defaut); |
|
| 992 | + return index_pile($boucles[$idb]->id_parent, $nom_champ, $boucles, '', $defaut); |
|
| 993 | 993 | } |
| 994 | 994 | |
| 995 | 995 | // |
@@ -1003,30 +1003,30 @@ discard block |
||
| 1003 | 1003 | // |
| 1004 | 1004 | |
| 1005 | 1005 | function rindex_pile($p, $champ, $motif) { |
| 1006 | - $n = 0; |
|
| 1007 | - $b = $p->id_boucle; |
|
| 1008 | - $p->code = ''; |
|
| 1009 | - while ($b != '') { |
|
| 1010 | - foreach ($p->boucles[$b]->criteres as $critere) { |
|
| 1011 | - if ($critere->op == $motif) { |
|
| 1012 | - $p->code = '$Pile[$SP' . (($n == 0) ? '' : "-$n") . |
|
| 1013 | - "]['$champ']"; |
|
| 1014 | - $b = ''; |
|
| 1015 | - break 2; |
|
| 1016 | - } |
|
| 1017 | - } |
|
| 1018 | - $n++; |
|
| 1019 | - $b = $p->boucles[$b]->id_parent; |
|
| 1020 | - } |
|
| 1021 | - |
|
| 1022 | - // si on est hors d'une boucle de {recherche}, cette balise est vide |
|
| 1023 | - if (!$p->code) { |
|
| 1024 | - $p->code = "''"; |
|
| 1025 | - } |
|
| 1026 | - |
|
| 1027 | - $p->interdire_scripts = false; |
|
| 1028 | - |
|
| 1029 | - return $p; |
|
| 1006 | + $n = 0; |
|
| 1007 | + $b = $p->id_boucle; |
|
| 1008 | + $p->code = ''; |
|
| 1009 | + while ($b != '') { |
|
| 1010 | + foreach ($p->boucles[$b]->criteres as $critere) { |
|
| 1011 | + if ($critere->op == $motif) { |
|
| 1012 | + $p->code = '$Pile[$SP' . (($n == 0) ? '' : "-$n") . |
|
| 1013 | + "]['$champ']"; |
|
| 1014 | + $b = ''; |
|
| 1015 | + break 2; |
|
| 1016 | + } |
|
| 1017 | + } |
|
| 1018 | + $n++; |
|
| 1019 | + $b = $p->boucles[$b]->id_parent; |
|
| 1020 | + } |
|
| 1021 | + |
|
| 1022 | + // si on est hors d'une boucle de {recherche}, cette balise est vide |
|
| 1023 | + if (!$p->code) { |
|
| 1024 | + $p->code = "''"; |
|
| 1025 | + } |
|
| 1026 | + |
|
| 1027 | + $p->interdire_scripts = false; |
|
| 1028 | + |
|
| 1029 | + return $p; |
|
| 1030 | 1030 | } |
| 1031 | 1031 | |
| 1032 | 1032 | /** |
@@ -1036,7 +1036,7 @@ discard block |
||
| 1036 | 1036 | * @return string Nom de la balise, avec indication de boucle explicite si présent. |
| 1037 | 1037 | */ |
| 1038 | 1038 | function zbug_presenter_champ($p, $champ = '') { |
| 1039 | - $balise = $champ ?: $p->nom_champ; |
|
| 1040 | - $explicite = $p->nom_boucle ? $p->nom_boucle . ':' : ''; |
|
| 1041 | - return "#{$explicite}{$balise}"; |
|
| 1039 | + $balise = $champ ?: $p->nom_champ; |
|
| 1040 | + $explicite = $p->nom_boucle ? $p->nom_boucle . ':' : ''; |
|
| 1041 | + return "#{$explicite}{$balise}"; |
|
| 1042 | 1042 | } |
@@ -127,7 +127,7 @@ discard block |
||
| 127 | 127 | $select = true |
| 128 | 128 | ) { |
| 129 | 129 | if (!is_string($defaut)) { |
| 130 | - $defaut = '($Pile[0][\'' . strtolower($nom_champ) . '\'] ?? null)'; |
|
| 130 | + $defaut = '($Pile[0][\''.strtolower($nom_champ).'\'] ?? null)'; |
|
| 131 | 131 | } |
| 132 | 132 | |
| 133 | 133 | $idb_origine = $idb; |
@@ -160,7 +160,7 @@ discard block |
||
| 160 | 160 | } |
| 161 | 161 | // renseigner la boucle source de ce champ pour les traitements |
| 162 | 162 | $boucles[$idb_origine]->index_champ[$nom_champ_origine] = $idb; |
| 163 | - $champ = '$Pile[$SP' . ($i ? "-$i" : '') . '][\'' . $c . '\']'; |
|
| 163 | + $champ = '$Pile[$SP'.($i ? "-$i" : '').'][\''.$c.'\']'; |
|
| 164 | 164 | if (!$joker) { |
| 165 | 165 | return index_compose($conditionnel, $champ); |
| 166 | 166 | } |
@@ -201,7 +201,7 @@ discard block |
||
| 201 | 201 | function index_compose($conditionnel, $defaut) { |
| 202 | 202 | while ($c = array_pop($conditionnel)) { |
| 203 | 203 | // si on passe defaut = '', ne pas générer d'erreur de compilation. |
| 204 | - $defaut = "($c:(" . ($defaut ?: "''") . '))'; |
|
| 204 | + $defaut = "($c:(".($defaut ?: "''").'))'; |
|
| 205 | 205 | } |
| 206 | 206 | |
| 207 | 207 | return $defaut; |
@@ -248,7 +248,7 @@ discard block |
||
| 248 | 248 | if (!$r) { |
| 249 | 249 | $joker = false; // indiquer a l'appelant |
| 250 | 250 | # continuer pour chercher l'erreur suivante |
| 251 | - return ["'#" . $r . ':' . $nom_champ . "'", '']; |
|
| 251 | + return ["'#".$r.':'.$nom_champ."'", '']; |
|
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | $desc = $boucles[$idb]->show; |
@@ -291,7 +291,7 @@ discard block |
||
| 291 | 291 | if (preg_match('/^(.*)\.(.*)$/', $nom_champ, $r)) { |
| 292 | 292 | [, $_table, $_nom_champ] = $r; |
| 293 | 293 | if ($cle = trouver_jointure_champ($_nom_champ, $boucles[$idb], [$_table])) { |
| 294 | - $_alias = $cle . '_' . $_nom_champ; |
|
| 294 | + $_alias = $cle.'_'.$_nom_champ; |
|
| 295 | 295 | return index_exception( |
| 296 | 296 | $boucles[$idb], |
| 297 | 297 | $desc, |
@@ -371,8 +371,8 @@ discard block |
||
| 371 | 371 | $t = $index_exception_derogatoire($boucle, $desc, $nom_champ, $excep); |
| 372 | 372 | } |
| 373 | 373 | if ($t == null) { |
| 374 | - [$e, $x] = $excep; #PHP4 affecte de gauche a droite |
|
| 375 | - $excep = $x; #PHP5 de droite a gauche ! |
|
| 374 | + [$e, $x] = $excep; #PHP4 affecte de gauche a droite |
|
| 375 | + $excep = $x; #PHP5 de droite a gauche ! |
|
| 376 | 376 | $j = $trouver_table($e, $boucle->sql_serveur); |
| 377 | 377 | if (!$j) { |
| 378 | 378 | return ['', '']; |
@@ -384,7 +384,7 @@ discard block |
||
| 384 | 384 | $l = (preg_split('/\s*,\s*/', $k)); |
| 385 | 385 | $k = $desc['key']['PRIMARY KEY']; |
| 386 | 386 | if (!in_array($k, $l)) { |
| 387 | - spip_log("jointure impossible $e " . join(',', $l)); |
|
| 387 | + spip_log("jointure impossible $e ".join(',', $l)); |
|
| 388 | 388 | |
| 389 | 389 | return ['', '']; |
| 390 | 390 | } |
@@ -400,7 +400,7 @@ discard block |
||
| 400 | 400 | // demander a SQL de gerer le synonyme |
| 401 | 401 | // ca permet que excep soit dynamique (Cedric, 2/3/06) |
| 402 | 402 | if ($excep != $nom_champ) { |
| 403 | - $excep .= ' AS ' . $nom_champ; |
|
| 403 | + $excep .= ' AS '.$nom_champ; |
|
| 404 | 404 | } |
| 405 | 405 | |
| 406 | 406 | return ["$t.$excep", $nom_champ]; |
@@ -654,7 +654,7 @@ discard block |
||
| 654 | 654 | join(',', $collecte), |
| 655 | 655 | ($collecte ? $param : substr($param, 1)), # virer la virgule |
| 656 | 656 | memoriser_contexte_compil($p), |
| 657 | - (!$supp ? '' : (', ' . join(',', $supp))) |
|
| 657 | + (!$supp ? '' : (', '.join(',', $supp))) |
|
| 658 | 658 | ); |
| 659 | 659 | |
| 660 | 660 | $p->interdire_scripts = false; |
@@ -688,7 +688,7 @@ discard block |
||
| 688 | 688 | * @return array |
| 689 | 689 | * Liste des codes PHP d'éxecution des balises collectées |
| 690 | 690 | **/ |
| 691 | -function collecter_balise_dynamique(array $l, Champ &$p, string $nom): array { |
|
| 691 | +function collecter_balise_dynamique(array $l, Champ & $p, string $nom): array { |
|
| 692 | 692 | $args = []; |
| 693 | 693 | foreach ($l as $c) { |
| 694 | 694 | if ($c === null) { |
@@ -756,7 +756,7 @@ discard block |
||
| 756 | 756 | $nom = $p->id_boucle; |
| 757 | 757 | |
| 758 | 758 | if ($nom and trouver_nom_serveur_distant($p)) { |
| 759 | - spip_log($nom . ':' . $p->nom_champ . ' ' . _T('zbug_distant_interdit')); |
|
| 759 | + spip_log($nom.':'.$p->nom_champ.' '._T('zbug_distant_interdit')); |
|
| 760 | 760 | |
| 761 | 761 | return false; |
| 762 | 762 | } |
@@ -841,7 +841,7 @@ discard block |
||
| 841 | 841 | (strpos($ps, 'typo') !== false) |
| 842 | 842 | ) |
| 843 | 843 | ) { |
| 844 | - $ps = 'traiter_doublons_documents($doublons, ' . $ps . ')'; |
|
| 844 | + $ps = 'traiter_doublons_documents($doublons, '.$ps.')'; |
|
| 845 | 845 | } |
| 846 | 846 | |
| 847 | 847 | // La protection des champs par |safehtml est assuree par les extensions |
@@ -959,7 +959,7 @@ discard block |
||
| 959 | 959 | function compose_filtres_args($p, $args, $sep) { |
| 960 | 960 | $arglist = ''; |
| 961 | 961 | foreach ($args as $arg) { |
| 962 | - $arglist .= $sep . |
|
| 962 | + $arglist .= $sep. |
|
| 963 | 963 | calculer_liste($arg, $p->descr, $p->boucles, $p->id_boucle); |
| 964 | 964 | } |
| 965 | 965 | |
@@ -1009,7 +1009,7 @@ discard block |
||
| 1009 | 1009 | while ($b != '') { |
| 1010 | 1010 | foreach ($p->boucles[$b]->criteres as $critere) { |
| 1011 | 1011 | if ($critere->op == $motif) { |
| 1012 | - $p->code = '$Pile[$SP' . (($n == 0) ? '' : "-$n") . |
|
| 1012 | + $p->code = '$Pile[$SP'.(($n == 0) ? '' : "-$n"). |
|
| 1013 | 1013 | "]['$champ']"; |
| 1014 | 1014 | $b = ''; |
| 1015 | 1015 | break 2; |
@@ -1037,6 +1037,6 @@ discard block |
||
| 1037 | 1037 | */ |
| 1038 | 1038 | function zbug_presenter_champ($p, $champ = '') { |
| 1039 | 1039 | $balise = $champ ?: $p->nom_champ; |
| 1040 | - $explicite = $p->nom_boucle ? $p->nom_boucle . ':' : ''; |
|
| 1040 | + $explicite = $p->nom_boucle ? $p->nom_boucle.':' : ''; |
|
| 1041 | 1041 | return "#{$explicite}{$balise}"; |
| 1042 | 1042 | } |
@@ -19,7 +19,7 @@ discard block |
||
| 19 | 19 | * @package SPIP\Core\Public\Styliser |
| 20 | 20 | **/ |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /** |
@@ -29,193 +29,193 @@ discard block |
||
| 29 | 29 | * @return array Données modifiées du pipeline |
| 30 | 30 | */ |
| 31 | 31 | function public_styliser_par_z_dist($flux) { |
| 32 | - static $prefix_path = null; |
|
| 33 | - static $prefix_length; |
|
| 34 | - static $z_blocs; |
|
| 35 | - static $apl_constant; |
|
| 36 | - static $page; |
|
| 37 | - static $disponible = []; |
|
| 38 | - static $echafauder; |
|
| 39 | - static $prepend = ''; |
|
| 40 | - |
|
| 41 | - if (!isset($prefix_path)) { |
|
| 42 | - $z_blocs = z_blocs(test_espace_prive()); |
|
| 43 | - if (test_espace_prive()) { |
|
| 44 | - $prefix_path = 'prive/squelettes/'; |
|
| 45 | - $prefix_length = strlen($prefix_path); |
|
| 46 | - $apl_constant = '_ECRIRE_AJAX_PARALLEL_LOAD'; |
|
| 47 | - $page = 'exec'; |
|
| 48 | - $echafauder = charger_fonction('echafauder', 'prive', true); |
|
| 49 | - define('_ZCORE_EXCLURE_PATH', ''); |
|
| 50 | - } else { |
|
| 51 | - $prefix_path = ''; |
|
| 52 | - $prefix_length = 0; |
|
| 53 | - $apl_constant = '_Z_AJAX_PARALLEL_LOAD'; |
|
| 54 | - $page = _SPIP_PAGE; |
|
| 55 | - $echafauder = charger_fonction('echafauder', 'public', true); |
|
| 56 | - define('_ZCORE_EXCLURE_PATH', '\bprive|\bsquelettes-dist' . (defined('_DIR_PLUGIN_DIST') ? '|\b' . rtrim( |
|
| 57 | - _DIR_PLUGIN_DIST, |
|
| 58 | - '/' |
|
| 59 | - ) : '')); |
|
| 60 | - } |
|
| 61 | - $prepend = (defined('_Z_PREPEND_PATH') ? _Z_PREPEND_PATH : ''); |
|
| 62 | - } |
|
| 63 | - $z_contenu = reset($z_blocs); // contenu par defaut |
|
| 64 | - |
|
| 65 | - $fond = $flux['args']['fond']; |
|
| 66 | - |
|
| 67 | - if ($prepend or strncmp($fond, $prefix_path, $prefix_length) == 0) { |
|
| 68 | - $fond = substr($fond, $prefix_length); |
|
| 69 | - $squelette = $flux['data']; |
|
| 70 | - $ext = $flux['args']['ext']; |
|
| 71 | - // Ajax Parallel loading : ne pas calculer le bloc, mais renvoyer un js qui le loadera en ajax |
|
| 72 | - if ( |
|
| 73 | - defined('_Z_AJAX_PARALLEL_LOAD_OK') |
|
| 74 | - and $dir = explode('/', $fond) |
|
| 75 | - and count($dir) == 2 // pas un sous repertoire |
|
| 76 | - and $dir = reset($dir) |
|
| 77 | - and in_array($dir, $z_blocs) // verifier deja qu'on est dans un bloc Z |
|
| 78 | - and defined($apl_constant) |
|
| 79 | - and in_array($dir, explode(',', constant($apl_constant))) // et dans un demande en APL |
|
| 80 | - and $pipe = z_trouver_bloc($prefix_path . $prepend, $dir, 'z_apl', $ext) // et qui contient le squelette APL |
|
| 81 | - ) { |
|
| 82 | - $flux['data'] = $pipe; |
|
| 83 | - |
|
| 84 | - return $flux; |
|
| 85 | - } |
|
| 86 | - |
|
| 87 | - // surcharger aussi les squelettes venant de squelettes-dist/ |
|
| 88 | - if ($squelette and !z_fond_valide($squelette)) { |
|
| 89 | - $squelette = ''; |
|
| 90 | - $echafauder = ''; |
|
| 91 | - } |
|
| 92 | - if ($prepend) { |
|
| 93 | - $squelette = substr(find_in_path($prefix_path . $prepend . "$fond.$ext"), 0, -strlen(".$ext")); |
|
| 94 | - if ($squelette) { |
|
| 95 | - $flux['data'] = $squelette; |
|
| 96 | - } |
|
| 97 | - } |
|
| 98 | - |
|
| 99 | - // gerer les squelettes non trouves |
|
| 100 | - // -> router vers les /dist.html |
|
| 101 | - // ou scaffolding ou page automatique les contenus |
|
| 102 | - if (!$squelette) { |
|
| 103 | - // si on est sur un ?page=XX non trouve |
|
| 104 | - if ( |
|
| 105 | - (isset($flux['args']['contexte'][$page]) |
|
| 106 | - and $flux['args']['contexte'][$page] == $fond) |
|
| 107 | - or (isset($flux['args']['contexte']['type-page']) |
|
| 108 | - and $flux['args']['contexte']['type-page'] == $fond) |
|
| 109 | - or ($fond == 'sommaire' |
|
| 110 | - and (!isset($flux['args']['contexte'][$page]) or !$flux['args']['contexte'][$page])) |
|
| 111 | - ) { |
|
| 112 | - // si on est sur un ?page=XX non trouve |
|
| 113 | - // se brancher sur contenu/xx si il existe |
|
| 114 | - // ou si c'est un objet spip, associe a une table, utiliser le fond homonyme |
|
| 115 | - if (!isset($disponible[$fond])) { |
|
| 116 | - $disponible[$fond] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $fond, $ext, $echafauder); |
|
| 117 | - } |
|
| 118 | - |
|
| 119 | - if ($disponible[$fond]) { |
|
| 120 | - $flux['data'] = substr(find_in_path($prefix_path . "page.$ext"), 0, -strlen(".$ext")); |
|
| 121 | - } |
|
| 122 | - } |
|
| 123 | - |
|
| 124 | - // echafaudage : |
|
| 125 | - // si c'est un fond de contenu d'un objet en base |
|
| 126 | - // generer un fond automatique a la volee pour les webmestres |
|
| 127 | - elseif (strncmp($fond, "$z_contenu/", strlen($z_contenu) + 1) == 0) { |
|
| 128 | - $type = substr($fond, strlen($z_contenu) + 1); |
|
| 129 | - if (($type == 'page') and isset($flux['args']['contexte'][$page])) { |
|
| 130 | - $type = $flux['args']['contexte'][$page]; |
|
| 131 | - } |
|
| 132 | - if (!isset($disponible[$type])) { |
|
| 133 | - $disponible[$type] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 134 | - } |
|
| 135 | - if (is_string($disponible[$type])) { |
|
| 136 | - $flux['data'] = $disponible[$type]; |
|
| 137 | - } elseif ( |
|
| 138 | - $echafauder |
|
| 139 | - and include_spip('inc/autoriser') |
|
| 140 | - and isset($GLOBALS['visiteur_session']['statut']) // performance |
|
| 141 | - and autoriser('echafauder', $type) |
|
| 142 | - and $is = $disponible[$type] |
|
| 143 | - and is_array($is) |
|
| 144 | - ) { |
|
| 145 | - $flux['data'] = $echafauder($type, $is[0], $is[1], $is[2], $ext); |
|
| 146 | - } else { |
|
| 147 | - $flux['data'] = ($disponible['404'] = z_contenu_disponible( |
|
| 148 | - $prefix_path . $prepend, |
|
| 149 | - $z_contenu, |
|
| 150 | - '404', |
|
| 151 | - $ext, |
|
| 152 | - $echafauder |
|
| 153 | - )); |
|
| 154 | - } |
|
| 155 | - } |
|
| 156 | - |
|
| 157 | - // sinon, si on demande un fond non trouve dans un des autres blocs |
|
| 158 | - // et si il y a bien un contenu correspondant ou echafaudable |
|
| 159 | - // se rabbatre sur le dist.html du bloc concerne |
|
| 160 | - else { |
|
| 161 | - if ( |
|
| 162 | - $dir = explode('/', $fond) |
|
| 163 | - and $dir = reset($dir) |
|
| 164 | - and $dir !== $z_contenu |
|
| 165 | - and in_array($dir, $z_blocs) |
|
| 166 | - ) { |
|
| 167 | - $type = substr($fond, strlen("$dir/")); |
|
| 168 | - if (($type == 'page') and isset($flux['args']['contexte'][$page])) { |
|
| 169 | - $type = $flux['args']['contexte'][$page]; |
|
| 170 | - } |
|
| 171 | - if ($type !== 'page' and !isset($disponible[$type])) { |
|
| 172 | - $disponible[$type] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 173 | - } |
|
| 174 | - if ($type == 'page' or $disponible[$type]) { |
|
| 175 | - $flux['data'] = z_trouver_bloc($prefix_path . $prepend, $dir, 'dist', $ext); |
|
| 176 | - } |
|
| 177 | - } |
|
| 178 | - } |
|
| 179 | - $squelette = $flux['data']; |
|
| 180 | - } |
|
| 181 | - // layout specifiques par type et compositions : |
|
| 182 | - // body-article.html |
|
| 183 | - // body-sommaire.html |
|
| 184 | - // pour des raisons de perfo, les declinaisons doivent etre dans le |
|
| 185 | - // meme dossier que body.html |
|
| 186 | - if ($fond == 'body' and substr($squelette, -strlen($fond)) == $fond) { |
|
| 187 | - if ( |
|
| 188 | - isset($flux['args']['contexte']['type-page']) |
|
| 189 | - and ( |
|
| 190 | - (isset($flux['args']['contexte']['composition']) |
|
| 191 | - and file_exists(($f = $squelette . '-' . $flux['args']['contexte']['type-page'] . '-' . $flux['args']['contexte']['composition']) . ".$ext")) |
|
| 192 | - or |
|
| 193 | - file_exists(($f = $squelette . '-' . $flux['args']['contexte']['type-page']) . ".$ext") |
|
| 194 | - ) |
|
| 195 | - ) { |
|
| 196 | - $flux['data'] = $f; |
|
| 197 | - } |
|
| 198 | - } elseif ( |
|
| 199 | - $fond == 'structure' |
|
| 200 | - and z_sanitize_var_zajax() |
|
| 201 | - and $f = find_in_path($prefix_path . $prepend . 'ajax' . ".$ext") |
|
| 202 | - ) { |
|
| 203 | - $flux['data'] = substr($f, 0, -strlen(".$ext")); |
|
| 204 | - } // chercher le fond correspondant a la composition |
|
| 205 | - elseif ( |
|
| 206 | - isset($flux['args']['contexte']['composition']) |
|
| 207 | - and (basename($fond) == 'page' or ($squelette and substr($squelette, -strlen($fond)) == $fond)) |
|
| 208 | - and $dir = substr($fond, $prefix_length) |
|
| 209 | - and $dir = explode('/', $dir) |
|
| 210 | - and $dir = reset($dir) |
|
| 211 | - and in_array($dir, $z_blocs) |
|
| 212 | - and $f = find_in_path($prefix_path . $prepend . $fond . '-' . $flux['args']['contexte']['composition'] . ".$ext") |
|
| 213 | - ) { |
|
| 214 | - $flux['data'] = substr($f, 0, -strlen(".$ext")); |
|
| 215 | - } |
|
| 216 | - } |
|
| 217 | - |
|
| 218 | - return $flux; |
|
| 32 | + static $prefix_path = null; |
|
| 33 | + static $prefix_length; |
|
| 34 | + static $z_blocs; |
|
| 35 | + static $apl_constant; |
|
| 36 | + static $page; |
|
| 37 | + static $disponible = []; |
|
| 38 | + static $echafauder; |
|
| 39 | + static $prepend = ''; |
|
| 40 | + |
|
| 41 | + if (!isset($prefix_path)) { |
|
| 42 | + $z_blocs = z_blocs(test_espace_prive()); |
|
| 43 | + if (test_espace_prive()) { |
|
| 44 | + $prefix_path = 'prive/squelettes/'; |
|
| 45 | + $prefix_length = strlen($prefix_path); |
|
| 46 | + $apl_constant = '_ECRIRE_AJAX_PARALLEL_LOAD'; |
|
| 47 | + $page = 'exec'; |
|
| 48 | + $echafauder = charger_fonction('echafauder', 'prive', true); |
|
| 49 | + define('_ZCORE_EXCLURE_PATH', ''); |
|
| 50 | + } else { |
|
| 51 | + $prefix_path = ''; |
|
| 52 | + $prefix_length = 0; |
|
| 53 | + $apl_constant = '_Z_AJAX_PARALLEL_LOAD'; |
|
| 54 | + $page = _SPIP_PAGE; |
|
| 55 | + $echafauder = charger_fonction('echafauder', 'public', true); |
|
| 56 | + define('_ZCORE_EXCLURE_PATH', '\bprive|\bsquelettes-dist' . (defined('_DIR_PLUGIN_DIST') ? '|\b' . rtrim( |
|
| 57 | + _DIR_PLUGIN_DIST, |
|
| 58 | + '/' |
|
| 59 | + ) : '')); |
|
| 60 | + } |
|
| 61 | + $prepend = (defined('_Z_PREPEND_PATH') ? _Z_PREPEND_PATH : ''); |
|
| 62 | + } |
|
| 63 | + $z_contenu = reset($z_blocs); // contenu par defaut |
|
| 64 | + |
|
| 65 | + $fond = $flux['args']['fond']; |
|
| 66 | + |
|
| 67 | + if ($prepend or strncmp($fond, $prefix_path, $prefix_length) == 0) { |
|
| 68 | + $fond = substr($fond, $prefix_length); |
|
| 69 | + $squelette = $flux['data']; |
|
| 70 | + $ext = $flux['args']['ext']; |
|
| 71 | + // Ajax Parallel loading : ne pas calculer le bloc, mais renvoyer un js qui le loadera en ajax |
|
| 72 | + if ( |
|
| 73 | + defined('_Z_AJAX_PARALLEL_LOAD_OK') |
|
| 74 | + and $dir = explode('/', $fond) |
|
| 75 | + and count($dir) == 2 // pas un sous repertoire |
|
| 76 | + and $dir = reset($dir) |
|
| 77 | + and in_array($dir, $z_blocs) // verifier deja qu'on est dans un bloc Z |
|
| 78 | + and defined($apl_constant) |
|
| 79 | + and in_array($dir, explode(',', constant($apl_constant))) // et dans un demande en APL |
|
| 80 | + and $pipe = z_trouver_bloc($prefix_path . $prepend, $dir, 'z_apl', $ext) // et qui contient le squelette APL |
|
| 81 | + ) { |
|
| 82 | + $flux['data'] = $pipe; |
|
| 83 | + |
|
| 84 | + return $flux; |
|
| 85 | + } |
|
| 86 | + |
|
| 87 | + // surcharger aussi les squelettes venant de squelettes-dist/ |
|
| 88 | + if ($squelette and !z_fond_valide($squelette)) { |
|
| 89 | + $squelette = ''; |
|
| 90 | + $echafauder = ''; |
|
| 91 | + } |
|
| 92 | + if ($prepend) { |
|
| 93 | + $squelette = substr(find_in_path($prefix_path . $prepend . "$fond.$ext"), 0, -strlen(".$ext")); |
|
| 94 | + if ($squelette) { |
|
| 95 | + $flux['data'] = $squelette; |
|
| 96 | + } |
|
| 97 | + } |
|
| 98 | + |
|
| 99 | + // gerer les squelettes non trouves |
|
| 100 | + // -> router vers les /dist.html |
|
| 101 | + // ou scaffolding ou page automatique les contenus |
|
| 102 | + if (!$squelette) { |
|
| 103 | + // si on est sur un ?page=XX non trouve |
|
| 104 | + if ( |
|
| 105 | + (isset($flux['args']['contexte'][$page]) |
|
| 106 | + and $flux['args']['contexte'][$page] == $fond) |
|
| 107 | + or (isset($flux['args']['contexte']['type-page']) |
|
| 108 | + and $flux['args']['contexte']['type-page'] == $fond) |
|
| 109 | + or ($fond == 'sommaire' |
|
| 110 | + and (!isset($flux['args']['contexte'][$page]) or !$flux['args']['contexte'][$page])) |
|
| 111 | + ) { |
|
| 112 | + // si on est sur un ?page=XX non trouve |
|
| 113 | + // se brancher sur contenu/xx si il existe |
|
| 114 | + // ou si c'est un objet spip, associe a une table, utiliser le fond homonyme |
|
| 115 | + if (!isset($disponible[$fond])) { |
|
| 116 | + $disponible[$fond] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $fond, $ext, $echafauder); |
|
| 117 | + } |
|
| 118 | + |
|
| 119 | + if ($disponible[$fond]) { |
|
| 120 | + $flux['data'] = substr(find_in_path($prefix_path . "page.$ext"), 0, -strlen(".$ext")); |
|
| 121 | + } |
|
| 122 | + } |
|
| 123 | + |
|
| 124 | + // echafaudage : |
|
| 125 | + // si c'est un fond de contenu d'un objet en base |
|
| 126 | + // generer un fond automatique a la volee pour les webmestres |
|
| 127 | + elseif (strncmp($fond, "$z_contenu/", strlen($z_contenu) + 1) == 0) { |
|
| 128 | + $type = substr($fond, strlen($z_contenu) + 1); |
|
| 129 | + if (($type == 'page') and isset($flux['args']['contexte'][$page])) { |
|
| 130 | + $type = $flux['args']['contexte'][$page]; |
|
| 131 | + } |
|
| 132 | + if (!isset($disponible[$type])) { |
|
| 133 | + $disponible[$type] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 134 | + } |
|
| 135 | + if (is_string($disponible[$type])) { |
|
| 136 | + $flux['data'] = $disponible[$type]; |
|
| 137 | + } elseif ( |
|
| 138 | + $echafauder |
|
| 139 | + and include_spip('inc/autoriser') |
|
| 140 | + and isset($GLOBALS['visiteur_session']['statut']) // performance |
|
| 141 | + and autoriser('echafauder', $type) |
|
| 142 | + and $is = $disponible[$type] |
|
| 143 | + and is_array($is) |
|
| 144 | + ) { |
|
| 145 | + $flux['data'] = $echafauder($type, $is[0], $is[1], $is[2], $ext); |
|
| 146 | + } else { |
|
| 147 | + $flux['data'] = ($disponible['404'] = z_contenu_disponible( |
|
| 148 | + $prefix_path . $prepend, |
|
| 149 | + $z_contenu, |
|
| 150 | + '404', |
|
| 151 | + $ext, |
|
| 152 | + $echafauder |
|
| 153 | + )); |
|
| 154 | + } |
|
| 155 | + } |
|
| 156 | + |
|
| 157 | + // sinon, si on demande un fond non trouve dans un des autres blocs |
|
| 158 | + // et si il y a bien un contenu correspondant ou echafaudable |
|
| 159 | + // se rabbatre sur le dist.html du bloc concerne |
|
| 160 | + else { |
|
| 161 | + if ( |
|
| 162 | + $dir = explode('/', $fond) |
|
| 163 | + and $dir = reset($dir) |
|
| 164 | + and $dir !== $z_contenu |
|
| 165 | + and in_array($dir, $z_blocs) |
|
| 166 | + ) { |
|
| 167 | + $type = substr($fond, strlen("$dir/")); |
|
| 168 | + if (($type == 'page') and isset($flux['args']['contexte'][$page])) { |
|
| 169 | + $type = $flux['args']['contexte'][$page]; |
|
| 170 | + } |
|
| 171 | + if ($type !== 'page' and !isset($disponible[$type])) { |
|
| 172 | + $disponible[$type] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 173 | + } |
|
| 174 | + if ($type == 'page' or $disponible[$type]) { |
|
| 175 | + $flux['data'] = z_trouver_bloc($prefix_path . $prepend, $dir, 'dist', $ext); |
|
| 176 | + } |
|
| 177 | + } |
|
| 178 | + } |
|
| 179 | + $squelette = $flux['data']; |
|
| 180 | + } |
|
| 181 | + // layout specifiques par type et compositions : |
|
| 182 | + // body-article.html |
|
| 183 | + // body-sommaire.html |
|
| 184 | + // pour des raisons de perfo, les declinaisons doivent etre dans le |
|
| 185 | + // meme dossier que body.html |
|
| 186 | + if ($fond == 'body' and substr($squelette, -strlen($fond)) == $fond) { |
|
| 187 | + if ( |
|
| 188 | + isset($flux['args']['contexte']['type-page']) |
|
| 189 | + and ( |
|
| 190 | + (isset($flux['args']['contexte']['composition']) |
|
| 191 | + and file_exists(($f = $squelette . '-' . $flux['args']['contexte']['type-page'] . '-' . $flux['args']['contexte']['composition']) . ".$ext")) |
|
| 192 | + or |
|
| 193 | + file_exists(($f = $squelette . '-' . $flux['args']['contexte']['type-page']) . ".$ext") |
|
| 194 | + ) |
|
| 195 | + ) { |
|
| 196 | + $flux['data'] = $f; |
|
| 197 | + } |
|
| 198 | + } elseif ( |
|
| 199 | + $fond == 'structure' |
|
| 200 | + and z_sanitize_var_zajax() |
|
| 201 | + and $f = find_in_path($prefix_path . $prepend . 'ajax' . ".$ext") |
|
| 202 | + ) { |
|
| 203 | + $flux['data'] = substr($f, 0, -strlen(".$ext")); |
|
| 204 | + } // chercher le fond correspondant a la composition |
|
| 205 | + elseif ( |
|
| 206 | + isset($flux['args']['contexte']['composition']) |
|
| 207 | + and (basename($fond) == 'page' or ($squelette and substr($squelette, -strlen($fond)) == $fond)) |
|
| 208 | + and $dir = substr($fond, $prefix_length) |
|
| 209 | + and $dir = explode('/', $dir) |
|
| 210 | + and $dir = reset($dir) |
|
| 211 | + and in_array($dir, $z_blocs) |
|
| 212 | + and $f = find_in_path($prefix_path . $prepend . $fond . '-' . $flux['args']['contexte']['composition'] . ".$ext") |
|
| 213 | + ) { |
|
| 214 | + $flux['data'] = substr($f, 0, -strlen(".$ext")); |
|
| 215 | + } |
|
| 216 | + } |
|
| 217 | + |
|
| 218 | + return $flux; |
|
| 219 | 219 | } |
| 220 | 220 | |
| 221 | 221 | /** |
@@ -225,18 +225,18 @@ discard block |
||
| 225 | 225 | * @return array |
| 226 | 226 | */ |
| 227 | 227 | function z_blocs($espace_prive = false) { |
| 228 | - if ($espace_prive) { |
|
| 229 | - return ($GLOBALS['z_blocs_ecrire'] ?? [ |
|
| 230 | - 'contenu', |
|
| 231 | - 'navigation', |
|
| 232 | - 'extra', |
|
| 233 | - 'head', |
|
| 234 | - 'hierarchie', |
|
| 235 | - 'top' |
|
| 236 | - ]); |
|
| 237 | - } |
|
| 238 | - |
|
| 239 | - return ($GLOBALS['z_blocs'] ?? ['contenu']); |
|
| 228 | + if ($espace_prive) { |
|
| 229 | + return ($GLOBALS['z_blocs_ecrire'] ?? [ |
|
| 230 | + 'contenu', |
|
| 231 | + 'navigation', |
|
| 232 | + 'extra', |
|
| 233 | + 'head', |
|
| 234 | + 'hierarchie', |
|
| 235 | + 'top' |
|
| 236 | + ]); |
|
| 237 | + } |
|
| 238 | + |
|
| 239 | + return ($GLOBALS['z_blocs'] ?? ['contenu']); |
|
| 240 | 240 | } |
| 241 | 241 | |
| 242 | 242 | /** |
@@ -251,11 +251,11 @@ discard block |
||
| 251 | 251 | * @return mixed |
| 252 | 252 | */ |
| 253 | 253 | function z_contenu_disponible($prefix_path, $z_contenu, $type, $ext, $echafauder = true) { |
| 254 | - if ($d = z_trouver_bloc($prefix_path, $z_contenu, $type, $ext)) { |
|
| 255 | - return $d; |
|
| 256 | - } |
|
| 254 | + if ($d = z_trouver_bloc($prefix_path, $z_contenu, $type, $ext)) { |
|
| 255 | + return $d; |
|
| 256 | + } |
|
| 257 | 257 | |
| 258 | - return $echafauder ? z_echafaudable($type) : false; |
|
| 258 | + return $echafauder ? z_echafaudable($type) : false; |
|
| 259 | 259 | } |
| 260 | 260 | |
| 261 | 261 | /** |
@@ -269,14 +269,14 @@ discard block |
||
| 269 | 269 | * `true` si on peut l'utiliser, `false` sinon. |
| 270 | 270 | **/ |
| 271 | 271 | function z_fond_valide($squelette) { |
| 272 | - if ( |
|
| 273 | - !_ZCORE_EXCLURE_PATH |
|
| 274 | - or !preg_match(',(' . _ZCORE_EXCLURE_PATH . ')/,', $squelette) |
|
| 275 | - ) { |
|
| 276 | - return true; |
|
| 277 | - } |
|
| 278 | - |
|
| 279 | - return false; |
|
| 272 | + if ( |
|
| 273 | + !_ZCORE_EXCLURE_PATH |
|
| 274 | + or !preg_match(',(' . _ZCORE_EXCLURE_PATH . ')/,', $squelette) |
|
| 275 | + ) { |
|
| 276 | + return true; |
|
| 277 | + } |
|
| 278 | + |
|
| 279 | + return false; |
|
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | /** |
@@ -294,14 +294,14 @@ discard block |
||
| 294 | 294 | * @return string |
| 295 | 295 | */ |
| 296 | 296 | function z_trouver_bloc($prefix_path, $bloc, $fond, $ext) { |
| 297 | - if ( |
|
| 298 | - (defined('_ZCORE_BLOC_PREFIX_SKEL') and $f = find_in_path("$prefix_path$bloc/$bloc.$fond.$ext") and z_fond_valide($f)) |
|
| 299 | - or ($f = find_in_path("$prefix_path$bloc/$fond.$ext") and z_fond_valide($f)) |
|
| 300 | - ) { |
|
| 301 | - return substr($f, 0, -strlen(".$ext")); |
|
| 302 | - } |
|
| 303 | - |
|
| 304 | - return ''; |
|
| 297 | + if ( |
|
| 298 | + (defined('_ZCORE_BLOC_PREFIX_SKEL') and $f = find_in_path("$prefix_path$bloc/$bloc.$fond.$ext") and z_fond_valide($f)) |
|
| 299 | + or ($f = find_in_path("$prefix_path$bloc/$fond.$ext") and z_fond_valide($f)) |
|
| 300 | + ) { |
|
| 301 | + return substr($f, 0, -strlen(".$ext")); |
|
| 302 | + } |
|
| 303 | + |
|
| 304 | + return ''; |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | /** |
@@ -313,52 +313,52 @@ discard block |
||
| 313 | 313 | * @return bool |
| 314 | 314 | */ |
| 315 | 315 | function z_echafaudable($type) { |
| 316 | - static $pages = null; |
|
| 317 | - static $echafaudable = []; |
|
| 318 | - if (isset($echafaudable[$type])) { |
|
| 319 | - return $echafaudable[$type]; |
|
| 320 | - } |
|
| 321 | - if (preg_match(',[^\w],', $type)) { |
|
| 322 | - return $echafaudable[$type] = false; |
|
| 323 | - } |
|
| 324 | - |
|
| 325 | - if (test_espace_prive()) { |
|
| 326 | - if (!function_exists('trouver_objet_exec')) { |
|
| 327 | - include_spip('inc/pipelines_ecrire'); |
|
| 328 | - } |
|
| 329 | - if ($e = trouver_objet_exec($type)) { |
|
| 330 | - return $echafaudable[$type] = [$e['table'], $e['table_objet_sql'], $e]; |
|
| 331 | - } else { |
|
| 332 | - // peut etre c'est un exec=types qui liste tous les objets "type" |
|
| 333 | - if ( |
|
| 334 | - ($t = objet_type($type, false)) !== $type |
|
| 335 | - and $e = trouver_objet_exec($t) |
|
| 336 | - ) { |
|
| 337 | - return $echafaudable[$type] = [$e['table'], $e['table_objet_sql'], $t]; |
|
| 338 | - } |
|
| 339 | - } |
|
| 340 | - } else { |
|
| 341 | - if (is_null($pages)) { |
|
| 342 | - $pages = []; |
|
| 343 | - $liste = lister_tables_objets_sql(); |
|
| 344 | - foreach ($liste as $t => $d) { |
|
| 345 | - if ($d['page']) { |
|
| 346 | - $pages[$d['page']] = [$d['table_objet'], $t]; |
|
| 347 | - } |
|
| 348 | - } |
|
| 349 | - } |
|
| 350 | - if (!isset($pages[$type])) { |
|
| 351 | - return $echafaudable[$type] = false; |
|
| 352 | - } |
|
| 353 | - if ((is_countable($pages[$type]) ? count($pages[$type]) : 0) == 2) { |
|
| 354 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 355 | - $pages[$type][] = $trouver_table(reset($pages[$type])); |
|
| 356 | - } |
|
| 357 | - |
|
| 358 | - return $echafaudable[$type] = $pages[$type]; |
|
| 359 | - } |
|
| 360 | - |
|
| 361 | - return $echafaudable[$type] = false; |
|
| 316 | + static $pages = null; |
|
| 317 | + static $echafaudable = []; |
|
| 318 | + if (isset($echafaudable[$type])) { |
|
| 319 | + return $echafaudable[$type]; |
|
| 320 | + } |
|
| 321 | + if (preg_match(',[^\w],', $type)) { |
|
| 322 | + return $echafaudable[$type] = false; |
|
| 323 | + } |
|
| 324 | + |
|
| 325 | + if (test_espace_prive()) { |
|
| 326 | + if (!function_exists('trouver_objet_exec')) { |
|
| 327 | + include_spip('inc/pipelines_ecrire'); |
|
| 328 | + } |
|
| 329 | + if ($e = trouver_objet_exec($type)) { |
|
| 330 | + return $echafaudable[$type] = [$e['table'], $e['table_objet_sql'], $e]; |
|
| 331 | + } else { |
|
| 332 | + // peut etre c'est un exec=types qui liste tous les objets "type" |
|
| 333 | + if ( |
|
| 334 | + ($t = objet_type($type, false)) !== $type |
|
| 335 | + and $e = trouver_objet_exec($t) |
|
| 336 | + ) { |
|
| 337 | + return $echafaudable[$type] = [$e['table'], $e['table_objet_sql'], $t]; |
|
| 338 | + } |
|
| 339 | + } |
|
| 340 | + } else { |
|
| 341 | + if (is_null($pages)) { |
|
| 342 | + $pages = []; |
|
| 343 | + $liste = lister_tables_objets_sql(); |
|
| 344 | + foreach ($liste as $t => $d) { |
|
| 345 | + if ($d['page']) { |
|
| 346 | + $pages[$d['page']] = [$d['table_objet'], $t]; |
|
| 347 | + } |
|
| 348 | + } |
|
| 349 | + } |
|
| 350 | + if (!isset($pages[$type])) { |
|
| 351 | + return $echafaudable[$type] = false; |
|
| 352 | + } |
|
| 353 | + if ((is_countable($pages[$type]) ? count($pages[$type]) : 0) == 2) { |
|
| 354 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 355 | + $pages[$type][] = $trouver_table(reset($pages[$type])); |
|
| 356 | + } |
|
| 357 | + |
|
| 358 | + return $echafaudable[$type] = $pages[$type]; |
|
| 359 | + } |
|
| 360 | + |
|
| 361 | + return $echafaudable[$type] = false; |
|
| 362 | 362 | } |
| 363 | 363 | |
| 364 | 364 | |
@@ -375,46 +375,46 @@ discard block |
||
| 375 | 375 | * @return string |
| 376 | 376 | */ |
| 377 | 377 | function prive_echafauder_dist($exec, $table, $table_sql, $desc_exec, $ext) { |
| 378 | - $scaffold = ''; |
|
| 379 | - |
|
| 380 | - // page objet ou objet_edit |
|
| 381 | - if (is_array($desc_exec)) { |
|
| 382 | - $type = $desc_exec['type']; |
|
| 383 | - $primary = $desc_exec['id_table_objet']; |
|
| 384 | - |
|
| 385 | - if ($desc_exec['edition'] === false) { |
|
| 386 | - $fond = 'objet'; |
|
| 387 | - } else { |
|
| 388 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 389 | - $desc = $trouver_table($table_sql); |
|
| 390 | - if (isset($desc['field']['id_rubrique'])) { |
|
| 391 | - $fond = 'objet_edit'; |
|
| 392 | - } else { |
|
| 393 | - $fond = 'objet_edit.sans_rubrique'; |
|
| 394 | - } |
|
| 395 | - } |
|
| 396 | - $dir = z_blocs(test_espace_prive()); |
|
| 397 | - $dir = reset($dir); |
|
| 398 | - $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/" . $fond . ',objet=' . $type . ',id_objet=#' . strtoupper($primary) . ',env}>'; |
|
| 399 | - } // page objets |
|
| 400 | - elseif ($type = $desc_exec and !str_contains($type, '/')) { |
|
| 401 | - $dir = z_blocs(test_espace_prive()); |
|
| 402 | - $dir = reset($dir); |
|
| 403 | - $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/objets,objet=" . $type . ',env} />'; |
|
| 404 | - } |
|
| 405 | - // morceau d'objet : on fournit le fond de sibstitution dans $desc_exec |
|
| 406 | - // et objet et tire de $table |
|
| 407 | - elseif ($fond = $desc_exec) { |
|
| 408 | - $dir = md5(dirname($fond)); |
|
| 409 | - $scaffold = "<INCLURE{fond=$fond,objet=" . objet_type($table) . ',env} />'; |
|
| 410 | - } |
|
| 411 | - |
|
| 412 | - $base_dir = sous_repertoire(_DIR_CACHE, 'scaffold', false); |
|
| 413 | - $base_dir = sous_repertoire($base_dir, $dir, false); |
|
| 414 | - $f = $base_dir . "$exec"; |
|
| 415 | - ecrire_fichier("$f.$ext", $scaffold); |
|
| 416 | - |
|
| 417 | - return $f; |
|
| 378 | + $scaffold = ''; |
|
| 379 | + |
|
| 380 | + // page objet ou objet_edit |
|
| 381 | + if (is_array($desc_exec)) { |
|
| 382 | + $type = $desc_exec['type']; |
|
| 383 | + $primary = $desc_exec['id_table_objet']; |
|
| 384 | + |
|
| 385 | + if ($desc_exec['edition'] === false) { |
|
| 386 | + $fond = 'objet'; |
|
| 387 | + } else { |
|
| 388 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 389 | + $desc = $trouver_table($table_sql); |
|
| 390 | + if (isset($desc['field']['id_rubrique'])) { |
|
| 391 | + $fond = 'objet_edit'; |
|
| 392 | + } else { |
|
| 393 | + $fond = 'objet_edit.sans_rubrique'; |
|
| 394 | + } |
|
| 395 | + } |
|
| 396 | + $dir = z_blocs(test_espace_prive()); |
|
| 397 | + $dir = reset($dir); |
|
| 398 | + $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/" . $fond . ',objet=' . $type . ',id_objet=#' . strtoupper($primary) . ',env}>'; |
|
| 399 | + } // page objets |
|
| 400 | + elseif ($type = $desc_exec and !str_contains($type, '/')) { |
|
| 401 | + $dir = z_blocs(test_espace_prive()); |
|
| 402 | + $dir = reset($dir); |
|
| 403 | + $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/objets,objet=" . $type . ',env} />'; |
|
| 404 | + } |
|
| 405 | + // morceau d'objet : on fournit le fond de sibstitution dans $desc_exec |
|
| 406 | + // et objet et tire de $table |
|
| 407 | + elseif ($fond = $desc_exec) { |
|
| 408 | + $dir = md5(dirname($fond)); |
|
| 409 | + $scaffold = "<INCLURE{fond=$fond,objet=" . objet_type($table) . ',env} />'; |
|
| 410 | + } |
|
| 411 | + |
|
| 412 | + $base_dir = sous_repertoire(_DIR_CACHE, 'scaffold', false); |
|
| 413 | + $base_dir = sous_repertoire($base_dir, $dir, false); |
|
| 414 | + $f = $base_dir . "$exec"; |
|
| 415 | + ecrire_fichier("$f.$ext", $scaffold); |
|
| 416 | + |
|
| 417 | + return $f; |
|
| 418 | 418 | } |
| 419 | 419 | |
| 420 | 420 | /** |
@@ -423,17 +423,17 @@ discard block |
||
| 423 | 423 | * @return bool|string |
| 424 | 424 | */ |
| 425 | 425 | function z_sanitize_var_zajax() { |
| 426 | - $z_ajax = _request('var_zajax'); |
|
| 427 | - if (!$z_ajax) { |
|
| 428 | - return false; |
|
| 429 | - } |
|
| 430 | - if ( |
|
| 431 | - !$z_blocs = z_blocs(test_espace_prive()) |
|
| 432 | - or !in_array($z_ajax, $z_blocs) |
|
| 433 | - ) { |
|
| 434 | - set_request('var_zajax'); // enlever cette demande incongrue |
|
| 435 | - $z_ajax = false; |
|
| 436 | - } |
|
| 437 | - |
|
| 438 | - return $z_ajax; |
|
| 426 | + $z_ajax = _request('var_zajax'); |
|
| 427 | + if (!$z_ajax) { |
|
| 428 | + return false; |
|
| 429 | + } |
|
| 430 | + if ( |
|
| 431 | + !$z_blocs = z_blocs(test_espace_prive()) |
|
| 432 | + or !in_array($z_ajax, $z_blocs) |
|
| 433 | + ) { |
|
| 434 | + set_request('var_zajax'); // enlever cette demande incongrue |
|
| 435 | + $z_ajax = false; |
|
| 436 | + } |
|
| 437 | + |
|
| 438 | + return $z_ajax; |
|
| 439 | 439 | } |
@@ -53,7 +53,7 @@ discard block |
||
| 53 | 53 | $apl_constant = '_Z_AJAX_PARALLEL_LOAD'; |
| 54 | 54 | $page = _SPIP_PAGE; |
| 55 | 55 | $echafauder = charger_fonction('echafauder', 'public', true); |
| 56 | - define('_ZCORE_EXCLURE_PATH', '\bprive|\bsquelettes-dist' . (defined('_DIR_PLUGIN_DIST') ? '|\b' . rtrim( |
|
| 56 | + define('_ZCORE_EXCLURE_PATH', '\bprive|\bsquelettes-dist'.(defined('_DIR_PLUGIN_DIST') ? '|\b'.rtrim( |
|
| 57 | 57 | _DIR_PLUGIN_DIST, |
| 58 | 58 | '/' |
| 59 | 59 | ) : '')); |
@@ -77,7 +77,7 @@ discard block |
||
| 77 | 77 | and in_array($dir, $z_blocs) // verifier deja qu'on est dans un bloc Z |
| 78 | 78 | and defined($apl_constant) |
| 79 | 79 | and in_array($dir, explode(',', constant($apl_constant))) // et dans un demande en APL |
| 80 | - and $pipe = z_trouver_bloc($prefix_path . $prepend, $dir, 'z_apl', $ext) // et qui contient le squelette APL |
|
| 80 | + and $pipe = z_trouver_bloc($prefix_path.$prepend, $dir, 'z_apl', $ext) // et qui contient le squelette APL |
|
| 81 | 81 | ) { |
| 82 | 82 | $flux['data'] = $pipe; |
| 83 | 83 | |
@@ -90,7 +90,7 @@ discard block |
||
| 90 | 90 | $echafauder = ''; |
| 91 | 91 | } |
| 92 | 92 | if ($prepend) { |
| 93 | - $squelette = substr(find_in_path($prefix_path . $prepend . "$fond.$ext"), 0, -strlen(".$ext")); |
|
| 93 | + $squelette = substr(find_in_path($prefix_path.$prepend."$fond.$ext"), 0, -strlen(".$ext")); |
|
| 94 | 94 | if ($squelette) { |
| 95 | 95 | $flux['data'] = $squelette; |
| 96 | 96 | } |
@@ -113,11 +113,11 @@ discard block |
||
| 113 | 113 | // se brancher sur contenu/xx si il existe |
| 114 | 114 | // ou si c'est un objet spip, associe a une table, utiliser le fond homonyme |
| 115 | 115 | if (!isset($disponible[$fond])) { |
| 116 | - $disponible[$fond] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $fond, $ext, $echafauder); |
|
| 116 | + $disponible[$fond] = z_contenu_disponible($prefix_path.$prepend, $z_contenu, $fond, $ext, $echafauder); |
|
| 117 | 117 | } |
| 118 | 118 | |
| 119 | 119 | if ($disponible[$fond]) { |
| 120 | - $flux['data'] = substr(find_in_path($prefix_path . "page.$ext"), 0, -strlen(".$ext")); |
|
| 120 | + $flux['data'] = substr(find_in_path($prefix_path."page.$ext"), 0, -strlen(".$ext")); |
|
| 121 | 121 | } |
| 122 | 122 | } |
| 123 | 123 | |
@@ -130,7 +130,7 @@ discard block |
||
| 130 | 130 | $type = $flux['args']['contexte'][$page]; |
| 131 | 131 | } |
| 132 | 132 | if (!isset($disponible[$type])) { |
| 133 | - $disponible[$type] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 133 | + $disponible[$type] = z_contenu_disponible($prefix_path.$prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 134 | 134 | } |
| 135 | 135 | if (is_string($disponible[$type])) { |
| 136 | 136 | $flux['data'] = $disponible[$type]; |
@@ -145,7 +145,7 @@ discard block |
||
| 145 | 145 | $flux['data'] = $echafauder($type, $is[0], $is[1], $is[2], $ext); |
| 146 | 146 | } else { |
| 147 | 147 | $flux['data'] = ($disponible['404'] = z_contenu_disponible( |
| 148 | - $prefix_path . $prepend, |
|
| 148 | + $prefix_path.$prepend, |
|
| 149 | 149 | $z_contenu, |
| 150 | 150 | '404', |
| 151 | 151 | $ext, |
@@ -169,10 +169,10 @@ discard block |
||
| 169 | 169 | $type = $flux['args']['contexte'][$page]; |
| 170 | 170 | } |
| 171 | 171 | if ($type !== 'page' and !isset($disponible[$type])) { |
| 172 | - $disponible[$type] = z_contenu_disponible($prefix_path . $prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 172 | + $disponible[$type] = z_contenu_disponible($prefix_path.$prepend, $z_contenu, $type, $ext, $echafauder); |
|
| 173 | 173 | } |
| 174 | 174 | if ($type == 'page' or $disponible[$type]) { |
| 175 | - $flux['data'] = z_trouver_bloc($prefix_path . $prepend, $dir, 'dist', $ext); |
|
| 175 | + $flux['data'] = z_trouver_bloc($prefix_path.$prepend, $dir, 'dist', $ext); |
|
| 176 | 176 | } |
| 177 | 177 | } |
| 178 | 178 | } |
@@ -188,9 +188,9 @@ discard block |
||
| 188 | 188 | isset($flux['args']['contexte']['type-page']) |
| 189 | 189 | and ( |
| 190 | 190 | (isset($flux['args']['contexte']['composition']) |
| 191 | - and file_exists(($f = $squelette . '-' . $flux['args']['contexte']['type-page'] . '-' . $flux['args']['contexte']['composition']) . ".$ext")) |
|
| 191 | + and file_exists(($f = $squelette.'-'.$flux['args']['contexte']['type-page'].'-'.$flux['args']['contexte']['composition']).".$ext")) |
|
| 192 | 192 | or |
| 193 | - file_exists(($f = $squelette . '-' . $flux['args']['contexte']['type-page']) . ".$ext") |
|
| 193 | + file_exists(($f = $squelette.'-'.$flux['args']['contexte']['type-page']).".$ext") |
|
| 194 | 194 | ) |
| 195 | 195 | ) { |
| 196 | 196 | $flux['data'] = $f; |
@@ -198,7 +198,7 @@ discard block |
||
| 198 | 198 | } elseif ( |
| 199 | 199 | $fond == 'structure' |
| 200 | 200 | and z_sanitize_var_zajax() |
| 201 | - and $f = find_in_path($prefix_path . $prepend . 'ajax' . ".$ext") |
|
| 201 | + and $f = find_in_path($prefix_path.$prepend.'ajax'.".$ext") |
|
| 202 | 202 | ) { |
| 203 | 203 | $flux['data'] = substr($f, 0, -strlen(".$ext")); |
| 204 | 204 | } // chercher le fond correspondant a la composition |
@@ -209,7 +209,7 @@ discard block |
||
| 209 | 209 | and $dir = explode('/', $dir) |
| 210 | 210 | and $dir = reset($dir) |
| 211 | 211 | and in_array($dir, $z_blocs) |
| 212 | - and $f = find_in_path($prefix_path . $prepend . $fond . '-' . $flux['args']['contexte']['composition'] . ".$ext") |
|
| 212 | + and $f = find_in_path($prefix_path.$prepend.$fond.'-'.$flux['args']['contexte']['composition'].".$ext") |
|
| 213 | 213 | ) { |
| 214 | 214 | $flux['data'] = substr($f, 0, -strlen(".$ext")); |
| 215 | 215 | } |
@@ -271,7 +271,7 @@ discard block |
||
| 271 | 271 | function z_fond_valide($squelette) { |
| 272 | 272 | if ( |
| 273 | 273 | !_ZCORE_EXCLURE_PATH |
| 274 | - or !preg_match(',(' . _ZCORE_EXCLURE_PATH . ')/,', $squelette) |
|
| 274 | + or !preg_match(',('._ZCORE_EXCLURE_PATH.')/,', $squelette) |
|
| 275 | 275 | ) { |
| 276 | 276 | return true; |
| 277 | 277 | } |
@@ -395,23 +395,23 @@ discard block |
||
| 395 | 395 | } |
| 396 | 396 | $dir = z_blocs(test_espace_prive()); |
| 397 | 397 | $dir = reset($dir); |
| 398 | - $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/" . $fond . ',objet=' . $type . ',id_objet=#' . strtoupper($primary) . ',env}>'; |
|
| 398 | + $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/".$fond.',objet='.$type.',id_objet=#'.strtoupper($primary).',env}>'; |
|
| 399 | 399 | } // page objets |
| 400 | 400 | elseif ($type = $desc_exec and !str_contains($type, '/')) { |
| 401 | 401 | $dir = z_blocs(test_espace_prive()); |
| 402 | 402 | $dir = reset($dir); |
| 403 | - $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/objets,objet=" . $type . ',env} />'; |
|
| 403 | + $scaffold = "<INCLURE{fond=prive/echafaudage/$dir/objets,objet=".$type.',env} />'; |
|
| 404 | 404 | } |
| 405 | 405 | // morceau d'objet : on fournit le fond de sibstitution dans $desc_exec |
| 406 | 406 | // et objet et tire de $table |
| 407 | 407 | elseif ($fond = $desc_exec) { |
| 408 | 408 | $dir = md5(dirname($fond)); |
| 409 | - $scaffold = "<INCLURE{fond=$fond,objet=" . objet_type($table) . ',env} />'; |
|
| 409 | + $scaffold = "<INCLURE{fond=$fond,objet=".objet_type($table).',env} />'; |
|
| 410 | 410 | } |
| 411 | 411 | |
| 412 | 412 | $base_dir = sous_repertoire(_DIR_CACHE, 'scaffold', false); |
| 413 | 413 | $base_dir = sous_repertoire($base_dir, $dir, false); |
| 414 | - $f = $base_dir . "$exec"; |
|
| 414 | + $f = $base_dir."$exec"; |
|
| 415 | 415 | ecrire_fichier("$f.$ext", $scaffold); |
| 416 | 416 | |
| 417 | 417 | return $f; |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | **/ |
| 24 | 24 | |
| 25 | 25 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 26 | - return; |
|
| 26 | + return; |
|
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | /** |
@@ -41,9 +41,9 @@ discard block |
||
| 41 | 41 | * texte |
| 42 | 42 | */ |
| 43 | 43 | function sandbox_composer_texte($texte, &$p) { |
| 44 | - $code = "'" . str_replace(['\\', "'"], ['\\\\', "\\'"], $texte) . "'"; |
|
| 44 | + $code = "'" . str_replace(['\\', "'"], ['\\\\', "\\'"], $texte) . "'"; |
|
| 45 | 45 | |
| 46 | - return $code; |
|
| 46 | + return $code; |
|
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | |
@@ -59,42 +59,42 @@ discard block |
||
| 59 | 59 | * @return string |
| 60 | 60 | */ |
| 61 | 61 | function sandbox_composer_filtre($fonc, $code, $arglist, &$p, $nb_arg_droite = 1000): string { |
| 62 | - if (isset($GLOBALS['spip_matrice'][$fonc])) { |
|
| 63 | - $code = "filtrer('$fonc',$code$arglist)"; |
|
| 64 | - } |
|
| 65 | - |
|
| 66 | - // le filtre est defini sous forme de fonction ou de methode |
|
| 67 | - // par ex. dans inc_texte, inc_filtres ou mes_fonctions |
|
| 68 | - elseif ($f = chercher_filtre($fonc)) { |
|
| 69 | - // cas particulier : le filtre |set doit acceder a la $Pile |
|
| 70 | - // proto: filtre_set(&$Pile, $val, $args...) |
|
| 71 | - if (strpbrk($f, ':')) { // Class::method |
|
| 72 | - $refl = new ReflectionMethod($f); |
|
| 73 | - } else { |
|
| 74 | - $refl = new ReflectionFunction($f); |
|
| 75 | - } |
|
| 76 | - $refs = $refl->getParameters(); |
|
| 77 | - if (isset($refs[0]) and $refs[0]->name == 'Pile') { |
|
| 78 | - $code = "$f(\$Pile,$code$arglist)"; |
|
| 79 | - $nb_arg_gauche = 2; // la balise à laquelle s'applique le filtre + $Pile |
|
| 80 | - } else { |
|
| 81 | - $code = "$f($code$arglist)"; |
|
| 82 | - $nb_arg_gauche = 1; // la balise à laquelle s'applique le filtre |
|
| 83 | - } |
|
| 84 | - $nb_args_f = $nb_arg_gauche + $nb_arg_droite; |
|
| 85 | - $min_f = $refl->getNumberOfRequiredParameters(); |
|
| 86 | - if (($nb_args_f < $min_f)) { |
|
| 87 | - $msg_args = ['filtre' => texte_script($fonc), 'nb' => $min_f - $nb_args_f]; |
|
| 88 | - erreur_squelette([ 'zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 89 | - } |
|
| 90 | - } |
|
| 91 | - // le filtre n'existe pas, |
|
| 92 | - // on le notifie |
|
| 93 | - else { |
|
| 94 | - erreur_squelette(['zbug_erreur_filtre', ['filtre' => texte_script($fonc)]], $p); |
|
| 95 | - } |
|
| 96 | - |
|
| 97 | - return $code; |
|
| 62 | + if (isset($GLOBALS['spip_matrice'][$fonc])) { |
|
| 63 | + $code = "filtrer('$fonc',$code$arglist)"; |
|
| 64 | + } |
|
| 65 | + |
|
| 66 | + // le filtre est defini sous forme de fonction ou de methode |
|
| 67 | + // par ex. dans inc_texte, inc_filtres ou mes_fonctions |
|
| 68 | + elseif ($f = chercher_filtre($fonc)) { |
|
| 69 | + // cas particulier : le filtre |set doit acceder a la $Pile |
|
| 70 | + // proto: filtre_set(&$Pile, $val, $args...) |
|
| 71 | + if (strpbrk($f, ':')) { // Class::method |
|
| 72 | + $refl = new ReflectionMethod($f); |
|
| 73 | + } else { |
|
| 74 | + $refl = new ReflectionFunction($f); |
|
| 75 | + } |
|
| 76 | + $refs = $refl->getParameters(); |
|
| 77 | + if (isset($refs[0]) and $refs[0]->name == 'Pile') { |
|
| 78 | + $code = "$f(\$Pile,$code$arglist)"; |
|
| 79 | + $nb_arg_gauche = 2; // la balise à laquelle s'applique le filtre + $Pile |
|
| 80 | + } else { |
|
| 81 | + $code = "$f($code$arglist)"; |
|
| 82 | + $nb_arg_gauche = 1; // la balise à laquelle s'applique le filtre |
|
| 83 | + } |
|
| 84 | + $nb_args_f = $nb_arg_gauche + $nb_arg_droite; |
|
| 85 | + $min_f = $refl->getNumberOfRequiredParameters(); |
|
| 86 | + if (($nb_args_f < $min_f)) { |
|
| 87 | + $msg_args = ['filtre' => texte_script($fonc), 'nb' => $min_f - $nb_args_f]; |
|
| 88 | + erreur_squelette([ 'zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 89 | + } |
|
| 90 | + } |
|
| 91 | + // le filtre n'existe pas, |
|
| 92 | + // on le notifie |
|
| 93 | + else { |
|
| 94 | + erreur_squelette(['zbug_erreur_filtre', ['filtre' => texte_script($fonc)]], $p); |
|
| 95 | + } |
|
| 96 | + |
|
| 97 | + return $code; |
|
| 98 | 98 | } |
| 99 | 99 | |
| 100 | 100 | // Calculer un <INCLURE(xx.php)> |
@@ -117,15 +117,15 @@ discard block |
||
| 117 | 117 | * @return string |
| 118 | 118 | */ |
| 119 | 119 | function sandbox_composer_inclure_php($fichier, &$p, $_contexte) { |
| 120 | - $compil = texte_script(memoriser_contexte_compil($p)); |
|
| 121 | - // si inexistant, on essaiera a l'execution |
|
| 122 | - if ($path = find_in_path($fichier)) { |
|
| 123 | - $path = "\"$path\""; |
|
| 124 | - } else { |
|
| 125 | - $path = "find_in_path(\"$fichier\")"; |
|
| 126 | - } |
|
| 127 | - |
|
| 128 | - return sprintf(CODE_INCLURE_SCRIPT, $path, $fichier, $compil, $_contexte); |
|
| 120 | + $compil = texte_script(memoriser_contexte_compil($p)); |
|
| 121 | + // si inexistant, on essaiera a l'execution |
|
| 122 | + if ($path = find_in_path($fichier)) { |
|
| 123 | + $path = "\"$path\""; |
|
| 124 | + } else { |
|
| 125 | + $path = "find_in_path(\"$fichier\")"; |
|
| 126 | + } |
|
| 127 | + |
|
| 128 | + return sprintf(CODE_INCLURE_SCRIPT, $path, $fichier, $compil, $_contexte); |
|
| 129 | 129 | } |
| 130 | 130 | |
| 131 | 131 | /** |
@@ -137,20 +137,20 @@ discard block |
||
| 137 | 137 | * @return string |
| 138 | 138 | */ |
| 139 | 139 | function sandbox_composer_interdire_scripts($code, &$p) { |
| 140 | - // Securite |
|
| 141 | - if ( |
|
| 142 | - $p->interdire_scripts |
|
| 143 | - and $p->etoile != '**' |
|
| 144 | - ) { |
|
| 145 | - if (!preg_match("/^sinon[(](.*),'([^']*)'[)]$/", $code, $r)) { |
|
| 146 | - $code = "interdire_scripts($code)"; |
|
| 147 | - } else { |
|
| 148 | - $code = interdire_scripts($r[2]); |
|
| 149 | - $code = "sinon(interdire_scripts($r[1]),'$code')"; |
|
| 150 | - } |
|
| 151 | - } |
|
| 152 | - |
|
| 153 | - return $code; |
|
| 140 | + // Securite |
|
| 141 | + if ( |
|
| 142 | + $p->interdire_scripts |
|
| 143 | + and $p->etoile != '**' |
|
| 144 | + ) { |
|
| 145 | + if (!preg_match("/^sinon[(](.*),'([^']*)'[)]$/", $code, $r)) { |
|
| 146 | + $code = "interdire_scripts($code)"; |
|
| 147 | + } else { |
|
| 148 | + $code = interdire_scripts($r[2]); |
|
| 149 | + $code = "sinon(interdire_scripts($r[1]),'$code')"; |
|
| 150 | + } |
|
| 151 | + } |
|
| 152 | + |
|
| 153 | + return $code; |
|
| 154 | 154 | } |
| 155 | 155 | |
| 156 | 156 | |
@@ -169,30 +169,30 @@ discard block |
||
| 169 | 169 | * @return mixed|string |
| 170 | 170 | */ |
| 171 | 171 | function sandbox_filtrer_squelette($skel, $corps, $filtres) { |
| 172 | - $series_filtres = func_get_args(); |
|
| 173 | - array_shift($series_filtres);// skel |
|
| 174 | - array_shift($series_filtres);// corps |
|
| 175 | - |
|
| 176 | - // proteger les <INCLUDE> et tous les morceaux de php licites |
|
| 177 | - if ($skel['process_ins'] == 'php') { |
|
| 178 | - $corps = preg_replace_callback(',<[?](\s|php|=).*[?]>,UimsS', 'echapper_php_callback', $corps); |
|
| 179 | - } |
|
| 180 | - |
|
| 181 | - // recuperer les couples de remplacement |
|
| 182 | - $replace = echapper_php_callback(); |
|
| 183 | - |
|
| 184 | - foreach ($series_filtres as $filtres) { |
|
| 185 | - if (is_countable($filtres) ? count($filtres) : 0) { |
|
| 186 | - foreach ($filtres as $filtre) { |
|
| 187 | - if ($filtre and $f = chercher_filtre($filtre)) { |
|
| 188 | - $corps = $f($corps); |
|
| 189 | - } |
|
| 190 | - } |
|
| 191 | - } |
|
| 192 | - } |
|
| 193 | - |
|
| 194 | - // restaurer les echappements |
|
| 195 | - return str_replace($replace[0], $replace[1], $corps); |
|
| 172 | + $series_filtres = func_get_args(); |
|
| 173 | + array_shift($series_filtres);// skel |
|
| 174 | + array_shift($series_filtres);// corps |
|
| 175 | + |
|
| 176 | + // proteger les <INCLUDE> et tous les morceaux de php licites |
|
| 177 | + if ($skel['process_ins'] == 'php') { |
|
| 178 | + $corps = preg_replace_callback(',<[?](\s|php|=).*[?]>,UimsS', 'echapper_php_callback', $corps); |
|
| 179 | + } |
|
| 180 | + |
|
| 181 | + // recuperer les couples de remplacement |
|
| 182 | + $replace = echapper_php_callback(); |
|
| 183 | + |
|
| 184 | + foreach ($series_filtres as $filtres) { |
|
| 185 | + if (is_countable($filtres) ? count($filtres) : 0) { |
|
| 186 | + foreach ($filtres as $filtre) { |
|
| 187 | + if ($filtre and $f = chercher_filtre($filtre)) { |
|
| 188 | + $corps = $f($corps); |
|
| 189 | + } |
|
| 190 | + } |
|
| 191 | + } |
|
| 192 | + } |
|
| 193 | + |
|
| 194 | + // restaurer les echappements |
|
| 195 | + return str_replace($replace[0], $replace[1], $corps); |
|
| 196 | 196 | } |
| 197 | 197 | |
| 198 | 198 | |
@@ -211,21 +211,21 @@ discard block |
||
| 211 | 211 | * - array : Liste( liste des codes PHP, liste des substitutions ) |
| 212 | 212 | **/ |
| 213 | 213 | function echapper_php_callback($r = null) { |
| 214 | - static $src = []; |
|
| 215 | - static $dst = []; |
|
| 214 | + static $src = []; |
|
| 215 | + static $dst = []; |
|
| 216 | 216 | |
| 217 | - // si on recoit un tableau, on est en mode echappement |
|
| 218 | - // on enregistre le code a echapper dans dst, et le code echappe dans src |
|
| 219 | - if (is_array($r)) { |
|
| 220 | - $dst[] = $r[0]; |
|
| 217 | + // si on recoit un tableau, on est en mode echappement |
|
| 218 | + // on enregistre le code a echapper dans dst, et le code echappe dans src |
|
| 219 | + if (is_array($r)) { |
|
| 220 | + $dst[] = $r[0]; |
|
| 221 | 221 | |
| 222 | - return $src[] = '___' . md5($r[0]) . '___'; |
|
| 223 | - } |
|
| 222 | + return $src[] = '___' . md5($r[0]) . '___'; |
|
| 223 | + } |
|
| 224 | 224 | |
| 225 | - // si on recoit pas un tableau, on renvoit les couples de substitution |
|
| 226 | - // et on RAZ les remplacements |
|
| 227 | - $r = [$src, $dst]; |
|
| 228 | - $src = $dst = []; |
|
| 225 | + // si on recoit pas un tableau, on renvoit les couples de substitution |
|
| 226 | + // et on RAZ les remplacements |
|
| 227 | + $r = [$src, $dst]; |
|
| 228 | + $src = $dst = []; |
|
| 229 | 229 | |
| 230 | - return $r; |
|
| 230 | + return $r; |
|
| 231 | 231 | } |
@@ -41,7 +41,7 @@ discard block |
||
| 41 | 41 | * texte |
| 42 | 42 | */ |
| 43 | 43 | function sandbox_composer_texte($texte, &$p) { |
| 44 | - $code = "'" . str_replace(['\\', "'"], ['\\\\', "\\'"], $texte) . "'"; |
|
| 44 | + $code = "'".str_replace(['\\', "'"], ['\\\\', "\\'"], $texte)."'"; |
|
| 45 | 45 | |
| 46 | 46 | return $code; |
| 47 | 47 | } |
@@ -85,7 +85,7 @@ discard block |
||
| 85 | 85 | $min_f = $refl->getNumberOfRequiredParameters(); |
| 86 | 86 | if (($nb_args_f < $min_f)) { |
| 87 | 87 | $msg_args = ['filtre' => texte_script($fonc), 'nb' => $min_f - $nb_args_f]; |
| 88 | - erreur_squelette([ 'zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 88 | + erreur_squelette(['zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 89 | 89 | } |
| 90 | 90 | } |
| 91 | 91 | // le filtre n'existe pas, |
@@ -170,8 +170,8 @@ discard block |
||
| 170 | 170 | */ |
| 171 | 171 | function sandbox_filtrer_squelette($skel, $corps, $filtres) { |
| 172 | 172 | $series_filtres = func_get_args(); |
| 173 | - array_shift($series_filtres);// skel |
|
| 174 | - array_shift($series_filtres);// corps |
|
| 173 | + array_shift($series_filtres); // skel |
|
| 174 | + array_shift($series_filtres); // corps |
|
| 175 | 175 | |
| 176 | 176 | // proteger les <INCLUDE> et tous les morceaux de php licites |
| 177 | 177 | if ($skel['process_ins'] == 'php') { |
@@ -219,7 +219,7 @@ discard block |
||
| 219 | 219 | if (is_array($r)) { |
| 220 | 220 | $dst[] = $r[0]; |
| 221 | 221 | |
| 222 | - return $src[] = '___' . md5($r[0]) . '___'; |
|
| 222 | + return $src[] = '___'.md5($r[0]).'___'; |
|
| 223 | 223 | } |
| 224 | 224 | |
| 225 | 225 | // si on recoit pas un tableau, on renvoit les couples de substitution |
@@ -19,11 +19,11 @@ discard block |
||
| 19 | 19 | **/ |
| 20 | 20 | |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | if (!defined('_DATA_SOURCE_MAX_SIZE')) { |
| 26 | - define('_DATA_SOURCE_MAX_SIZE', 2 * 1_048_576); |
|
| 26 | + define('_DATA_SOURCE_MAX_SIZE', 2 * 1_048_576); |
|
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | |
@@ -44,17 +44,17 @@ discard block |
||
| 44 | 44 | * Description de la boucle complétée des champs |
| 45 | 45 | */ |
| 46 | 46 | function iterateur_DATA_dist($b) { |
| 47 | - $b->iterateur = 'DATA'; # designe la classe d'iterateur |
|
| 48 | - $b->show = [ |
|
| 49 | - 'field' => [ |
|
| 50 | - 'cle' => 'STRING', |
|
| 51 | - 'valeur' => 'STRING', |
|
| 52 | - '*' => 'ALL' // Champ joker * |
|
| 53 | - ] |
|
| 54 | - ]; |
|
| 55 | - $b->select[] = '.valeur'; |
|
| 56 | - |
|
| 57 | - return $b; |
|
| 47 | + $b->iterateur = 'DATA'; # designe la classe d'iterateur |
|
| 48 | + $b->show = [ |
|
| 49 | + 'field' => [ |
|
| 50 | + 'cle' => 'STRING', |
|
| 51 | + 'valeur' => 'STRING', |
|
| 52 | + '*' => 'ALL' // Champ joker * |
|
| 53 | + ] |
|
| 54 | + ]; |
|
| 55 | + $b->select[] = '.valeur'; |
|
| 56 | + |
|
| 57 | + return $b; |
|
| 58 | 58 | } |
| 59 | 59 | |
| 60 | 60 | |
@@ -69,7 +69,7 @@ discard block |
||
| 69 | 69 | * @return array |
| 70 | 70 | */ |
| 71 | 71 | function inc_file_to_array_dist($data) { |
| 72 | - return preg_split('/\r?\n/', $data); |
|
| 72 | + return preg_split('/\r?\n/', $data); |
|
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | /** |
@@ -78,9 +78,9 @@ discard block |
||
| 78 | 78 | * @return array |
| 79 | 79 | */ |
| 80 | 80 | function inc_plugins_to_array_dist() { |
| 81 | - include_spip('inc/plugin'); |
|
| 81 | + include_spip('inc/plugin'); |
|
| 82 | 82 | |
| 83 | - return liste_chemin_plugin_actifs(); |
|
| 83 | + return liste_chemin_plugin_actifs(); |
|
| 84 | 84 | } |
| 85 | 85 | |
| 86 | 86 | /** |
@@ -90,7 +90,7 @@ discard block |
||
| 90 | 90 | * @return array |
| 91 | 91 | */ |
| 92 | 92 | function inc_xml_to_array_dist($data) { |
| 93 | - return @XMLObjectToArray(new SimpleXmlIterator($data)); |
|
| 93 | + return @XMLObjectToArray(new SimpleXmlIterator($data)); |
|
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | /** |
@@ -102,14 +102,14 @@ discard block |
||
| 102 | 102 | * |
| 103 | 103 | */ |
| 104 | 104 | function inc_object_to_array($object) { |
| 105 | - if (!is_object($object) && !is_array($object)) { |
|
| 106 | - return $object; |
|
| 107 | - } |
|
| 108 | - if (is_object($object)) { |
|
| 109 | - $object = get_object_vars($object); |
|
| 110 | - } |
|
| 111 | - |
|
| 112 | - return array_map('inc_object_to_array', $object); |
|
| 105 | + if (!is_object($object) && !is_array($object)) { |
|
| 106 | + return $object; |
|
| 107 | + } |
|
| 108 | + if (is_object($object)) { |
|
| 109 | + $object = get_object_vars($object); |
|
| 110 | + } |
|
| 111 | + |
|
| 112 | + return array_map('inc_object_to_array', $object); |
|
| 113 | 113 | } |
| 114 | 114 | |
| 115 | 115 | /** |
@@ -119,20 +119,20 @@ discard block |
||
| 119 | 119 | * @return array|bool |
| 120 | 120 | */ |
| 121 | 121 | function inc_sql_to_array_dist($data) { |
| 122 | - # sortir le connecteur de $data |
|
| 123 | - preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v); |
|
| 124 | - $serveur = (string)$v[1]; |
|
| 125 | - $req = trim($v[2]); |
|
| 126 | - if ($s = sql_query($req, $serveur)) { |
|
| 127 | - $r = []; |
|
| 128 | - while ($t = sql_fetch($s)) { |
|
| 129 | - $r[] = $t; |
|
| 130 | - } |
|
| 131 | - |
|
| 132 | - return $r; |
|
| 133 | - } |
|
| 134 | - |
|
| 135 | - return false; |
|
| 122 | + # sortir le connecteur de $data |
|
| 123 | + preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v); |
|
| 124 | + $serveur = (string)$v[1]; |
|
| 125 | + $req = trim($v[2]); |
|
| 126 | + if ($s = sql_query($req, $serveur)) { |
|
| 127 | + $r = []; |
|
| 128 | + while ($t = sql_fetch($s)) { |
|
| 129 | + $r[] = $t; |
|
| 130 | + } |
|
| 131 | + |
|
| 132 | + return $r; |
|
| 133 | + } |
|
| 134 | + |
|
| 135 | + return false; |
|
| 136 | 136 | } |
| 137 | 137 | |
| 138 | 138 | /** |
@@ -142,13 +142,13 @@ discard block |
||
| 142 | 142 | * @return array|bool |
| 143 | 143 | */ |
| 144 | 144 | function inc_json_to_array_dist($data) { |
| 145 | - try { |
|
| 146 | - $json = json_decode($data, true, 512, JSON_THROW_ON_ERROR); |
|
| 147 | - } catch (JsonException $e) { |
|
| 148 | - $json = null; |
|
| 149 | - spip_log('Failed to parse Json data : ' . $e->getMessage(), _LOG_INFO); |
|
| 150 | - } |
|
| 151 | - return is_array($json) ? (array) $json : []; |
|
| 145 | + try { |
|
| 146 | + $json = json_decode($data, true, 512, JSON_THROW_ON_ERROR); |
|
| 147 | + } catch (JsonException $e) { |
|
| 148 | + $json = null; |
|
| 149 | + spip_log('Failed to parse Json data : ' . $e->getMessage(), _LOG_INFO); |
|
| 150 | + } |
|
| 151 | + return is_array($json) ? (array) $json : []; |
|
| 152 | 152 | } |
| 153 | 153 | |
| 154 | 154 | /** |
@@ -158,30 +158,30 @@ discard block |
||
| 158 | 158 | * @return array|bool |
| 159 | 159 | */ |
| 160 | 160 | function inc_csv_to_array_dist($data) { |
| 161 | - include_spip('inc/csv'); |
|
| 162 | - [$entete, $csv] = analyse_csv($data); |
|
| 163 | - array_unshift($csv, $entete); |
|
| 164 | - |
|
| 165 | - include_spip('inc/charsets'); |
|
| 166 | - $i = 1; |
|
| 167 | - foreach ($entete as $k => $v) { |
|
| 168 | - if (trim($v) == '') { |
|
| 169 | - $v = 'col' . $i; |
|
| 170 | - } // reperer des eventuelles cases vides |
|
| 171 | - if (is_numeric($v) and $v < 0) { |
|
| 172 | - $v = '__' . $v; |
|
| 173 | - } // ne pas risquer d'ecraser une cle numerique |
|
| 174 | - if (is_numeric($v)) { |
|
| 175 | - $v = '_' . $v; |
|
| 176 | - } // ne pas risquer d'ecraser une cle numerique |
|
| 177 | - $v = strtolower(preg_replace(',\W+,', '_', translitteration($v))); |
|
| 178 | - foreach ($csv as &$item) { |
|
| 179 | - $item[$v] = &$item[$k]; |
|
| 180 | - } |
|
| 181 | - $i++; |
|
| 182 | - } |
|
| 183 | - |
|
| 184 | - return $csv; |
|
| 161 | + include_spip('inc/csv'); |
|
| 162 | + [$entete, $csv] = analyse_csv($data); |
|
| 163 | + array_unshift($csv, $entete); |
|
| 164 | + |
|
| 165 | + include_spip('inc/charsets'); |
|
| 166 | + $i = 1; |
|
| 167 | + foreach ($entete as $k => $v) { |
|
| 168 | + if (trim($v) == '') { |
|
| 169 | + $v = 'col' . $i; |
|
| 170 | + } // reperer des eventuelles cases vides |
|
| 171 | + if (is_numeric($v) and $v < 0) { |
|
| 172 | + $v = '__' . $v; |
|
| 173 | + } // ne pas risquer d'ecraser une cle numerique |
|
| 174 | + if (is_numeric($v)) { |
|
| 175 | + $v = '_' . $v; |
|
| 176 | + } // ne pas risquer d'ecraser une cle numerique |
|
| 177 | + $v = strtolower(preg_replace(',\W+,', '_', translitteration($v))); |
|
| 178 | + foreach ($csv as &$item) { |
|
| 179 | + $item[$v] = &$item[$k]; |
|
| 180 | + } |
|
| 181 | + $i++; |
|
| 182 | + } |
|
| 183 | + |
|
| 184 | + return $csv; |
|
| 185 | 185 | } |
| 186 | 186 | |
| 187 | 187 | /** |
@@ -191,13 +191,13 @@ discard block |
||
| 191 | 191 | * @return array|bool |
| 192 | 192 | */ |
| 193 | 193 | function inc_rss_to_array_dist($data) { |
| 194 | - $tableau = null; |
|
| 195 | - include_spip('inc/syndic'); |
|
| 196 | - if (is_array($rss = analyser_backend($data))) { |
|
| 197 | - $tableau = $rss; |
|
| 198 | - } |
|
| 194 | + $tableau = null; |
|
| 195 | + include_spip('inc/syndic'); |
|
| 196 | + if (is_array($rss = analyser_backend($data))) { |
|
| 197 | + $tableau = $rss; |
|
| 198 | + } |
|
| 199 | 199 | |
| 200 | - return $tableau; |
|
| 200 | + return $tableau; |
|
| 201 | 201 | } |
| 202 | 202 | |
| 203 | 203 | /** |
@@ -207,9 +207,9 @@ discard block |
||
| 207 | 207 | * @return array|bool |
| 208 | 208 | */ |
| 209 | 209 | function inc_atom_to_array_dist($data) { |
| 210 | - $rss_to_array = charger_fonction('rss_to_array', 'inc'); |
|
| 210 | + $rss_to_array = charger_fonction('rss_to_array', 'inc'); |
|
| 211 | 211 | |
| 212 | - return $rss_to_array($data); |
|
| 212 | + return $rss_to_array($data); |
|
| 213 | 213 | } |
| 214 | 214 | |
| 215 | 215 | /** |
@@ -220,12 +220,12 @@ discard block |
||
| 220 | 220 | * @return array|bool |
| 221 | 221 | */ |
| 222 | 222 | function inc_glob_to_array_dist($data) { |
| 223 | - $a = glob( |
|
| 224 | - $data, |
|
| 225 | - GLOB_MARK | GLOB_NOSORT | GLOB_BRACE |
|
| 226 | - ); |
|
| 223 | + $a = glob( |
|
| 224 | + $data, |
|
| 225 | + GLOB_MARK | GLOB_NOSORT | GLOB_BRACE |
|
| 226 | + ); |
|
| 227 | 227 | |
| 228 | - return $a ?: []; |
|
| 228 | + return $a ?: []; |
|
| 229 | 229 | } |
| 230 | 230 | |
| 231 | 231 | /** |
@@ -236,14 +236,14 @@ discard block |
||
| 236 | 236 | * @throws Exception |
| 237 | 237 | */ |
| 238 | 238 | function inc_yaml_to_array_dist($data) { |
| 239 | - include_spip('inc/yaml-mini'); |
|
| 240 | - if (!function_exists('yaml_decode')) { |
|
| 241 | - throw new Exception('YAML: impossible de trouver la fonction yaml_decode'); |
|
| 239 | + include_spip('inc/yaml-mini'); |
|
| 240 | + if (!function_exists('yaml_decode')) { |
|
| 241 | + throw new Exception('YAML: impossible de trouver la fonction yaml_decode'); |
|
| 242 | 242 | |
| 243 | - return false; |
|
| 244 | - } |
|
| 243 | + return false; |
|
| 244 | + } |
|
| 245 | 245 | |
| 246 | - return yaml_decode($data); |
|
| 246 | + return yaml_decode($data); |
|
| 247 | 247 | } |
| 248 | 248 | |
| 249 | 249 | |
@@ -258,7 +258,7 @@ discard block |
||
| 258 | 258 | * @return array|bool |
| 259 | 259 | */ |
| 260 | 260 | function inc_pregfiles_to_array_dist($dir, $regexp = -1, $limit = 10000) { |
| 261 | - return (array)preg_files($dir, $regexp, $limit); |
|
| 261 | + return (array)preg_files($dir, $regexp, $limit); |
|
| 262 | 262 | } |
| 263 | 263 | |
| 264 | 264 | /** |
@@ -270,23 +270,23 @@ discard block |
||
| 270 | 270 | * @return array|bool |
| 271 | 271 | */ |
| 272 | 272 | function inc_ls_to_array_dist($data) { |
| 273 | - $glob_to_array = charger_fonction('glob_to_array', 'inc'); |
|
| 274 | - $a = $glob_to_array($data); |
|
| 275 | - foreach ($a as &$v) { |
|
| 276 | - $b = (array)@stat($v); |
|
| 277 | - foreach ($b as $k => $ignore) { |
|
| 278 | - if (is_numeric($k)) { |
|
| 279 | - unset($b[$k]); |
|
| 280 | - } |
|
| 281 | - } |
|
| 282 | - $b['file'] = preg_replace('`/$`', '', $v) ; |
|
| 283 | - $v = array_merge( |
|
| 284 | - pathinfo($v), |
|
| 285 | - $b |
|
| 286 | - ); |
|
| 287 | - } |
|
| 288 | - |
|
| 289 | - return $a; |
|
| 273 | + $glob_to_array = charger_fonction('glob_to_array', 'inc'); |
|
| 274 | + $a = $glob_to_array($data); |
|
| 275 | + foreach ($a as &$v) { |
|
| 276 | + $b = (array)@stat($v); |
|
| 277 | + foreach ($b as $k => $ignore) { |
|
| 278 | + if (is_numeric($k)) { |
|
| 279 | + unset($b[$k]); |
|
| 280 | + } |
|
| 281 | + } |
|
| 282 | + $b['file'] = preg_replace('`/$`', '', $v) ; |
|
| 283 | + $v = array_merge( |
|
| 284 | + pathinfo($v), |
|
| 285 | + $b |
|
| 286 | + ); |
|
| 287 | + } |
|
| 288 | + |
|
| 289 | + return $a; |
|
| 290 | 290 | } |
| 291 | 291 | |
| 292 | 292 | /** |
@@ -296,25 +296,25 @@ discard block |
||
| 296 | 296 | * @return array|bool |
| 297 | 297 | */ |
| 298 | 298 | function XMLObjectToArray($object) { |
| 299 | - $xml_array = []; |
|
| 300 | - for ($object->rewind(); $object->valid(); $object->next()) { |
|
| 301 | - if (array_key_exists($key = $object->key(), $xml_array)) { |
|
| 302 | - $key .= '-' . uniqid(); |
|
| 303 | - } |
|
| 304 | - $vars = get_object_vars($object->current()); |
|
| 305 | - if (isset($vars['@attributes'])) { |
|
| 306 | - foreach ($vars['@attributes'] as $k => $v) { |
|
| 307 | - $xml_array[$key][$k] = $v; |
|
| 308 | - } |
|
| 309 | - } |
|
| 310 | - if ($object->hasChildren()) { |
|
| 311 | - $xml_array[$key][] = XMLObjectToArray( |
|
| 312 | - $object->current() |
|
| 313 | - ); |
|
| 314 | - } else { |
|
| 315 | - $xml_array[$key][] = strval($object->current()); |
|
| 316 | - } |
|
| 317 | - } |
|
| 318 | - |
|
| 319 | - return $xml_array; |
|
| 299 | + $xml_array = []; |
|
| 300 | + for ($object->rewind(); $object->valid(); $object->next()) { |
|
| 301 | + if (array_key_exists($key = $object->key(), $xml_array)) { |
|
| 302 | + $key .= '-' . uniqid(); |
|
| 303 | + } |
|
| 304 | + $vars = get_object_vars($object->current()); |
|
| 305 | + if (isset($vars['@attributes'])) { |
|
| 306 | + foreach ($vars['@attributes'] as $k => $v) { |
|
| 307 | + $xml_array[$key][$k] = $v; |
|
| 308 | + } |
|
| 309 | + } |
|
| 310 | + if ($object->hasChildren()) { |
|
| 311 | + $xml_array[$key][] = XMLObjectToArray( |
|
| 312 | + $object->current() |
|
| 313 | + ); |
|
| 314 | + } else { |
|
| 315 | + $xml_array[$key][] = strval($object->current()); |
|
| 316 | + } |
|
| 317 | + } |
|
| 318 | + |
|
| 319 | + return $xml_array; |
|
| 320 | 320 | } |
@@ -121,7 +121,7 @@ discard block |
||
| 121 | 121 | function inc_sql_to_array_dist($data) { |
| 122 | 122 | # sortir le connecteur de $data |
| 123 | 123 | preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v); |
| 124 | - $serveur = (string)$v[1]; |
|
| 124 | + $serveur = (string) $v[1]; |
|
| 125 | 125 | $req = trim($v[2]); |
| 126 | 126 | if ($s = sql_query($req, $serveur)) { |
| 127 | 127 | $r = []; |
@@ -146,7 +146,7 @@ discard block |
||
| 146 | 146 | $json = json_decode($data, true, 512, JSON_THROW_ON_ERROR); |
| 147 | 147 | } catch (JsonException $e) { |
| 148 | 148 | $json = null; |
| 149 | - spip_log('Failed to parse Json data : ' . $e->getMessage(), _LOG_INFO); |
|
| 149 | + spip_log('Failed to parse Json data : '.$e->getMessage(), _LOG_INFO); |
|
| 150 | 150 | } |
| 151 | 151 | return is_array($json) ? (array) $json : []; |
| 152 | 152 | } |
@@ -166,13 +166,13 @@ discard block |
||
| 166 | 166 | $i = 1; |
| 167 | 167 | foreach ($entete as $k => $v) { |
| 168 | 168 | if (trim($v) == '') { |
| 169 | - $v = 'col' . $i; |
|
| 169 | + $v = 'col'.$i; |
|
| 170 | 170 | } // reperer des eventuelles cases vides |
| 171 | 171 | if (is_numeric($v) and $v < 0) { |
| 172 | - $v = '__' . $v; |
|
| 172 | + $v = '__'.$v; |
|
| 173 | 173 | } // ne pas risquer d'ecraser une cle numerique |
| 174 | 174 | if (is_numeric($v)) { |
| 175 | - $v = '_' . $v; |
|
| 175 | + $v = '_'.$v; |
|
| 176 | 176 | } // ne pas risquer d'ecraser une cle numerique |
| 177 | 177 | $v = strtolower(preg_replace(',\W+,', '_', translitteration($v))); |
| 178 | 178 | foreach ($csv as &$item) { |
@@ -258,7 +258,7 @@ discard block |
||
| 258 | 258 | * @return array|bool |
| 259 | 259 | */ |
| 260 | 260 | function inc_pregfiles_to_array_dist($dir, $regexp = -1, $limit = 10000) { |
| 261 | - return (array)preg_files($dir, $regexp, $limit); |
|
| 261 | + return (array) preg_files($dir, $regexp, $limit); |
|
| 262 | 262 | } |
| 263 | 263 | |
| 264 | 264 | /** |
@@ -273,13 +273,13 @@ discard block |
||
| 273 | 273 | $glob_to_array = charger_fonction('glob_to_array', 'inc'); |
| 274 | 274 | $a = $glob_to_array($data); |
| 275 | 275 | foreach ($a as &$v) { |
| 276 | - $b = (array)@stat($v); |
|
| 276 | + $b = (array) @stat($v); |
|
| 277 | 277 | foreach ($b as $k => $ignore) { |
| 278 | 278 | if (is_numeric($k)) { |
| 279 | 279 | unset($b[$k]); |
| 280 | 280 | } |
| 281 | 281 | } |
| 282 | - $b['file'] = preg_replace('`/$`', '', $v) ; |
|
| 282 | + $b['file'] = preg_replace('`/$`', '', $v); |
|
| 283 | 283 | $v = array_merge( |
| 284 | 284 | pathinfo($v), |
| 285 | 285 | $b |
@@ -299,7 +299,7 @@ discard block |
||
| 299 | 299 | $xml_array = []; |
| 300 | 300 | for ($object->rewind(); $object->valid(); $object->next()) { |
| 301 | 301 | if (array_key_exists($key = $object->key(), $xml_array)) { |
| 302 | - $key .= '-' . uniqid(); |
|
| 302 | + $key .= '-'.uniqid(); |
|
| 303 | 303 | } |
| 304 | 304 | $vars = get_object_vars($object->current()); |
| 305 | 305 | if (isset($vars['@attributes'])) { |
@@ -19,7 +19,7 @@ discard block |
||
| 19 | 19 | **/ |
| 20 | 20 | |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | include_spip('iterateur/data'); |
@@ -37,10 +37,10 @@ discard block |
||
| 37 | 37 | * Description de la boucle complétée des champs |
| 38 | 38 | */ |
| 39 | 39 | function iterateur_CONDITION_dist($b) { |
| 40 | - $b->iterateur = 'CONDITION'; # designe la classe d'iterateur |
|
| 41 | - $b->show = [ |
|
| 42 | - 'field' => [] |
|
| 43 | - ]; |
|
| 40 | + $b->iterateur = 'CONDITION'; # designe la classe d'iterateur |
|
| 41 | + $b->show = [ |
|
| 42 | + 'field' => [] |
|
| 43 | + ]; |
|
| 44 | 44 | |
| 45 | - return $b; |
|
| 45 | + return $b; |
|
| 46 | 46 | } |
@@ -19,7 +19,7 @@ discard block |
||
| 19 | 19 | **/ |
| 20 | 20 | |
| 21 | 21 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 22 | - return; |
|
| 22 | + return; |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /** |
@@ -38,13 +38,13 @@ discard block |
||
| 38 | 38 | * Description de la boucle complétée des champs |
| 39 | 39 | */ |
| 40 | 40 | function iterateur_POUR_dist($b) { |
| 41 | - $b->iterateur = 'DATA'; # designe la classe d'iterateur |
|
| 42 | - $b->show = [ |
|
| 43 | - 'field' => [ |
|
| 44 | - 'cle' => 'STRING', |
|
| 45 | - 'valeur' => 'STRING', |
|
| 46 | - ] |
|
| 47 | - ]; |
|
| 41 | + $b->iterateur = 'DATA'; # designe la classe d'iterateur |
|
| 42 | + $b->show = [ |
|
| 43 | + 'field' => [ |
|
| 44 | + 'cle' => 'STRING', |
|
| 45 | + 'valeur' => 'STRING', |
|
| 46 | + ] |
|
| 47 | + ]; |
|
| 48 | 48 | |
| 49 | - return $b; |
|
| 49 | + return $b; |
|
| 50 | 50 | } |
@@ -20,7 +20,7 @@ discard block |
||
| 20 | 20 | |
| 21 | 21 | |
| 22 | 22 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 23 | - return; |
|
| 23 | + return; |
|
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | |
@@ -38,17 +38,17 @@ discard block |
||
| 38 | 38 | * Description de la boucle complétée des champs |
| 39 | 39 | */ |
| 40 | 40 | function iterateur_php_dist($b, $iteratorName) { |
| 41 | - $b->iterateur = $iteratorName; # designe la classe d'iterateur |
|
| 42 | - $b->show = [ |
|
| 43 | - 'field' => [ |
|
| 44 | - 'cle' => 'STRING', |
|
| 45 | - 'valeur' => 'STRING', |
|
| 46 | - ] |
|
| 47 | - ]; |
|
| 48 | - |
|
| 49 | - foreach (get_class_methods($iteratorName) as $method) { |
|
| 50 | - $b->show['field'][strtolower($method)] = 'METHOD'; |
|
| 51 | - } |
|
| 52 | - |
|
| 53 | - return $b; |
|
| 41 | + $b->iterateur = $iteratorName; # designe la classe d'iterateur |
|
| 42 | + $b->show = [ |
|
| 43 | + 'field' => [ |
|
| 44 | + 'cle' => 'STRING', |
|
| 45 | + 'valeur' => 'STRING', |
|
| 46 | + ] |
|
| 47 | + ]; |
|
| 48 | + |
|
| 49 | + foreach (get_class_methods($iteratorName) as $method) { |
|
| 50 | + $b->show['field'][strtolower($method)] = 'METHOD'; |
|
| 51 | + } |
|
| 52 | + |
|
| 53 | + return $b; |
|
| 54 | 54 | } |
@@ -16,10 +16,10 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Pipelines |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | if (test_espace_prive()) { |
| 22 | - include_spip('inc/pipelines_ecrire'); |
|
| 22 | + include_spip('inc/pipelines_ecrire'); |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | |
@@ -45,28 +45,28 @@ discard block |
||
| 45 | 45 | * @return string Contenu qui sera inséré dans le head HTML |
| 46 | 46 | **/ |
| 47 | 47 | function f_jQuery($texte) { |
| 48 | - $x = ''; |
|
| 49 | - $jquery_plugins = pipeline( |
|
| 50 | - 'jquery_plugins', |
|
| 51 | - [ |
|
| 52 | - 'javascript/jquery.js', |
|
| 53 | - 'javascript/jquery.form.js', |
|
| 54 | - 'javascript/jquery.autosave.js', |
|
| 55 | - 'javascript/jquery.placeholder-label.js', |
|
| 56 | - 'javascript/ajaxCallback.js', |
|
| 57 | - 'javascript/js.cookie.js', |
|
| 58 | - ] |
|
| 59 | - ); |
|
| 60 | - foreach (array_unique($jquery_plugins) as $script) { |
|
| 61 | - if ($script = find_in_path(supprimer_timestamp($script))) { |
|
| 62 | - $script = timestamp($script); |
|
| 63 | - $x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n"; |
|
| 64 | - } |
|
| 65 | - } |
|
| 48 | + $x = ''; |
|
| 49 | + $jquery_plugins = pipeline( |
|
| 50 | + 'jquery_plugins', |
|
| 51 | + [ |
|
| 52 | + 'javascript/jquery.js', |
|
| 53 | + 'javascript/jquery.form.js', |
|
| 54 | + 'javascript/jquery.autosave.js', |
|
| 55 | + 'javascript/jquery.placeholder-label.js', |
|
| 56 | + 'javascript/ajaxCallback.js', |
|
| 57 | + 'javascript/js.cookie.js', |
|
| 58 | + ] |
|
| 59 | + ); |
|
| 60 | + foreach (array_unique($jquery_plugins) as $script) { |
|
| 61 | + if ($script = find_in_path(supprimer_timestamp($script))) { |
|
| 62 | + $script = timestamp($script); |
|
| 63 | + $x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n"; |
|
| 64 | + } |
|
| 65 | + } |
|
| 66 | 66 | |
| 67 | - $texte = $x . $texte; |
|
| 67 | + $texte = $x . $texte; |
|
| 68 | 68 | |
| 69 | - return $texte; |
|
| 69 | + return $texte; |
|
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | |
@@ -85,28 +85,28 @@ discard block |
||
| 85 | 85 | * @return string Contenu de la page envoyée au navigateur |
| 86 | 86 | **/ |
| 87 | 87 | function f_surligne($texte) { |
| 88 | - if (!$GLOBALS['html']) { |
|
| 89 | - return $texte; |
|
| 90 | - } |
|
| 91 | - $rech = _request('var_recherche'); |
|
| 92 | - if ( |
|
| 93 | - !$rech |
|
| 94 | - and (!defined('_SURLIGNE_RECHERCHE_REFERERS') |
|
| 95 | - or !_SURLIGNE_RECHERCHE_REFERERS |
|
| 96 | - or !isset($_SERVER['HTTP_REFERER'])) |
|
| 97 | - ) { |
|
| 98 | - return $texte; |
|
| 99 | - } |
|
| 100 | - include_spip('inc/surligne'); |
|
| 88 | + if (!$GLOBALS['html']) { |
|
| 89 | + return $texte; |
|
| 90 | + } |
|
| 91 | + $rech = _request('var_recherche'); |
|
| 92 | + if ( |
|
| 93 | + !$rech |
|
| 94 | + and (!defined('_SURLIGNE_RECHERCHE_REFERERS') |
|
| 95 | + or !_SURLIGNE_RECHERCHE_REFERERS |
|
| 96 | + or !isset($_SERVER['HTTP_REFERER'])) |
|
| 97 | + ) { |
|
| 98 | + return $texte; |
|
| 99 | + } |
|
| 100 | + include_spip('inc/surligne'); |
|
| 101 | 101 | |
| 102 | - if (isset($_SERVER['HTTP_REFERER'])) { |
|
| 103 | - $_SERVER['HTTP_REFERER'] = preg_replace(',[^\w\,/#&;:-]+,', ' ', $_SERVER['HTTP_REFERER']); |
|
| 104 | - } |
|
| 105 | - if ($rech) { |
|
| 106 | - $rech = preg_replace(',[^\w\,/#&;:-]+,', ' ', $rech); |
|
| 107 | - } |
|
| 102 | + if (isset($_SERVER['HTTP_REFERER'])) { |
|
| 103 | + $_SERVER['HTTP_REFERER'] = preg_replace(',[^\w\,/#&;:-]+,', ' ', $_SERVER['HTTP_REFERER']); |
|
| 104 | + } |
|
| 105 | + if ($rech) { |
|
| 106 | + $rech = preg_replace(',[^\w\,/#&;:-]+,', ' ', $rech); |
|
| 107 | + } |
|
| 108 | 108 | |
| 109 | - return surligner_mots($texte, $rech); |
|
| 109 | + return surligner_mots($texte, $rech); |
|
| 110 | 110 | } |
| 111 | 111 | |
| 112 | 112 | /** |
@@ -123,33 +123,33 @@ discard block |
||
| 123 | 123 | * @return string Contenu de la page envoyée au navigateur |
| 124 | 124 | **/ |
| 125 | 125 | function f_tidy($texte) { |
| 126 | - /** |
|
| 127 | - * Indentation à faire ? |
|
| 128 | - * |
|
| 129 | - * - true : actif. |
|
| 130 | - * - false par défaut. |
|
| 131 | - */ |
|
| 126 | + /** |
|
| 127 | + * Indentation à faire ? |
|
| 128 | + * |
|
| 129 | + * - true : actif. |
|
| 130 | + * - false par défaut. |
|
| 131 | + */ |
|
| 132 | 132 | |
| 133 | - if ( |
|
| 134 | - $GLOBALS['xhtml'] # tidy demande |
|
| 135 | - and $GLOBALS['html'] # verifie que la page avait l'entete text/html |
|
| 136 | - and strlen($texte) |
|
| 137 | - and !headers_sent() |
|
| 138 | - ) { |
|
| 139 | - # Compatibilite ascendante |
|
| 140 | - if (!is_string($GLOBALS['xhtml'])) { |
|
| 141 | - $GLOBALS['xhtml'] = 'tidy'; |
|
| 142 | - } |
|
| 133 | + if ( |
|
| 134 | + $GLOBALS['xhtml'] # tidy demande |
|
| 135 | + and $GLOBALS['html'] # verifie que la page avait l'entete text/html |
|
| 136 | + and strlen($texte) |
|
| 137 | + and !headers_sent() |
|
| 138 | + ) { |
|
| 139 | + # Compatibilite ascendante |
|
| 140 | + if (!is_string($GLOBALS['xhtml'])) { |
|
| 141 | + $GLOBALS['xhtml'] = 'tidy'; |
|
| 142 | + } |
|
| 143 | 143 | |
| 144 | - if (!$f = charger_fonction($GLOBALS['xhtml'], 'inc', true)) { |
|
| 145 | - spip_log("tidy absent, l'indenteur SPIP le remplace"); |
|
| 146 | - $f = charger_fonction('sax', 'xml'); |
|
| 147 | - } |
|
| 144 | + if (!$f = charger_fonction($GLOBALS['xhtml'], 'inc', true)) { |
|
| 145 | + spip_log("tidy absent, l'indenteur SPIP le remplace"); |
|
| 146 | + $f = charger_fonction('sax', 'xml'); |
|
| 147 | + } |
|
| 148 | 148 | |
| 149 | - return $f($texte); |
|
| 150 | - } |
|
| 149 | + return $f($texte); |
|
| 150 | + } |
|
| 151 | 151 | |
| 152 | - return $texte; |
|
| 152 | + return $texte; |
|
| 153 | 153 | } |
| 154 | 154 | |
| 155 | 155 | |
@@ -168,21 +168,21 @@ discard block |
||
| 168 | 168 | * @return string Contenu de la page envoyée au navigateur |
| 169 | 169 | **/ |
| 170 | 170 | function f_insert_head($texte) { |
| 171 | - if (!$GLOBALS['html']) { |
|
| 172 | - return $texte; |
|
| 173 | - } |
|
| 174 | - include_spip('public/admin'); // pour strripos |
|
| 171 | + if (!$GLOBALS['html']) { |
|
| 172 | + return $texte; |
|
| 173 | + } |
|
| 174 | + include_spip('public/admin'); // pour strripos |
|
| 175 | 175 | |
| 176 | - ($pos = stripos($texte, '</head>')) |
|
| 177 | - || ($pos = stripos($texte, '<body>')) |
|
| 178 | - || ($pos = 0); |
|
| 176 | + ($pos = stripos($texte, '</head>')) |
|
| 177 | + || ($pos = stripos($texte, '<body>')) |
|
| 178 | + || ($pos = 0); |
|
| 179 | 179 | |
| 180 | - if (!str_contains(substr($texte, 0, $pos), '<!-- insert_head -->')) { |
|
| 181 | - $insert = "\n" . pipeline('insert_head', '<!-- f_insert_head -->') . "\n"; |
|
| 182 | - $texte = substr_replace($texte, $insert, $pos, 0); |
|
| 183 | - } |
|
| 180 | + if (!str_contains(substr($texte, 0, $pos), '<!-- insert_head -->')) { |
|
| 181 | + $insert = "\n" . pipeline('insert_head', '<!-- f_insert_head -->') . "\n"; |
|
| 182 | + $texte = substr_replace($texte, $insert, $pos, 0); |
|
| 183 | + } |
|
| 184 | 184 | |
| 185 | - return $texte; |
|
| 185 | + return $texte; |
|
| 186 | 186 | } |
| 187 | 187 | |
| 188 | 188 | |
@@ -198,34 +198,34 @@ discard block |
||
| 198 | 198 | * @return string Contenu de la page envoyée au navigateur |
| 199 | 199 | **/ |
| 200 | 200 | function f_admin($texte) { |
| 201 | - if (defined('_VAR_PREVIEW') and _VAR_PREVIEW and $GLOBALS['html']) { |
|
| 202 | - include_spip('inc/filtres'); // pour http_img_pack |
|
| 203 | - $x = "<div class='spip-previsu' " |
|
| 204 | - . http_style_background('preview-32.png', '', 32) |
|
| 205 | - . '>' |
|
| 206 | - . _T('previsualisation') |
|
| 207 | - . '</div>'; |
|
| 208 | - if (!$pos = stripos($texte, '</body>')) { |
|
| 209 | - $pos = strlen($texte); |
|
| 210 | - } |
|
| 211 | - $texte = substr_replace($texte, $x, $pos, 0); |
|
| 212 | - // pas de preview en fenetre enfant |
|
| 213 | - $x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='" . addslashes($GLOBALS['meta']['adresse_site']) . "';}</script>"; |
|
| 214 | - if (!$pos = stripos($texte, '<head') or !$pos = strpos($texte, '>', $pos)) { |
|
| 215 | - $pos = -1; |
|
| 216 | - } |
|
| 217 | - $texte = substr_replace($texte, $x, $pos + 1, 0); |
|
| 218 | - } |
|
| 201 | + if (defined('_VAR_PREVIEW') and _VAR_PREVIEW and $GLOBALS['html']) { |
|
| 202 | + include_spip('inc/filtres'); // pour http_img_pack |
|
| 203 | + $x = "<div class='spip-previsu' " |
|
| 204 | + . http_style_background('preview-32.png', '', 32) |
|
| 205 | + . '>' |
|
| 206 | + . _T('previsualisation') |
|
| 207 | + . '</div>'; |
|
| 208 | + if (!$pos = stripos($texte, '</body>')) { |
|
| 209 | + $pos = strlen($texte); |
|
| 210 | + } |
|
| 211 | + $texte = substr_replace($texte, $x, $pos, 0); |
|
| 212 | + // pas de preview en fenetre enfant |
|
| 213 | + $x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='" . addslashes($GLOBALS['meta']['adresse_site']) . "';}</script>"; |
|
| 214 | + if (!$pos = stripos($texte, '<head') or !$pos = strpos($texte, '>', $pos)) { |
|
| 215 | + $pos = -1; |
|
| 216 | + } |
|
| 217 | + $texte = substr_replace($texte, $x, $pos + 1, 0); |
|
| 218 | + } |
|
| 219 | 219 | |
| 220 | - if (isset($GLOBALS['affiche_boutons_admin']) and $GLOBALS['affiche_boutons_admin']) { |
|
| 221 | - include_spip('public/admin'); |
|
| 222 | - $texte = affiche_boutons_admin($texte); |
|
| 223 | - } |
|
| 224 | - if (_request('var_mode') == 'noajax') { |
|
| 225 | - $texte = preg_replace(',(class=[\'"][^\'"]*)ajax([^\'"]*[\'"]),Uims', "\\1\\2", $texte); |
|
| 226 | - } |
|
| 220 | + if (isset($GLOBALS['affiche_boutons_admin']) and $GLOBALS['affiche_boutons_admin']) { |
|
| 221 | + include_spip('public/admin'); |
|
| 222 | + $texte = affiche_boutons_admin($texte); |
|
| 223 | + } |
|
| 224 | + if (_request('var_mode') == 'noajax') { |
|
| 225 | + $texte = preg_replace(',(class=[\'"][^\'"]*)ajax([^\'"]*[\'"]),Uims', "\\1\\2", $texte); |
|
| 226 | + } |
|
| 227 | 227 | |
| 228 | - return $texte; |
|
| 228 | + return $texte; |
|
| 229 | 229 | } |
| 230 | 230 | |
| 231 | 231 | /** |
@@ -243,11 +243,11 @@ discard block |
||
| 243 | 243 | * @return array $flux Description et contenu de l'inclusion |
| 244 | 244 | **/ |
| 245 | 245 | function f_recuperer_fond($flux) { |
| 246 | - if (!test_espace_prive()) { |
|
| 247 | - return $flux; |
|
| 248 | - } |
|
| 246 | + if (!test_espace_prive()) { |
|
| 247 | + return $flux; |
|
| 248 | + } |
|
| 249 | 249 | |
| 250 | - return f_afficher_blocs_ecrire($flux); |
|
| 250 | + return f_afficher_blocs_ecrire($flux); |
|
| 251 | 251 | } |
| 252 | 252 | |
| 253 | 253 | /** |
@@ -261,30 +261,30 @@ discard block |
||
| 261 | 261 | * @return string Contenu de la page envoyée au navigateur |
| 262 | 262 | */ |
| 263 | 263 | function f_queue($texte) { |
| 264 | - // eviter une inclusion si rien a faire |
|
| 265 | - if ( |
|
| 266 | - _request('action') == 'cron' |
|
| 267 | - or queue_sleep_time_to_next_job() > 0 |
|
| 268 | - or defined('_DEBUG_BLOCK_QUEUE') |
|
| 269 | - ) { |
|
| 270 | - return $texte; |
|
| 271 | - } |
|
| 264 | + // eviter une inclusion si rien a faire |
|
| 265 | + if ( |
|
| 266 | + _request('action') == 'cron' |
|
| 267 | + or queue_sleep_time_to_next_job() > 0 |
|
| 268 | + or defined('_DEBUG_BLOCK_QUEUE') |
|
| 269 | + ) { |
|
| 270 | + return $texte; |
|
| 271 | + } |
|
| 272 | 272 | |
| 273 | - include_spip('inc/queue'); |
|
| 274 | - $code = queue_affichage_cron(); |
|
| 273 | + include_spip('inc/queue'); |
|
| 274 | + $code = queue_affichage_cron(); |
|
| 275 | 275 | |
| 276 | - // si rien a afficher |
|
| 277 | - // ou si on est pas dans une page html, on ne sait rien faire de mieux |
|
| 278 | - if (!$code or !isset($GLOBALS['html']) or !$GLOBALS['html']) { |
|
| 279 | - return $texte; |
|
| 280 | - } |
|
| 276 | + // si rien a afficher |
|
| 277 | + // ou si on est pas dans une page html, on ne sait rien faire de mieux |
|
| 278 | + if (!$code or !isset($GLOBALS['html']) or !$GLOBALS['html']) { |
|
| 279 | + return $texte; |
|
| 280 | + } |
|
| 281 | 281 | |
| 282 | - // inserer avant le </body> fermant si on peut, a la fin de la page sinon |
|
| 283 | - if (($p = strpos($texte, '</body>')) !== false) { |
|
| 284 | - $texte = substr($texte, 0, $p) . $code . substr($texte, $p); |
|
| 285 | - } else { |
|
| 286 | - $texte .= $code; |
|
| 287 | - } |
|
| 282 | + // inserer avant le </body> fermant si on peut, a la fin de la page sinon |
|
| 283 | + if (($p = strpos($texte, '</body>')) !== false) { |
|
| 284 | + $texte = substr($texte, 0, $p) . $code . substr($texte, $p); |
|
| 285 | + } else { |
|
| 286 | + $texte .= $code; |
|
| 287 | + } |
|
| 288 | 288 | |
| 289 | - return $texte; |
|
| 289 | + return $texte; |
|
| 290 | 290 | } |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | } |
| 65 | 65 | } |
| 66 | 66 | |
| 67 | - $texte = $x . $texte; |
|
| 67 | + $texte = $x.$texte; |
|
| 68 | 68 | |
| 69 | 69 | return $texte; |
| 70 | 70 | } |
@@ -178,7 +178,7 @@ discard block |
||
| 178 | 178 | || ($pos = 0); |
| 179 | 179 | |
| 180 | 180 | if (!str_contains(substr($texte, 0, $pos), '<!-- insert_head -->')) { |
| 181 | - $insert = "\n" . pipeline('insert_head', '<!-- f_insert_head -->') . "\n"; |
|
| 181 | + $insert = "\n".pipeline('insert_head', '<!-- f_insert_head -->')."\n"; |
|
| 182 | 182 | $texte = substr_replace($texte, $insert, $pos, 0); |
| 183 | 183 | } |
| 184 | 184 | |
@@ -210,7 +210,7 @@ discard block |
||
| 210 | 210 | } |
| 211 | 211 | $texte = substr_replace($texte, $x, $pos, 0); |
| 212 | 212 | // pas de preview en fenetre enfant |
| 213 | - $x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='" . addslashes($GLOBALS['meta']['adresse_site']) . "';}</script>"; |
|
| 213 | + $x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='".addslashes($GLOBALS['meta']['adresse_site'])."';}</script>"; |
|
| 214 | 214 | if (!$pos = stripos($texte, '<head') or !$pos = strpos($texte, '>', $pos)) { |
| 215 | 215 | $pos = -1; |
| 216 | 216 | } |
@@ -281,7 +281,7 @@ discard block |
||
| 281 | 281 | |
| 282 | 282 | // inserer avant le </body> fermant si on peut, a la fin de la page sinon |
| 283 | 283 | if (($p = strpos($texte, '</body>')) !== false) { |
| 284 | - $texte = substr($texte, 0, $p) . $code . substr($texte, $p); |
|
| 284 | + $texte = substr($texte, 0, $p).$code.substr($texte, $p); |
|
| 285 | 285 | } else { |
| 286 | 286 | $texte .= $code; |
| 287 | 287 | } |