Bonjour à tous,

dans le cadre de la création d'un blog avec le framework CodeIgniter, j'ai souhaité utiliser un outil de mise en page pour mes articles (pouvoir mettre en couleur, en gros etc...).

J'ai réussi à installer l'outil TinyMCE, mais je suis confronté à un problème assez basique :

j'utilise le helper form pour créer mes formulaires. J'applique à mon textarea la class tinymce, tout marche pas de problème. Je rentre mon texte, je le mets en forme, ok. Mais lorsque j'envoie l'article en BDD il ne me prends que les outils "html" si je saurais dire. L'italique, le sousligné ou le gras marchent mais pas tout ce qui a un rapport avec le CSS comme la couleur ou la mise en forme du texte (aligné, centré...).

Je souhaiterais alors savoir s'il y a une manipulation à faire pour que toutes les mises en pages s'intègrent bien dans ma base de données pour l'article.

Voilà comment fonctionne ma page :

MA VUE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
<!DOCTYPE html>
<html>
<head>
<title>testons</title>
<script type="text/javascript" src="<?php echo site_url('tiny_mce/tiny_mce.js');?>"></script>
<script type="text/javascript">
    tinyMCE.init({
        // General options
        mode : "textareas",
        theme : "advanced",
        plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave,visualblocks",
 
        // Theme options
        theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft,visualblocks",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true,
 
        // Example content CSS (should be your site CSS)
        content_css : "css/content.css",
 
        // Drop lists for link/image/media/template dialogs
        template_external_list_url : "lists/template_list.js",
        external_link_list_url : "lists/link_list.js",
        external_image_list_url : "lists/image_list.js",
        media_external_list_url : "lists/media_list.js",
 
        // Style formats
        style_formats : [
            {title : 'Bold text', inline : 'b'},
            {title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
            {title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
            {title : 'Example 1', inline : 'span', classes : 'example1'},
            {title : 'Example 2', inline : 'span', classes : 'example2'},
            {title : 'Table styles'},
            {title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
        ],
 
        // Replace values for the template plugin
        template_replace_values : {
            username : "Some User",
            staffid : "991234"
        }
    });
</script>
</head>
<body>
 
...
 
 
<?php echo form_open('welcome/admin');?>
<label for="titre">Titre : </label>
<?php echo form_error('titre');?>
<input type="text" name="titre" value="<?php echo set_value('titre');?>" />
 
<label for="article"> Contenu : </label>
<?php echo form_error('article');?>
<textarea name="article" class="tinyMCE"><?php echo set_value('article');?> </textarea>
 
<input type="submit" value="Ajouter" />
 
 
<?php echo form_close();?>
 
...
</body>
</html>
MON CONTROLEUR :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
unction admin()
    {
 
        ...
 
    $this->form_validation->set_rules('titre','Titre','trim|required|xss_clean');
    $this->form_validation->set_rules('article','Article','trim|required|xss_clean');
    if($this->form_validation->run())
        {
            $this->load->model('article_model');
            $data = array (
                'titre'=>$this->input->post('titre'),
                'contenu_article'=>$this->input->post('article'));
                $this->article_model->addArticle($data);
                $data['rows']=$this->article_model->getAll();
                $data['added']='Nouvel article ajouté';
                $this->load->view('admin',$data);
        }else{
 
            ...
        }
}

ET LA FONCTION POUR L'INSERTION EN BDD :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function addArticle($data)
    {
        $this->db->insert('articles',$data);
 
 
 
    }
J'espère que vous saurez répondre à mon problème car je ne peux ni mettre en justifié ni en couleur mes articles...

Par avance merci.