FuelPHP のソースコードを閲覧できるサイト fuel.php-web.net にメモ機能を追加しました。
今までは、単に閲覧するだけでしたが、メモ機能を追加することで、自分が気になった点を書き込んで保存することができます。また何回閲覧したのか、前回の閲覧は何月何日か、という情報も記録するようにしています。
実装は、HTML5 ローカルストレージを採用しています。なので FuelPHP の機能とは直接は関係しません。また HTML5 対応ブラウザで、ローカルストレージを有効にして、アクセスしてください。https://github.com/ounziw/fuel.php-web.net/ の fuel/app/views/methodlist/source.phptal から抜粋しています。
<p> このページを <span id="number">1</span> 回閲覧しました。 前回の閲覧: <span id="lastview">0</span> </p> <textarea cols="50" class="span9" rows="4" id="memotext" placeholder="You can enter a memo here."></textarea> <script type="text/javascript"> jQuery(document).ready(function(){ var val = 1; var data = localStorage.getItem("<tal:block tal:content="classname">num</tal:block>Val"); if (data !== null) { val += parseInt(data); } localStorage.setItem("<tal:block tal:content="classname">num</tal:block>Val",val); $('#number').text(val); var dateval = 'first time'; var tmpdata = localStorage.getItem("<tal:block tal:content="classname">num</tal:block>Date"); if (tmpdata !== null) { dateval = tmpdata; } $('#lastview').text(dateval); nowdate = new Date(); datein = nowdate.getFullYear() + "年" + (nowdate.getMonth() + 1) + "月" + nowdate.getDate() + "日"; localStorage.setItem("<tal:block tal:content="classname">num</tal:block>Date",datein); $(document).ready(function(){ $('#memotext').val(localStorage.getItem('<tal:block tal:content="classname">class</tal:block>Text')); }); $('#memotext').keyup(function(){ localStorage.setItem('<tal:block tal:content="classname">class</tal:block>Text',jQuery('#memotext').val()); }); }); </script>
jQuery のコードは、本来は別ファイルにするのが好ましいのでしょうけど、変数 classname を jQuery ファイルに渡すのが大変そうなので、view に直接記述する方式にしています。