Merge branch 'develop' of https://github.com/getgrav/grav-plugin-admin into develop

This commit is contained in:
Andy Miller
2015-11-29 21:22:27 -07:00
13 changed files with 138 additions and 78 deletions

View File

@@ -111,6 +111,12 @@ class AdminPlugin extends Plugin
// Disable Asset pipelining // Disable Asset pipelining
$this->config->set('system.assets.css_pipeline', false); $this->config->set('system.assets.css_pipeline', false);
$this->config->set('system.assets.js_pipeline', false); $this->config->set('system.assets.js_pipeline', false);
// Replace themes service with admin.
$this->grav['themes'] = function ($c) {
require_once __DIR__ . '/classes/themes.php';
return new Themes($this->grav);
};
} }
// We need popularity no matter what // We need popularity no matter what
@@ -205,6 +211,17 @@ class AdminPlugin extends Plugin
} }
} }
}; };
if (empty($this->grav['page'])) {
$event = $this->grav->fireEvent('onPageNotFound');
if (isset($event->page)) {
unset($this->grav['page']);
$this->grav['page'] = $event->page;
} else {
throw new \RuntimeException('Page Not Found', 404);
}
}
} }
/** /**

View File

@@ -499,6 +499,10 @@ class Admin
$pages = $this->grav['pages']; $pages = $this->grav['pages'];
$latest = array(); $latest = array();
if(is_null($pages->routes())){
return;
}
foreach ($pages->routes() as $url => $path) { foreach ($pages->routes() as $url => $path) {
$page = $pages->dispatch($url, true); $page = $pages->dispatch($url, true);

View File

@@ -6,7 +6,6 @@ use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder; use Grav\Common\Filesystem\Folder;
use Grav\Common\GPM\Installer; use Grav\Common\GPM\Installer;
use Grav\Common\Grav; use Grav\Common\Grav;
use Grav\Common\Themes;
use Grav\Common\Uri; use Grav\Common\Uri;
use Grav\Common\Data; use Grav\Common\Data;
use Grav\Common\Page; use Grav\Common\Page;

18
classes/themes.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
namespace Grav\Plugin;
/**
* Admin theme object
*
* @author RocketTheme
* @license MIT
*/
class Themes extends \Grav\Common\Themes
{
public function init()
{
/** @var Themes $themes */
$themes = $this->grav['themes'];
$themes->configure();
}
}

View File

@@ -450,8 +450,8 @@ en:
fr: fr:
PLUGIN_ADMIN: PLUGIN_ADMIN:
ADMIN_BETA_MSG: "C'est une version beta ! Utilisez-là en production à vos risques et périls..." ADMIN_BETA_MSG: "Ceci est une version bêta ! Utilisez-là en production à vos risques et périls..."
ADMIN_REPORT_ISSUE: "Vous avez rencontré une anomalie ? Veuillez la reporter sur GitHub." ADMIN_REPORT_ISSUE: "Vous avez rencontré une anomalie ? Veuillez la signaler sur GitHub."
EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS" EMAIL_FOOTER: "<a href=\"http://getgrav.org\">Powered by Grav</a> - The Modern Flat File CMS"
LOGIN_BTN: "Connexion" LOGIN_BTN: "Connexion"
LOGIN_BTN_FORGOT: "Mot de passe oublié" LOGIN_BTN_FORGOT: "Mot de passe oublié"
@@ -498,24 +498,24 @@ fr:
MODAL_DELETE_FILE_CONFIRMATION_REQUIRED_DESC: "Êtes-vous sûr(e) de vouloir supprimer ce fichier ? Cette action ne pourra pas être annulée." MODAL_DELETE_FILE_CONFIRMATION_REQUIRED_DESC: "Êtes-vous sûr(e) de vouloir supprimer ce fichier ? Cette action ne pourra pas être annulée."
ADD_FILTERS: "Ajouter des filtres" ADD_FILTERS: "Ajouter des filtres"
SEARCH_PAGES: "Rechercher des pages" SEARCH_PAGES: "Rechercher des pages"
VERSION: "Version" VERSION: "Version "
WAS_MADE_WITH: "A été réalisé avec" WAS_MADE_WITH: "A été réalisé avec"
BY: "Par" BY: "Par"
UPDATE_THEME: "Mettre à jour le thème" UPDATE_THEME: "Mettre à jour le thème"
UPDATE_PLUGIN: "Mettre à jour le plugin" UPDATE_PLUGIN: "Mettre à jour le plugin"
OF_THIS_THEME_IS_NOW_AVAILABLE: "de ce thème est maintenant disponible" OF_THIS_THEME_IS_NOW_AVAILABLE: "de ce thème est maintenant disponible"
OF_THIS_PLUGIN_IS_NOW_AVAILABLE: "de ce plugin est maintenant disponible" OF_THIS_PLUGIN_IS_NOW_AVAILABLE: "de ce plugin est maintenant disponible"
AUTHOR: "Auteur" AUTHOR: "Auteur "
HOMEPAGE: "Page d'accueil" HOMEPAGE: "Page d'accueil "
DEMO: "Démo" DEMO: "Démo "
BUG_TRACKER: "Gestion de bugs" BUG_TRACKER: "Gestion des anomalies "
KEYWORDS: "Mots-clés" KEYWORDS: "Mots clés "
LICENSE: "Licence" LICENSE: "Licence "
DESCRIPTION: "Description" DESCRIPTION: "Description "
README: "Lisez-moi" README: "Lisez-moi "
REMOVE_THEME: "Retirer le thème" REMOVE_THEME: "Retirer le thème"
INSTALL_THEME: "Installer le thème" INSTALL_THEME: "Installer le thème"
THEME: "Thème" THEME: "Thème "
BACK_TO_THEMES: "Retour aux thèmes" BACK_TO_THEMES: "Retour aux thèmes"
BACK_TO_PLUGINS: "Retour aux plugins" BACK_TO_PLUGINS: "Retour aux plugins"
CHECK_FOR_UPDATES: "Vérifier les mises à jour" CHECK_FOR_UPDATES: "Vérifier les mises à jour"
@@ -636,8 +636,8 @@ fr:
DEFAULT_AUTHOR_HELP: "Un nom d'auteur par défaut, souvent utilisé dans les thèmes ou le contenu des pages" DEFAULT_AUTHOR_HELP: "Un nom d'auteur par défaut, souvent utilisé dans les thèmes ou le contenu des pages"
DEFAULT_EMAIL: "E-mail par défaut" DEFAULT_EMAIL: "E-mail par défaut"
DEFAULT_EMAIL_HELP: "Une e-mail par défaut à référencer dans les thèmes ou pages" DEFAULT_EMAIL_HELP: "Une e-mail par défaut à référencer dans les thèmes ou pages"
TAXONOMY_TYPES: "Types de hiérarchisation" TAXONOMY_TYPES: "Types de classification"
TAXONOMY_TYPES_HELP: "Les types de hiérarchisation doivent être définis ici si vous souhaitez les utiliser dans les pages" TAXONOMY_TYPES_HELP: "Les types de classification doivent être définis ici si vous souhaitez les utiliser dans les pages"
PAGE_SUMMARY: "Résumé de page" PAGE_SUMMARY: "Résumé de page"
ENABLED: "Activé" ENABLED: "Activé"
ENABLED_HELP: "Activer le résumé de page (le résumé retourne le même contenu que la page)" ENABLED_HELP: "Activer le résumé de page (le résumé retourne le même contenu que la page)"
@@ -651,19 +651,19 @@ fr:
LONG: "Long" LONG: "Long"
DELIMITER: "Délimiteur" DELIMITER: "Délimiteur"
DELIMITER_HELP: "Le délimiteur de résumé (par défaut '===')" DELIMITER_HELP: "Le délimiteur de résumé (par défaut '===')"
METADATA: "Metadata" METADATA: "Métadonnées"
METADATA_HELP: "Les valeurs par défaut des metadata qui seront affichées sur chaque page sauf si substituées par la page" METADATA_HELP: "Valeurs par défaut des métadonnées qui seront affichées pour chaque page sauf si substituées par la page"
NAME: "Nom" NAME: "Nom"
CONTENT: "Contenu" CONTENT: "Contenu"
REDIRECTS_AND_ROUTES: "Redirections & Routes" REDIRECTS_AND_ROUTES: "Redirections & Chemins"
CUSTOM_REDIRECTS: "Redirections personnalisées" CUSTOM_REDIRECTS: "Redirections personnalisées"
CUSTOM_REDIRECTS_HELP: "routes pour rediriger vers d'autres pages. Le remplacement Regex standard est valide" CUSTOM_REDIRECTS_HELP: "chemin pour rediriger vers d'autres pages. Le remplacement par expressions régulières standards est valide"
CUSTOM_REDIRECTS_PLACEHOLDER_KEY: "/votre/alias" CUSTOM_REDIRECTS_PLACEHOLDER_KEY: "/votre/alias"
CUSTOM_REDIRECTS_PLACEHOLDER_VALUE: "/votre/redirection" CUSTOM_REDIRECTS_PLACEHOLDER_VALUE: "/votre/redirection"
CUSTOM_ROUTES: "Routes personnalisées" CUSTOM_ROUTES: "Chemins personnalisés"
CUSTOM_ROUTES_HELP: "routes pour l'alias vers d'autres pages. Le remplacement Regex standard est valide" CUSTOM_ROUTES_HELP: "chemin d'alias vers d'autres pages. Le remplacement par expressions régulières standards est valide"
CUSTOM_ROUTES_PLACEHOLDER_KEY: "/votre/alias" CUSTOM_ROUTES_PLACEHOLDER_KEY: "/votre/alias"
CUSTOM_ROUTES_PLACEHOLDER_VALUE: "/votre/route" CUSTOM_ROUTES_PLACEHOLDER_VALUE: "/votre/chemin"
FILE_STREAMS: "Flux de fichiers" FILE_STREAMS: "Flux de fichiers"
DEFAULT: "Par défaut" DEFAULT: "Par défaut"
PAGE_MEDIA: "Média de la page" PAGE_MEDIA: "Média de la page"
@@ -671,45 +671,45 @@ fr:
PUBLISHED: "Publié" PUBLISHED: "Publié"
PUBLISHED_HELP: "Par défaut, une page est publiée à moins que vous ne définissiez `publié` sur : non ou via une date de publication future (publish_date), ou bien à une date de dépublication (unpublish_date) dans le passé" PUBLISHED_HELP: "Par défaut, une page est publiée à moins que vous ne définissiez `publié` sur : non ou via une date de publication future (publish_date), ou bien à une date de dépublication (unpublish_date) dans le passé"
DATE: "Date" DATE: "Date"
DATE_HELP: "La variable de date vous permet de définir spécifiquement une date associée à cette page." DATE_HELP: "La variable de date vous permet de définir une date spécifique associée à cette page."
PUBLISHED_DATE: "Date de publication" PUBLISHED_DATE: "Date de publication"
PUBLISHED_DATE_HELP: "Stipule une date pour déclencher automatiquement la publication." PUBLISHED_DATE_HELP: "Permet de définir une date pour déclencher automatiquement la publication."
UNPUBLISHED_DATE: "Date de dépublication" UNPUBLISHED_DATE: "Date de dépublication"
UNPUBLISHED_DATE_HELP: "Stipule une date pour déclencher automatiquement la dépublication." UNPUBLISHED_DATE_HELP: "Permet de définir une date pour déclencher automatiquement la dépublication."
ROBOTS: "Robots" ROBOTS: "Robots"
TAXONOMIES: "Taxonomies" TAXONOMIES: "Classifications"
TAXONOMY: "Taxonomie" TAXONOMY: "Classification"
ADVANCED: "Avancé" ADVANCED: "Avancé"
SETTINGS: "Paramètres" SETTINGS: "Paramètres"
FOLDER_NUMERIC_PREFIX: "Préfixe numérique de dossier" FOLDER_NUMERIC_PREFIX: "Préfixe numérique de dossier"
FOLDER_NUMERIC_PREFIX_HELP: "Les préfixes numériques qui fournissent l'organisation manuelle et assument la visibilité" FOLDER_NUMERIC_PREFIX_HELP: "Les préfixes numériques qui permettent le classement manuel pour une meilleure visibilité"
FOLDER_NAME: "Nom de dossier" FOLDER_NAME: "Nom de dossier"
FOLDER_NAME_HELP: "Le nom de dossier qui sera mémorisé dans le système de fichier pour cette page" FOLDER_NAME_HELP: "Le nom de dossier qui sera mémorisé dans le système pour cette page"
PARENT: "Parent" PARENT: "Parent"
DEFAULT_OPTION_ROOT: "- Racine -" DEFAULT_OPTION_ROOT: "- Racine -"
DEFAULT_OPTION_SELECT: "- Selection -" DEFAULT_OPTION_SELECT: "- Sélection -"
DISPLAY_TEMPLATE: "Modèle d'affichage" DISPLAY_TEMPLATE: "Modèle d'affichage"
DISPLAY_TEMPLATE_HELP: "Le type de page qui sera interprété par le modèle Twig de rendu de page" DISPLAY_TEMPLATE_HELP: "Le type de page qui sera interprété par le modèle Twig de rendu de page"
BODY_CLASSES: "Classes Body" BODY_CLASSES: "Classes de Body"
ORDERING: "Agencement" ORDERING: "Agencement"
PAGE_ORDER: "Ordre des pages" PAGE_ORDER: "Ordre des pages"
OVERRIDES: "Substitutions" OVERRIDES: "Substitutions"
MENU: "Menu" MENU: "Menu"
MENU_HELP: "La chaîne de caractères utilisée dans le menu. Si non défini, <b>Titre</b> sera utilisé." MENU_HELP: "La chaîne de caractères à utiliser dans le menu. Si non défini, <b>Titre</b> sera utilisé."
SLUG: "Slug" SLUG: "Slug"
SLUG_HELP: "La variable slug vous permet de définir spécifiquement la portion d'URL de la page" SLUG_HELP: "La variable slug vous permet de définir une portion spécifique de l'URL d'une page"
SLUG_VALIDATE_MESSAGE: "Un slug doit contenir seulement des catactères minuscules alphanumériques et des tirets" SLUG_VALIDATE_MESSAGE: "Un slug doit contenir uniquement des catactères alphanumériques minuscules et des tirets"
PROCESS: "Traitement" PROCESS: "Traitement"
PROCESS_HELP: "Contrôle comment les pages sont traitées. Peut être défini par page plutôt que globalement" PROCESS_HELP: "Contrôle comment les pages sont traitées. Peut être défini par page plutôt que globalement"
DEFAULT_CHILD_TYPE: "Type enfant par défaut" DEFAULT_CHILD_TYPE: "Type enfant par défaut"
USE_GLOBAL: "**Use Global**" USE_GLOBAL: "Utilisation globale"
ROUTABLE: "Routable" ROUTABLE: "Routable"
ROUTABLE_HELP: "Si cette page est joignable par une URL" ROUTABLE_HELP: "Si cette page est accessible par une URL"
CACHING: "Mise en cache" CACHING: "Mise en cache"
VISIBLE: "Visible" VISIBLE: "Visible"
VISIBLE_HELP: "Détermine si une page est visible dans la navigation." VISIBLE_HELP: "Détermine si une page est visible dans la navigation."
DISABLED: "Désactivé" DISABLED: "Désactivé"
ITEMS: "**Eléments**" ITEMS: "Éléments"
ORDER_BY: "Classement par" ORDER_BY: "Classement par"
ORDER: "Ordre" ORDER: "Ordre"
FOLDER: "Dossier" FOLDER: "Dossier"
@@ -720,21 +720,21 @@ fr:
PAGE_TITLE_HELP: "Le titre de la page" PAGE_TITLE_HELP: "Le titre de la page"
PAGE: "Page" PAGE: "Page"
MODULAR_TEMPLATE: "Modèle modulaire" MODULAR_TEMPLATE: "Modèle modulaire"
FRONTMATTER: "Front Matter" FRONTMATTER: "Propos liminaires"
FILENAME: "Nom de fichier" FILENAME: "Nom de fichier"
PARENT_PAGE: "Page parente" PARENT_PAGE: "Page parente"
HOME_PAGE: "Page d'accueil" HOME_PAGE: "Page d'accueil"
HOME_PAGE_HELP: "La page que Grav utilisera comme page d'arrivée par défaut" HOME_PAGE_HELP: "La page que Grav utilisera comme page de destination par défaut"
DEFAULT_THEME: "Thème par défaut" DEFAULT_THEME: "Thème par défaut"
DEFAULT_THEME_HELP: "Définit le thème par défaut que Grav utilisera (par défaut c'est Antimatter)" DEFAULT_THEME_HELP: "Définit le thème que Grav utilisera par défaut (par défaut Antimatter)"
TIMEZONE: "Fuseau horaire" TIMEZONE: "Fuseau horaire"
TIMEZONE_HELP: "Se subsitue au fuseau horaire par défaut du serveur" TIMEZONE_HELP: "Se subsitue au fuseau horaire par défaut du serveur"
SHORT_DATE_FORMAT: "Format d'affichage court de la date" SHORT_DATE_FORMAT: "Format d'affichage court de la date"
SHORT_DATE_FORMAT_HELP: "Définit le format de date courte qui peut être utilisé par les thèmes" SHORT_DATE_FORMAT_HELP: "Définit le format de date courte qui peut être utilisé dans les thèmes"
LONG_DATE_FORMAT: "Format d'affichage long de la date" LONG_DATE_FORMAT: "Format d'affichage long de la date"
LONG_DATE_FORMAT_HELP: "Définit le format de la date longue qui peut être utilisé par les thèmes" LONG_DATE_FORMAT_HELP: "Définit le format de la date longue qui peut être utilisé dans les thèmes"
DEFAULT_ORDERING: "Tri par défaut" DEFAULT_ORDERING: "Tri par défaut"
DEFAULT_ORDERING_HELP: "Les pages dans une liste seront affichées en utilisant ce tri à moins que cela est été substitué" DEFAULT_ORDERING_HELP: "Les pages d'une liste seront affichées en utilisant ce tri à moins que cela est été substitué"
DEFAULT_ORDERING_DEFAULT: "Défaut - basé sur le nom de dossier" DEFAULT_ORDERING_DEFAULT: "Défaut - basé sur le nom de dossier"
DEFAULT_ORDERING_FOLDER: "Dossier - basé sur le nom de dossier sans le préfixe" DEFAULT_ORDERING_FOLDER: "Dossier - basé sur le nom de dossier sans le préfixe"
DEFAULT_ORDERING_TITLE: "Titre - basé sur le champ titre dans l'entête" DEFAULT_ORDERING_TITLE: "Titre - basé sur le champ titre dans l'entête"
@@ -744,43 +744,43 @@ fr:
DEFAULT_PAGE_COUNT: "Nombre par défaut de page" DEFAULT_PAGE_COUNT: "Nombre par défaut de page"
DEFAULT_PAGE_COUNT_HELP: "Nombre maximum par défaut de pages dans une liste" DEFAULT_PAGE_COUNT_HELP: "Nombre maximum par défaut de pages dans une liste"
DATE_BASED_PUBLISHING: "Publication basée sur la date" DATE_BASED_PUBLISHING: "Publication basée sur la date"
DATE_BASED_PUBLISHING_HELP: "(Dé)publie automatiquement les pages basées sur leur date" DATE_BASED_PUBLISHING_HELP: "(Dé)publie automatiquement les pages en fonction de leur date"
EVENTS: "Evènements" EVENTS: "Évènements"
EVENTS_HELP: "Active ou désactive les évènements spécifiques. Désactiver ceux-ci peut altérer les plugins" EVENTS_HELP: "Active ou désactive des évènements spécifiques. Les désactiver peut altérer le comportement des plugins"
REDIRECT_DEFAULT_ROUTE: "Route par défaut de redirection" REDIRECT_DEFAULT_ROUTE: "Chemin par défaut de redirection"
REDIRECT_DEFAULT_ROUTE_HELP: "Redirige automatiquement vers une route par défaut de page" REDIRECT_DEFAULT_ROUTE_HELP: "Redirige automatiquement vers un chemin de page par défaut"
LANGUAGES: "Langues" LANGUAGES: "Langues"
SUPPORTED: "Supportées" SUPPORTED: "Prises en charge"
SUPPORTED_HELP: "Liste de code langue formé de 2 lettres et séparée par une virgule (par exemple 'en,fr,de')" SUPPORTED_HELP: "Liste de code langue formé de 2 lettres et séparé par une virgule (par exemple 'en,fr,de')"
TRANSLATIONS_ENABLED: "Traductions activées" TRANSLATIONS_ENABLED: "Traductions activées"
TRANSLATIONS_ENABLED_HELP: "Supporte les traductions dans Grav, plugins et extensions" TRANSLATIONS_ENABLED_HELP: "Prise en charge des traductions dans Grav, plugins et extensions"
TRANSLATIONS_FALLBACK: "Fallback traductions" TRANSLATIONS_FALLBACK: "Traductions de repli"
TRANSLATIONS_FALLBACK_HELP: "Fallback vers une traduction supportée si la langue active n'existe pas" TRANSLATIONS_FALLBACK_HELP: "Traductions de repli qui seront prises en charge si la langue active n'existe pas"
ACTIVE_LANGUAGE_IN_SESSION: "Activer la langue dans les sessions" ACTIVE_LANGUAGE_IN_SESSION: "Activer la langue dans les sessions"
ACTIVE_LANGUAGE_IN_SESSION_HELP: "Mémorise la langue active dans la session" ACTIVE_LANGUAGE_IN_SESSION_HELP: "Mémorise la langue active dans la session"
HTTP_HEADERS: "Entêtes HTTP" HTTP_HEADERS: "Entêtes HTTP"
EXPIRES: "Expires" EXPIRES: "Expires"
EXPIRES_HELP: "Définit l'entête Expires. La valeur est en secondes." EXPIRES_HELP: "Définit l'entête Expires. La valeur est en secondes."
LAST_MODIFIED: "Last modified" LAST_MODIFIED: "Last modified"
LAST_MODIFIED_HELP: "Définit l'entête last modified qui peut aider l'optimisation du cache des proxy et navigateurs" LAST_MODIFIED_HELP: "Définit l'entête `Last modified`pouvant améliorer l'optimisation du cache des proxy et navigateurs"
ETAG: "ETag" ETAG: "ETag"
ETAG_HELP: "Définit l'entête etag pour aider l'identification d'une modification de page" ETAG_HELP: "Définit l'entête `etag` pour aider l'identification d'une modification de page"
VARY_ACCEPT_ENCODING: "Vary accept encoding" VARY_ACCEPT_ENCODING: "Vary accept encoding"
VARY_ACCEPT_ENCODING_HELP: "Définit l'entête `Vary: Accept Encoding` pour aider la mise en cache avec les proxy et CDN" VARY_ACCEPT_ENCODING_HELP: "Définit l'entête `Vary: Accept Encoding` pour aider la mise en cache avec les proxy et CDN"
MARKDOWN_EXTRA_HELP: "Active par défaut le support de Markdown Extra - https://michelf.ca/projects/php-markdown/extra/" MARKDOWN_EXTRA_HELP: "Active par défaut la prise en charge de Markdown Extra - https://michelf.ca/projects/php-markdown/extra/"
AUTO_LINE_BREAKS: "Sauts de ligne automatiques" AUTO_LINE_BREAKS: "Sauts de ligne automatiques"
AUTO_LINE_BREAKS_HELP: "Active le support des sauts de ligne automatiques dans markdown" AUTO_LINE_BREAKS_HELP: "Active la prise en charge des sauts de ligne automatiques dans markdown"
AUTO_URL_LINKS: "Liens URL automatiques" AUTO_URL_LINKS: "Liens URL automatiques"
AUTO_URL_LINKS_HELP: "Active la conversion automatique des URLs en hyperliens HTML" AUTO_URL_LINKS_HELP: "Active la conversion automatique des URLs en hyperliens HTML"
ESCAPE_MARKUP: "Echappement balises HTML" ESCAPE_MARKUP: "Échappement balises HTML"
ESCAPE_MARKUP_HELP: "Echappe les balises en entités HTML" ESCAPE_MARKUP_HELP: "Échappe les balises en entités HTML"
CACHING_HELP: "Interrupteur global ON/OFF pour activer/désactiver la mise en cache Grav" CACHING_HELP: "Interrupteur global ON/OFF pour activer/désactiver la mise en cache Grav"
CACHE_CHECK_METHOD: "Procédé de contrôle du cache" CACHE_CHECK_METHOD: "Procédé de contrôle du cache"
CACHE_CHECK_METHOD_HELP: "Selectionnez le procédé que Grav utilise pour contrôler si des fichiers de page ont été modifiés." CACHE_CHECK_METHOD_HELP: "Sélectionnez le procédé que Grav utilisera pour contrôler si des fichiers de page ont été modifiés."
CACHE_DRIVER: "Gestionnaire de cache" CACHE_DRIVER: "Gestionnaire de cache"
CACHE_DRIVER_HELP: "Choisissez quel gestionnaire de cache Grav doit utiliser. 'Auto Detect' tente de trouver le meilleur pour vous" CACHE_DRIVER_HELP: "Choisissez quel gestionnaire de cache Grav doit utiliser. 'Auto Detect' permet de trouver le meilleur pour vous"
CACHE_PREFIX: "Préfixe du cache" CACHE_PREFIX: "Préfixe du cache"
CACHE_PREFIX_HELP: "Un identificateur d'une partie de la clé Grav. Ne rien changer à moins que vous sachiez ce que vous faites." CACHE_PREFIX_HELP: "Un identificateur d'une partie de la clé Grav. Ne rien changer à moins que vous sachiez ce que vous faites."
CACHE_PREFIX_PLACEHOLDER: "Derivé de la base URL (à substituer en entrant une chaîne aléatoire)" CACHE_PREFIX_PLACEHOLDER: "Derivé de la base URL (à substituer en entrant une chaîne aléatoire)"
LIFETIME: "Durée de vie" LIFETIME: "Durée de vie"
LIFETIME_HELP: "Définit la durée de vie du cache en secondes. 0 = infinie" LIFETIME_HELP: "Définit la durée de vie du cache en secondes. 0 = infinie"
@@ -790,14 +790,14 @@ fr:
TWIG_CACHING: "Mise en cache Twig" TWIG_CACHING: "Mise en cache Twig"
TWIG_CACHING_HELP: "Contrôle le mécanisme de mise en cache de Twig. Laissez-le activé pour une meilleur performance." TWIG_CACHING_HELP: "Contrôle le mécanisme de mise en cache de Twig. Laissez-le activé pour une meilleur performance."
TWIG_DEBUG: "Twig debug" TWIG_DEBUG: "Twig debug"
TWIG_DEBUG_HELP: "Autorise ou pas l'option de charger l'extension Twig Debugger" TWIG_DEBUG_HELP: "Autorise ou non l'option permettant de charger l'extension Twig Debugger"
DETECT_CHANGES: "Détecter les modifications" DETECT_CHANGES: "Détecter les modifications"
DETECT_CHANGES_HELP: "Twig recompilera automatiquement le cache Twig si il détecte des modifications dans les modèles Twig" DETECT_CHANGES_HELP: "Twig recompilera automatiquement le cache Twig si il détecte des modifications dans les modèles Twig"
AUTOESCAPE_VARIABLES: "Auto-échapper les variables" AUTOESCAPE_VARIABLES: "Auto-échappement des variables"
AUTOESCAPE_VARIABLES_HELP: "Auto-échappe toutes les variables. Cela va probablement altérer votre site" AUTOESCAPE_VARIABLES_HELP: "Auto-échappe toutes les variables. Cela va probablement altérer votre site"
ASSETS: "Assets" ASSETS: "Assets"
CSS_PIPELINE: "CSS pipeline" CSS_PIPELINE: "CSS pipeline"
CSS_PIPELINE_HELP: "Le CSS pipeline est l'unification de multiples ressources CSS en un seul fichier" CSS_PIPELINE_HELP: "Le CSS pipeline permet l'unification de multiples ressources CSS en un seul fichier"
CSS_MINIFY: "Minification CSS" CSS_MINIFY: "Minification CSS"
CSS_MINIFY_HELP: "Minification du CSS durant la procédure de pipelining" CSS_MINIFY_HELP: "Minification du CSS durant la procédure de pipelining"
CSS_MINIFY_WINDOWS_OVERRIDE: "Substitution minification CSS Windows" CSS_MINIFY_WINDOWS_OVERRIDE: "Substitution minification CSS Windows"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -102,7 +102,7 @@ $(function(){
}; };
root.GravAjax.toastErrorHandler = function (xhr, status, error) { root.GravAjax.toastErrorHandler = function (xhr, status, error) {
if (status !== 'abort') { if (status !== 'abort' && !(status == 'error' && error == '')) {
toastr.error(error); toastr.error(error);
} }
}; };

View File

@@ -98,12 +98,20 @@
ArrayField.prototype.remove = function(event) { ArrayField.prototype.remove = function(event) {
var row = $(event.target).closest('[data-grav-array-type="row"]'); var row = $(event.target).closest('[data-grav-array-type="row"]');
var lastItem = false;
if (row.siblings().length == 0) { if (row.siblings().length == 0) {
//on the last item we just clear its values //on the last item we just clear its values
row.find('input').val(''); lastItem = true;
return; this.add(event);
} }
row.remove(); row.remove();
if (lastItem == true) {
this.refreshAll();
}
if (this.isValueOnly()) { if (this.isValueOnly()) {
this.refreshAll(); this.refreshAll();
} }

View File

@@ -210,6 +210,10 @@ $update-height: 3rem;
letter-spacing: -1px; letter-spacing: -1px;
} }
.padding {
padding: $padding-default;
}
.titlebar { .titlebar {
position: relative; position: relative;
height: $topbar-height; height: $topbar-height;

View File

@@ -1,10 +1,18 @@
{% extends 'partials/base.html.twig' %} {% extends 'partials/base.html.twig' %}
{% block content_full %} {% block titlebar %}
<div class="error"> <h1><i class="fa fa-fw fa-exclamation-triangle"></i> {{ "PLUGIN_ADMIN.ERROR"|tu }}</h1>
{% include 'partials/messages.html.twig' %} {% endblock %}
{{ content }}
{% block content %}
<div class="error-block">
<h1>Error {{ page.header.http_response_code }}</h1>
<div class="padding">
<p>
{{ page.content }}
</p>
</div> </div>
</div>
{% endblock %} {% endblock %}
{% block footer_section %} {% block footer_section %}

View File

@@ -38,6 +38,10 @@
</div> </div>
{% else %} {% else %}
{% if field.value_only != true %} {% if field.value_only != true %}
{% if key == '0' and text == '' %}
{% set key = '' %}
{% endif %}
<input data-grav-array-type="key" type="text" value="{{ key }}" placeholder="{{ field.placeholder_key|e|tu }}" /> <input data-grav-array-type="key" type="text" value="{{ key }}" placeholder="{{ field.placeholder_key|e|tu }}" />
{% endif %} {% endif %}

View File

@@ -91,7 +91,7 @@
<a href="{{ page_url }}" class="page-edit">{{ p.title }}</a> <a href="{{ page_url }}" class="page-edit">{{ p.title }}</a>
{% if p.language %} {% if p.language %}
<span class="badge lang {% if p.language == admin_lang %}info{% endif %}">{{p.language ?: default_site_lang}}</span> <span class="badge lang {% if p.language == admin_lang %}info{% endif %}">{{p.language}}</span>
{% endif %} {% endif %}
<span class="page-home">{{ p.home ? '<i class="fa fa-home"></i>' }}</span> <span class="page-home">{{ p.home ? '<i class="fa fa-home"></i>' }}</span>
<span class="page-tools"> <span class="page-tools">
@@ -194,8 +194,6 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% set default_site_lang = grav.config.system.languages|first|first %}
<div class="admin-block clear"> <div class="admin-block clear">
{% include 'partials/messages.html.twig' %} {% include 'partials/messages.html.twig' %}
{% if mode == 'new' %} {% if mode == 'new' %}