0

I am trying to implement TinyMCE in CodeIgniter. I've created a view file and called it from a controller. I have uploaded all files into my CI project folder and showed the path of the files. But it is not working. Here is the view file:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Full featured example</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- TinyMCE -->
<script type="text/javascript" src="<?php echo base_url()?>application/tinymce/jscripts/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 : "<?php echo base_url()?>application/tinymce/examples/css/content.css",

        // Drop lists for link/image/media/template dialogs
        template_external_list_url : "<?php echo base_url()?>application/tinymce/examples/lists/template_list.js",
        external_link_list_url : "<?php echo base_url()?>application/tinymce/examples/lists/link_list.js",
        external_image_list_url : "<?php echo base_url()?>application/tinymce/examples/lists/image_list.js",
        media_external_list_url : "<?php echo base_url()?>application/tinymce/examples/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>
<!-- /TinyMCE -->

</head>
<body role="application">

<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
    <div>
        <h3>Full featured example</h3>

        <p>
            This page shows all available buttons and plugins that are included in the TinyMCE core package.
            There are more examples on how to use TinyMCE in the <a href="http://tinymce.moxiecode.com/examples/">Wiki</a>.
        </p>

        <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
        <div>
            <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
                &lt;p&gt;
                    This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;.
                &lt;/p&gt;
                &lt;p&gt;
                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros.
                &lt;/p&gt;
            </textarea>
        </div>

        <!-- Some integration calls -->
        <a href="javascript:;" onclick="tinyMCE.get('elm1').show();return false;">[Show]</a>
        <a href="javascript:;" onclick="tinyMCE.get('elm1').hide();return false;">[Hide]</a>
        <a href="javascript:;" onclick="tinyMCE.get('elm1').execCommand('Bold');return false;">[Bold]</a>
        <a href="javascript:;" onclick="alert(tinyMCE.get('elm1').getContent());return false;">[Get contents]</a>
        <a href="javascript:;" onclick="alert(tinyMCE.get('elm1').selection.getContent());return false;">[Get selected HTML]</a>
        <a href="javascript:;" onclick="alert(tinyMCE.get('elm1').selection.getContent({format : 'text'}));return false;">[Get selected text]</a>
        <a href="javascript:;" onclick="alert(tinyMCE.get('elm1').selection.getNode().nodeName);return false;">[Get selected element]</a>
        <a href="javascript:;" onclick="tinyMCE.execCommand('mceInsertContent',false,'<b>Hello world!!</b>');return false;">[Insert HTML]</a>
        <a href="javascript:;" onclick="tinyMCE.execCommand('mceReplaceContent',false,'<b>{$selection}</b>');return false;">[Replace selection]</a>

        <br />
        <input type="submit" name="save" value="Submit" />
        <input type="reset" name="reset" value="Reset" />
    </div>
</form>


</body>
</html>
4

2 回答 2

1

您不允许调用文件夹内的application文件,请查看.htaccess应用程序中存在的文件:

Deny from all

你会得到 403 错误Access forbidden!

无论如何,这个问题不会通过禁用该行来解决,因为 CodeIgniter 查看 URI 并说:“好的,我应该调用application存在于控制器文件夹中的类,然后tinymce通过传递这些参数来调用方法:jscripts, tiny_mce, tiny_mce.js”。

所以:

  1. 将您的文件放在文件夹之外,例如文件夹旁边的application/某个位置。public/index.php
  2. 打开.htaccess根目录下存在的文件,并添加文件/文件夹的名称以防止它们通过index.php.

例如,考虑这个结构:

system/
application/
public/
      img/
      css/
      js/
.htaccess
index.php
robots.txt

重写规则 ( .htaccess) 应该是:

RewriteEngine on
RewriteCond $1 !^(index\.php|public|robots\.txt)
#                               |
#   Exclude the public folder <--
#   From being treated by:
RewriteRule ^(.*)$ index.php/$1 [L]

查看CodeIgniter 用户指南了解更多信息。

于 2012-10-06T20:53:09.063 回答
0

请确保您的项目中没有js错误,并且与编辑器相关的js路径正确,以便js可以用于编辑器。

于 2012-06-21T04:13:19.243 回答