forked from ZwiiCMS-Team/ZwiiCMS
Merge branch '11300' into extra
This commit is contained in:
commit
d146b240e6
@ -11,11 +11,11 @@
|
||||
Corrections :
|
||||
- Thème / site : problème d'aperçu du body ; police du thème admin non chargées.
|
||||
- Bugs avec les aperçus des sélecteurs de fontes.
|
||||
Modifications :
|
||||
- Notice générée par l'effacement d'une page sans module.
|
||||
- Modification :
|
||||
- Police de caractères :
|
||||
- Changement de fournisseur, CdnFont remplace Google Font.
|
||||
- Les polices pourront désormais être téléchargées à partir du site et non du CDN.
|
||||
- Installation de police personnalisées.
|
||||
- Les polices pourront désormais être téléchargées à partir du site et non du CD grâce à une nouvelle fonctionnalité du thème permet de gérer l'installation des fontes, soit à partir du CDN, soit à partir d'un fichier téléchargé.
|
||||
- Thème / Bannière : ergonomie de l'information sur l'image sélectionnée.
|
||||
- Identifications des éléments du menu, les pages parents prennent comme id CSS leur id, les pages enfants également et pour classe Id de la page parente.
|
||||
|
||||
|
@ -53,7 +53,7 @@ class helper {
|
||||
* @return mixed données récupérées
|
||||
*/
|
||||
|
||||
public static function urlGetContents ($url) {
|
||||
public static function getUrlContents ($url) {
|
||||
// Ejecter free.fr
|
||||
if (strpos(self::baseUrl(),'free.fr') > 0 ){
|
||||
return false;
|
||||
@ -269,7 +269,7 @@ class helper {
|
||||
* @return string
|
||||
*/
|
||||
public static function getOnlineVersion() {
|
||||
return (helper::urlGetContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version'));
|
||||
return (helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version'));
|
||||
}
|
||||
|
||||
|
||||
|
@ -298,12 +298,6 @@ class template {
|
||||
}
|
||||
// Début du wrapper
|
||||
$html = '<div id="' . $attributes['id'] . 'Wrapper" class="inputWrapper ' . $attributes['classWrapper'] . '">';
|
||||
// Label
|
||||
if($attributes['label']) {
|
||||
$html .= self::label($attributes['id'], $attributes['label'], [
|
||||
'help' => $attributes['help']
|
||||
]);
|
||||
}
|
||||
// Notice
|
||||
$notice = '';
|
||||
if(array_key_exists($attributes['id'], common::$inputNotices)) {
|
||||
@ -311,6 +305,12 @@ class template {
|
||||
$attributes['class'] .= ' notice';
|
||||
}
|
||||
$html .= self::notice($attributes['id'], $notice);
|
||||
// Label
|
||||
if($attributes['label']) {
|
||||
$html .= self::label($attributes['id'], $attributes['label'], [
|
||||
'help' => $attributes['help']
|
||||
]);
|
||||
}
|
||||
// Champ caché contenant l'url de la page
|
||||
$html .= self::hidden($attributes['id'], [
|
||||
'class' => 'inputFileHidden',
|
||||
|
106
core/core.php
106
core/core.php
@ -1499,7 +1499,7 @@ class common {
|
||||
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'right') { $this->showCopyright(); }
|
||||
echo '</div>';
|
||||
|
||||
// Fermeture du contenaire
|
||||
// Fermeture du conteneur
|
||||
echo '</div></div>';
|
||||
echo '</footer>';
|
||||
}
|
||||
@ -1953,8 +1953,6 @@ class common {
|
||||
echo '<meta property="og:image" content="' . helper::baseUrl() .self::FILE_DIR.'source/screenshot.jpg" />';
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Affiche la notification
|
||||
*/
|
||||
@ -2277,7 +2275,10 @@ class core extends common {
|
||||
if (is_array($fontsImported) &&
|
||||
!empty ($fontsImported)
|
||||
) {
|
||||
// Fusionner les fonts avec les fontes installées
|
||||
self::$fonts = array_merge(self::$fonts, $fontsImported);
|
||||
// Tri Alphabétique
|
||||
asort(self::$fonts);
|
||||
}
|
||||
|
||||
// Crée le fichier de personnalisation avancée
|
||||
@ -2305,50 +2306,46 @@ class core extends common {
|
||||
* Import des polices de caractères
|
||||
* A partir du CDN ou dans le dossier site/file/source/fonts
|
||||
*/
|
||||
$cdnFonts = [ $this->getData(['theme', 'text', 'font']),
|
||||
$fonts = [ $this->getData(['theme', 'text', 'font']),
|
||||
$this->getData(['theme', 'title', 'font']),
|
||||
$this->getData(['theme', 'header', 'font']),
|
||||
$this->getData(['theme', 'menu', 'font']),
|
||||
$this->getData(['theme', 'footer', 'font'])
|
||||
];
|
||||
// Suppression des polices identiques
|
||||
$cdnFonts = array_unique($cdnFonts);
|
||||
|
||||
// Un fichier local de configuration existe
|
||||
if ( file_exists(self::DATA_DIR . 'fonts.json') )
|
||||
{
|
||||
// Lire le fichier et check l'existence des fichiers locaux
|
||||
// $localFonts = json_decode(file_get_contents (self::FILE_DIR . "source/fonts/fonts.json"), true);
|
||||
$fonts = array_unique($fonts);
|
||||
// Lire le fichier des fontes locales
|
||||
$localFonts = $this->getData(['fonts', 'files']);
|
||||
|
||||
/**
|
||||
* Chargement des polices en ligne
|
||||
*/
|
||||
foreach ($fonts as $fontId) {
|
||||
if (!array_key_exists($fontId, $localFonts) ) {
|
||||
$css .= '@import url("http://fonts.cdnfonts.com/css/' . $fontId . '");';
|
||||
// Supprimer l'élément des fontes chargées en ligne
|
||||
unset($fonts[$fontId]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fontes installées localement
|
||||
*/
|
||||
// Validité du format
|
||||
if (is_array($localFonts) ) {
|
||||
if ( !empty($localFonts)
|
||||
) {
|
||||
foreach ($localFonts as $fontId => $fontName) {
|
||||
// Validité du tableau :
|
||||
// L'id de la police est présent dans la liste interne
|
||||
// Le nom de la police fournie correspond à un fichier existant
|
||||
if ( array_key_exists($fontId, self::$fonts) &&
|
||||
file_exists(self::DATA_DIR . 'fonts/' . $fontName) ) {
|
||||
// La police locale est-elle invoquée ?
|
||||
$d = array_search($fontId, $cdnFonts);
|
||||
if ( $d !== NULL ) {
|
||||
// Chargement de la police demandée dans le thème
|
||||
$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName);
|
||||
// Chargement de la police
|
||||
//$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName);
|
||||
$css .= '@font-face {font-family:"' . self::$fonts[$fontId] . '";';
|
||||
$css .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontName . '");}';
|
||||
// Supprimer l'élément des fontes chargées en ligne
|
||||
unset($cdnFonts[$d]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
// Chargement des polices en ligne
|
||||
if ($cdnFonts) {
|
||||
foreach ($cdnFonts as $fontId) {
|
||||
$css .= '@import url("http://fonts.cdnfonts.com/css/' . $fontId . '");';
|
||||
}
|
||||
}
|
||||
|
||||
// Fond du body
|
||||
$colors = helper::colorVariants($this->getData(['theme', 'body', 'backgroundColor']));
|
||||
@ -2538,52 +2535,49 @@ class core extends common {
|
||||
* Import des polices de caractères
|
||||
* A partir du CDN ou dans le dossier site/file/source/fonts
|
||||
*/
|
||||
$cdnFonts = [ $this->getData(['admin', 'fontText']),
|
||||
$fonts = [ $this->getData(['admin', 'fontText']),
|
||||
$this->getData(['admin', 'fontTitle']),
|
||||
];
|
||||
// Suppression des polices identiques
|
||||
$cdnFonts = array_unique($cdnFonts);
|
||||
// Un fichier local de configuration existe
|
||||
if ( file_exists(self::DATA_DIR . 'fonts.json') )
|
||||
{
|
||||
// Lire le fichier et check l'existence des fichiers locaux
|
||||
// $localFonts = json_decode(file_get_contents (self::FILE_DIR . "source/fonts/fonts.json"), true);
|
||||
$fonts = array_unique($fonts);
|
||||
// Lire le fichier des fontes locales
|
||||
$localFonts = $this->getData(['fonts', 'files']);
|
||||
|
||||
/**
|
||||
* Chargement des polices en ligne
|
||||
*/
|
||||
foreach ($fonts as $fontId) {
|
||||
if (!array_key_exists($fontId, $localFonts) ) {
|
||||
$css .= '@import url("http://fonts.cdnfonts.com/css/' . $fontId . '");';
|
||||
// Supprimer l'élément des fontes chargées en ligne
|
||||
unset($fonts[$fontId]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fontes installées localement
|
||||
*/
|
||||
// Validité du format
|
||||
if (is_array($localFonts) ) {
|
||||
if ( !empty($localFonts)
|
||||
) {
|
||||
foreach ($localFonts as $fontId => $fontName) {
|
||||
// Validité du tableau :
|
||||
// L'id de la police est présent dans la liste interne
|
||||
// Le nom de la police fournie correspond à un fichier existant
|
||||
if ( array_key_exists($fontId, self::$fonts) &&
|
||||
file_exists(self::DATA_DIR . 'fonts/' . $fontName) ) {
|
||||
// La police locale est-elle invoquée ?
|
||||
$d = array_search($fontId, $cdnFonts);
|
||||
if ( $d !== NULL ) {
|
||||
// Chargement de la police demandée dans le thème
|
||||
$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName);
|
||||
// Chargement de la police
|
||||
//$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName);
|
||||
$css .= '@font-face {font-family:"' . self::$fonts[$fontId] . '";';
|
||||
$css .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontName . '");}';
|
||||
// Supprimer l'élément des fontes chargées en ligne
|
||||
unset($cdnFonts[$d]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Chargement des polices en ligne
|
||||
if ($cdnFonts) {
|
||||
foreach ($cdnFonts as $fontId) {
|
||||
$css .= '@import url("http://fonts.cdnfonts.com/css/' . $fontId . '");';
|
||||
}
|
||||
}
|
||||
|
||||
// Thème Administration
|
||||
$colors = helper::colorVariants($this->getData(['admin','backgroundColor']));
|
||||
$css .= '#site{background-color:' . $colors['normal']. ';}';
|
||||
$css .= '.row > div {font:' . $this->getData(['admin','fontSize']) . ' "' . self::$fonts[$this->getData(['admin','fontText'])] . '", sans-serif;}';
|
||||
$css .= 'body h1, h2, h3, h4 a, h5, h6 {font-family:' . self::$fonts[$this->getData(['admin','fontTitle'])] . ', sans-serif;color:' . $this->getData(['admin','colorTitle' ]) . ';}';
|
||||
$css .= 'body h1, h2, h3, h4 a, h5, h6 {font-family:"' . self::$fonts[$this->getData(['admin','fontTitle'])] . '", sans-serif;color:' . $this->getData(['admin','colorTitle' ]) . ';}';
|
||||
|
||||
// TinyMCE
|
||||
$css .= 'body:not(.editorWysiwyg),span .zwiico-help {color:' . $this->getData(['admin','colorText']) . ';}';
|
||||
|
@ -241,7 +241,7 @@ if($this->getData(['core', 'dataVersion']) < 10000) {
|
||||
}
|
||||
}
|
||||
// Contrôle des options php.ini pour la mise à jour auto
|
||||
if (helper::urlGetContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version') === false) {
|
||||
if (helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version') === false) {
|
||||
$this->setData(['config','autoUpdate',false]);
|
||||
}
|
||||
|
||||
|
@ -339,10 +339,11 @@ td>.col12 {
|
||||
display: inline-block;
|
||||
color: #E74C3C;
|
||||
}
|
||||
/* Mauvaise position dans les champs File*/
|
||||
|
||||
/* Mauvaise position dans les champs File
|
||||
.inputFile.notice {
|
||||
display: block;
|
||||
}
|
||||
}*/
|
||||
|
||||
/* Container */
|
||||
.container {
|
||||
|
@ -262,7 +262,7 @@ class config extends common {
|
||||
$site = helper::baseUrl(false); }
|
||||
|
||||
$success= false;
|
||||
$googlePagespeedData = helper::urlGetContents('https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url='. $site .'&screenshot=true');
|
||||
$googlePagespeedData = helper::getUrlContents('https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url='. $site .'&screenshot=true');
|
||||
if ($googlePagespeedData !== false) {
|
||||
$googlePagespeedData = json_decode($googlePagespeedData, true);
|
||||
$data = str_replace('_','/',$googlePagespeedData['lighthouseResult']['audits']['final-screenshot']['details']['data']);
|
||||
@ -619,7 +619,7 @@ class config extends common {
|
||||
}
|
||||
|
||||
// Variable de version
|
||||
self::$onlineVersion = helper::urlGetContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version');
|
||||
self::$onlineVersion = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version');
|
||||
if (self::$onlineVersion > common::ZWII_VERSION) {
|
||||
self::$updateButtonText = "Mettre à jour" ;
|
||||
}
|
||||
|
@ -11,12 +11,9 @@
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div class="col3">
|
||||
<div class="row">
|
||||
<?php echo template::checkbox('connectCaptcha', true, 'Captcha à la connexion', [
|
||||
'checked' => $this->getData(['config', 'connect','captcha'])
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="row">
|
||||
<?php echo template::checkbox('connectCaptchaStrong', true, 'Captcha complexe', [
|
||||
'checked' => $this->getData(['config', 'connect', 'captchaStrong']),
|
||||
'help' => 'Option recommandée pour sécuriser la connexion. S\'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.'
|
||||
@ -100,7 +97,7 @@
|
||||
<?php echo template::select('connectAnonymousIp', $module::$anonIP, [
|
||||
'label' => 'Anonymat des adresses IP',
|
||||
'selected' => $this->getData(['config', 'connect', 'anonymousIp']),
|
||||
'help' => 'La réglementation française impose un anonymat de niveau 2'
|
||||
'help' => 'La règlementation française impose un anonymat de niveau 2'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col3 verticalAlignBottom">
|
||||
|
@ -199,11 +199,11 @@ class install extends common {
|
||||
// Téléchargement
|
||||
case 2:
|
||||
// Téléchargement depuis le serveur de Zwii
|
||||
//$success = (file_put_contents(self::TEMP_DIR.'update.tar.gz', helper::urlGetContents('https://zwiicms.fr/update/' . common::ZWII_UPDATE_CHANNEL . '/update.tar.gz')) !== false);
|
||||
//$success = (file_put_contents(self::TEMP_DIR.'update.tar.gz', helper::getUrlContents('https://zwiicms.fr/update/' . common::ZWII_UPDATE_CHANNEL . '/update.tar.gz')) !== false);
|
||||
// URL sur le git
|
||||
//$newVersion = helper::urlGetContents('https://zwiicms.fr/update/' . common::ZWII_UPDATE_CHANNEL . '/version');
|
||||
file_put_contents(self::TEMP_DIR.'update.tar.gz', helper::urlGetContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.tar.gz'));
|
||||
$md5origin = helper::urlGetContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.md5');
|
||||
//$newVersion = helper::getUrlContents('https://zwiicms.fr/update/' . common::ZWII_UPDATE_CHANNEL . '/version');
|
||||
file_put_contents(self::TEMP_DIR.'update.tar.gz', helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.tar.gz'));
|
||||
$md5origin = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.md5');
|
||||
$md5origin = (explode(' ',$md5origin));
|
||||
$md5target = md5_file(self::TEMP_DIR.'update.tar.gz');
|
||||
// Valeurs en sortie
|
||||
@ -291,7 +291,7 @@ class install extends common {
|
||||
*/
|
||||
public function update() {
|
||||
// Nouvelle version
|
||||
self::$newVersion = helper::urlGetContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version');
|
||||
self::$newVersion = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version');
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'display' => self::DISPLAY_LAYOUT_LIGHT,
|
||||
|
@ -272,7 +272,9 @@ class page extends common {
|
||||
// Effacer le dossier du module
|
||||
$moduleId = $this->getData(['page',$url[0],'moduleId']);
|
||||
$modulesData = helper::getModules();
|
||||
if (is_dir($modulesData[$moduleId]['dataDirectory']. $url[0])) {
|
||||
if ( array_key_exists($moduleId, $modulesData)
|
||||
&& is_dir($modulesData[$moduleId]['dataDirectory'] . $url[0])
|
||||
) {
|
||||
$this->removeDir( $modulesData[$moduleId]['dataDirectory']. $url[0] );
|
||||
}
|
||||
// Effacer la page
|
||||
@ -358,8 +360,10 @@ class page extends common {
|
||||
// Supprime l'ancienne page si l'id a changée
|
||||
if($pageId !== $this->getUrl(2)) {
|
||||
$this->deleteData(['page', $this->getUrl(2)]);
|
||||
if (file_exists(self::DATA_DIR . self::$i18n . '/content/' . $this->getUrl(2) . '.html')) {
|
||||
unlink (self::DATA_DIR . self::$i18n . '/content/' . $this->getUrl(2) . '.html');
|
||||
}
|
||||
}
|
||||
// Traitement des pages spéciales affectées dans la config :
|
||||
if ($this->getUrl(2) === $this->getData(['locale', 'legalPageId']) ) {
|
||||
$this->setData(['locale','legalPageId', $pageId]);
|
||||
|
@ -58,7 +58,7 @@
|
||||
</div>
|
||||
<div class="col2">
|
||||
<?php echo template::text('pageEditShortTitle', [
|
||||
'label' => 'Titre Court',
|
||||
'label' => 'Titre court',
|
||||
'value' => $this->getData(['page', $this->getUrl(2), 'shortTitle']),
|
||||
'help' => 'Le titre court est affiché dans les menus. Il peut être identique au titre de la page.'
|
||||
]); ?>
|
||||
|
@ -30,7 +30,9 @@ class theme extends common {
|
||||
'export' => self::GROUP_ADMIN,
|
||||
'import' => self::GROUP_ADMIN,
|
||||
'save' => self::GROUP_ADMIN,
|
||||
'fonts' => self::GROUP_ADMIN
|
||||
'fonts' => self::GROUP_ADMIN,
|
||||
'fontAdd' => self::GROUP_ADMIN,
|
||||
'fontDelete' => self::GROUP_ADMIN
|
||||
];
|
||||
public static $aligns = [
|
||||
'left' => 'À gauche',
|
||||
@ -227,6 +229,8 @@ class theme extends common {
|
||||
|
||||
// Variable pour construire la liste des pages du site
|
||||
public static $pagesList = [];
|
||||
// Variable pour construire la liste des fontes installées
|
||||
public static $fontsList = [];
|
||||
|
||||
/**
|
||||
* Thème des écrans d'administration
|
||||
@ -543,8 +547,46 @@ class theme extends common {
|
||||
* Options des fontes
|
||||
*/
|
||||
public function fonts() {
|
||||
// Soumission du formulaire
|
||||
if($this->isPost()) {
|
||||
|
||||
// Polices trouvées dans la configuration
|
||||
$fonts = $this->getData(['fonts']);
|
||||
|
||||
// Polices liées au thème
|
||||
$used = [
|
||||
'Bannière' => $this->getData (['theme', 'header', 'font']),
|
||||
'Menu' => $this->getData (['theme', 'menu', 'font']),
|
||||
'Titre ' => $this->getData (['theme', 'title', 'font']),
|
||||
'Texte' => $this->getData (['theme', 'text', 'font']),
|
||||
'Pied de page' => $this->getData (['theme', 'footer', 'font']),
|
||||
'Titre (admin)' => $this->getData (['admin', 'fontTitle' ]),
|
||||
'Admin (texte)' => $this->getData (['admin', 'fontText' ])
|
||||
];
|
||||
|
||||
// Parcourir les fontes installées et construire le tableau pour le formulaire
|
||||
foreach (self::$fonts as $fontId => $fontName) {
|
||||
|
||||
// Fontes utilisées par le thème
|
||||
$fontUsed[$fontId] = '';
|
||||
foreach ($used as $key => $value) {
|
||||
if ( $value === $fontId) {
|
||||
$fontUsed[$fontId] .= $key . '<br/>';
|
||||
}
|
||||
}
|
||||
self::$fontsList [] = [
|
||||
$fontName,
|
||||
$fontId,
|
||||
$fontUsed[$fontId],
|
||||
//array_key_exists($fontId, $fonts['imported']) ? 'Importée' : '',
|
||||
array_key_exists($fontId, $fonts['files']) ? $fonts['files'][$fontId] : 'CDN Fonts',
|
||||
array_key_exists($fontId, $fonts['imported']) || array_key_exists($fontId, $fonts['files'])
|
||||
? template::button('themeFontDelete' . $fontId, [
|
||||
'class' => 'themeFontDelete buttonRed',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontDelete/' . $fontId . '/' . $_SESSION['csrf'],
|
||||
'value' => template::ico('cancel'),
|
||||
'disabled' => !empty($fontUsed[$fontId])
|
||||
])
|
||||
: ''
|
||||
];
|
||||
}
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
@ -553,6 +595,111 @@ class theme extends common {
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajouter une fonte
|
||||
*/
|
||||
public function fontAdd() {
|
||||
// Soumission du formulaire
|
||||
if ($this->isPost()) {
|
||||
|
||||
$fontId = $this->getInput('fontAddFontId', null, true);
|
||||
$fontName = $this->getInput('fontAddFontName', null, true);
|
||||
$filePath = $this->getInput('fontAddFile', null);
|
||||
$e = explode ('/', $filePath);
|
||||
$file = $e[count($e) - 1 ];
|
||||
|
||||
// Vérifier l'existence de fontId et validité de family namesi usage en ligne de cdnFonts
|
||||
$data = helper::urlGetContents('https://www.cdnfonts.com/' . $fontId . '.font');
|
||||
|
||||
if ( $filePath === ''
|
||||
&& $fontName !== ''
|
||||
&& strpos($data, $fontName) === false
|
||||
) {
|
||||
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'notification' => 'Erreur de nom de fonte ou d\'identifiant',
|
||||
'redirect' => helper::baseUrl() . 'theme/fontAdd',
|
||||
'state' => false
|
||||
]);
|
||||
|
||||
} else {
|
||||
|
||||
// Charger les données des fontes
|
||||
$files = $this->getData(['fonts', 'files']);
|
||||
$imported = $this->getData(['fonts', 'imported']);
|
||||
|
||||
// Concaténation dans les tableaux existants
|
||||
$imported = array_merge([$fontId => $fontName], $imported);
|
||||
$files = array_merge([$fontId => $file], $files);
|
||||
|
||||
// Copier la fonte si le nom du fichier est fourni
|
||||
if (!empty($filePath)) {
|
||||
copy ( self::FILE_DIR . 'source/' . $filePath, self::DATA_DIR . 'fonts/' . $file );
|
||||
}
|
||||
|
||||
// Mettre à jour le fichier des fontes
|
||||
$this->setData(['fonts', 'imported', $imported ]);
|
||||
if (!empty($filePath) ) {
|
||||
$this->setData(['fonts', 'files', $files ]);
|
||||
}
|
||||
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'notification' => 'La fonte a été importée',
|
||||
'redirect' => helper::baseUrl() . 'theme/fonts',
|
||||
'state' => true
|
||||
]);
|
||||
}
|
||||
}
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'title' => 'Ajouter une fonte',
|
||||
'view' => 'fontAdd'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Effacer une fonte
|
||||
*/
|
||||
public function fontDelete() {
|
||||
// Jeton incorrect
|
||||
if ($this->getUrl(3) !== $_SESSION['csrf']) {
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'redirect' => helper::baseUrl() . 'theme/fonts',
|
||||
'notification' => 'Action non autorisée'
|
||||
]);
|
||||
}
|
||||
// Suppression
|
||||
else {
|
||||
|
||||
// Charger les données des fontes
|
||||
$files = $this->getData(['fonts', 'files']);
|
||||
$imported = $this->getData(['fonts', 'imported']);
|
||||
|
||||
// Effacer le fichier existant
|
||||
if ( file_exists(self::DATA_DIR . $files[$this->getUrl(2)]) ) {
|
||||
unlink(self::DATA_DIR . $files[$this->getUrl(2)]);
|
||||
}
|
||||
|
||||
// Supprimer les entrées
|
||||
unset($files[$this->getUrl(2)]);
|
||||
unset($imported[$this->getUrl(2)]);
|
||||
|
||||
// Mettre à jour le fichier des fontes
|
||||
$this->setData(['fonts', 'files', $files ]);
|
||||
$this->setData(['fonts', 'imported', $imported ]);
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'redirect' => helper::baseUrl() . 'theme/fonts',
|
||||
'notification' => 'Fonte supprimée',
|
||||
'state' => true
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Réinitialisation de la personnalisation avancée
|
||||
*/
|
||||
|
18
core/module/theme/view/fontAdd/fontAdd.css
Normal file
18
core/module/theme/view/fontAdd/fontAdd.css
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* This file is part of Zwii.
|
||||
*
|
||||
* For full copyright and license information, please see the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @author Rémi Jean <remi.jean@outlook.com>
|
||||
* @copyright Copyright (C) 2008-2018, Rémi Jean
|
||||
* @author Frédéric Tempez <frederic.tempez@outlook.com>
|
||||
* @copyright Copyright (C) 2018-2022, Frédéric Tempez
|
||||
* @license GNU General Public License, version 3
|
||||
* @link http://zwiicms.fr/
|
||||
*/
|
||||
|
||||
|
||||
/** NE PAS EFFACER
|
||||
* admin.css
|
||||
*/
|
41
core/module/theme/view/fontAdd/fontAdd.js.php
Normal file
41
core/module/theme/view/fontAdd/fontAdd.js.php
Normal file
@ -0,0 +1,41 @@
|
||||
/**
|
||||
* This file is part of Zwii.
|
||||
* For full copyright and license information, please see the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @author Frédéric Tempez <frederic.tempez@outlook.com>
|
||||
* @copyright Copyright (C) 2018-2022, Frédéric Tempez
|
||||
* @license GNU General Public License, version 3
|
||||
* @link http://zwiicms.fr/
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Option par défaut du sélecteur de mode
|
||||
*/
|
||||
$(document).ready(function(){
|
||||
$('input[name=fontAddFontImported]').prop('checked', true);
|
||||
$('#fontAddFileWrapper').hide();
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Mode téléchargement en ligne de la fonte ou installation locale
|
||||
*/
|
||||
$("input[name=fontAddFontImported]").on("click", function() {
|
||||
if( $('input[name=fontAddFontImported]').is(':checked') ){
|
||||
$('input[name=fontAddFontFile]').prop('checked', false);
|
||||
} else {
|
||||
$('input[name=fontAddFontFile]').prop('checked', true);
|
||||
}
|
||||
$('#fontAddFileWrapper').hide();
|
||||
});
|
||||
|
||||
$("input[name=fontAddFontFile]").on("click", function() {
|
||||
if( $('input[name=fontAddFontFile]').is(':checked') ){
|
||||
$('input[name=fontAddFontImported]').prop('checked', false);
|
||||
} else {
|
||||
$('input[name=fontAddFontImported]').prop('checked', true);
|
||||
}
|
||||
$('#fontAddFileWrapper').show();
|
||||
});
|
62
core/module/theme/view/fontAdd/fontAdd.php
Normal file
62
core/module/theme/view/fontAdd/fontAdd.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php echo template::formOpen('fontAddForm'); ?>
|
||||
<div class="row">
|
||||
<div class="col2">
|
||||
<?php echo template::button('fontAddBack', [
|
||||
'class' => 'buttonGrey',
|
||||
'href' => helper::baseUrl() . 'theme/fonts',
|
||||
'ico' => 'left',
|
||||
'value' => 'Retour'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col2 offset8">
|
||||
<?php echo template::submit('fontAddPublish', [
|
||||
'value' => 'Valider',
|
||||
'uniqueSubmission' => true
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Identité de la fonte</h4>
|
||||
<div class="row">
|
||||
<div class="col6">
|
||||
<?php echo template::checkbox('fontAddFontImported', true, 'Fonte téléchargée sur cdnFonts', [
|
||||
'help' => 'Police utilisée en ligne, se connecter sur cdnFonts pour récupérer les informations nécessaires.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::checkbox('fontAddFontFile', true,'Fonte installée', [
|
||||
'help' => '<br/>Sélectionnez un fichier de fonte au format WOFF.'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col6">
|
||||
<?php echo template::text('fontAddFontId', [
|
||||
'autocomplete' => 'off',
|
||||
'label' => 'Identifiant (sans espace ni majuscule)',
|
||||
'placeholder' => 'perry-gothic'
|
||||
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('fontAddFontName', [
|
||||
'autocomplete' => 'off',
|
||||
'label' => 'Nom (Font Family)',
|
||||
'placeholder' => 'PerryGothic'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<?php echo template::file('fontAddFile', [
|
||||
'label' => 'Fichier de police (Format WOFF)',
|
||||
'placeholder' => 'https://fonts.cdnfonts.com/s/7896/PERRYGOT.woff'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo template::formClose(); ?>
|
11
core/module/theme/view/fonts/fonts copy.php
Normal file
11
core/module/theme/view/fonts/fonts copy.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
$filefont = 'https://www.cdnfonts.com/sketched.font';
|
||||
$doc = new DOMDocument();
|
||||
$doc->loadHTMLFile($filefont, LIBXML_NOERROR);
|
||||
$elements = $doc->getElementsByTagName('i');
|
||||
var_dump ($elements);
|
||||
foreach($elements as $element) {
|
||||
if ($element->$textContent === 'http://fonts.cdnfonts.com/css/sketched') {
|
||||
var_dump( $element['textContent'] );
|
||||
}
|
||||
}
|
21
core/module/theme/view/fonts/fonts.js.php
Normal file
21
core/module/theme/view/fonts/fonts.js.php
Normal file
@ -0,0 +1,21 @@
|
||||
/**
|
||||
* This file is part of Zwii.
|
||||
* For full copyright and license information, please see the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @author Frédéric Tempez <frederic.tempez@outlook.com>
|
||||
* @copyright Copyright (C) 2018-2022, Frédéric Tempez
|
||||
* @license GNU General Public License, version 3
|
||||
* @link http://zwiicms.fr/
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Confirmation de suppression
|
||||
*/
|
||||
$(".themeFontDelete").on("click", function() {
|
||||
var _this = $(this);
|
||||
return core.confirm("Êtes-vous sûr de vouloir supprimer cette fonte ?", function() {
|
||||
$(location).attr("href", _this.attr("href"));
|
||||
});
|
||||
});
|
@ -1,11 +1,22 @@
|
||||
<?php
|
||||
$filefont = 'https://www.cdnfonts.com/sketched.font';
|
||||
$doc = new DOMDocument();
|
||||
$doc->loadHTMLFile($filefont, LIBXML_NOERROR);
|
||||
$elements = $doc->getElementsByTagName('i');
|
||||
var_dump ($elements);
|
||||
foreach($elements as $element) {
|
||||
if ($element->$textContent === 'http://fonts.cdnfonts.com/css/sketched') {
|
||||
var_dump( $element['textContent'] );
|
||||
}
|
||||
}
|
||||
<div class="row">
|
||||
<div class="col2">
|
||||
<?php echo template::button('themeFontBack', [
|
||||
'class' => 'buttonGrey',
|
||||
'href' => helper::baseUrl() . 'theme',
|
||||
'ico' => 'left',
|
||||
'value' => 'Retour'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col2 offset8">
|
||||
<?php echo template::button('themeFontAdd', [
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontAdd',
|
||||
'ico' => 'plus',
|
||||
'value' => 'Fonte'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($module::$fontsList): ?>
|
||||
<?php echo template::table([3, 3, 3, 3, 1], $module::$fontsList, ['Family Name', 'Font Id', 'Affectation', 'Ressource', 'Effacer']); ?>
|
||||
<?php else: ?>
|
||||
<?php echo template::speech('Aucune fonte !'); ?>
|
||||
<?php endif; ?>
|
||||
|
@ -30,7 +30,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col2 offset3">
|
||||
<div class="col2 offset2">
|
||||
<?php echo template::button('themeFonts', [
|
||||
'ico' => 'font',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fonts',
|
||||
'value' => 'Fontes'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col2">
|
||||
<?php echo template::button('themeManage', [
|
||||
'ico' => 'sliders',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/manage',
|
||||
@ -84,7 +91,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col2 offset3">
|
||||
<div class="col2 offset2">
|
||||
<?php echo template::button('themeFonts', [
|
||||
'ico' => 'font',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fonts',
|
||||
'value' => 'Fontes'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col2">
|
||||
<?php echo template::button('themeManage', [
|
||||
'ico' => 'sliders',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/manage',
|
||||
@ -97,7 +111,6 @@
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/admin',
|
||||
'value' => 'Administration'
|
||||
]); ?>
|
||||
|
||||
</div>
|
||||
<div class="col2">
|
||||
<?php echo template::button('themeAdvanced', [
|
||||
|
2
core/vendor/filemanager/config/config.php
vendored
2
core/vendor/filemanager/config/config.php
vendored
@ -458,7 +458,7 @@ $config = array(
|
||||
'ext_file' => array( 'doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai', 'kmz','dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm', 'ics', 'gpx', 'kml', ''), //Files
|
||||
'ext_video' => array( 'mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm" ), //Video
|
||||
'ext_music' => array( 'mp3', 'mpga', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav' ), //Audio
|
||||
'ext_misc' => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg' ), //Archives
|
||||
'ext_misc' => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg', 'woff' ), //Archives et polices de caractères
|
||||
|
||||
|
||||
//*********************
|
||||
|
2
core/vendor/zwiico/css/zwiico-codes.css
vendored
2
core/vendor/zwiico/css/zwiico-codes.css
vendored
@ -24,6 +24,7 @@
|
||||
.zwiico-eye-off:before { content: '\e815'; } /* '' */
|
||||
.zwiico-down-open:before { content: '\e816'; } /* '' */
|
||||
.zwiico-upload:before { content: '\e817'; } /* '' */
|
||||
.zwiico-font:before { content: '\e818'; } /* '' */
|
||||
.zwiico-left-open:before { content: '\e819'; } /* '' */
|
||||
.zwiico-down-big:before { content: '\e81a'; } /* '' */
|
||||
.zwiico-cog-alt:before { content: '\e81b'; } /* '' */
|
||||
@ -56,6 +57,7 @@
|
||||
.zwiico-youtube:before { content: '\f167'; } /* '' */
|
||||
.zwiico-instagram:before { content: '\f16d'; } /* '' */
|
||||
.zwiico-box:before { content: '\f187'; } /* '' */
|
||||
.zwiico-cubes:before { content: '\f1b3'; } /* '' */
|
||||
.zwiico-file-archive:before { content: '\f1c6'; } /* '' */
|
||||
.zwiico-sliders:before { content: '\f1de'; } /* '' */
|
||||
.zwiico-brush:before { content: '\f1fc'; } /* '' */
|
||||
|
14
core/vendor/zwiico/css/zwiico-embedded.css
vendored
14
core/vendor/zwiico/css/zwiico-embedded.css
vendored
File diff suppressed because one or more lines are too long
2
core/vendor/zwiico/css/zwiico-ie7-codes.css
vendored
2
core/vendor/zwiico/css/zwiico-ie7-codes.css
vendored
@ -24,6 +24,7 @@
|
||||
.zwiico-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-down-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
@ -56,6 +57,7 @@
|
||||
.zwiico-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-instagram { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-box { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-cubes { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-file-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-sliders { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-brush { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
|
2
core/vendor/zwiico/css/zwiico-ie7.css
vendored
2
core/vendor/zwiico/css/zwiico-ie7.css
vendored
@ -35,6 +35,7 @@
|
||||
.zwiico-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-down-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
@ -67,6 +68,7 @@
|
||||
.zwiico-youtube { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-instagram { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-box { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-cubes { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-file-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-sliders { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.zwiico-brush { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
|
16
core/vendor/zwiico/css/zwiico.css
vendored
16
core/vendor/zwiico/css/zwiico.css
vendored
@ -1,11 +1,11 @@
|
||||
@font-face {
|
||||
font-family: 'zwiico';
|
||||
src: url('../font/zwiico.eot?39677933');
|
||||
src: url('../font/zwiico.eot?39677933#iefix') format('embedded-opentype'),
|
||||
url('../font/zwiico.woff2?39677933') format('woff2'),
|
||||
url('../font/zwiico.woff?39677933') format('woff'),
|
||||
url('../font/zwiico.ttf?39677933') format('truetype'),
|
||||
url('../font/zwiico.svg?39677933#zwiico') format('svg');
|
||||
src: url('../font/zwiico.eot?24592042');
|
||||
src: url('../font/zwiico.eot?24592042#iefix') format('embedded-opentype'),
|
||||
url('../font/zwiico.woff2?24592042') format('woff2'),
|
||||
url('../font/zwiico.woff?24592042') format('woff'),
|
||||
url('../font/zwiico.ttf?24592042') format('truetype'),
|
||||
url('../font/zwiico.svg?24592042#zwiico') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@ -15,7 +15,7 @@
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'zwiico';
|
||||
src: url('../font/zwiico.svg?39677933#zwiico') format('svg');
|
||||
src: url('../font/zwiico.svg?24592042#zwiico') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
@ -79,6 +79,7 @@
|
||||
.zwiico-eye-off:before { content: '\e815'; } /* '' */
|
||||
.zwiico-down-open:before { content: '\e816'; } /* '' */
|
||||
.zwiico-upload:before { content: '\e817'; } /* '' */
|
||||
.zwiico-font:before { content: '\e818'; } /* '' */
|
||||
.zwiico-left-open:before { content: '\e819'; } /* '' */
|
||||
.zwiico-down-big:before { content: '\e81a'; } /* '' */
|
||||
.zwiico-cog-alt:before { content: '\e81b'; } /* '' */
|
||||
@ -111,6 +112,7 @@
|
||||
.zwiico-youtube:before { content: '\f167'; } /* '' */
|
||||
.zwiico-instagram:before { content: '\f16d'; } /* '' */
|
||||
.zwiico-box:before { content: '\f187'; } /* '' */
|
||||
.zwiico-cubes:before { content: '\f1b3'; } /* '' */
|
||||
.zwiico-file-archive:before { content: '\f1c6'; } /* '' */
|
||||
.zwiico-sliders:before { content: '\f1de'; } /* '' */
|
||||
.zwiico-brush:before { content: '\f1fc'; } /* '' */
|
||||
|
BIN
core/vendor/zwiico/font/zwiico.eot
vendored
BIN
core/vendor/zwiico/font/zwiico.eot
vendored
Binary file not shown.
4
core/vendor/zwiico/font/zwiico.svg
vendored
4
core/vendor/zwiico/font/zwiico.svg
vendored
@ -56,6 +56,8 @@
|
||||
|
||||
<glyph glyph-name="upload" unicode="" d="M714 29q0 14-10 25t-25 10-25-10-11-25 11-25 25-11 25 11 10 25z m143 0q0 14-10 25t-26 10-25-10-10-25 10-25 25-11 26 11 10 25z m72 125v-179q0-22-16-38t-38-16h-821q-23 0-38 16t-16 38v179q0 22 16 38t38 15h238q12-31 39-51t62-20h143q34 0 61 20t40 51h238q22 0 38-15t16-38z m-182 361q-9-22-33-22h-143v-250q0-15-10-25t-25-11h-143q-15 0-25 11t-11 25v250h-143q-23 0-33 22-9 22 8 39l250 250q10 10 25 10t25-10l250-250q18-17 8-39z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="font" unicode="" d="M925-124h-264q-15 40-18 92-120-119-306-119-95 0-169 29t-121 95-47 162q0 40 9 74t21 60 35 47 43 37 54 27 57 21 64 15 64 11 65 8q50 6 100 15 24 4 37 7t34 11 32 17 20 26 8 38q0 126-170 126-87 0-130-31t-57-114h-244q6 90 44 154t101 99 134 51 159 15q68 0 125-7t111-29 93-54 60-89 23-129v-408q0-64 1-91t8-78 24-88z m-284 354v106q-33-19-87-30t-100-19-91-19-70-43-26-79q0-62 40-94t103-33q103 0 167 55t64 156z" horiz-adv-x="925" />
|
||||
|
||||
<glyph glyph-name="left-open" unicode="" d="M654 682l-297-296 297-297q10-10 10-25t-10-25l-93-93q-11-10-25-10t-25 10l-414 415q-11 10-11 25t11 25l414 414q10 11 25 11t25-11l93-93q10-10 10-25t-10-25z" horiz-adv-x="714.3" />
|
||||
|
||||
<glyph glyph-name="down-big" unicode="" d="M899 386q0-30-21-50l-363-364q-22-21-51-21-29 0-50 21l-363 364q-21 20-21 50 0 29 21 51l41 41q22 21 51 21 29 0 50-21l164-164v393q0 29 21 50t51 22h71q29 0 50-22t21-50v-393l165 164q20 21 50 21 29 0 51-21l41-41q21-22 21-51z" horiz-adv-x="928.6" />
|
||||
@ -120,6 +122,8 @@
|
||||
|
||||
<glyph glyph-name="box" unicode="" d="M607 386q0 14-10 25t-26 10h-142q-15 0-25-10t-11-25 11-25 25-11h142q15 0 26 11t10 25z m322 107v-536q0-14-11-25t-25-11h-786q-14 0-25 11t-11 25v536q0 14 11 25t25 11h786q14 0 25-11t11-25z m35 250v-143q0-14-10-25t-25-11h-858q-14 0-25 11t-10 25v143q0 14 10 25t25 11h858q14 0 25-11t10-25z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="cubes" unicode="" d="M357-61l214 107v176l-214-92v-191z m-36 254l226 96-226 97-225-97z m608-254l214 107v176l-214-92v-191z m-36 254l225 96-225 97-226-97z m-250 163l214 92v149l-214-92v-149z m-36 212l246 105-246 106-246-106z m607-289v-233q0-20-10-37t-29-26l-250-125q-14-8-32-8t-32 8l-250 125q-2 1-4 2-1-1-4-2l-250-125q-14-8-32-8t-31 8l-250 125q-19 9-29 26t-11 37v233q0 21 12 39t32 26l242 104v223q0 22 12 40t31 26l250 107q13 6 28 6t28-6l250-107q20-9 32-26t12-40v-223l242-104q20-8 32-26t11-39z" horiz-adv-x="1285.7" />
|
||||
|
||||
<glyph glyph-name="file-archive" unicode="" d="M357 636v71h-71v-71h71z m72-72v72h-72v-72h72z m-72-71v71h-71v-71h71z m72-72v72h-72v-72h72z m390 217q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-71v-72h-72v72h-286v-858h715z m-350 403l60-195q4-15 4-29 0-46-40-77t-103-30-102 30-41 77q0 14 5 29 12 35 67 221v71h71v-71h44q13 0 22-7t13-19z m-79-260q30 0 51 11t21 25-21 25-51 11-50-11-21-25 21-25 50-11z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="sliders" unicode="" d="M196 64v-71h-196v71h196z m197 72q14 0 25-11t11-25v-143q0-14-11-25t-25-11h-143q-14 0-25 11t-11 25v143q0 15 11 25t25 11h143z m89 214v-71h-482v71h482z m-357 286v-72h-125v72h125z m732-572v-71h-411v71h411z m-536 643q15 0 26-10t10-26v-142q0-15-10-25t-26-11h-142q-15 0-25 11t-11 25v142q0 15 11 26t25 10h142z m358-286q14 0 25-10t10-25v-143q0-15-10-25t-25-11h-143q-15 0-25 11t-11 25v143q0 14 11 25t25 10h143z m178-71v-71h-125v71h125z m0 286v-72h-482v72h482z" horiz-adv-x="857.1" />
|
||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 29 KiB |
BIN
core/vendor/zwiico/font/zwiico.ttf
vendored
BIN
core/vendor/zwiico/font/zwiico.ttf
vendored
Binary file not shown.
BIN
core/vendor/zwiico/font/zwiico.woff
vendored
BIN
core/vendor/zwiico/font/zwiico.woff
vendored
Binary file not shown.
BIN
core/vendor/zwiico/font/zwiico.woff2
vendored
BIN
core/vendor/zwiico/font/zwiico.woff2
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user