The Troll's factory

Geekeries & pensées
-->

Google Docs : les alineas // paragraph first line indent

English readers: See English version at the bottom of the French one

 

 

Si vous cherchez sur Internet comment faire automatiquement des alineas dans Google Docs pour tous vos paragraphes, vous allez sûrement trouver plein de ressources qui vous disent d’aller éditer du CSS etc. … Non seulement la plupart des gens ne vont pas comprendre grand chose à ce qu’il sont en train de faire, mais en plus personnellement je n’ai jamais trouvé cette option !

Alors voici une vraie méthode qui marche et qui est simple :

Mettez le curseur sur un de vos paragraphe (le curseur d’écriture, pas juste votre pointeur)

Appliquer le style « Normal » à votre parapraphe en faisant : Format > Style de paragraphe > Normal > Appliquer le style

Ensuite, déplacez la petite barre bleu horizontale en haut de la règle vers la droite de la largeur de l’alinea que vous voulez (1cm par exemple):

Enfin, retournez dans les style de paragraphe mais cette fois choisissez « Mettre à jour », comme ceci : Format > Style de paragraphe > Normal > « Mettre à jour le texte Normal en fonction de »

Et hop ! Tous les paragraphes qui ont ce style auront dorénavant un alinea !

 

————————– English version ————————–

 

If you look on the Internet how to automatically have indentation on the first line of a paragraph in Google Docs, you will certainly find a lot of resources telling you to edit some CSS etc. … Not only most of the people will not understand what they are doing by doing that but I also never found this option, personally !

So here is a way to do it that works and is simple:

Place the cursor inside one of your parapraphs (the writing / keyboard cursor, not you mouse pointer!)

Apply the « Normal » paragraph style to your current paragraph by doing : Format > Paragraph styles > Normal > Apply

 

 

Them, move the small blue bar at the top of the rule to the right. Move it of how many cm you want for your indentation (1cm for instance):

Finally, go back in paragraph styles but this time choose the « Update to match » option: Format > Paragraph styles > Normal > Update Normal to match

And here you go! All your paragraph that have this style (which is the default one) will now be indented!

 

 

posté par Troll dans astuces avec 2 commentaires

OH MY GOD On pouvait faire comme ça !?

(pour Google quand même : Récupérer le Xème caractère d’une string / chaîne de caractère en PHP )
Putain de programmeurs Perl, pourquoi ils savent faire des trucs en PHP que les programmeurs PHP savent pas faire ?

Depuis le temps que je grognais contre le fait qu’en C ou même en Pascal on peut accéder au caractère X d’une chaine de caractère en faisant machaine[X] et qu’en PHP on peut pas… Et depuis le temps que j’utilisais à la place substr($str, X-1, X) !!!!

Eh ben en fait, suffit de faire ça :

$mastring{X}

Fuck, j’m’en veux là.

Bon ben du coup c’est la révolution : je sais faire ça et en plus c’est le deuxième billet super court que je fais en 2 jours.

Désolé pour les non-geeks qui auront rien compris à ce post, il faut bien des fois aussi hein, regardez, moi je comprends rien aux posts qui sont postés là-bas eh ben tant pis, je me dis que c’est normal ! :)

posté par Troll dans astuces,Geekeries avec 2 commentaires

S’identifier en SSH sans mot de passe à l’aide d’une clé RSA — SSHA Authentication without password using a RSA key

Non seulement c’est plus sécurisé, mais en plus c’est quand même carrément plus pratique, voici comment configurer en 30 secondes (top chrono !) votre accès SSH sur votre serveur favoris à l’aide d’une clé RSA plutôt avec qu’un vieux mot de passe soit pas sécurisé, soit que vous n’arrivez pas à retenir :

Générer la clé : 10 secondes
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/thouveni/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/[utilisateur]/.ssh/id_rsa.
Your public key has been saved in /home/[utilisateur]/.ssh/id_rsa.pub.
The key fingerprint is:

La « propager » : 10 secondes :
$ cat $HOME/.ssh/id_rsa.pub | ssh [utilisateur@]machine "mkdir -p .ssh; chmod 700 .ssh; cat >> .ssh/authorized_keys"
Note : si vous utilisez un port particulier (comme le port 42 par exemple), il faut rajouter « -p 42″ AVANT la commande entre guillemets, et APRÈS « [utilisateur]@machine » (entre les deux)

Tester que ça marche : 10 secondes
ssh [utilisateur@]machine

Enjoy ;)

———————————– For our English readers : ———————————-

Not only it’s more secured, but much more praticle as well, here is how to configure in 30 seconds (timer in hand !) your SSH access to your favourite server using a RSA key instead of an old-fashionned password which is either not secured either secured but impossible to remember !

Generating the key: 10 seconds
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/[user]/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/[user]/.ssh/id_rsa.
Your public key has been saved in /home/[user]/.ssh/id_rsa.pub.
The key fingerprint is:

« Broadcasting » it: 10 seconds
$ cat $HOME/.ssh/id_rsa.pub | ssh [user@]host "mkdir -p .ssh; chmod 700 .ssh; cat >> .ssh/authorized_keys"
Note : if you use a specific port (as for instance the 42 one), you have to add « -p 42″ BEFORE the command in quotes, and AFTER « [user]@host » (between the two)

Testing it works: 10 seconds
ssh [user@]host

Enjoy ;)

posté par Troll dans Administration serveur,astuces,Geekeries avec aucun commentaire

Android : Utiliser Opera Mobile comme navigateur par défaut / Use Opera Mobile as your default browser

For international readers, go to the bottom for the English version

Salut tout le monde,

Opera a sorti très récemment (le 09/11) son navigateur très attendu & très utilisé sur Windows mobile : Opera Mobile !

Comment ça ? Opera sur Android ? Mais je l’avais déjà !
Non petit padawan, ce que tu avais c’était Opera Mini (et la différence est grande, mais ce n’est pas l’objet de mon billet).

Cependant il y a un léger soucis : Android (du moins c’est le cas sur Android 2.2 « Froyo ») ne reconnaît pas Opera Mobile (et pourtant ça fonctionne avec Opera Mini) comme navigateur !

Ainsi, il est impossible de choisir Opera Mobile comme navigateur par défaut dans la petite fenêtre de choix du navigateur qui s’affiche en temps normal lorsque plusieurs navigateurs sont installés sur votre Androphone et que vous n’en avez pas sélectionné un par défaut.

L’astuce est un magnifique bidouillage mais en retour vous pourrez enfin utiliser à coeur joie Opera Mobile.

Il s’agit d’installer l’application « Browser Chooser » que vous pouvez trouver sur le Market Android (il y a deux versions, une payante et une gratuite) puis de la configurer de manière à ce qu’elle lance Opera Mobile par défaut… et ensuite sélectionner « Browser Chooser » comme application par défaut pour les liens Internet sur votre Androphone :

Note : Si vous aviez déjà mis un autre navigateur sur votre androphone et que vous avez déjà sélectionné un navigateur par défaut dans ce cas il vous faut d’abord « supprimer les défauts associés » à votre navigateur par défaut actuel en faisant : Paramètres >> Applications >> Développement >> Gérer les applications >> Sélectionner votre navigateur par défaut actuel >> Effacer les associations (« clear defaults » en anglais… j’ai pas la version FR désolé ;) ).

  1. Télécharger et installer « Browser chooser » depuis le Market Android
  2. Lancer Browser Chooser
  3. Tapez sur « Settings » :

    browser_chooser

    Android Application : Browser Chooser

  4. Sélectionnez « Use default ? » :

    browser_chooser

    Android Application : Browser Chooser Settings

  5. Tapez ensuite sur « Default browser » juste en dessous, puis sélectionnez Opera Mobile :

    browser_chooser

    Android Application : Browser Chooser Settings Default Browser

  6. Maintenant, lancez « Internet » avec le navigateur fourni avec Android, ou lancez n’importe quel lien Internet en fait (dans un mail par exemple) et sélectionnez Browser Chooser comme application par défaut pour cette action :

    android_default_browser

    Android Default Browser Choice

Voilà c’est terminé !

Enjoy ;-)

—————————– Now for English / International readers ;-) —————————–

Hi folks,

Opera Softwares recently released (11/09) their long-awaited browser & also very used browser on Windows Mobile : Opera Mobile !

Wtf ?! Opera on Android ? Well.. I already got it !

No, young padawan, what you got was Opera Mini (which is way different from Opera Mobile, but that’s not the subject of this article).

Whereas, there is a little issue with Opera Mobile… : Android (at least Android 2.2 « Froyo ») does not recognize Opera Mobile as a browser (although it works with Opera Mini….) !

Thus, it’s impossible to choose Opera Mobile as default browser in the browser choice window which is displayed – normally – when you have more than one browser installed on your androphone without having selected one of them as a default for opening links.

The tip is now a wonderful do-it-yourself, but quite simple : You have to install an application called « Browser chooser », which can be found on the Android Market (there are two versions : one free and one charged, select the free) and then configure Browser Chooser to use Opera Mobile as its default browser… your Android to set Browser Chooser as a default browser for you androphone :

Nota bene : If you already have installed another browser on your androphone and you set it as default browser, in this case you have to « clear defaults » of this browser before by following these steps : Settings >> Applications >> Development >> Manage applications >> Select your actual default browser >> « Clear defaults ».

  1. Download & install « Browser chooser » from the Android Market.
  2. Launch Browser  Chooser
  3. Tap on « Settings » :

    browser_chooser

    This is a legend

  4. Then check « Use default ? » :
    browser_chooser

  5. Then tap on « Default browser » and choose « Opera Mobile » :

browser_chooser 6. Now, launch « Internet » with the Android built-in browser or any other link (as in a e-mail) and select « Browser Chooser » as the default application for this action :

android_default_browser

Here it is !

Enjoy ;)

posté par Troll dans Non classé avec aucun commentaire

Poster les news/billets de son site/blog sur 50 réseaux sociaux en quelques clics

Le titre peut paraître bien prétentieux, comment est-ce possible ? Déjà, il y a tant de réseaux sociaux que ça ? Et puis on peut vraiment poster partout en même temps ? Et simplement ?

Eh bien oui, la réponse à ces trois questions est la suivante : OUI !

La solution se trouve dans l’utilisation de deux petits sites très utiles et de manière chainée : TwitterFeed & Ping.fm (Ou Hellotxt si vous préférez, cela reviendra au même, mais chacun ses préférences).

Donc, procédons par ordre…

0. Remarques préalables

Petit remarque avant que vous ne vous lanciez… il faut que vous disposiez d’un flux RSS ou Atom !

Si vous utilisez un CMS (gestionnaire de contenu : wordpress, phpBB, mybb, joomla!, etc… ) la fonctionnalité est disponible à 99.99% de chances, si ce n’est pas activé (pour le savoir, regardez par exemple si vous avez le petit icône orange du RSS qui s’affiche à droite de l’URL de votre site quand vous êtes sur la page d’accueil) allez dans les options et vous trouverez certainement quelque-chose pour l’activer.

Sinon, cherchez un plugin, si le CMS ne propose pas le RSS, quelqu’un a forcément fait un plugin (sauf si votre CMS est connu par 3 pelés et un ou deux tondu(s)).

I. Créer un compte sur les différents sites

Rendez-vous sur les sites TwitterFeed et Ping.fm (ou Hellotxt.com) et créez un compte sur chaque. Note : Pour certains il est possible d’utiliser un compte OpenID, pensez à ça, ça vous évitera de créer un nouveau compte.

II. Configurer TwitterFeed

Vous voilà maintenant connecté sur TwitterFeed, suivons ensemble les étapes de création de votre flux qui sera repris sur les réseaux sociaux :

Étape 1 : Configuration du flux

etape 1 twitterfeed

Dans l’ordre du haut en bas et de droite à gauche quand c’est sur une même ligne :

Feed Name : Le nom de votre flux, servira uniquement à l’identifier sur votre tableau de bord twitterfeed

RSS Feed url : L’url de votre flux RSS…Accessible publiquement.

Cliquez sur « Test feed » afin de vérifier qu’il n’y a pas de problème.

Advanced Settings (il faut cliquer pour voir les paramètres avancés) :

Check For new post : Tous les 30min/1heure/etc. c’est la période à laquelle Twitterfeed charge votre RSS afin de voir s’il y a eu des modifications (conséquences d’une publication !).

Post up to X new update at a time : le nombre d’updates maximum que vous voulez que twitterfeed post en une seule fois. Par exemple si vous publiez 5 articles mais que vous voulez qu’ils ne soient publiés que un par un, et que vous avez mis une fréquence de 1h, cela prendra 5 heures pour les poster tous, un par heure.

Post content : le contenu du post généré par Twitterfeed et qui sera envoyé sur les réseaux sociaux : titre & extrait du contenu, contenu seulement, titre seulement…

Post link : Conseillé de laisser coché ! Cela rajouter un lien vers l’URL de votre new/billet dans le post/tweet, vous pouvez sélectionner le raccourcisseur d’URL qui vous plait. Pour certains il faudra donner une API Key, c’est le cas pour Bit.ly notamment ou encore Jmp2.fr.

Post sorting :

  • pubDate : Twitterfeed regarde les dates de publication fourni dans votre RSS (obligatoire pour la validation de votre flux en tant que RSS, donc ne vous inquiétez pas, les dates sont dans votre flux RSS). Sélectionnez cette option, dans 99% des cas c’est celle qu’il vous faut.
  • GUID : GUID signifie Globally Unique IDentifier, concrètement c’est un champs unique pour chaque objet dans votre RSS, la plupart du temps vous n’aurez pas besoin d’utiliser le GUID. Si vous sélectionnez GUID il faudra dire à Twitterfeed si votre RSS est trié ou pas (les plus récents en haut) en cochant ou non la case « Feed is sorted« 

Post prefix : Le préfixe à ajouter à votre post, concrètement si vous voulez ajouter par exemple le nom de votre site/blog ou « Actu :  » ou encore « Nouveau billet : »…

Post suffix : Ben pareil mais ça ajoute à la fin !

Keywords : Vous permet en cochant cette case de définir des mots clés nécessaire au relair d’un post par Twitterfeed, s’il ne trouve pas l’un des mots clés (ou expression clé, en mettant des guillemets autour du bloc de mot) dans les nouvelles entrées de votre RSS, twitterfeed ne les publiera pas.

Voilà, allez hop… étape 2 !

II. Configurer Ping.fm

Sur le site Ping.fm, après vous être inscrit vous accédez à la page suivante :

Cliquez sur l’un des réseaux sociaux, par exemple Facebook :

Vous accéder à la page suivante :

Cliquez sur « Connect to Facebook »

Une petit fenêtre s’ouvre, si vous n’êtes pas encore identifié sur Facebook, entrez vos identifiants :

Vous arrivez ensuite là :

Cliquez sur « Click here » dans le texte de la partie gauche. Vous arrivez là :

Attention, si vous avez des pages facebook et que vous souhaitez justement publier dessus, il faut AUSSI cocher votre compte personnel, si vous ne cochez que la page cela ne fonctionnera pas.

Voilà je vous laisse faire pour la suite car c’est à votre convenance.

Une fois que vous avez configuré ce qui vous plaît sur Ping.fm, récupérez votre Key App en cliquant sur « Dashboard » en haut puis sur « Application Keys »

III. On termine TwitterFeed

Etape n°2

Maintenant retournez sur Twitterfeed et complétez l’étape 2 :

Rien de bien compliqué en somme : dans la première case collez votre Application Key puis cliquez sur « Get Available Methode » et choisissez la méthode qui vous convient.

Donnez un nom au choix à la « source » de l’information.

Puis terminez en cliquant sur « Create service ».

Si vous avez de quelconques questions, posez les dans les commentaires ! :)

posté par Troll dans Geekeries,Webmastering & Webmarketing avec 10 commentaires

Connaître / récupérer le prochain ID AUTO_INCREMENT d’une table SQL

Aujourd’hui je vous fais part d’une chose que bien des gens ont cherché sur Internet et que bien des webmasters ont abandonné de trouver… la méthode pour connaître la valeur du prochain ID d’un champ de type AUTO_INCREMENT dans une table SQL.

Attention cependant, cette méthode fonctionne pour une table ne comprenant qu’un seul champs de type auto_increment et pour MySQL. Je vous laisse le soin de tester (et de nous dire ce que ça donne en laissant un petit commentaire ;-) ) et d’adapter pour d’autres situations, celle situation-ci restant la plus courante.

L’astuce est d’appeler la commande SHOW TABLE STATUS.

En effet si vous tapez par exemple cette requête SQL dans PhpMyAdmin, vous verrez apparaître plein d’informations sur toutes les tables de votre base de données courante.

Si vous souhaitez réduire les lignes à une table précise :

SHOW TABLE STATUS
LIKE 'NomDeLaTable'

Vous allez alors voir qu’une colonne est nommée Auto_increment (attention à la majuscule, importante !). Cette colonne contient la prochine valeur que prendra le champs de type auto_increment de cette table. Attention : la PROCHAINE. Si vous souhaitez connaître la dernière valeur prise par l’auto_increment il faut donc soustraire 1. Je rappelle au passage que l’utilisation de la commande MAX() ou d’un SELECT avec un ORDER BY DESC LIMIT 0,1 derrière ne fonctionnera pas car vous avez la possibilité que des lignes de la table aient été supprimées.

Si vous utilisez par exemple PHP et la fonction mysql_fetch_assoc() (ou mysql_fetch_array() pour les non-éclairés ou ceux qui ont besoin des clés numériques & textuelles), vous récupérerez alors dans votre tableau associatif cette valeur dans la clé nommée ‘Auto_increment’.

posté par Troll dans Scripts, astuces, dév. web avec 5 commentaires

Neige qui tombe : Un peu de gaieté sur votre site web pour Noël

Salut à tous,

Alors aujourd’hui et comme tous les ans à Noël j’ai décidé de mettre un petit peu de nouveau, un petit détail qui met du piment dans la vie du visiteur, sur mes sites Internet. Mise à part changer – quand on a un graphiste sous la main – la bannière ou son avatar pour y rajouter des décos de Noël, quand on est plutôt tourné développement web, on fait tomber des flocons !

Le code que je vais vous proposer n’est pas de moi, mais j’y ai tout de même fait un certain nombre de modification, et notamment une qui permet de le rendre compatible avec Google Chrome et Firefox quand un doctype est présent (car cela ne fonctionnait, sous ces navigateurs, que lorsqu’il n’y avait pas de doctype :o ).

Ce code est à placer où vous voulez, il a été modifié de manière à attendre la fin du chargement de la page pour se lancer, pour éviter les problèmes de compatibilité des commandes faites sur document.XXX et puis tout simplement pour ne pas ralentir l’affichage de la page :)

Après m’être battu une bonne demi-heure avec WordPress pour gagner le droit d’insérer du code dans un post, et qui plus est, sans que celui-ci soit interprété, voici donc le code à utiliser :

Je vous remercie d’avance d’HEBERGER L’IMAGE SUR VOTRE PROPRE SITE et non de la charger depuis l’url qui est dans le script.
De toutes façons ça va planter car je vais mettre un .htaccess anti-pompage d’image ;)

<SCRIPT type="text/javascript" >
var snowsrc='http://trollfactory.fr/img/snow.gif'; // VOUS ETES PRIE DE BIEN VOULOIR HEBERGE L'IMAGE CHEZ VOUS !
var no = 12;
var ns4up, ie4up, nn6up, doc_width, doc_height;
var dx, xp, yp;
var am, stx, sty;

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();

var snowspeed = 100;

function snowNS() {
for (i = 0; i < no; ++ i) {
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.layers["dot"+i].top = yp[i];
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowNS()", snowspeed);
}

function snowIE() {
for (i = 0; i < no; ++ i) {
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx[i] += stx[i];
document.all["dot"+i].style.pixelTop = yp[i];
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowIE()", snowspeed);
}

function snowNN6() {
for (i = 0; i < no; ++ i) {
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.getElementById("dot"+i).style.top = yp[i]+'px';;
document.getElementById("dot"+i).style.left = Math.abs(xp[i] + am[i]*Math.sin(dx[i]))+'px';
}
setTimeout("snowNN6()", snowspeed);
}

var initsnow = function() {
ns4up = (document.layers) ? 1 : 0;
ie4up = (document.all) ? 1 : 0;
nn6up = (document.getElementById) ? 1 : 0;
var i=0;
doc_width = screen.width;
doc_height = screen.height;

if (ns4up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
} else if (nn6up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
for (i = 0; i < no; ++ i) {
dx[i] = 0;
xp[i] = Math.random()*(doc_width-50);
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*20;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
if (ns4up) {
if (i == 0) {
document.write("<layer name=dot"+ i +" left=15 top=15 visibility=show><img src='"+snowsrc+"' border=0></layer>");
} else {
document.write("<layer name=dot"+ i +" left=15 top=15 visibility=show><img src='"+snowsrc+"' border=0></layer>");
}
} else if (ie4up || nn6up) {
if (i == 0) { document.write("<div id=dot"+ i +" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=0></div>");
} else {
document.write("<div id=dot"+ i +" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=0></div>");
}
}
}

if (ns4up) {
snowNS();
} else if (ie4up) {
snowIE();
} else if (nn6up) {
snowNN6();
}
}

document.onload=initsnow();
</SCRIPT>

Les paramètres suivantes sont modifiables :

Variable « no » : Nombre d’images / flocons qui seront affichés.
Variable « speed snow » : Sa valeur peut varier de 1 (pas 0 sinon ça risque fort de planter) à 500, mais je vous déconseille d’aller au delà de 200 ou en dessous de 10. Plus la valeur est petit, plus les flocons bougent vite (oui c’est un peu l’inverse du mot « speed », mais ça vous ira !).

Et… c’est tout :) Ca ne fait pas beaucoup de paramètres, mais pour faire tomber des flocons, on est quand même pas en train de paramétrer Gentoo non plus :)

Pour ceux qui utilisent WordPress et qui souhaiterait mettre en place cette animation sympathique (à noter que ce n’est pas du flash mais du javascript, donc compatibilité avec une grand majorité de navigateurs) je vous conseille de placer le code dans le fichier « Pied de page » (footer.php). Que vous pouvez modifier en faisant depuis votre tableau de bord : Apparence >> Editeur >> Cliquer sur « Pied de page » dans la colonne de droite.

Voilà, enjoy ;)

Demain je vous parle (en théorie) du safe_mode de PHP utilisé avec le panel DTC (Digital Technology Control) ainsi que la création d’un principe de tâches cron léger et réellement géré en cron… mais contrôlé par PHP :) (ça aurait dû être aujourd’hui, mais petit contre-temps dirons-nous :D )

PS : Je ne connais pas l’auteur initial du script, je l’ai trouvé sur un petit site dont j’ai la certitude totale que ce n’est pas le gérant qui a créé le script, c’est pourquoi je n’ai pas cité de source :)

posté par Troll dans Scripts, astuces, dév. web avec 6 commentaires