2012-03-01から1ヶ月間の記事一覧
前エントリのロール管理はこれでもロール管理かという代物でした。今回はyii-rightsを使いGUIで管理できるようにします。blogデモにyii-rightsを組み込んだソースやデモも用意されている。手っ取り早く確認したいならはここから。 導入 とりあえずドキュメン…
前エントリで触れなかったupdateOwnPost関連のアクセス制御について。アクションに書いてしまいがちな権限チェックをフィルタに書いてアクションをシンプルに保っていきたい。 パラメータ付き権限アイテム ここの図でupdateOwnPostを再確認する。updateOwnPo…
ロールベースアクセスコントロール(RBAC)を導入するのは面倒で後回しにしてきました。ロールのデザイン、ロール管理の実装、ユーザー管理の実装、権限付与の実装には時間がかかりそうで躊躇してしまうのです。そこでこれらをできる限り省略してRBACを導入す…
blogデモにユーザー管理機能を追加したときのメモ。gii-Crud GeneratorでUserモデルメンテナンス機能を生成し、生成したコードを調整します。 Userモデルメンテナンス機能を生成する gii を有効にする ついでにgiiにたどり着けるよう urlManager も調整する…
YiiFrameworkのアクセスコントロールを学習したときのメモ。 ログインから始めロールベースアクセスコントロール、YiiRightsに辿り着きたい。素直にcookbook買うべきなのかもしれない。 ログイン ユーザー認証。これがなくちゃ話にならない。最初に注意すべ…
{{void(...)}}でなく{%do...%}で 前のエントリで{{void(this.endWedgit)}}と書きましたが、{%do this.endWidget %}でいいことがわかり修正しました。ごめんなさい。 フラグメントキャッシュとは フラグメントキャッシュはページの断片をキャッシュする事を指…
twig-rendererのfiltersに関数を指定するとtwigのfilter構文でその関数が使えるようになります。twigのfilterとバッティングしたらどうなるんだろ。 こんな感じ。 'viewRenderer'=>array( 'class'=>'ext.etwigviewrenderer.ETwigViewRenderer', 'filters' =>…
これをどうするか 'hoge')); ?> Yii クラスをアクセス可能にする Yiiクラス を globals に登録するprotected/config/main.php 'viewRenderer'=>array( 'class'=>'ext.etwigviewrenderer.ETwigViewRenderer', 'globals' => array( 'Yii' => 'Yii', ), ),ビュ…
yii は $this->rendarPartial ですが、Twig はincludeタグで書きます。 renderPartial('_view', array('data'=>$model)); ?> ↓↓↓↓↓ {% include '/views/post/_view.twig' with {'data':model} %} 見たまんま書き換えできると思います。そしてrenderPartialで…
追記 2012.03.15 やだなーと思っていた{{void(...)}}ですが、{%do...%}で書くべきと気がつき、修正しました。 yiiのスケルトンappでは ページレイアウトの大枠を layouts/main.php、内部のカラム構造を layouts/column1.php, column2.php に実装しています。…
追記 2012.03.15 やだなーと思っていた{{void(...)}}ですが、{%do...%}で書くべきと気がつき、修正しました。 ほぼ前のと同じですが、素直に this.beginWidgetでもうまくいきました。 前の{% set form = this.createWidget() %}...{{ form.run }}は何かの役…
beignWidget/endWidgetでも書けます。->こちら ここのcreateWidget/wedgit.run は何かの役に立つ(アンチパターンとか)かもしれないので残しておきます。 検証中のコードですがおいておきます。 {% set form = this.createWidget() %} すればwidgetをあきらめ…
続いてモデルを使わずzii.widgets.CGridtViewを使ってみる。 サンプルコード ボタンカラムは、データ各要素にprimaryKeyプロパティを要するのでコメントアウトしています。もちろん回避する方法はあるだろうが今回そこまでやらない。protected/controllers/S…
モデルを使わずzii.widgets.CListViewを使ってみる。 CListViewで何が得られるのか検証したかったのですが、モデルを用意するのが面倒だったので書きました。 サンプルコード protected/controllers/SiteController.php 1, 'title'=>'アルファ', 'create_tim…
zii.widgets.CDetailViewて何を出力するんだっけ。モデルを使わないサンプルコードを書いてみた。 サンプルコード "たいとる", "owner" => (object) array( "id"=>"owner.id", "name"=>"オーナーの名前", ), "description"=>"<b>descriptiondescription</b>", "city…