jQuery.extendを使ってjsdoc用のコメントを書く
必要にせまられてjQuery.extendを使うことになった。けど単純にdocコメント埋めてもうまくオーバーライドメンバーのドキュメントを出力できない。
このように書く。
(function($){ /** * 親クラス * @class * @constructor */ var Parent = function(){}; Parent.prototype = { func1: function(){ }, func2:function(){ alert("parent"); } }; /** * 子クラス * @class * @constructor * @extends Parent */ var Child = function(){}; $.extend(Child.prototype,Parent.prototype,{ /** * オーバーライドメソッド * @function * @name Child.prototype.func2 */ func2:function(){ alert("child") } }); })(jQeury);
もしかしたら、バージョンによっては@memberOfとか@methodOfとかで出来るかもしれないけどうちの官位今日(2.4)では出来なかった。
sample
(function($) { // ウィジェット定義 $.widget('test.myWidget', { // デフォルト設定 options: { content: 'hoge' }, // 初期化処理として自動的に呼び出される _init: function() { this._update(); }, // プライベートメソッド _update: function() { var opts = this.options; var elm = this.element; elm.html(opts.content); }, // パブリックメソッド setContent: function(str) { this.options.content = str; this._update(); } }); delegate = function(func,ctx){ return function(){ return func.apply(ctx,arguments); }; }; $.widget('forms.textField', { options: { fields: [] }, _init: function() { }, validate: function(){ this.message = "hello;" return false; }, getMessage: function(){ return this.message; } }); $.widget('forms.form', { options: { fields: [] }, _init: function() { this.element.submit(delegate(this._onsubmit,this)); }, _onsubmit : function(){ this.messages = []; var valid = true; var length = this.options.fields.length; for(var i = 0;i < length;i++){ var field = $(this.options.fields[i]); if(!$(field).textField("validate")){ this.messages.push(field.textField("getMessage")); valid = false; } } if(!valid){ var m = ""; for(var i = 0;i < this.messages.length;i++){ $("#myWidget").append(this.messages[i]); m += this.messages[i]; } return false; } return true; }, // パブリックメソッド setContent: function(str) { this.options.content = str; this._update(); }, }); })(jQuery); // DOM構築完了後 $(function() { // オプションを上書きして呼び出し $("#myWidget").myWidget({ content: 'fuga', onUpdate: function() { alert('更新されました') } }); $("#form1").form({ fields: [ $("#text1").textField(), $("#text12").textField(), $("#text13").textField(), ] }); })
jQueryプラグインを書くためのテンプレ
jQuery.fn.pluginName = function(options) { var options = jQuery.extend( { },options); return this.each(function(){ }); };
上の記事で気が付いた。
上は社内xoopsに書くための文章(htmlタグつき)をそのまま貼り付けただけなんだが、なんとそのままhtmlを解釈している!
2005年ぐらいから使い始めているが、全く知らなかった予!
Zend Frameworkで静的ページっぽいものを作る
アプリケーション本体とは別に「このサイトについて」とか「ご利用条件」とかのページを作る場合の備忘録
- "guide/:page"みたいなURLに対して controller=>static-content,action=>indexみたいなルートを割り当てる。
- "page"パラメータに対応するテンプレートを用意する。
- StaticContentController#indexActionで"page"パラメータに対応するテンプレートをrenderする。
■
apache上のphpmyadminの設定
############################################################################### # phpMyAdmin ############################################################################### Alias /phpmyadmin "E:/usr/share/php/phpMyAdmin-3.3.3-all-languages" <Directory "E:/usr/share/php/phpMyAdmin-3.3.3-all-languages"> Options Indexes FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all ScriptInterpreterSource Registry-Strict DirectoryIndex index.cgi index.html index.php </Directory>