tinymceの編集画面が表示されない

2015年3月26日 at 10:57

5.6.3.3をupdatesフォルダに入れて更新したんですが、tinymceが表示されずに困っています。どうも言語ファイルで言語が指定されていなのですが、原因がつかみかねています。
キャッシュは更新しました。

エラーを見ると

/updates/concrete5.6.3.3.ja/concrete/tiny_mce/langs/EDITOR_LANGUAGE.js

がnot foundとなり。
ここで読みはずのja.jsが読めずEDITOR_LANGUAGの変数が読めていないようです。

環境は以下のような感じです。

# concrete5 Version
5.6.3.3

# concrete5 Packages
Calendar Nav (1.0.8), Designer Content (3.1.1), Designer Content Pro (1.2.3), Designer Content Pro - Custom Block Storage (1.0), Google Map (Premium) (2.1), Manual Nav (1.3), Open Graph Tags Lite (1.5), Page Auto Redirect (2.0), Page List+ (5.6.0.0.0.5.7), Sortable Responsive Gallery (1.8), Whale Nivo Image Slider (1.2).

# concrete5 Overrides
blocks/manual_nav, blocks/sortable_responsive_gallery, blocks/content, blocks/dcp_response_photo_tile, blocks/dcp_bloomlist, blocks/top_banner, blocks/page_list, blocks/slideshow, blocks/page_list_plus, blocks/html, blocks/quesans, blocks/dcp_listtextblock, blocks/guide_main, blocks/dcp_h_header, blocks/autonav, blocks/guide_access, controllers/page_list, languages/ja_JP, themes/hattori

# concrete5 Cache Settings
Block Cache - On
Overrides Cache - On
Full Page Caching - Off

# Server Software
Apache

# Server API
apache2handler

# PHP Version
5.3.28

# PHP Extensions
apache2handler, bcmath, calendar, Core, ctype, curl, date, dba, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imagick, imap, json, libxml, mbstring, mcrypt, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, Reflection, session, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, xsl, Zend Guard Loader, zip, zlib.

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 80M
post_max_size - 32M
safe_mode - Off
safe_mode_exec_dir - no value
safe_mode_gid - Off
safe_mode_include_dir - no value
sql.safe_mode - Off
upload_max_filesize - 32M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - nocache
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
safe_mode_allowed_env_vars - PHP_
safe_mode_protected_env_vars - LD_LIBRARY_PATH

タグ:

Re: tinymceの編集画面が表示されない

2015年3月26日 at 11:02
5633の挙動としては、まず js/tiny_mce/langs/ja.js があるかどうかを読みに行き、なければ少なくともEDITOR_LANGUAGEがenに設定されるようになっているので、EDITOR_LANGUAGEが未定義のまま出てくると言うことは無いはずなのですが…。config/ ディレクトリ内で設定していたりしませんよね…?
 

Re: tinymceの編集画面が表示されない

2015年3月26日 at 11:15
そうですよね?config/で指定するというのは逆にどうやってやるんでしょう?
ダウンロードしたconcrete5.6.3.3をそのままupdatesに上げたんですが。
 

Re: tinymceの編集画面が表示されない

2015年3月26日 at 12:50
どうも、ここのようで

わかった元の
blocks->content->editor_config.phpの
language : "<?php echo EDITOR_LANGUAGE?>",

なんだけど、このデフォルトのメニューにスタイル追加したかったので
これを上書きしてたんだけど、この5.6.3.2で問題なく動いてたんだけど、だんでだろ?
 

Re: tinymceの編集画面が表示されない

2015年3月26日 at 13:53
修正しました。

オリジナルのスタイルをメニューに追加したいために
デフォルトのcontentブロックのeditor_config.phpをオーバーライドしていました。

以前は

<script language="javascript">
tinyMCE.init({
〜略〜
entity_encoding: 'raw',
style_formats: [
{title: 'responsiv table', inline: 'table', classes: 'responsivetable'}, //スタイル追加
{title: 'facility title', block: 'h2', classes: 'ttlbr'}, //スタイル追加
],
<?php if (is_object($theme)) { ?>
content_css : "<?php echo $theme->getThemeEditorCSS()?>",
<?php } ?>
<?php if(EDITOR_LANGUAGE != "en"){ ?>
translate_mode : true,
language : "<?php echo EDITOR_LANGUAGE?>",
<?php
}
〜略〜
</script>

としていたのを

if(isset($theme) && is_object($theme)) {
$textEditorOptions['content_css'] = $theme->getThemeEditorCSS();
$style= array(
array('title' => 'responsiv table','inline' => 'table','classes' => 'responsivetable'), //スタイル追加
array('title' => 'facility title','block' => 'h2','classes' => 'ttlbr'), //スタイル追加
);
$textEditorOptions['style_formats'] = $style;
}
$textEditorOptions = Loader::helper('tinymce')->getOptions($textEditorOptions);
?><script language="javascript" type="text/javascript">
tinyMCE.init(<?php echo Loader::helper('json')->encode($textEditorOptions); ?>);
</script>

とすることで解決しました。
ありがとうございました。