ニュースモジュールを  作ってみよう          2012年6月          氷川 霧霞     @kilica on Twitter  http://jp.xoopsdev.com/
ニュースモジュールbulletin
どんな機能が必要?基本機能• ニュース一覧(投稿日の新しい順)• ニュース詳細• ニュース投稿(編集)• ニュース削除• フィールドは、  o   id(topic_id)  o   タイトル(title)  o   カテゴリ(category...
どんな機能が必要?詳細• 記事のカテゴリ分類• タイトル、カテゴリ、本文は入力必須項目。id, uid, 投稿日時は自動入力。• カテゴリID付きの投稿URLをリクエストした場合、投稿画面でそのカテゴリが選択    状態になっている•   投稿...
カテゴリの設定「カテゴリID付きの投稿URLをリクエストした場合、投稿画面でそのカテゴリが選択状  態になっている」http://localhost/xoops/html/modules/mynews/index.php?action=Topi...
管理者のみ投稿可能投稿・削除は管理者(かサイト運営者が設定したグループ)のみが操作できるtemplates/mynews_topic_list.html<{if $xoops_isadmin}><ul class="hmenu">  <li><...
テンプレートの編集一覧および詳細画面での日時は「ニュース日時」が入っていれば「ニュース日時」、な ければ「投稿日時」を使う。ニュース日時は初期値を0にするclass/handler/topic.class.php$this->initVar(n...
表示期間の設定「ニュース日時」が設定されている場合、「ニュース日時」になるまではそのニュースを  表示しない。ただし、管理者にのみは表示する。actions/TopicListAction.class.phppublic function ge...
Upcoming SlideShare
Loading in...5
×

XOOPS Cube Conference 2012 Developer Workshop 4

95,645

Published on

Published in: Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
95,645
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "XOOPS Cube Conference 2012 Developer Workshop 4"

  1. 1. ニュースモジュールを 作ってみよう 2012年6月 氷川 霧霞 @kilica on Twitter http://jp.xoopsdev.com/
  2. 2. ニュースモジュールbulletin
  3. 3. どんな機能が必要?基本機能• ニュース一覧(投稿日の新しい順)• ニュース詳細• ニュース投稿(編集)• ニュース削除• フィールドは、 o id(topic_id) o タイトル(title) o カテゴリ(category_id) o 本文(content) o 投稿者(uid) o ニュース日時(newsdate) o 投稿日時(posttime)
  4. 4. どんな機能が必要?詳細• 記事のカテゴリ分類• タイトル、カテゴリ、本文は入力必須項目。id, uid, 投稿日時は自動入力。• カテゴリID付きの投稿URLをリクエストした場合、投稿画面でそのカテゴリが選択 状態になっている• 投稿・削除は管理者(かサイト運営者が設定したグループ)のみが操作できる• 一覧および詳細画面での日時は「ニュース日時」が入っていれば「ニュース日時」、 なければ「投稿日時」を使う。• 「ニュース日時」が設定されている場合、「ニュース日時」になるまではそのニュー スを表示しない。ただし、管理者にのみは表示する。
  5. 5. カテゴリの設定「カテゴリID付きの投稿URLをリクエストした場合、投稿画面でそのカテゴリが選択状 態になっている」http://localhost/xoops/html/modules/mynews/index.php?action=TopicEdit&category_id=2actions/TopicEditAction.class.phppublic 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. 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. 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.htmltemplates/mynews_topic_view.html<{if $obj->getShow(newsdate)}> <{$obj->getShow(newsdate)|xoops_formattimestamp:m}><{else}> <{$obj->getShow(posttime)|xoops_formattimestamp:m}><{/if}>
  8. 8. 表示期間の設定「ニュース日時」が設定されている場合、「ニュース日時」になるまではそのニュースを 表示しない。ただし、管理者にのみは表示する。actions/TopicListAction.class.phppublic 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×