日誌提示ブロックに「編集する」リンクを表示する。

Mahara 1.5.2〜1.5.8 で確認。1.6以降では、日誌提示ブロックに「新規エントリ」のボタンが追加されるようになった。

http://sumi.riise.hiroshima-u.ac.jp/skitch/ramen.png

更新記録

日誌エントリの編集画面から戻るときに、日誌提示ブロックがおいていあるビューに戻るようにした。これに関連する変更は青文字で示している。(2012-10-31)

HTMLエクスポートするときに、「編集する」リンクが表示されないようにした。$exporter を参照しているあたり。(2013-04-04)

ここに書いた改修を施したファイルを固めたものを置いた (2013-04-04): fileblog_edit_link_20130404_0.tgz
Maharaのhtdocs (config.php があるところ)で tar zxvf blog_edit_link_20130404.tgz とすると展開できる。本家バージョンの1.5.0〜1.5.8 では、ここに書いたファイルへの変更は加えられていないので、どのバージョンでも適用できるはず。

1.8を常用するようになった。日誌提示ブロックに「新しいエントリ」が表示されるようになったが、編集モードに入らないといけないし、「エントリの編集」は相変わらずできない。ここに書いたカスタマイズの方が使いやすいので、1.8.0に変更を施した。以下に提示するtgzファイルを Mahara の htdocs (config.phpがあるところ)で tar zxvf すればOK。(2013-11-06)

artefact/blog/lib.php

    631             }
    632             $smarty->assign('attachments', $attachments);
    633         }
    634         $smarty->assign('postedbyon', get_string('postedbyon', 'artefact.blog',
    635                                                  display_name($this->owner),
    636                                                  format_date($this->ctime)));
 
                global $USER;
                global $exporter;
                $exporting = isset($exporter);
                $smarty->assign('viewbyowner',(!$exporting && ($USER->id==$this->owner || $USER->id==$this->author))? 1:0);
				
                $sv=param_integer('id',0); 
                $smarty->assign('savepar',sprintf("&sartefact=%d&sview=%d", 
                                          param_integer('artefact',0), 
                                          ( ($sv>0)? $sv:param_integer('view',0)))); 

    637         return array('html' => $smarty->fetch('artefact:blog:render/blogpost_renderfull.tpl'),
    638                      'javascript' => '');
    639     }
    691         $data = get_records_sql_assoc('
    692             SELECT
    693                 a.id, a.title, a.description, a.author, a.authorname, ' .
    694                 db_format_tsfield('a.ctime', 'ctime') . ', ' . db_format_tsfield('a.mtime', 'mtime') . '    694 ,
    695                 a.locked, bp.published, a.allowcomments, a.parent ' . $from . '
    696             ORDER BY bp.published ASC, a.ctime DESC',
    697             array($id),
    698             $offset, $limit
    699         );
    749             // Ensure images in the post have the right viewid associated with them
    750             if (!empty($viewoptions['viewid'])) {
    751                 safe_require('artefact', 'file');
    752                 $post->description = ArtefactTypeFolder::append_view_url($post->description, $viewoptions['viewid']);
    753             }
	            global $USER;
	            global $exporter;
	            $exporting = isset($exporter);
	            $post->viewbyowner=( (!$exporting && ($post->owner==$USER->id || $post->author==$USER->id))? 1:0); 
	            $sv=param_integer('id',0); 
	            $post->savepar = sprintf("&sartefact=%d&sview=%d", 
	                                 param_integer('artefact',0), 
	                                 ( ($sv>0)? $sv:param_integer('view',0))); 
    754         }

artefact/blog/post.php

     37 safe_require('artefact', 'blog');
     38 safe_require('artefact', 'file');

        function wayback_url ($blog,$sview,$sartefact) {
          if  ( $sview==0 ) { 
             return 'artefact/blog/view/index.php?id='.$blog; 
           } elseif ( $sartefact==0 ) { 
            return 'view/view.php?id=' . $sview; 
          } else { 
            return 'view/artefact.php?artefact='. $sartefact.'&view=' . $sview; 
          } 
        } 
     85 }
     86 

           $sview = param_integer('sview',0); 
           $sartefact = param_integer('sartefact',0); 

     87 
     88 $form = pieform(array(
     89     'name'               => 'editpost',
    168         'submitpost' => array(
    169             'type' => 'submitcancel',
    170             'value' => array(get_string('savepost', 'artefact.blog'), get_string('cancel')),
    171             'goto' => get_config('wwwroot') . 'artefact/blog/view/index.php?id=' . $blog
                    'goto' => get_config('wwwroot') . wayback_url($blog,$sview,$sartefact),
    172         )
    316     db_commit();
    317 
            global $sview,$sartefact;
			
    318     $result = array(
    319         'error'   => false,
    320         'message' => get_string('blogpostsaved', 'artefact.blog'),
    321         'goto'    => get_config('wwwroot') . 'artefact/blog/view/index.php?id=' . $blog,
                'goto' => get_config('wwwroot') . wayback_url($blog,$sview,$sartefact),
    322     );

artefact/blog/theme/raw/viewposts.tpl

     26     {if $options.viewid && $post->allowcomments} | <a href="{$WWWROOT}view/artefa
     26 ct.php?artefact={$post->id}&view={$options.viewid}">{str tag=Comments section=art
     26 efact.comment} ({$post->commentcount})</a>{/if}</div>

            {if $post->viewbyowner} 
              | <a href="{$WWWROOT}artefact/blog/post.php?id={$post->id}{$post->savepar}"> 
                 {str tag=editblogpost section=artefact.blog}</a> 
              | <a href="{$WWWROOT}artefact/blog/post.php?blog={$post->parent}{$post->savepar}"> 
                 {str tag=addpost section=artefact.blog}</a> 
            {/if}</div>	 

     27   </td>

artefact/blog/theme/raw/render/blogpost_renderfull.tpl

     23     {if isset($commentcount) && $artefact->get('allowcomments')} | <a href="{$art
     23 efacturl}">{str tag=Comments section=artefact.comment} ({$commentcount})</a>{/if}
 
            {if $viewbyowner} 
              | <a href="{$WWWROOT}artefact/blog/post.php?id={$artefact->get('id')}{$savepar}"> 
                 {str tag=editblogpost section=artefact.blog}</a> 
            {/if} 
      
     24   </div>

添付ファイル: filemahara180_blog_edit_link_20131106.tgz 398件 [詳細] fileblog_edit_link_20130404_0.tgz 463件 [詳細] fileblog_edit_link_20130404.tgz 240件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-11-07 (木) 00:23:17 (1379d)