皆さんが使っている、または薦めたいエクステンションを紹介してください
機能の概要や、使い方等の説明があれば、これ幸いです
皆さんが使っている、または薦めたいエクステンションを紹介してください
機能の概要や、使い方等の説明があれば、これ幸いです
とりあえずextensionを探すにはこちら
2011-03-31現在では、423個ほどあるみたいです
ページの右側にはリリース順、評価順、コメントが多い順、DLが多い順などに並び変えることができ
カテゴリで自分が求めているものを絞り、選ぶことも可能です
自分はまだextensionを2つしか試していないですが、「yii-user」の紹介を少し
ユーザ登録およびユーザアカウントの管理をする拡張で、機能として
ユーザ名、またはメールアドレスでのログイン
ユーザ登録
アクティベーションアカウント (確認メール, 管理者かどうか)
パスワードの再設定 (ユーザのメールに回復キーを送信)
ユーザーのプロフィールページ
ユーザ管理
プロフィールフィールドの管理
プロフィールウィジェットの表示、編集およびデータの保存
日付ウィジェット ( jQueryUI datepicker )
ファイルアップロードウィジェット
プロフィール関係のウィジェット
API
などがあります ( 日本語訳間違っている箇所あれば報告お願いします )
データベースには
tbl_profiles
tbl_profiles_fields
tbl_users
の3つを追加します
tbl_profiles_fieldsは、ユーザのプロフィールに関することを細かく設定するテーブルです
YiiのModelsのrules()内の設定とよく似ていて
typeは何か、lengthのmaxはminは、requiredにするか、エラーメッセージの内容はどうするか、など
その他、プロフィールの順番、プロフィール公開のレベルなどもここで設定しているようです
tbl_profiles, tbl_usersは定番のカラムが入っています
また、全体の設定は、modules/user/UserModule.phpから行えます
( ここから個人的な設定にやや傾きますので、興味のある方のみ読んでもらえたら幸いです )
( ※以下は、わかりにくかったため、2010-03-31に修正しています )
次のリストは日本語翻訳に関すること、その他注意事項です
[list=1]
[*]messagesファイルにjaファイルを作成し日本語化する
[*]controllers/RecoveryController.php || UserModule::tの2箇所をmessages/ja/user.phpに追加し日本語化
You have requested the password recovery site {site_name}.
You have requested the password recovery site {site_name}. To receive a new password, go to {activation_url}.
[*]データベースのtbl_profiles_fieldsのtitleカラムの「Birthday」を「成年月日」に変更
[*]models/UserLogin.php || authenticate()修正 || http://www.yiiframework.com/extension/yii-user/#c2414
[*]プロフィールフィールド管理時にはtableに対するcreate, alter, drop権限が必要
[/list]
[color="#8B0000"]1.について[/color]
modules/user/messages/にjaファイルが用意されていないので
新しくjaファイルを作成し、日本語化していきます
( yii-userがまたバージョンアップされると、そのうちjaファイルもできるかと思います )
[color="#8B0000"]4.について[/color]
models/UserLogin.phpのauthenticate()修正に関しては
初期設定ではログイン時に
「ユーザ名、またはメールアドレス」と「パスワード」の2つでログイン処理をしますが
「ユーザ名、またはメールアドレス」を間違えると「ユーザ名、またはメールドレスが間違っています」
「パスワード」を間違えると「パスワードが間違っています」と表示されるので、セキュリティを考慮しての処置になります
また、その際に追加、変更する「ユーザ名、またはパスワードが間違っています」、「メールアドレス、またはパスワードが間違っています」の日本語メッセージをmodules/user/messages/jaに加えます
[color="#8B0000"]※追加[/color]
サンプルとして日本語ファイル置いておきます 1421
modules/user/messages/にjaディレクトリを作成して、そこへ設置してみてください
UWerlBelongsTo.phpはそれぞれで設置してください
yiidebugtb
プロジェクト開発段階で便利な拡張です。
ページの上部にあるシンプルで小さなツールバーを使用して
ベンチマーク、クエリログ、PHPの環境、アプリケーションに関する情報を得るのに役立ちます
設置が比較的簡単なので、試してみてください
ついでに動くまでのノウハウを書いて頂ければ幸いです。お勧めに従い設置してみましたが、
{{users}}でエラーとなる
これを直しても
The table "tbl_users" for active record class "User" cannot be found in the database.
というエラーが出る
ということですんなりは動きませんでした。モジュールが見るデータベースはmodules/user/dataの下に置くのでしょうか?
一応の確認ですが、yii-userをDLするとトップディレクトリ名がmodulesですが、
これをprotected/extensions/に設置するのではなく、protected/に設置します
あと、protected/config/main.php内に「tablePrefix」の追加をします
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=sample',
'emulatePrepare' => true,
'tablePrefix' => 'tbl_', // これを追加してみて下さい
'username' => 'testuser',
'password' => 'testpass',
'charset' => 'utf8',
),
また、ユーザの新規登録などをlocalhostで行う場合は
modules/UserModule.php内を変更する必要があります
public $sendActivationMail=false; // アクティベーションメールを送らないようにする
public $activeAfterRegister=true; // ユーザの新規登録後はstatusを自動的に1にする
この2つは2つで1つの役割みたいなので
一方をfalseにすると、もう一方をtrueにしないといけないと思います (逆も同じ)
statusは-1がBanned(禁止)、0がNot active(無効)、1がActive(有効)です。
初期設定のままだと
[list=1]
[*]ユーザの新規登録を行う
[*]メール送信
[*]そのメール内のリンクをクリックする
[*]ユーザがActiveになる
[*]ログインできる
[/list]
という流れですが、それを
[list=1]
[*]ユーザの新規登録を行う
[*]自動的にActiveになる
[*]ログインできる
[/list]
という流れに、開発段階ではできるようになっているみたいです
これを直さず、そのままにしてもう一度試してみてください
あと、sqliteでテストされていますか?自分はMySQLでテストしています
はい、これはOKです。
これがありませんでした。入れてトライしましたが、元に戻したところ以下のエラーが出ます。
The table "{{users}}" for active record class "User" cannot be found in the database.
他のユーザからのコメントでは直すように書かれてありました。またSQLiteでテストしています。
yii-userをsqliteで試してみました ( 環境はWindowsXPのXAMPP )。以下順序です
[list=1]
[*]yiic webappでアプリケーション作成
[*]modulesディレクトリをprotected/に置く
[*]protected/config/main.phpを編集
[*]modules/user/data/schema.sqlite.sqlの中身をコピーし、実行
[*]protected/views/layouts/main.phpにyii-user用のコードを挿入
[/list]
3.の詳細
<?php
return array(
'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.user.models.*', // 追加
'application.modules.user.components.*', // 追加
),
'modules'=>array(
'user',
),
'components'=>array(
'user'=>array(
'allowAutoLogin'=>true,
'loginUrl' => array('/user/login'), // 追加
),
'db'=>array(
'tablePrefix' => 'tbl_', // 追加
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/sample.db',
),
),
);
4.の詳細
>sqlite3.exe D:\xampp\htdocs\sample\protected\data\sample.db
> // protected/modules/user/data/schema.sqlite.sqlの中身をコピーし、貼り付け
5.の詳細
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Contact', 'url'=>array('/site/contact')),
array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'visible'=>Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest),
),
)); ?>
この流れで問題なくいけました
もしかすると、Yiiのバージョンの問題かもしれません ( yiii-userはYii 1.1以上で動作 )
image - 画像のサムネイルなんかを簡単に作れるextension。使い方もとてもシンプル!便利!
MongoDBに書き出すログのエクステンションを作ってみました。
ttp://aoyagikouhei.blog8.fc2.com/blog-entry-174.html
最初の投稿なのでリンクが含められず、先頭のhを抜かしています。
リンクは ←このマークの隣のアイコンから貼れます
また、こちらの「Create extension」から
自作したエクステンションをYiiユーザに向けて公開することもできます
話は変わりますが
最近公開されたyii-debug-toolbarがとても使いやすいです
protected/extensions下に設置し、以下のコードをconfig/main.phpに足すだけです。是非!
'db'=>array(
...
'enableProfiling'=>true,
'enableParamLogging'=>true,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute',
),
),
),
リンクボタンを試したんですが、最初の投稿のため使えないそうです。スパム対策か何かなんでしょう。
同様の理由でエクステンションの公開も制限されています。
しばらく、フォーラムに書き込んで修行しろみたいなこと言われました。
スパム対策みたいです Guidelines for posting this forum
「このフォーラムのスパム活動を減らすために、以下の制限が適用されることに注意してください」とのことです
新しくアカウントを登録した場合、最初の投稿まで10分待たないといけない
新しくアカウントを登録した場合、12時間の間に、最大2件までしか投稿ができない
投稿が3件未満のアカウントは、他のメンバーのプロフィールページに、コメントすることはできない
新しい記事を作成する際に、投稿が3件未満のアカウントは、スパムフィルタのチェック対象となる
[list]
スパム用語が含まれている場合、新しい投稿を拒否される
外部リンクが含まれている場合、新しいポストを拒否される
[/list]
1日1件投稿して、3日で条件満たされる感じですかね?
少し前まではなかったと思いますが、より健全なフォーラムになることはありがたいです
セッションの情報をMongoDBに保存するエクステンションを作成しました。
Yiiフレームワーク用MongoDBセッション
最近使ってよかったものです
dbprofiler http://www.yiiframework.com/extension/dbprofiler/
bootstrap http://www.yiiframework.com/extension/bootstrap/
自分のブログに簡単なやり方も載っけておきました。興味がある方は是非どうぞ
Yii dbprofilerを使ってみた http://livejamdb.blogspot.com/2011/09/yii-dbprofiler.html
Yii bootstrapを使ってみた http://livejamdb.blogspot.com/2011/09/yii-bootstrap.html