Bonjour, j'aimerais donner la possibilité aux membres de mon site de personnaliser leur profile,je dois procéder par css ou il ya une manière de le faire?
merci
le problème est réglé je ne passais pas bi
en la variable $template, normalement ça doit être de cette manière:
background:url("../img/template/'.$template.'") center top no-repeat;
Merci pour vos contributions.
peut etre que je me suis mal expliquer je voudrais que le membre change le design de sa page membre, par exemple le background, la couleur de certaines icone... je sais pas si je me suis bien expliquer.
merci
Tout dépend ce que tu veux faire.
Tu pourrait
Proposer plusieurs template
Définir des éléments modiffiable (soit avec des choses prédéfinies, soit que l'utilisateur choisis)
l'utilisateur fourni son propre CSS
etc ...
Je vois pas vraiment de moyen de le faire,
dans tous les cas sa serra du CSS.
A voir comment gérer ça en BDD.
ok merci, tu peux m'expliquer un peu détaillé les étapes à suivre, c'est un peu flou pour moi surtout la gestion en BDD.
merci
Bonsoir, pour moi le plus simple est de rajouter un champ dans la table USERS pour lier un fichier CSS uploadé par ton utilisateur et charger le nom du ficher dans la vue correspondante en utilisant la valeur du champ en BDD.
Idem pour un template tu stocke le nom du template dans la table USERS et récupère la valeur pour afficher la page en question.
Ben si tu propose plusieurs template, t'as un fichier CSS par template, l'utilisateur en choisi 1, tu le met en BDD puis au chargement de la vue, tu prend le bon CSS et basta, c'est le plus simple je pense.
Comme le dis Marius
Pour modifier certains éléments prédéfinies, ca se complique.
Moi je ferrai un formulaire avec les éléments modifiable,
l'user choisi la forme de l'élément avec une palette de couleur JS pour choisir une couleur,
une liste pour choisir une image/icon
(ou un form d'upload pour pour que l'utilisateur choisisse sa propre image, puis une conversion en base64 affin d'avoir un texte et non un fichier encombrant le serveur).
Pour le traitement, un script qui crée un code CSS avec les choix de l'utilisateur puis enregistrer ce code en BDD, et le charger comme CSS au chargement de la vue
J'espère avoir été assez claire
nebjix
desolé pour n'avoir pas vite donné suite,
j'ai reussi à le faire avec une couleur par (#ff0000) par contre avec une image ça ne marche pas, j'ai cette erreur
Missing Controller
Error: ImgController could not be found.
je dois forcement créer ce controller? ou cè moi qui passe mal la variable, merci
voici les code:
création du template dans la vue profile(view) et création d'un fichier css par défaut pour chaque user avec la fonction fwrite
public function view($id, $slug)
{
$this->loadModel('Event');
$user = $this->User->find('first',
array(
'conditions' => array('id'=>$id),
'recursive' => 0
));
debug($user);
$id=$user'User']'id'];
$usercss="eclairage".$id;
$template=$user'User']'template'];
$dir=IMAGES.'template'.DS;
debug($dir);
$css='A {
COLOR: #0066FF; FONT-WEIGHT:normal; TEXT-DECORATION: none; font-size:12px;
text-decoration:none;
}
BODY {
margin:0 auto;
padding:0;
text-align:justify;
background:url("../img/template/.$template") no-repeat center;
}
} ';
$f=fopen(CSS.$usercss.".css","w+");
fwrite($f,$css);
fclose($f);
}
quand un membre selction un template dans son profile la variable $template(nom de l'image avec extension) s'enregistre dans la base.l'image est deja dans le dossier img
dans mon fichier default.ctp, j'ai fait une condition pour voir si l'id de l'user existe
si ça existe je concatène le css principa(eclairage.css) avec le nouveau css crée(usercss.css)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="DESCRIPTION" content="" />
<meta name="keywords" content="" />
<meta name="ROBOTS" content="index,follow">
<meta name="ROBOTS" content="ALL">
<?php echo $this->Html->css('bootstrap');?>
<?php //echo $this->Html->css('eclairage');?>
<?php
$usercss='';
if(isset($user'User']'id'])){
$usercss=$user'User']'id'];
}
echo $this->Html->css('eclairage'.$usercss);?>
<?php echo $this->Html->css('slider');?>
<?php echo $this->Html->script('http://code.jquery.com/jquery.min.js');?>
<?php echo $this->Html->script('http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css');?>
<title><?php echo $title_for_layout ?></title>
</head>