adHoc - Module de Téléchargements

→ Installer un Module (ou service) de Téléchargements dans adHoc

C'est le Module qui fonctionne désormais, en exemple sur ce site accessible par le menu horizontal ci-dessus ou en cliquant sur le lien latéral ci-contre.

Il n'y avait pas jusqu'à présent, pour adHoc, de Module de ce type. Je m'y suis penché finalement, et à partir du service présenté ci-dessous, vous pouvez choisir un Module complètement intégré dans adHoc et dont tous les réglages s'effectuent dans l'admin d'adHoc. Ce Module est complètement, nativement trilingue (anglais, français, italien) comme il se doit.

Il est adapté en utilisant le système accordéon uniquement en CSS issu de ce tutoriel : Autres astuces en CSS - Des textes en accordéon.

Le service simple ou le Module (de préférence) sont de nettes améliorations du service déjà présenté sur ce site ici : ici, adapté à partir d'un script (dont je remercie à nouveau l'auteur), trouvé ici : http://sdz.tdct.org/sdz/compteur-de-telechargements.html

Ce Module ou service simple vous permet d'intégrer dans une seule page, tous les items de téléchargement de fichiers zip que vous avez créés, dans des soufflets accordéon représentant chacun une catégorie. Ce service comptabilisera de manière dynamique, le nombre de chacun de vos téléchargements.

La rédaction de ces items se fera tout simplement comme n'importe quelle page, avec l'éditeur de texte que vous utilisez dans l'admin d'adHoc, dans une ou plusieurs catégories que vous dédierez à ce service.

Si vous avez déjà installé un des services précédents le Module, il vous sera assez facile de reporter les items dans ce Module et les statistiques seront reprises (lire plus bas).

Comme pour les services précédents, lorsque vous prévoirez un lien vers votre page de téléchargement ou votre archive, vous pourrez le présenter de trois manières :

→ vers la page par défaut (qui peut être présentée avec tous les soufflets des catégories fermés)


<p>Service de <a href="download.php">Téléchargements</a></p>

→ avec une variable de catégorie passée dans l'URL pour permettre l'ouverture du soufflet correspondant (nous y reviendrons plus bas : voir les noms de catégorie courts).


<p>Vous pouvez télécharger ce fichier <a href="download.php?cat=camera-ug">mon-archive.zip</a>.</p>

→ avec une variable de fichier passée dans l'URL pour permettre le téléchargement direct de l'archive (son compteur s'incrémentera).


<p>Vous pouvez télécharger ce fichier <a href="download.php?file=mon-archive">mon-archive.zip</a>.</p>

Si vous choisissez le service simple, il vous faudra mettre "un peu" les doigts dans le cambouis... mais rien d'insurmontable ! Par contre, si vous utilisez le Module, la gestion en est infiniment plus simple... Dans tous les cas, si vous utilisez ce script, veuillez, s'il vous plait, laisser les références à l'origine du script et à mon site, ainsi que sa licence GNU-GPL V3.

→ La mise en place, soit du Module, soit du service simple

→ → Vous pouvez télécharger cette archive zip du service simple : download.zip. Les fichiers extraits seront à placer à la racine dans votre site par FTP après avoir paramétré les variables du fichier download.php.

Voici l'arborescence des dossiers et fichiers du service simple de téléchargements.

data
download
→ → index.php
download.php

→ → Ou bien l'archive zip du Module (ce que je vous conseille désormais...) : mod_download_3_1.zip. Décompressez le zip sur votre disque dur. Envoyez le contenu du zip (quatre dossiers : admin, data, modules, skin et un fichier : download.php) à la racine de votre site adHoc par FTP s'il est en ligne, ou directement dans le dossier local contenant votre site (acceptez de fusionner les dossiers).
Pour cette version 3.1, sur la suggestion d'Alain (un des fondateurs d'adHoc), il y a l'ajout d'un lien d'Administration Rapide vers les réglages du module (voir ici pour son utilisation : CMS AdHoc - Administration Rapide).

Mais, dans les deux cas, des opérations préalables sont nécessaires :

→ Si nécessaire, pour les opérations qui suivent, vous pouvez vous rapporter utilement à la documentation en ligne d'adHoc, et notamment https://www.cmsadhoc.net/private/013-pages-configuration-fr.php et pages suivantes.

→ Dans votre admin, vous devez avoir créé une ou plusieurs catégorie(s) dans une ou plusieurs boîte(s) menu(s). Ces catégories contiendront l'ensemble de vos items. Une boîte menu peut être rendue privée si vous ne souhaitez adresser certains items (certaines archives téléchargeables, donc...) qu'aux membres de votre site ou rester publique, en totalité, à votre souhait (et dans ce cas, une boîte menu suffit amplement...).

→ Vous pouvez choisir d'afficher ou non votre(vos) boîte(s) menu(s) dans les réglages de l'Apparence. Et vous pouvez aussi configurer le type de menu. Mais dans ce type de service, il ne me paraît pas forcément nécessaire de présenter les items un par un comme les pages ordinaires. C'est à votre goût...

→ Notez bien les numéros (l'Identifiant : Id) de vos catégories : elles seront à reporter dans les réglages.

→ Créez autant d'items que vous le souhaitez, dans vos différentes catégories, dans l'admin avec l'éditeur de texte dont vous avez l'habitude. ATTENTION : Comme pour l'ancien service, le titre de l'item (de la page) et le nom de l'archive à télécharger doivent être strictement identiques et d'un seul tenant, sans accent, sans majuscule et sans extension ( utilisez par exemple, les caractères - ou _ ) : par exemple mon-archive. C'est ce titre qui servira de lien de téléchargement.

→ Les archives devront être au format .zip. et placés dans le répertoire files (c'est le plus simple...). Je n'ai pas réussi à obtenir un résultat suffisamment satisfaisant et pratique pour permettre aussi le téléchargement de fichiers .pdf. Je vous suggère, si vous souhaitez aussi permettre l'accès à des .pdf de les compresser au format .zip. C'est encore le plus simple (mais, à la demande, je pourrais vous indiquer "une solution imparfaite" pour y parvenir directement).

→ Si vous désactivez un ou plusieurs items en admin, le script ne les affichera pas.

→ Le fichier download.php

Dans les deux solutions, vous avez un fichier download.php qui devra être placé à la racine de votre site et pourra être appelé dans un lien de la Barre de Menu, avec un lien dans une boîte dédiée, ou tout autre moyen à votre convenance. Si vous aviez installé déjà le simple service, écrasez l'ancien fichier download.php avec celui du Module et procédez aux réglages en admin.

→ Les Réglages

Choisissez la suite du tutoriel en fonction de votre installation.

→ Voir la suite pour le service simple

→ Voir la suite pour le Module

→ → Les réglages du Module

Rendez-vous ensuite dans l'admin d'adHoc. Vous avez un onglet Modules, il vous donne accès à l'icône download. Vous pouvez ensuite y régler toutes les variables, dont les commentaires sont , je l'espère, assez clairs... Ce sont évidemment les mêmes variables que pour le simple service...

Ci-dessous, une imagette de saisie d'écran du réglage en admin, vous pouvez cliquer dessus pour zoomer.

→ → → le style

Pour le module, le style "accordeon" est placé dans un fichier spécifique avec une police d'icône gratuite pour un usage personnel sTmedia, si ce style vous convient, inutile de modifier quoi que ce soit. Sinon vous pouvez intervenir sur ce fichier skin/css/CSS_textes_accordeon-download.css qui est quasi identique à la partie de style présentée un peu plus bas pour le service simple. Pour les icônes, vous pouvez en changer : voyez l'image skin/css/fonts/stmedia.jpg et reportez vos choix dans le fichier de style. Il est possible, si vous souhaitez utiliser les "caractères" de la police Fontawesome (utilisés sur ce site), de l'installer et de les mettre en fonction dans le style.

→ → → les statistiques

→ Dans l'ancien service, les statistiques étaient placées dans le répertoire data/download/stat/ . Si vous l'avez utilisé, vous devez déplacer tous les fichiers .txt de vos statistiques vers le répertoire parent data/download/ désormais utilisé pour le Module.

→ → RAPPEL : Les fichiers .txt sont créés par le script au nom de votre archive : il vous suffira de rafraîchir l'affichage de la page pour les créer et afficher téléchargé 0 fois. Ensuite ce sont les clics sur les liens de téléchargement des fichiers qui incrémenteront les compteurs.

Retour vers le début des réglages

Passer à la suite directement

→ → Les réglages du service simple

Ci-dessous la partie du fichier où vous aurez à intervenir pour les réglages des variables de votre service de Téléchargements. Les commentaires sont, je l'espère, assez clairs.


// Variables à ne modifier que si c'est vraiment nécessaire...
$folder_stat = 'data/download/' ; // C'EST LE PLUS PRATIQUE : répertoire dans lequel seront stockées les statistiques 
										// !! ATTENTION : si modifié, doit être strictement identique plus bas dans la fonction NumberOfHit
$folder_archive = 'files/' ; // C'EST LE PLUS PRATIQUE : répertoire des téléchargements

// Variables à régler

$numcategorie = array('12', '13', '14', '15', '16', '17');
	// liste des numéros (Id) des catégories dans l'ordre où vous souhaitez qu'elles s'affichent
$nomcategoriecourt = array('adhoc', 'skins', 'camera-ug', 'survol', 'audio', 'carousel');
	// noms courts -un mot- des catégories dans le même ordre (permet de passer une variable dans l'URL de download.php pour ouvrir un soufflet)
$categorieouverte = '';
	// '' pour tout fermer par défaut ou éventuellement une de vos catégories à ouvrir par défaut
	// ( par exemple 'adhoc' ou 'skins' etc... )

$affdate = 'oui'; // affichage date : 'oui' ou 'non'
$SouC = 'S'; // si affichage date // 'S' : simple (sans heure) // 'C' : complète (date et heure)
$coum = 4; // date création : 3 ou date dernière modification : 4

$connex = 0; // 0 : une partie au moins est accessible au visiteur // ou 1 : tout le service n'est accessible qu'après connexion
			 //(ATTENTION : Dans ce dernier cas -privé- n'oubliez pas de faire de même pour la boîte menu qui contient vos catégories)

$typeaccordeon = 'checkbox' ; // 'radio' ou 'checkbox' suivant le type d'accordéon souhaité

	// dont définition des variables de langue
	if (USER_LANG == 'fr') { // fr
	$meta['title'] = 'Service de téléchargement'; // titre
	$meta['description'] = 'Téléchargements d\'archives'; // description
	$topmess = 'Téléchargements' ; // nom de la page
	$telecharge = 'Téléchargé ' ;
	$fois = ' fois' ;
	$message[3] = 'Création le : ';
	$message[4] = 'Dernière version le : ';
	$prive = 'Désolé, cette page est en accès privé.'; // avertissement si privé
	}
	elseif (USER_LANG == 'it') { // it
	$meta['title'] = 'Servizio di download'; // titre
	$meta['description'] = 'Download di archivi'; // description
	$topmess = 'Download' ; // nom de la page
	$telecharge = 'Telescritto ' ;
	$fois = ' volte' ;
	$message[3] = 'Creato il : ';
	$message[4] = 'Ultima versione il : ';
	$prive = 'Spiacenti, questa pagina è riservata.'; // avertissement si privé
	}
	elseif (USER_LANG == 'en') { // en
	$meta['title'] = 'Download service'; // titre
	$meta['description'] = 'Archive downloads'; // description
	$topmess = 'Download' ; // nom de la page
	$telecharge = 'Downloaded ' ;
	$fois = ' times' ;
	$message[3] = 'Created on : ';
	$message[4] = 'Last version on : ';
	$prive = 'Sorry, this page is private.'; // avertissement si privé
	}

→ Dans l'ancien service, les statistiques étaient placées dans le répertoire data/download/stat/ . Si vous l'avez utilisé, vous pouvez pour le service simple :

→ → soit déplacer tous les fichiers .txt de vos statistiques vers le répertoire parent data/download/

→ → soit les laisser où ils sont mais modifier la variable $folder_stat aux deux endroits (impérativement !) dans le fichier download.php.

→ → → RAPPEL : Les fichiers .txt sont créés par le script au nom de votre archive : il vous suffira de rafraîchir l'affichage de la page pour les créer et afficher téléchargé 0 fois. Ensuite ce sont les clics sur les liens de téléchargment des fichiers qui incrémenteront les compteurs.

→ Vous pouvez rendre tout ou partie de votre service de téléchargements privé ou pas (en association nécessaire avec le Niveau visibilité Boîte pour les boîtes concernées dans l'admin de votre site).

→ Vous pouvez choisir d'afficher un soufflet ouvert par défaut et également dans l'URL, passer une variable pour ouvrir un soufflet particulier (voir plus haut). C'est pourquoi il convient de bien renseigner toutes les variables : $numcategorie $nomcategoriecourt et $categorieouverte.

→ Vous pouvez choisir d'afficher ou non la date (avec ou sans heure) de création ou de dernière modification.

→ Les variables de langue servent à renseigner le code source ($meta[...]), à afficher un titre à la page et à proposer un message d'avertissement en cas de service privé. Vous pouvez les traduire si vous les utilisez dans les 3 langues principales d'adHoc. Si votre site possède plus de langues, il vous faudra ajouter et traduire les variables nécessaires dans un bloc de test elseif (USER_LANG == '??') { .... } .

→ → → dans le fichier download.php du service simple : le style

Le fichier download.php contient une partie de style indispensable. Cela me paraît, pour le service simple être le plus pratique. Si le style vous convient, inutile de le modifier, sinon, intervenez dans cette partie.


.ac-container { /*attributs du conteneur*/
	width: 99%; /*largeur du conteneur*/
	margin: 10px auto 30px; /*marges extérieures H DG B*/
	text-align: left; /*alignement texte gauche*/
}
.ac-container label,
.ac-container input[type="checkbox"] + label { /*attributs des titres*/
	font-family: Open sans, sans-serif; /*police*/
	font-size: 19px; /*taille police*/
	margin:0 auto 5px; /*marges extérieures H DG B à adapter*/
	line-height: 28px; /*hauteur ligne*/
	padding: 5px 20px; /*marges intérieures*/
	position: relative;
	display: block;
	height: auto; /*hauteur*/
	min-height: 45px;
	cursor: pointer;
	color: #ffffff; /*couleur texte*/
	background: linear-gradient(to right, rgba( 0, 0, 0, 1), rgba( 75, 75, 75, 1)); /*couleur fond*/
	box-shadow:
		0px 0px 0px 1px rgba(155,155,155,0.3),
		0px 2px 2px rgba(0,0,0,0.1); /*ombre portée boite titre*/
}
.ac-container label:hover,
.ac-container input[type="checkbox"] + label:hover
{
	background: rgba( 75, 75, 75, 1); /*couleur fond au survol*/
}
.ac-container input:checked + label,
.ac-container input:checked + label:hover { /*attributs des titres sélectionnés et au survol*/
	background: rgba( 0, 0, 0, 1); /*couleur fond*/
	color: #D6AF84; /*couleur texte*/
	font-weight:bold; /*gras du texte*/
	box-shadow:
		0px 0px 0px 1px rgba(155,155,155,0.3),
		0px 2px 2px rgba(0,0,0,0.3); /*ombre portée boite titre*/
}
.ac-container label:before { /*pseudo-élément pour titre*/
	/*font-family:"fontawesome"; /*police de caractère*/
	/*content: "\f101"; /*caractère*/
	content: "►"; /*caractère*/
	padding-right:10px; /*marge intérieure droite*/
}
.ac-container input[type="checkbox"]:checked + label:before { /*pseudo-élément pour titre checkbox sélectionné*/
	/*font-family:"fontawesome"; /*police de caractère*/
	/*content: "\f103"; /*caractère*/
	content: "▼"; /*caractère*/
	padding-right:10px; /*marge intérieure droite*/
}
.ac-container input[type="radio"]:checked + label:before { /*pseudo-élément pour titre radio sélectionné*/
	/*font-family:"fontawesome"; /*police de caractère*/
	/*content: "\f107"; /*caractère*/
	content: ">>"; /*caractères*/
	padding-right:15px; /*marge intérieure droite*/
}
.ac-container input {
	display: none;
}
.ac-container article { /*attributs des articles masqués*/
	background: rgba(240,240,240,1); /*couleur fond*/
	margin-top: -5px; /*marge extérieure haute*/
	height: 0px; /*hauteur = 0 -> invisible*/
	transform:scale3d(1,0,1); /*échelle = 0 -> invisible*/
	transform-origin:0 0; /*origine transformation : ici haut*/
	overflow: hidden;
	position: relative;
}
.ac-container article p { /*attributs des paragraphes*/
	font-style: normal; /*à ajuster ou supprimer*/
	color: #000; /*couleur texte*/
	font-size: 14px; /*taille police*/
	line-height: 23px; /*hauteur ligne*/
	margin:0; /*marges extérieures*/
	padding: 0px 20px 5px 20px; /*marges intérieures*/
}
.ac-container input:checked ~ article { /*attributs des articles à la sélection*/
	transition:all 0.5s ease; /*transition à la sélection -temps, nature-*/
}
.ac-container input:checked ~ article.ac { /*attributs des articles à la sélection*/
	height: auto; /*hauteur*/
	transform:scale3d(1,1,1); /*échelle = 1 -> visible*/
}
.ac-container article h4 { /*titre h4*/
	margin-left:15px; /*marge extérieure gauche*/
	margin-top:-20px; /*marge extérieure haute*/
	font-size: 17px; /*taille police*/
	padding-bottom: 2px; /*marge intérieure basse*/
	color: #3366FF; /*couleur texte*/
}
.ac-container article h4 a { /*lien*/
	color:#D54500; /*couleur texte*/
}
.ac-container article h4 a:hover { /*lien au survol*/
	color:#6A2300; /*couleur texte*/
}
.ac-container article h4 a::after { /*pseudo-élément icone "caractère" du téléchargement*/ 
	/*font-family:"fontawesome"; /*police de caractère*/
	/*content:"\f1c6"; /*caractère ou "\f15c" ou...*/
	content:"⌂"; /*caractère*/
	font-size:40px; /*taille police*/
	padding-right:5px; /*marge intérieure droite*/
}
.sep { /*ligne de séparation*/
	border-top: 1px dashed rgba(0,0,0, 0.5); /*bordure haute*/
	border-bottom: 1px dashed rgba(255, 255, 255, 0.3); /*bordure basse*/
	margin: 4px 1% !important; /*marges extérieures*/
	clear:both;
}
.comment { /*commentaire*/
	float:left; /*à gauche*/
	width:94%; /*largeur*/
	background:rgba(255,255,255,1);
	margin:5px 3% !important;
	border-radius:5px;
	border:1px dotted rgba(24,34,84, 0.6);
}
p.comment {color:#111 !important;padding-bottom:10px !important;}

.comment a {color:#D54500; /*couleur lien*/}
.comment a:hover {color:#6A2300; /*couleur lien au survol*/}
.comment::before { /*pseudo-élément icone "caractère" du commentaire*/
	/*font-family:"fontawesome"; /*police de caractère*/
	/*content:"\f0c6"; /*caractère ou "\f16c" ou ...*/
	content:"֍"; /*caractère*/
	color:#3366FF; /*couleur texte*/
	margin-left:5px; /*marge extérieure gauche*/
}
@media screen and (max-width: 520px), screen and (max-device-width: 520px) { /* inférieur à 520px de largeur (MOBILE) */
.ac-container article h4 { /*titre h4*/
	font-size: 18px; /*taille police*/
}
.ac-container article h4 a::after { /*pseudo-élément icone "caractère" du téléchargement*/ 
	font-size:36px; /*taille police*/
}
}

→ Il est possible, si vous souhaitez utiliser les "caractères" de la police Fontawesome (mis en commentaire ci-dessus), de l'installer et de les mettre en fonction dans le style.

→ Il est possible de transférer tout le style dans le fichier style.css de votre ou vos skins ou autre fichier de style additionnel que vous auriez créé (c'est le fonctionnement du Module). Dans ce cas, vous pouvez le supprimer de ce fichier download.php.

Retour vers le début des réglages

→ Une "astuce" supplémentaire

NB : Si vous utilisez l'affichage de "Index des Pages" dans votre site (admin : Tableau de bord | Pages | Configuration) et que vous ne souhaitez pas que ces items apparaissent dans cet index, il est possible de "forker" assez simplement le fichier pages/index.php afin qu'il supprime de l'affichage certaines catégories que vous aurez choisies... C'est par exemple, le cas ici, où les items de téléchargement et les fiches de liens n'apparaissent pas dans le Sommaire pour ne pas le surcharger inutilement. Un module, téléchargeable ici (mod_fork_tri_index_1_0.zip) permet de réaliser cette opération très simplement en admin d'adHoc.

Me contacter sur le forum de ce site, ou directement via Contact, pour toute question ou aide pour mettre en place et utiliser ce service, et notamment :

→ pour régler les catégories de votre Module ou service simple et la ou les boîtes menus qui les contiennent.

→ pour modifier les paramètres de download.php du service simple.

→ pour installer le fichier download.php et créer un lien pour l'appeler.

→ pour installer la police Fontawesome et la mettre en service dans votre site, soit dans le service simple, soit dans le Module.

→ pour ajouter, si cela m'est possible des fonctions supplémentaires à ce Module ou service simple.

→ pour, éventuellement, adapter ce service simple à l'intérieur d'une boîte qui s'afficherait, par exemple dans la colonne principale de la page _index.

→ pour adapter ce Module ou service simple sans accordéon (il n'y aura plus de style dans le fichier... mais le résultat sera moins pratique et moins esthétique...).


Index |Info | Imprimer | Permalien
Astuces

adHoc

Iframes responsives

Camera

Unite Gallery

Animations au survol

Autres astuces en CSS

Audio-Players

Carousels