驚きました.ブログ大活躍です.ある特定のプロジェクト活動のコースなのですが,作業日誌もあれば日々のボヤキもあり,ともかく活発に活用する学生は一日に2つも3つもアップするので最新10項目の表示では足りないのではないかという勢いです.
それだけ使い込んでみて,小さな問題ですが使い勝手に大きく影響するミスが発覚しました.blog/index.phpとuser/view.phpを呼び出すインタフェースになっているのですが,このそれぞれに対してコースIDを渡し忘れています.これを付けてあげるだけで,ブログやユーザプロファイル画面から元のコースへスッと戻れる(フッターのリンクが元のコースを指し示す),コースエントリー(そのコースに属するメンバの書いた全ブログを新しい順に表示する機能)が有効になります.修正箇所は3箇所,全てblock/updated_blogs/block_updated_blogs.phpです.なお,$COURSEは以前にアップしたパッチでglobal化されているという前提です.(1)と(2)の修正箇所に関わります.
(1) class block_updated_blogs, function get_content()
switch($layout) {
case "columns":
$text = '<table width=100% class="sideblock content block_updated_blogs">';
$text .='<th>'.get_string('page').'</th><th>'.get_string('date').'</th><th>'.get_string('user').'</th>';
foreach ($rows as $row){
$info=get_user_info_from_db('id',$row->userid);
// (3rdParty012): コースIDをパラメータとして渡す改良 (2009/07/13) (Updated_Blogs)
// (3rdParty012): <a href=の行を修正
$text.= '<tr>
<td align="left" class="block_updated_blogs_blogend_table">
<a href="'.$CFG->wwwroot.'/blog/index.php?postid='.$row->id.'&courseid='.$COURSE->id.'">'.$row->subject.'</a>
</td>
<td align="right" class="block_updated_blogs_blogend_table">'.
(2) class block_updated_blogs, function get_content()
case "rows":
// (3rdParty008): 最低限のワーニングを表示しないようにする改善 (2009/04/30) (Updated_Blogs)
// (3rdParty008): ここから追加
if (empty($text)) $text = '';
// (3rdParty008): ここまで追加
$lastlastmodified = "";
foreach ($rows as $row){
$info=get_user_info_from_db('id',$row->userid);
// (3rdParty009): 日付を言語パックで設定した形式で表示する改良 (2009/04/30) (Updated_Blogs)
// (3rdParty009): ここから修正
// $lastmodified = date("D, d M y" ,$row->lastmodified);
$lastmodified = userdate($row->lastmodified);
// (3rdParty009): ここまで修正
if($lastmodified != $lastlastmodified) {
$lastlastmodified = $lastmodified;
$text.= '<div class="block_updated_blogs block_updated_blogs_modified">'.
$lastmodified.
'</div>'."\n";
}
// (3rdParty012): <a href=の行を修正
$text .= '<div class="block_updated_blogs">
<a href="'.$CFG->wwwroot.'/blog/index.php?postid='.$row->id.'&courseid='.$COURSE->id.'">'.$row->subject.'</a>
</div>'."\n".'
<div class="block_updated_blogs blogend">'.
$this->get_user_info($info->username,20,true).
'</div>'."\n";
(3) function get_user_info()
if (record_exists("user", 'username',$user)){
$info=get_user_info_from_db('username',$user);
$picture = print_user_picture($info->id, $course->id, $info->picture, $size, true,true);
if ($puttext){
// (3rdParty010): 姓名を言語パックで指定した順序で表示する改良 (2009/04/30) (Updated_Blogs)
// (3rdParty010): ここから修正
// $text = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$info->id.'">'.$info->firstname.' '.$info->lastname.'</a>';
// (3rdParty012): ここから修正
// $text = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$info->id.'">'.fullname($info).'</a>';
$text = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$info->id.'&course='.$course->id.'">'.fullname($info).'</a>';
// (3rdParty012): ここまで修正
// (3rdParty010): ここまで修正
} else {
$text = '';
}
// $text = print_r($info, true);
}else{