Forum CMS Made Simple FR

Version complète : background cliquable
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
----------------------------------------------
Cms Version: 1.11.11
Installed Modules:
CMSMailer: 5.2.2
CMSPrinting: 1.0.5
FileManager: 1.4.5
MenuManager: 1.8.6
MicroTiny: 1.2.7
ModuleManager: 1.5.8
News: 2.14.4
Search: 1.7.11
ThemeManager: 1.1.8

Config Information:
php_memory_limit:
process_whole_template:
max_upload_size: 64000000
url_rewriting: none
page_extension:
query_var: page
image_manipulation_prog: GD
auto_alias_content: true
locale:
default_encoding: utf-8
admin_encoding: utf-8
set_names: true

Php Information:
phpversion: 5.3.29
md5_function: On (Vrai)
gd_version: 2
tempnam_function: On (Vrai)
magic_quotes_runtime: Off (Faux)
E_STRICT: 0
E_DEPRECATED: 0
memory_limit: 128M
max_execution_time: 120
output_buffering: 4096
safe_mode: On (Vrai)
file_uploads: On (Vrai)
post_max_size: 64M
upload_max_filesize: 64M
session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
session_use_cookies: On (Vrai)
xml_function: On (Vrai)
xmlreader_class: On (Vrai)

Server Information:
Server Api: fpm-fcgi
Server Db Type: MySQL (mysqli)
Server Db Version: 5.5.33
Server Db Grants: Impossible de trouver un privilège "GRANT ALL". Cela peut signifier que vous pourriez avoir des problèmes pour installer ou retirer des modules, ou encore l 'ajout et la suppression d'éléments, y compris les pages.
Server Time Diff: Aucune différence de date du système de fichiers trouvées

----------------------------------------------
bonjour,

j'essaie de réintégrer un bout de mon code php dans un gabarit mais il y a des erreurs que je n'arrivent pas à corriger,


voici mon code :

Code :
[== PHP ==]
<head>
<?php
  $bg = array('bg1.jpg', 'bg2.jpg', 'bg3.jpg', 'bg4.jpg', 'bg5.jpg'); // array of filenames
  $url= array('http://www.pmu.fr', 'http://www.pmu.fr','http://www.pmu.fr', 'http://www.pmu.fr', 'http://www.pmu.fr');
  $i = mt_rand(0, 4);; // generate random number size of the array
?>
  <style type="text/css">
      body { background: url(<?php echo $bg[$i]; ?>);}  
      .habillage a {  background: url(<?echo $url[$i];?>) top center no-repeat;
                    display: block;
                    cursor: pointer !important;
                    width: 100%;
                    height: 1000px;
                    position: absolute;}
    </style>
</head>
<body>
<div class=habillage ><a href="<?echo $url[$i];?>"></a></div>
</body>

ps : j'ai bien modifié les chemins relatifs au image

si quelqu'un aurait une piste?

merci
et quelles sont tes erreurs ? :lol:

lis ceci : http://wiki.cmsmadesimple.fr/wiki/Accueil section en bas à droite : les balises utilisateurs
Bonjour, merci de ta réponse .

Mon erreur est que le cms ne m'affiche plus mon background et que le lien cliquable se transforme en bout de code.

tu peux le voir à cette adresse : blog . siteur . fr

c'est le blanc tout autour qui devrait ressembler à saavec un lien cliquable et tourner aléatoirement à chaque F5:

[Image: bg3.jpg]



j'ai essayé avec les balises utilisateurs , mais j'ai le même problème , je dois me tromper quelque part .


ps : désolé pour les liens , même dans les balises , il me répond " liens interdit "

je continue de chercher

merci
okay

c'est ton premier site avec cmsms non ?

il est impossible d'insérer du code php dans le template. On passe par des balises utilisateurs (UDT) forcement ou des balises smarty si la logique métier le permet

Dans ton cas tu as la solution suivante :

UDT : tu créé ton UDT nommée randomBg par exemple.

Son code SANS <?php ?>

Code :
//Double tableau imbriqué, une liste comportant une série de liste avec clé : bg et url
// Il suffit d'ajouter une ligne à la suite pour qu'elle soit prise en compte.
$urls = array(
    array('bg' => 'bg1.jpg', 'url' => 'http://www.site1.fr'),
    array('bg' => 'bg2.jpg', 'url' => 'http://www.site2.fr'),
    array('bg' => 'bg3.jpg', 'url' => 'http://www.site3.fr'),
    array('bg' => 'bg4.jpg', 'url' => 'http://www.site4.fr'),
)

//Je tire au hasard l'un des X-1 élements de mon tableau
// Cet élement est un tableau avec des clés : bg et url
// Le calcul de la longueur de tableau est automatique pour éviter un oublis
$monUrlRandomPhp = $urls[mt_rand(0, count($urls) - 1)];

//On récupère le moteur smarty
$smarty = cmsms()->GetSmarty();

//Passage au moteur Smarty de la variable monUrlRandomPhp sous le nom monUrlRandomSmarty
// Pourra être dès lors exploitée dans le template sous la forme
// {$monUrlRandomSmarty.bg} et {$monUrlRandomSmarty.url}
$smarty->assign('monUrlRandomSmarty', $monUrlRandomPhp);

tu l'appel dans ton gabarit : {randomBg} sans le $ devant (caractéristique de l'UDT) et ensuite tu profites de la nouvelle variable smarty disponible : {$monUrlRandomSmarty.bg} et {$monUrlRandomSmarty.url} avec un $ devant cette fois ci : ce sont des variables.

ce qui te donne :


Code :
<head>
{randomBg}
  <style type="text/css">
      body { background: url({$monUrlRandomSmarty.bg});}  
      .habillage a {  background: url({$monUrlRandomSmarty.url}) top center no-repeat;
                    display: block;
                    cursor: pointer !important;
                    width: 100%;
                    height: 1000px;
                    position: absolute;}
    </style>
</head>
<body>
<div class=habillage ><a href="{$monUrlRandomSmarty.url}"></a></div>
</body>


C'est propre, c'est dynamique et c'est smarty qui s'occupera de compiler du code PHP + mise en cache afin de rendre ton code super rapide Wink


PS : le code est écrit sans test, je t'assure pas d'avoir laissé une bourde.
exact , c'est mon 1er cmsms, mais je le trouve génial . ( j'utilise beaucoup wordpress et joomla )

J'essaie ton bout de code et je te tiens au courant

encore merci
je viens d'essayer le code et il y a une erreur pour l'écriture de l'UDT

Le code entré est invalide.
Parse error: syntax error, unexpected T_VARIABLE in /htdocs/blog/admin/adduserplugin.php(100) : eval()'d code on line 13

Je sais que j'abuse peut etre un peu , mais si tu pouvais y jeter un oeil

encore merci
comme c'est du PHP je suis certain que tu te débrouilleras très bien tout seul Wink

c'est un oubli de point virgule
je viens de le voir le ; .

tous ton bout de code est rentré , mais je n'ai toujours pas de background ( même avec mon chemin relatif ) et l'adresse de l'url cliquable est celle de mon site

je continue de chercher , au pire du pire je passe sur un back fixe

merci