Page 1 sur 2

Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 10:56
par jeanbianne
Bonjour,
Je ne connais pas le php mais je tente de résoudre un problême sur WP:

Toute les semaines le vendredi à 9h, je dois envoyer automatiquement un fichier qui sera ensuite accessible sur une page ou un article WP (toujours la(le) même).
ce fichier change chaque semaine et cela 52 fois par an puis ça recommence automatiquement.

A une époque j'ai du savoir le faire sur excel :mrgreen: :oops:
Mais si quelque pouvait m'aider la dessus, cela m'aiderait vraiment.


Ps: (le dernier point c'est de prévoir les années bissextiles 53 semaines...mais ça ça pourra attentre...)

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 11:21
par Saian
Bonjour jeanbianne, un peu trop d'inconnus pour pouvoir t'aider. Déjà c'est quoi ce fichier, d'où sort-il ? est-il lui même généré automatiquement ? son nom change-t-il ?
Toujours est-il que à priori si tu veux exécuter un script tous les vendredi à 9h il faut te diriger vers une tâche planifiée (tâche CRON sur les systèmes linux).

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 11:31
par jeanbianne
Merci Saian pour ta réponse,
ok, je développe alors:
Le fichier, en fait c'est... 52 fichiers pdf.

Mon idée c'est de mettre automatiquement le fichier(n+1) à disposition dans un page "génerique" sur WP.
Toute les personnes qui ont les droits d'accès vont recevoir dans leur boite mail
chaque semaine un message qui les oriente vers le lien (qui est donc identique chaque semaine),
ils n'auront plus qu'a cliquer pour récupérer le fichier (n+1).
Je suis plus clair ?

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 11:46
par Saian
Re, à priori oui toutes les informations utiles pour proposer une solution sont maintenant connues.

A première vue, mon approche serait donc de mettre tous les fichiers sur le serveur dans un dossier privé (c'est à dire un dossier non accessible depuis le navigateur). Je mettrai ensuite en place une tâche CRON (j'imagine que le serveur web est un serveur linux) en la configurant pour qu'elle exécute tous les vendredi à 9h un script PHP qui sélectionnerait le fichier avec le plus petit incrément et le déplacerait dans un dossier public (c'est à dire un dossier accessible depuis le navigateur) et qui pourrait aussi éventuellement envoyer les mails.

Pour la partie page WordPress, je pense que je ferais une page spéciale où, toujours en PHP, je construirais le contenu de la page de sorte qu'elle affiche le lien vers le fichier avec le plus grand incrément. Et peut être, selon la pertinence de la chose, je proposerais un bloc d'archives avec les liens vers les fichiers précédents.

Voilà. :)

EDIT : à priori pour la page spéciale, je pense que je m'orienterais sur un short code maison qui fait le job et je créerais une page qui se contente d'appeler le short code en question. Ce qui permet également d'ajouter des textes avant et après si besoin.

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 12:42
par finipe
Sans CRON c'est faisable aussi, puisque l'utilisateur doit de toute façon se rendre sur la page pour cliquer.

Il suffit de placer une condition de date à l'ouverture de la page (en utilisant le timestamp par exemple).
Selon la date retournée, l'accès au fichier pdf correspondant est donné.

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 12:44
par jeanbianne
Merci Saian,
je regarde pour CRON ( je viens de découvrir ce que c'était à l'instant...)
ça me fait un peu peur de modifier cette zone, je regarde en tout cas.
Merci

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 12:44
par finipe
Non, au temps pour moi, s'il faut envoyer un email automatique, alors il faut bien un CRON...

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 12:47
par jeanbianne
Finipe,
ça peu m'intéresser car les mails sont eux envoyés automatiquement par un auto-répondeur.
donc ca pourrait coller !
Aurait tu un exemple concret d'écriture ?
J'ai zéro notion à ce propos.
merci

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 13:09
par jeanbianne
Saian,
je suis sur 1and1 mais comment accéder voir modifier Mysql5.5 pour parametrer un CRON ?
Je n'ai aucune notion à ce propos...
merci

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 13:41
par finipe
Eh bien par exemple, imaginons que tes noms de fichiers soient stockés dans une base de données, avec une date à partir de la laquelle ils seront disponibles en téléchargement (au format AAAA-MM-JJ). Quand l'utilisateur arrive sur la page, le code suivant pourrait fonctionner :
<?php

// Définition de la date d'aujourd'hui
$aujourdhui = date('Y-m-d');

// Récupération des fichiers disponibles au téléchargement
// (si leur date est en dessous ou égale à celle d'aujourd'hui)
$result = mysqli_query($db, "SELECT * FROM table_des_fichiers WHERE date<='".$aujourdhui."'");
while($row = mysqli_fetch_array($result))
{
          echo "<a href='Repertoire/".$row['nom_du_fichier']."'>".$row['nom_du_fichier']."</a>";
}

?>
Bon évidemment, c'est basique, faudrait quelques vérifications de sécurité pour éviter que n'importe qui télécharge n'importe quel fichier sans que ce soit autorisé, mais sur le principe ça évite un CRON.

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 14:51
par jeanbianne
Pour la sécurité, comme j'utilise un auto répondeur, à la fin de leur abonnement (1,6,12mois) ils sortent de la liste automatiquement donc ils n'ont plus d'accès à la page wp. à priori c'est donc suffisant.
Ceci dit, ou dois-je coller la routine que tu m'as présenter là dans wp ?
Merci je débute...

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 14:56
par Saian
L'idée de finipe est intéressante, il y a plusieurs façons d'aborder le problème et tu peux effectivement t'affranchir de l'utilisation d'une tâche CRON.

Rejoignant l'idée de finipe, ça me donne une autre idée, tout en gardant les fichiers dans un répertoire privé (sinon un utilisateur malin pourrait deviner les noms des futurs fichiers et y accéder directement) tu pourrais définir les dates de disponibilité des fichiers (stocker ça dans un tableau PHP de 52 ou 53 entrées du type 'yyyymmdd' => 'nom_du_fichier') et le lien de téléchargement passerait par un script PHP qui d'après la date du jour de téléchargement retournerait le fichier adéquat. L'intérêt du format yyyymmdd est qu'on peut vérifier par simple comparaison numérique si une date est supérieur à une autre.

Et pour répondre sur les tâches CRON ça ne se gère pas via MySQL, la base de données n'intervient pas la dedans, soit 1and1 propose une solution pour les configurer via l'interface de gestion de ton hébergement (où tu pourrais définir le script PHP à appeler et configurer le cycle d’exécution) soit il faut se connecter au serveur en SSH et utiliser la commande crontab.

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 15:09
par jeanbianne
Saian,
est il possible d'installer tout cela avec un minimum de connaissances ?
lequel dois je acquerir pour y parvenir ?
pas de connaissance php ni mysql
mais du courage à l'ouvrage... :D

merci

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 15:20
par Saian
A priori avec juste un script PHP tu peux le faire, sans tâche CRON et sans base de données, en partant sur un shortcode maison.
Donc il faudrait que tu apprennes qu'est ce que sont les shortcodes wordpress, comment créer ton propre shortcode et quelques bases de php, les variables, les tableaux, la fonction date, les conditions, les boucles, et un peu de html, comment faire un lien et comment mettre ça en forme (un peu de CSS) et comment forcer le téléchargement d'un fichier grâce à PHP et sa fonction header. Tu pourrais ainsi à priori faire une page avec téléchargement des fichiers "sécurisé".

Tu vas quand même bien batailler si tu n'as aucune connaissance la dedans, alors bon courage. Et peut être quelqu'un aura une solution plus simple à te proposer, sachant que tu peux aussi intervenir sur le wordpress tous les vendredi de façon manuelle. ^^

Et tu peux peut être trouver un plugin qui ferait au moins à peu près une partie du boulot, ou des tutoriels avec une recherche du type "wordpress téléchargement fichier sécurisé".

Re: Creer une routine sur 52 semaines, comment faire ?

Posté : 26 mai 2016, 15:39
par jeanbianne
"sachant que tu peux aussi intervenir sur le wordpress tous les vendredi de façon manuelle. ^^
"
Ca, effectivement c'est ce que j'ai réussi a faire ;-)
Pour les short code c'est bon aussi
Pour le reste j'analyse ta réponse (je vais voir sur le net les nouveaux mots :-)) et je reviens.
C'est vrai que si il y a une solution "magique" je suis preneur aussi :mrgreen: