狠狠撸
Submit Search
XOOPS Cube Conference 2012 Developer Workshop 4
?
0 likes
?
95,994 views
H
Hikawa Kilica
Follow
1 of 8
Download now
Download to read offline
More Related Content
XOOPS Cube Conference 2012 Developer Workshop 4
1.
ニュースモジュールを 作ってみよう
2012年6月 氷川 霧霞 @kilica on Twitter http://jp.xoopsdev.com/
2.
ニュースモジュール bulletin
3.
どんな機能が必要? 基本機能 ? ニュース一覧(投稿日の新しい順) ? ニュース詳細 ?
ニュース投稿(編集) ? ニュース削除 ? フィールドは、 o id(topic_id) o タイトル(title) o カテゴリ(category_id) o 本文(content) o 投稿者(uid) o ニュース日時(newsdate) o 投稿日時(posttime)
4.
どんな機能が必要? 詳細 ? 記事のカテゴリ分類 ? タイトル、カテゴリ、本文は入力必須項目。id,
uid, 投稿日時は自動入力。 ? カテゴリID付きの投稿URLをリクエストした場合、投稿画面でそのカテゴリが選択 状態になっている ? 投稿?削除は管理者(かサイト運営者が設定したグループ)のみが操作できる ? 一覧および詳細画面での日時は「ニュース日時」が入っていれば「ニュース日時」、 なければ「投稿日時」を使う。 ? 「ニュース日時」が設定されている場合、「ニュース日時」になるまではそのニュー スを表示しない。ただし、管理者にのみは表示する。
5.
カテゴリの設定 「カテゴリID付きの投稿URLをリクエストした場合、投稿画面でそのカテゴリが選択状 態になっている」 http://localhost/xoops/html/modules/mynews/index.php?action=TopicEdit&category_id=2 actions/TopicEditAction.class.php public
function prepare() { $req = $this->mRoot->mContext->mRequest; if($this->mObject->isNew()){ $this->mObject->set('uid', Legacy_Utils::getUid()); $this->mObject->set('category_id', $req- >getRequest('category_id')); } }
6.
管理者のみ投稿可能 投稿?削除は管理者(かサイト運営者が設定したグループ)のみが操作できる templates/mynews_topic_list.html <{if $xoops_isadmin}> <ul class="hmenu">
<li><a href="<{xoops_cooluri dirname=$dirname dataname=$dataname action=edit}>"><{$smarty.const._MD_MYNEWS_LANG_ADD_A_NEW_TOPIC}></a></li > </ul> <{/if}>
7.
テンプレートの編集 一覧および詳細画面での日時は「ニュース日時」が入っていれば「ニュース日時」、な ければ「投稿日時」を使う。 ニュース日時は初期値を0にする class/handler/topic.class.php $this->initVar('newsdate', XOBJ_DTYPE_INT,
0, false); テンプレートで表示する値を場合分けする (class/handler/news.class.php で showDate みたいなメソッドを追加する方法もあり) templates/mynews_topic_list.html templates/mynews_topic_view.html <{if $obj->getShow('newsdate')}> <{$obj->getShow('newsdate')|xoops_formattimestamp:m}> <{else}> <{$obj->getShow('posttime')|xoops_formattimestamp:m}> <{/if}>
8.
表示期間の設定 「ニュース日時」が設定されている場合、「ニュース日時」になるまではそのニュースを 表示しない。ただし、管理者にのみは表示する。 actions/TopicListAction.class.php public
function getDefaultView() { ... $criteria=$this->mFilter->getCriteria(); if($this->mRoot->mContext->mUser->isInRole('Site.Owner')===false){ $criteria->add(new Criteria('newsdate', time(), '<')); } ??? } actions/TopicViewAction.class.php
Download