push initial du projet par Stéphane

This commit is contained in:
Pontoporeia
2022-12-10 14:32:31 +01:00
commit ba6ee35e31
182 changed files with 38110 additions and 0 deletions

50
config/config.php Executable file
View File

@@ -0,0 +1,50 @@
<?php
session_start();
// infos de base du site
$site=array(
"titre"=>"Xml collection 2020",
"descriptif"=>"Un dérivé de XML collection avec une fonction d'import. Comment montrer un grand nombre de documents et les classer de la manière la plus fluide possible ?",
"keywords"=>"collection, xml, outil, galerie",
"footer" => "Copyleft XML Collection v3",
);
// accès
$logins = array(
"admin"=> array( // the login
"nom"=>"admin", // the name (! not the login)
"pwd"=>"admin" // the password
)
);
define("COLLECTION",true); // gestion des collections activée
define("DISPLAY_TOOL_TRI",true); // afficher ou pas l'outil de tri
define("DISPLAY_TOOL_INFOS",true); // afficher ou pas l'outil des infos
define("DISPLAY_TOOL_ACTION",true); // afficher ou pas le choix de l'affichage des contenus
define("DISPLAY_ACTION","showlateral"); // gestion des collections activée showgal, showlateral, shpwfullpage
define("DISPLAY_TRI","byid"); // gestion de l'ordre des items: byid,byantiid,alpha,antialpha
// taille des vignettes
define("ILLU_WIDTH",500);
define("ILLU_HEIGHT",500);
define("IMG_DEFAULT","images/defaut.jpg");
// chemin pour toutes les manipulations de fichier
define("CHEMIN", str_replace(array("/admin","/process","/inc"),"",realpath(''))."/");
@$url_dir = preg_replace('/[^\/]+\.php(\?.*)?$/i', '',($_SERVER['REQUEST_SCHEME'] ? $_SERVER['REQUEST_SCHEME']."://" : "http://"). $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
define("URL",str_replace(array("/config","/process","/inc"),"",$url_dir));
/* constantes utiles */
define("DOSSIER_XML","contenus/xmls/"); // dossier des xml
define("DOSSIER_FICHIERS","contenus/fichiers/"); // dossier des fichiers
define("DOSSIER_VIGNETTES","contenus/cache/vignettes/"); // dossier des vignettes
define("DOSSIER_CACHE","contenus/cache/"); // cache pour vignettes et des items
define("MODELE",CHEMIN."config/structure_xml.xml");
define("DOSSIER_UPLOAD","upload/");
define("DOSSIER_CUSTOM","config/custom/");
define("DOSSIER_COLLECTION","contenus/collections/"); // dossier des xml
define("MODELE_COLLECTION",CHEMIN."config/structure_collection.xml");
// afficher les messages d'erreur ou log obligé
define("DEBUG",false);
?>

10
config/custom/about.xml Executable file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<item type="livre">
<titre>A propos</titre>
<texte>&lt;p&gt;Ce site est destiné à explorer les possibilités d'une galerie simple sans base de données, avec système d'import massif et tri à la volée, plus la possibilité de préparer des sélections de ces éléments. Le tout est pensé à but pédagogiques.&lt;/p&gt;&#13;
&lt;p&gt;Ceci est la deuxième version de ce projet, la première version datant de 2015.&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&lt;i&gt;Stéphane Noël&lt;/i&gt;&lt;/p&gt;&#13;
&#13;
</texte>
</item>

17
config/custom/configuration.xml Executable file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<item dir="ltr">
<titre><![CDATA[
Configuration
]]></titre>
<texte><![CDATA[
<p>Il est possible lors que l'installation de configurer le titre, descriptif, keywords et footer de ce site grâce au fichier général de configuration.</p>
<p>De plus, le dossier "custom" du site permet:<br>
- de placer dans le menu des pages comme celle-ci sous format XML.<br>
- d'ajouter des déclarations css supplémentaires dans un ou plusieurs fichiers css.<br>
- de recoder les principales fonctions d'affichages dans un fichier récervés à ces fonctions</p>
<p>Cette méthode permet d'updater le site sans perdre ses propres modifications à l'avenir</p>
]]>
</texte>
</item>

View File

@@ -0,0 +1,14 @@
<?php
function display_mosaique_item_custom_disactived($xml,$return=false){
$item = "<article class=\"col-12 col-sm-6 col-md-4 col-lg-3 mb-3 item\" data-xml=\"".$xml->fichier_seul."\" data-mainillu=\"".$xml->get("illustration", "images/defaut.jpg")."\">\n";
$item .= "<div class=\"info-content\"><h3 class=\"titre-mini mb-2\" onclick=\"item_click(this)\" data-contenu=\"titre\">".$xml->get("titre")."</h3>";
$item .= "</article>\n";
if($return){
return $item;
} else {
echo $item;
}
}
?>

14
config/custom/perso.css Executable file
View File

@@ -0,0 +1,14 @@
/*
[display-viewer='on'][display-container=side-container] #side-container {
left:50vw;
opacity:1;
}
[display-viewer='on'][display-container=side-container] #items-container {
width:50%;
}
#side-container {
width:50%;
}
*/

12
config/custom/roadmad.xml Executable file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<item type="livre">
<titre>Roadmap</titre>
<texte>&lt;p&gt;- Les champs obligatoires doivent être obstructifs&lt;/p&gt;&lt;p&gt;&#13;
- les images de galeries doivent pouvoir être montées sous forme de zip pour plus de facilité&lt;/p&gt;&lt;p&gt;&#13;
- affichage en liste des items sur base des items de la liste: abandonner le système bootstrap pour quelque chose de personnalisé, et de plus adapté&lt;/p&gt;&lt;p&gt;&#13;
- Ajouter un outil de réorganisation + sauvegarde de l'ordre obtenu (renommer en masse les fichiers xml)&lt;/p&gt;&lt;p&gt;- forcer la taille des vignettes quand elles sont trop petites&lt;br&gt;&lt;/p&gt;&lt;p&gt;&#13;
- Ajouter la possibilité de modifier les settings de base via un xml de configuration, editable dans l'admin&#13;
&#13;
&#13;
&lt;/p&gt;</texte>
</item>

11
config/structure_collection.xml Executable file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!--
attributs: multiple="oui" pour multiple
-->
<item type="collection" titre="Collection" cle="titre">
<titre type="text" titre="Titre" class="titre-small" obligatoire="oui"></titre>
<auteur type="text" titre="Auteur" obligatoire="oui"></auteur>
<tags type="text" titre="Tags"></tags>
<descriptif type="textarea" titre="Descriptif"></descriptif>
<items titre="items" multiple="oui" type="text"></items>
</item>

8
config/structure_page.xml Executable file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<!--
attributs: multiple="oui" pour multiple
-->
<item type="livre" titre="Livre" cle="titre">
<titre type="text" titre="Titre" class="ergote-lateral-titre my-2" obligatoire="oui" afficher="oui"></titre>
<texte type="textarea" titre="Contenu" class="" afficher="oui"></texte>
</item>

26
config/structure_xml.xml Executable file
View File

@@ -0,0 +1,26 @@
<?xml version="1.0"?>
<!--
le nom des tag est libre
L'ordre sera l'ordre d'affichage des champs
le type peut être: text, textarea, select, radio, image, file
l'attribut titre="letitre" permet l'affichage du label. Il est obligatoire
pour select et radio, les options sont ajoutées dans un attribut valeur séparé par des pipes (|): contenu="un|deux|trois"
tous ces champs peuvent être multiples, c'est à dire pouvoir être dédoublés. Dans ce cas, ajouter l'attibut multiple="oui"
pour les fichiers et les images, un attribut allow suivi des extensions autorisées est obligatoire: allow="jpg,jpeg,png,gif" pour les images (qui seront affichées) et allow="pdf,zip,doc,xls" par exemple pour les fichiers
l'attibut class="" permet de personnaliser l'affichage dans les affichages létéraul et en full screen. Xml collection emploie bootstrap, et on peut aussi utiliser la css personnelle (voir le fichier instructions.txt)
un attribut obligatoire="oui" est prévu mais pas encore actif
l'attribut afficher="oui" affiche l'information dans la collection en homepage
en cas ou un élément est multiple et montré en liste,
la classe .sep-virgule permet de séparer les éléments par des virgules
Typiquement des tags
-->
<item type="item" titre="item" cle="titre">
<illustration type="image" titre="Image principale" allow="jpg,jpeg,gif,png" afficher="oui"></illustration>
<titre type="text" titre="Titre" class="titre-small my-2" obligatoire="oui" afficher="oui"></titre>
<auteur type="text" titre="Auteur" obligatoire="oui" afficher="oui"></auteur>
<tags type="text" titre="Tags" multiple="oui" class="py-1 my-2 border-top border-bottom small sep-virgule" afficher="oui"></tags>
<descriptif type="textarea" titre="Descriptif" class=""></descriptif>
<galerie type="image" titre="Galerie" multiple="oui" allow="jpg,jpeg,gif,png"></galerie>
<fichier type="file" titre="Fichiers" multiple="oui" allow="pdf,zip,tif,doc"></fichier>
</item>