お世話になります。
表題の件ですが、
4.1.0.1ではエラーは出ません。【発生箇所および条件】
管理画面のコンテンツ一覧をツリー表示をさせた状態。ブログ及び固定ページの
タイトルにアポストロフィ『 ' 』を使うと発生します。
(半角 Shift+7 WindowsPC)他の
特殊文字でも発生する事を確認。『¥エンマーク』
例)ブログのタイトルを『 M's Blog 』とする。
アイコンが崩れ、並べ替えも出来なくなります。
右クリックから編集しようとすると下記のようなエラーが出ます。
Notice (8): Undefined index: content_id [CORE/Baser/Controller/ContentsController.php, line 320]
Code Context
$this->pageTitle = __d('baser', 'コンテンツ編集');
if(!$this->request->data) {
$this->request->data = $this->Content->find('first', ['conditions' => ['Content.id' => $this->request->params['named']['content_id']]]);
ContentsController::admin_edit() - CORE/Baser/Controller/ContentsController.php, line 320
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 491
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 193
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167
[main] - ROOT/index.php, line 163
また、並べ替えようとするとこの様になります。
詳細
Notice (8): Undefined index: currentId [CORE/Baser/Controller/ContentsController.php, line 660]
Code Context
$this->ajaxError(500, __d('baser', '無効な処理です。'));
}
$this->Content->id = $this->request->data['currentId'];
ContentsController::admin_ajax_move() - CORE/Baser/Controller/ContentsController.php, line 660
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 491
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 193
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167
[main] - ROOT/index.php, line 163
Warning (2): Cannot modify header information - headers already sent by (output started at /home/*********/public_html/newmfs/lib/Cake/Utility/Debugger.php:795) [CORE/Baser/Controller/BcAppController.php, line 1534]
Code Context
*/
public function ajaxError($errorNo = 500, $message = '') {
header('HTTP/1.1 ' . $errorNo);
$errorNo = (int) 500
$message = 'データが存在しません。'
header - [internal], line ??
BcAppController::ajaxError() - CORE/Baser/Controller/BcAppController.php, line 1534
ContentsController::admin_ajax_move() - CORE/Baser/Controller/ContentsController.php, line 662
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 491
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 193
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167
[main] - ROOT/index.php, line 163
原因を探っていった所、下記の修正・変更がございました。
→
lib/Baser/View/Elements/admin/contents/index_list_tree.php分かりやすく見比べてみると・・
該当部分を書き換えた所、正常に表示・編集出来るようになりました。
書き換え後のコード(詳しくありませんし脆弱性の問題に対応できているかどうかもわかりませんm(_ _)m)
66行目の
"contentTitle":"<?php echo addslashes(strip_tags($data['Content']['title'])) ?>",
を下記のように書き換えました。
"contentId":"<?php echo $data['Content']['id'] ?>",
"contentParentId":"<?php echo $parentId ?>",
"contentEntityId":"<?php echo $data['Content']['entity_id'] ?>",
"contentSiteId":"<?php echo $data['Content']['site_id'] ?>",
"contentFullUrl":"<?php echo $fullUrl ?>",
"contentType":"<?php echo $type ?>",
"contentAliasId":"<?php echo $data['Content']['alias_id'] ?>",
"contentPlugin":"<?php echo $data['Content']['plugin'] ?>",
66 → "contentTitle":"<?php echo addslashes(h($data['Content']['title'])) ?>",
"contentSiteRoot":"<?php echo (bool) $data['Content']['site_root'] ?>",
"editDisabled":"<?php echo $editDisabled ?>",
"manageDisabled":"<?php echo $manageDisabled ?>"
}'<?php if($open): ?> class="jstree-open"<?php endif ?>>
<span><?php echo h($data['Content']['title']) ?></span>
<?php if(!empty($data['children'])): ?>
<?php $this->BcBaser->element('admin/contents/index_list_tree', ['datas' => $data['children']]) ?>
<?php endif ?>
</li>
<?php endforeach ?>
</ul>
ひとまずこれで運用してみますが、改善要望として投稿させて頂きます。
どうぞ宜しくお願い致します。