Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2004-05-21 10:38:28

nn
ゲストユーザー

Re: メンバーの書いたアイテムのリスト

何人かで一つのblogを作りたくて、3.0rc(EUC)をインストールしました。
現在、試行錯誤しながら何とかカスタマイズしています。難しいですが、ブラウザからほとんどのカスタマイズが出来るのに驚いています。開発者に感謝です。

そこで一つ質問があります。メンバーinfoのページにそのメンバーの最近書いたアイテムのリストを表示したいのですが、それを実現するような変数やプラグインなどありますでしょうか?イメージとしては、AさんのinfoページにAさんが最近書いたアイテムを10個くらいリスト表示して、アイテムをクリックするとその詳細ページに飛ぶようなことを考えています。

どなたかアドバイスよろしくお願いします。

#2 2004-05-21 12:05:41

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: メンバーの書いたアイテムのリスト

方法その1:ひとつのblogに複数メンバーが投稿する形で運用
→memberidで記事を拾い上げる機能はないので別途プラグインを作成。

方法その2:個々のメンバーが個々のblogを持つ形で運用
→標準機能で実現できるかも。(memberタイプで<%blog%>使えたかな?)
ただし、記事一覧ページはallblogモードで展開が必要。

えーっと、何を言っているのかわかりにくいかもしれませんが。
通常は、複数人でblog運営する時は複数のblogを作成するんだと思います。
そうすれば、
index.php → 全員の記事の最新順表示
index.php?blogid=1 → ある一人の記事だけ最新表示 (+その人専用ページデザイン)
index.php?blogid=2 → もう一人の記事だけ最新表示 (+その人専用ページデザイン)
という形で見せることができるので。

逆に、1blogに複数人が書く形式を採るとなると、例えばアーカイブ一覧とか、コメント一覧なんかも全部memberidフィルタかけるプラグインが必要になってくると思います。(そしてスキンの記述も複雑になるでしょう)

blogの数を増やすのか、1blogでやっていくのか決めた上でまた投稿していただいたら、おつきあいできると思います。(プラグイン作成も含めて)


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#3 2004-05-21 12:33:01

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: メンバーの書いたアイテムのリスト

えーっとたしか、プラグインがあったような。
みっけ :arrow:  http://forum.nucleuscms.org/viewtopic.php?t=1466

配布元が死んでいますが、2ページ目にソースが書いてあります。
ただ3.0RCとのことなので、2.0と3.0両方対応にした形で転載します。
今は出先なのでチェックしてません。動かなかったらごめんなさい。

<?php
// plugin needs to work on Nucleus versions <=2.0 as well
if (!function_exists('sql_table')) {
  function sql_table($name) {
  return 'nucleus_' . $name;
  }
}
/*
  This plugin can be used to display the last few user comments.
*/ 
class NP_MemberItems extends NucleusPlugin {
   function getEventList() { return array(); }
   function getName() { return 'Member Items'; }
   function getAuthor()  { return 'Ricardo Lamego'; }
   function getURL()  { return 'http://35mm.org/'; }
   function getVersion() { return '0.1'; }
   function getDescription() {
      return 'Use this plugin to display the last items posted by each user. <%MemberItems%> will show the default number of items from <strong>all</strong> blogs the member posts. <%MemberItems(5)%> overrides the default number of items and will display only 5. <%MemberItems(5,2)%> will do as stated before plus will only show items from blogid 2.';
   }
  function supportsFeature($what) {
    switch($what) {
    case 'SqlTablePrefix':
      return 1;
    default:
      return 0;
    }
  }
function install() {
   $this->createOption('option1','Max number of items?','text','10');
}
   // skinvar plugin can have a blogname as second parameter
   function doSkinVar($skinType) {
      global $manager, $blog, $CONF,$memberid;
       $params = func_get_args();
      $option1 = $this->getOption('option1');

      if ($option1) { $numberOfItems = $option1; }
         else { $numberOfItems = 10; }
      // how many comments will be shown?
      if ($params[1])
         { $numberOfItems = $params[1]; }
      // show comments from all blogs
      if (!$params[2])
         { $blogid = "";}
      // show comments from the actual blog 
      else if ($params[2] == "0")
         { $blogid = " AND iblog=".$blog->getID(); }
      // show comments from the default blog
      else if ($params[2] == "default")
         { $blogid = " AND iblog=".$CONF['DefaultBlog'];  }
      // show comments from the selected blog id 
      else
         { $blogid = " AND iblog=".$params[2]; }

$query = "SELECT inumber, iauthor, ititle, itime FROM ".sql_table(item)." WHERE iauthor=".$memberid." AND idraft=0".$blogid." AND itime<=".mysqldate($blog->getCorrectTime())." ORDER by itime DESC LIMIT 0,".$numberOfItems;

        $items = mysql_query($query);
        while($row = mysql_fetch_object($items)) {
             $title  = $row->ititle;
          $itime =  $row->itime;
          $time = ereg_replace("^(.{1,10})[ :,].*", "\\1", $itime);

             $itemlink = createItemLink($row->inumber, '');
             echo $time ."        ";
             echo "<a class=\"linkpage\" href=\"".$IndexURL.$itemlink."\">". $title ."</a><br />";
         }
       }
}
?>

動作はそのメンバーが投稿したアイテムをBlogにかかわらず拾ってくるとのこと。
使い方はメンバーの詳細ページに<%MemberItems(表示数)%>と書くだけです。
また、2番目のオプションで拾うBlogを絞れます。<%MemberItems(表示数、BlogID)%>

レイアウトは最後の方のechoから始まっている2行をいじってください。

オフライン

#4 2004-05-21 14:16:55

nn
ゲストユーザー

Re: メンバーの書いたアイテムのリスト

早速の、しかも高名なお二人からレスをいただき、嬉しい驚きです。 :shock:
ここ何日かお二人に何度助けられていることか。(って、直接にではなく、サイトやプラグインにですが…)この場を借りて感謝を述べさせていただきます。

>nakahara21さん
なるほど、複数のblogは考えていませんでした。それで出来そうな気もします。ただ、カテゴリーがblogごとにバラバラになってしまいませんか?検索やカテゴリーを各blogで共有できるのでしたら、複数のblogもいいかもしれません。

>Felさん
おお、どうやら私の探しているものはこれですね。
ただ、早速、コピペしてNP_MemberItems.phpと名付けて、pluginのインストールを試してみたのですが、ずらずらとpluginの中身に続けて、

Plugin could not be loaded, or does not support certain features that are required for it to run on your Nucleus installation (you might want to check the actionlog for more info)

というエラーが表示されました。
actionlogには

Plugin NP_MemberItems was not loaded (Class not found in file, possible parse error)

と出ています。
ですが、試しに他のプラグインで試してみたところ、やっぱり同様のエラーが出ましたので、Felさんのプラグインに問題があるとは断定できません。(nakahara21さんのNP_ShowBlogsでも駄目でした)

文字エンコードなんかの問題でしょうか。もうちょっと試してみます。とりあえずはここまでのお礼を。ありがとうございました。

#5 2004-05-21 15:02:00

nn
ゲストユーザー

Re: メンバーの書いたアイテムのリスト

他にインストールできたプラグインがあって、それとの違いを見てみたところ、一行目が<?phpとなっており、出来ないものは<?となっていて、phpがないことに気付きました。試しにphpを入れてインストールしてみたところ、おお!出来ました。phpはよく知らないのですが、これって.phpをphpファイルとして認識していなかったって事かな。

きちんとメンバーの最近のアイテムがリスト表示されています。ばっちりっす。 tongue

ありがとうございました。

#6 2004-05-21 19:39:55

Fel
メンバー
From: Kyoto
登録日: 2003-11-06
投稿: 599
ウェブサイト

Re: メンバーの書いたアイテムのリスト

nn さんの発言:

他にインストールできたプラグインがあって、それとの違いを見てみたところ、一行目が<?phpとなっており、出来ないものは<?となっていて、phpがないことに気付きました。試しにphpを入れてインストールしてみたところ、おお!出来ました。

修正しておきました、情報ありがとうございます。
ついでにプラグインリストにも追加。これで78個です、目指せ百個 :!:

高名とか言われると非常に照れくさいです :oops:
恥ずかしくないように、ちゃんとページの整備と定期更新、勉強をやらなきゃ・・・

オフライン

#7 2008-04-25 00:48:21

herb
メンバー
登録日: 2008-04-25
投稿: 9

Re: メンバーの書いたアイテムのリスト

こんにちは。
このトピックの最終投稿がかなり前なので、
こちらで、質問させていただいていいのかどうか
わからないのですが・・・。
失礼がありましたら、お許しくださいませ。

最近、nucleus3.3を導入して、ちょこちょこと、いじっています。
見た目をなんとかすること、プラグインを利用して、
少し自分なりに便利にしたいと思っている初心者です。

まさしく、このプラグインの機能を利用したいと思っているのですが、
「プラグインの管理」で、NP_MemberItems.phpを読み込むと
管理画面のブラウザの表示に、メニューが表示されなくなり、
インストール済みのプラグイン一覧も、
途中(NP_MemberItems.phpの前に読み込んだプラグインまで)で切れてしまいます。

これは、3.3に対応していないせいでしょうか?
それとも、私の初歩的なミスなのでしょうか。
文字コードは、EUC、改行コードは、CR+LF、のテキストで保存しています。
最後の「?>」の後には、改行は入っていません。

もし、何か、ヒントなりでも、いただけましたら、大変にありがたいです。
よろしくお願いいたします。

オフライン

#8 2008-04-25 11:50:56

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: メンバーの書いたアイテムのリスト

サーバーにエラーログは残っていないですか?

オフライン

#9 2008-04-25 20:03:37

herb
メンバー
登録日: 2008-04-25
投稿: 9

Re: メンバーの書いたアイテムのリスト

Andy さんの発言:

サーバーにエラーログは残っていないですか?

Andy様
早速のレスポンスありがとうございます。

管理操作履歴は、
「Plugin NP_MemberItems was not loaded (File not found)」
が残っています。
これは、ブラウザが正常にならないので、
プラグインをアップロードしたサーバから削除した後に
改めてアクセスしたので、このような履歴になっていると思われます。
インストール時の履歴は、残っておりませんでした。

mac OS9.2.2のブラウザ(IE/Mozila)でしたので、
改めて、win xpでも試しましたが同じでした。

プラグイン管理から、「新しいプラグインのインストール」で、インストール。
すると、ブラウザがリフレッシュするときに、真っ白な状態になります。
その後、リロードすると、「そのプラグインはインストール済みです」となり、
改めて、左のメニューからプラグイン管理に移動すると、
メニューが表示されなくなり、プラグイン表示も、途中までになります。
その後、サーバからftpで、プラグインファイルを削除し、
再読込をすると、
「Error: plugin file NP_MemberItems.php could not be loaded, or it has been set inactive because it does not support some features (check the actionlog for more info)」
と、一覧に入ります。

こんなところですが・・・。
何か、おわかりになりますでしょうか?

オフライン

#10 2008-04-25 20:08:15

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: メンバーの書いたアイテムのリスト

Nucleusのログではなく,サーバーにPHPのエラーログが出ていると思うのですが。
もしないようでしたら,.htaccessでエラーを画面に出力してどういうエラーが出ているか調べてみてください。

オフライン

#11 2008-04-25 20:19:09

herb
メンバー
登録日: 2008-04-25
投稿: 9

Re: メンバーの書いたアイテムのリスト

>Andy様

アドバイスありがとうございました。m(__)m
もう一度、勉強し直して参ります。
道は遠いですね。(^^;
頑張ります!

オフライン

#12 2008-04-25 21:24:32

herb
メンバー
登録日: 2008-04-25
投稿: 9

Re: メンバーの書いたアイテムのリスト

>Andy様

アドバイスありがとうございました。
そういうこと(サーバのエラーログを取る)ができるということすら、知りませんでした。
調べましたら、カンタンに、エラーログを調べることができ、

PHP Parse error:  parse error  〜中略〜  plugins/NP_MemberItems.php on line 65, 〜後略

とありました。
プラグインファイルを調べたところ、
全くお恥ずかしい話で、完全なるケアレスミスでした。
コピー&ペーストしたときに、文字コードが混乱したのか、おかしくなっていました。
(「\」が「バックスラッシュ」になっていました)

あらためて、書き直し、アップロードしたところ、無事、機能いたしました。
こんな間抜けな素人の話を、理解してくださいまして、ありがとうございます。
また、迅速に、レスポンスをしていただき、感謝しております。
本当にありがとうございました。m(__)m

オフライン

#13 2008-04-26 00:27:52

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: メンバーの書いたアイテムのリスト

いえいえ,僕はログを見たらと書いただけで,ご自分で解決されたのだから立派なものですよ。

オフライン

Board footer