Help us understand the problem. What is going on with this article?

CakePHPで会員制サイト構築のプラグイン`CakeDC/users`を試す

More than 5 years have passed since last update.

こちらの
CakeDC Users Plugin
を試します。
間違っているかもしれませんが。。

Docs/Home.mdをみて進めます。

Requirements

  • CakeDC Utils plugin (Optional but recommended)
  • CakeDC Search plugin (Optional but recommended)

と記載されているpluginは一旦保留としておきます。
(あとで必要となった際に導入することにします)

Installation

最初にドキュメントのInstallationに合わせてインストールします。

To install the plugin, place the files in a directory labelled "Users/" in your "app/Plugin/" directory.

と記載がありますので、
もし、CakePHPプロジェクトをgitで管理しているならば
Pluginをgit submoduleとするのがよいでしょう。

git submodule add git@github.com:CakeDC/users.git app/Plugin/Users

または、

git clone https://github.com/CakeDC/users.git app/Plugin/Users

でインストールします。

Configuration

次にConfigurationです。

Email Templates

/app/Plugin/Users/View/Emails/text
にtemplateがあるので、それを以下にコピーして編集します。
/app/View/Plugin/Users/Emails/text

今のところは編集が要らないので、コピーもしません。

Disable Slugs

Utilsプラグインを入れていないため、保留。

Email configuration

メール送信関連の設定です。
まず、/app/Config/email.php.sampleemail.phpにリネームします。
そして、/app/Config/bootstrap.php

bootstrap.php
Configure::write('Users.emailConfig', 'default');

を追記します。
defaultの場合は、CakePHPでメールを送信します。デフォルトではローカルサーバのMTAから送信することになるでしょう。
smtpとすれば、/app/Config/email.php$smtpを参照しますので、SMTPサーバの設定を指定する必要があります。

App.defaultEmailは任意のメールアドレスを設定します。

bootstrap.php
Configure::write('App.defaultEmail','noreply@example.com');

Roles Management

権限関連の設定です。
デフォルトを置き換えれるということのようですので、このままにしていきます。

Enabling / Disabling Registration

ユーザ登録を使えるようにするかどうかなので、デフォルトのまま有効とするため、とりあえずはコメントアウトにして追記します。

/app/Config/bootstrap.php
// Disables the registration
// Configure::write('Users.allowRegistration', false);

Configuration options

ここでの設定は、一旦デフォルトのままでよいので、何もしない。

Users.disableDefaultAuth

デフォルトのユーザ認証を使用しないかどうか。
ここでは、デフォルトのままとするので、設定しないかfalseと設定する。

Users.allowRegistration

上記の通り、ユーザによるユーザ登録を許可するか否かなので、設定しないまたはtrueとする。

Routing

Routing

/app/Config/bootstrap.phpに、Usersプラグインを読み込むために以下を追記します。

bootstrap.php
CakePlugin::load('Users', array(
    'routes' => true
));

Changing the routes

こちらは変更なしで。

Localize

日本語にしたいため、

$ cp -rp /app/Locale/eng /app/Locale/jpn
$ cp -p /app/Plugin/Users/Locale/users.pot /app/Locale/jpn/LC_MESSAGES/

として、/app/Locale/jpn/LC_MESSAGES/users.poを編集します。msgstrに対応する日本語を記入して保存します。
ここではとりあえずのサンプルとして一部を書き込んでおきます。

データベース準備

ユーザ管理のためのデータベースを構築します。
CakeDC Users PluginにはSchemaが用意されています。

$ app/Console/cake schema create --name Users -p Users

動かしてみる

ひと通りの設定が出来たはずなので、実際に動かしてみます。

先に日本語化しているため、日本語で表示されるはずです。

Viewの変更

/app/Plugin/Users/View/Users/add.ctp

/app/View/Plugin/Users/Users/add.ctpへコピーして編集します。

編集の例として、”利用規約”の部分が、日本語化すると、
"同意します。利用規約"
みたいになって違和感があったため

add.ctp
31| 'label' => sprintf(__d('users', 'I have read and agreed to %s'), $tosLink )));

と31行目を変更して、
/app/Locale/jpn/LC_MESSAGES/users.po

users.po
msgid "I have read and agreed to %s"
msgstr "%sに同意します。"

としてみます。

にアクセスすると、利用規約のところが、
"利用規約に同意します”
的になります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした