mercredi 29 octobre 2008

Le guide du developpeur

smarty plugin while

Dans le repertoire smarty/plugins créer le fichier compiler.while.php et placer dedans le code suivant:

$this->register_compiler_function('/while', 'smarty_compiler_endwhile');

function smarty_compiler_while($tag_arg, &$smarty) {
$res = $smarty->_compile_if_tag($tag_arg);
preg_match("/<\?php if (.*): \?>/",$res,$token);
return "while " . $token[1] . " {";
}

function smarty_compiler_endwhile($tag_arg, &$smarty) {
return "}";
}

vous pouvez l'utiliser dans vos templates comme suivant:

{assign var="test" value=1}
{while ($test <= 5)}
{assign var="test" value="`$test+1`"}
passage numero {$test}
{/while}

mardi 28 octobre 2008

Supprimer un fichier du filemanager de FCKeditor



Supprimer un fichier du filemanager de FCKeditor


Posté le mercredi 26 mars 2008




Pour ceux qui ne le connaissent pas encore, FCKeditor est un excellent éditeur HTML wysiwyg (acronyme pour What You See Is What You Get, c'est-à-dire que ce que vous voyez est ce que vous obtiendrez).

Tout comme TinyMCE, ces outils gratuits permettent de rédiger en ligne et facilement des pages html.

FCKeditor propose un filemanager qui permet d'uploader en toute facilité des fichiers sur le serveur afin de pouvoir les utiliser dans les pages que nous créons.

Seul hic, une fois uploadés, vous ne pouvez supprimer ces fichiers que par ftp. En effet, le filemanager ne permet pas la suppression des fichiers, ce qui peut parfois être assez ennuyant.

Pas de soucis, nous allons rémédier à ce problème.




Attention, la méthode que nous allons voir ici ne fonctionne que si vous utilisez FCKeditor avec PHP.



Toutefois, les utilisateurs d'ASP trouveront leur bonheur grâce à l'explication de Glouferu.


Coté client (javascript)


Nous allons commencer par ajouter un peu de javascript dans le filemanger, de façon à avoir un bouton 'delete' à coté des fichiers uploadés.

Pour cela, il faut éditer le fichier frmresourceslist.html qui se situe dans le dossier editor > filemanager > browser > default.



Nous devons ajouter la fonction qui enverra la requête vers le serveur, je l'ai appellé DelFile().

Pour fonctionner correctement, elle nécesite des variable supplémentaire et une fonction CallBack :


var ResourceType;

var CurrentFolder;



function DelFile( fileName ){

    if(confirm("Supprimer le fichier " + fileName + " ?")){

        ResourceType = oConnector.ResourceType;

        CurrentFolder = oConnector.CurrentFolder;

       

        oListManager.Clear() ;

        oConnector.CurrentFolder = CurrentFolder + fileName;

        oConnector.SendCommand( 'DelFile', null, DelFileCallBack ) ;

    }

}



function DelFileCallBack() {

    LoadResources( ResourceType, CurrentFolder ) ;

}


Placez ce bout de code  APRES la balise <script type="text/javascript">, à la ligne 29.


Toujours dans le même fichier, recherchez le code suivant, nous allons y ajouter quelques lignes (indiquées en rouge) :

oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize ){

    // Lien delete

    var dLink = '<a style="color:red;" href="#" onclick="DelFile(\'' + fileName + '\');return false;">' ;



    // Build the link to view the folder.

    var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ;



    // Get the file icon.

    var sIcon = oIcons.GetIcon( fileName ) ;



    return '<tr>' +

            '<td width="16">' +

                sLink +

                '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' +

            '</td><td>&nbsp;' +

                sLink +

                fileName +

                '</a>' +

                ' &nbsp; &nbsp; ' + dLink + 'del</a>' +

            '</td><td align="right" nowrap>&nbsp;' +

                fileSize +

                ' KB' +

        '</td></tr>' ;

}


Après avoir vidé le cache du navigateur, vous devriez déjà avoir quelques chose ressemblant à ceci :



Seul problème, ça ne fonctionnera pas tant qu'on aura pas fait la modification coté serveur.


Coté serveur (PHP)


Nous devons ajouter le code qui supprimera le fichier du serveur. Pour cela, il faut éditer le fichier connector.php qui se situe dans le dossier editor > filemanager > browser > default > connectors > php > connectors.


Placez le code suivant AVANT la ligne 93 ( CreateXmlHeader ... )  si vous avez la version 2.4.3

ou AVANT la ligne 52 ( // Check if it is an allowed command ) pour la version 2.6 :


if ( $sCommand == 'DelFile' ){

    $file = trim($sCurrentFolder, '/');

    $sCurrentFolder = rtrim($sCurrentFolder, '/');

    $sCurrentFolder = substr($sCurrentFolder, 0, strrpos($sCurrentFolder, '/') + 1);

    $filepath = ServerMapFolder( $sResourceType, $currentFolder ) . $file;

    @unlink($filepath);

    $sCommand == 'GetFoldersAndFiles';

}





Si vous avez des question? notre équipe est à votre disposition sur Le forum shoops.fr

dimanche 26 octobre 2008

Les session en php

Le support des sessions de PHP est un moyen de préserver des données entre plusieurs accès. Cela vous permet de créer des applications personnalisées, et d'augmenter l'attrait de votre site.

Chaque visiteur accédant à votre page web se voit assigner un identifiant unique, appelé "identifiant de session". Il peut être stocké soit dans un cookie, soit propagé dans l'URL.

Le support des sessions vous permet d'enregistrer un nombre illimité de variables qui doivent être préservées entre les requêtes. Lorsqu'un visiteur accède à votre site, PHP va vérifier automatiquement (si session.auto_start est activé) ou sur demande (explicitement avec session_start() ou implicitement avec session_register()) s'il existe une session du même nom. Si c'est le cas, l'environnement précédemment sauvé sera recréé.
Pour lire la suite de l'article cliqer Ici