カテゴリー別アーカイブ: bulletin

XOOPSでFCKeditorからckeditorへ

InternetExproler10が世に出てから、お客様からよく「エディターが無くなりました」というお問い合わせをいただきました。
FCKEditorがIE10という「10」というのを想定して作られていなかったのと、跡継ぎエディターのCKEditorが出てきていたのとあって、対応されたものがなく、また、XOOPSで使用していたFCKEditorはXOOPS用にうまいこと動くように改造していただいていたものでした。

FCKEditorをIE10以降の環境でも使えるようにという技はいろいろとあったし、私もこのブログで紹介していたけれど、結局思ったような動きをせず、IEの互換モードを利用して、管理画面だけ強制的にIE8にすることで、この問題を避けてきました。

しかし、来年あたりに出るだろうIE12からは、この互換モードもなくなるだろうという噂を聞き、やはりFCKeditorからCKeditorにしなくてはならないかぁ……といろいろ調べていたところ、「CKEditor4」というXOOPS用に変更されたモジュールがあることを知り(ありがとうございます!)、サーバーブラウザにもXelfinderというものを提供していただいているということを知って(ありがとうございます)、ここ数日その変更をいろいろと試していたところです。

CKEditor4」は、リンク先のページによると動作確認されているXOOPSのバージョンが、XOOPS CUBE Legacy2.2.0からの方がよいみたい(1.7.2で試していたけど、うまくいかなかった)

ので、

1.XOOPS CUBE Legacy 2.2.0以上にバージョンアップする(どうせバージョンアップするならなるべく最新に)

2.CKEditor4をインストール

3.eXlfinderをインストール

という流れで。

まず、

1.XOOPS CUBE Legacy 2.2.0以上にバージョンアップする(どうせバージョンアップするならなるべく最新に)

以下のページを参考にアップデート

http://sourceforge.net/apps/mediawiki/xoopscube/index.php?title=Upgrade22;ja

なんで、このアップデート、今頃まで躊躇していたかというと、管理画面のデザインがかわるからだったりします。
普段操作に不慣れなお客様だと、ボタンの色一つ変わるだけで、「あれ?」と思う方もいらっしゃるので……。
なるべく管理画面とか変わってほしくないなぁ……なんて思ったりしますが、この際、デザインの変更点もちゃんと説明することにします。

2.CKEditor4をインストール

インストールするだけで、picoでエディターが動く的な説明をどこかで読みましたが、私の場合インストールするだけではだめでした。

テンプレートの「xx_main_content_form.html」より

<{$body_wysiwyg}>  を<{ck4dhtmltarea name=body value=$content.body editor=html}>  に変更します。

 3.eXlfinderをインストール

特に難しいことはありません。インストールすれば、ckeditor4のサーバブラウザとして使うことができます。

4.bulletinが2.04だったら2.2にアップしておく必要があります。

取りあえず以上……。

bulletinで既存の記事を編集したとき管理者にメールが届くように

投稿者に編集権限をあたえていた場合(承認が必要)、編集した瞬間に一旦記事は非公開になります。
そのとき、投稿時と同じように管理者にメールがいくようにしたいです。

trust_path\modules\bulletin\main\submit.php

のl252あたり。

$tags[‘STORY_URL’]ツꀀ = $mydirurl.’/index.php?page=article&storyid=’ . $story->getVar(‘storyid’);
ツꀀツꀀ// 承認の通知
ツꀀツꀀif ( $approved == 1 ){
ツꀀツꀀツꀀ$notification_handler->triggerEvent( ‘story’, $story->getVar(‘storyid’), ‘approve’, $tags );
ツꀀツꀀツꀀ$notification_handler->triggerEvent(‘global’, 0, ‘new_story’, $tags);
ツꀀツꀀ}

のあとに追加

$tags[‘STORY_URL’]ツꀀ = $mydirurl.’/index.php?page=article&storyid=’ . $story->getVar(‘storyid’);
ツꀀツꀀ// 承認の通知
ツꀀツꀀif ( $approved == 1 ){
ツꀀツꀀツꀀ$notification_handler->triggerEvent( ‘story’, $story->getVar(‘storyid’), ‘approve’, $tags );
ツꀀツꀀツꀀ$notification_handler->triggerEvent(‘global’, 0, ‘new_story’, $tags);
ツꀀツꀀ}else{
ツꀀツꀀ
ツꀀツꀀツꀀif($gperm->group_perm(2)){
ツꀀツꀀツꀀツꀀ$notification_handler->triggerEvent(‘global’, 0, ‘new_story’, $tags);
ツꀀツꀀツꀀ} else {
ツꀀツꀀツꀀツꀀ// admin only
ツꀀツꀀツꀀツꀀ$tags[‘WAITINGSTORIES_URL’] = $mydirurl.’/index.php?mode=admin&op=newarticle’;
ツꀀツꀀツꀀツꀀglobal $constpref;
ツꀀツꀀツꀀツꀀ$notification_handler->triggerEvent(‘global’, 0, ‘story_submit’, $tags, $gperm->getAdminUsers());
ツꀀツꀀツꀀ}
ツꀀツꀀ
ツꀀツꀀ}

新規投稿のメールが入ってきますが、無いよりはましかなと思いました。

bulletin2 カテゴリー別ニュースブロックのカテゴリーの順番を変えたい。

bulletin2 のカテゴリー別ニュースブロックのカテゴリーの順番を変えたいのです。

でも、まぁ、表示順を追加はとても面倒そうでしたので、タイトル順よりかはtopic_id順にして、自分で重要と思われるカテゴリーを先に登録してしまえばよいのではないかと思いまして、ちょっと手をくわえました。

今までの使い方だと、のちのちカテゴリーが加わるってこことがあまりないので、初期時に登録を気をつけたらよいのかなと。

TRUST_PATHのほうのmodules/bulletin/blocks/bulletin_category_new.php L34に

$result = $xoopsDB->query(“SELECT topic_id, topic_title, topic_imgurl FROM $table_topics WHERE topic_pid=0 ORDER BY topic_id, topic_title”);

と追加します。

以上。

Bulletinで記事が投稿できない。

セキュリティのため、というか、サイト管理とサイト更新はグループを別にしています。
しかし、なんかのひょうしに登録された人が更新できないようにデフォルトである「登録者」とは別に「サイト更新」というグループをつくり、サイト更新関係はすべて許可するように設定しています。

モジュール管理権限はすべて与えたはずなのに、Bulletinで記事が登録できない! なぜ!!

と思っていたら、モジュール個別でもっている「投稿権限」にちゃんとチェックいれてないだけでした。

いや、たいした話ではないんですが、自分への戒めのために投稿。

Bulletinのオプションの初期設定を変更する

Bulletinはニュース投稿時、「HTMLを許可する」以外にチェックが入っているのがデフォルトです。

しかし、エディターにFCKeditorが入っている場合は、
「HTMLを許可する」がonで、
「改行を自動挿入する 」がoffでないと、HTMLが反映されないです。

このデフォルトを変更するには、
TRUST_PATH内にある、「modules/bulletin/class」のbulletin.phpを変更する必要があります。

L.28を
$this->initVar(“html”, XOBJ_DTYPE_INT, 1, false);

L.30を
$this->initVar(“br”, XOBJ_DTYPE_INT, 0, false);

と、ラジオボタンにチェックをいれたい場合は「1」、チェックをはずしておきたい場合は「0」を入れます。