2015/11/20

そういえば...



退職しました。

ただいま給食・・・求職中。

2015/07/10

【baserCMS】メニューでタイトルを入力していたらSQLエラー


バージョンはbaserCMS 3.0.7

メニューでタイトルにごちゃごちゃと長い名前を入力すると、

SQLエラー

basercms/lib/Model/PageCategory.phpをappに入れて
108lineにある

'title' => array(
array('rule' => array('minLength', 1),
'message' => 'ページカテゴリタイトルを入力してください。',
'required' => true),
array('rule' => array('maxLength', 255),
'message' => 'ページカテゴリタイトルは255文字以内で入力してください。')
)


'title' => array(
array('rule' => array('minLength', 1),
'message' => 'ページカテゴリタイトルを入力してください。',
'required' => true),
array('rule' => array('maxLength', 55),
'message' => 'ページカテゴリタイトルは55文字以内で入力してください。')
)

に修正。

xx_contentsテーブルにもこのタイトルを保存するんだけど、
こっちは55文字までしか受け付けてない。

それだけだった。


2015/07/06

【Cakephp2】バリデーション 重複チェック


ユーザ情報を登録する際に
既に登録されているメールアドレスについては登録させたくない。

独自にバリデーション関数を作成し、
エラー表示をしようと思ったがつまずいた。

validate関数には

   public $validate = array(
      'email' => array(
         'notEmpty' => array(
            'rule' => 'notEmpty', 
            'message' => '必須項目です。'
         ),
         'custom' => array(
            'rule' => '_compareEmail',
            'message' => '既に登録されているメールアドレスです。'
         );


protected function _compareEmail($data) {

~~~~割愛~~~~
  // 一致した
  return false;
}


的なのを使用としたら

Warning (2): preg_match()

ってさ...

結局のところ独自関数なんて作成せず

         'custom' => array(
            'rule' => 'isUnique',
            'message' => '既に登録されているメールアドレスです。'
         );

って書けばことは済んだ。



2015/06/01

システム管理者以外のユーザ情報を取得する


CakePHPも3ヶ月目になりました。
まだまだ、わからなくて頭を抱えています。

今回はbaserCMS3.xで
システム管理者(User)以外のデータ取得を勝手に自作したお話。
(コラッ)

ログイン関連は
lib/Baser
    └Controller/UsersController.php
                  /UserGroupsController.php
    └Lib/BcUtil.php
 あたりかと。

今回やりたかったのは
・画面にシステム管理者以外のユーザのログインIDを使用
・フッターに「○○様がログインしています。」を表示

システム管理者がログインしている場合

echo BcUtil::loginUser();

でひっぱれるのだが、
他の権限のユーザを表示できない。
(もしくはそういう関数に気づいてない?)

というわけで自分で作っちゃいます。

(1)core.phpに自作した認証ユーザをConfig::write

Configure::write('SiteUser', 'Mypage');
                                       ~~~~~~~
                                          ↑は適当に自分の認証設定に合わせる

(2)どこかに関数を自作
  私はひとまず、app/Libにlib/Baser/BcUtil.phpをコピペしてそこに追加しちゃいました。
   ※baserCMSのアップデートを考えてる人は絶対やらないでくだしさい。

/**
 * ログインしているMypageユーザーのデータを取得する
 *
 * @return array
 */
public static function loginSiteUser() {
$Session = new CakeSession();
$sessionKey = BcUtil::getLoginSiteUserSessionKey();
$user = $Session->read('Auth.' . $sessionKey);
if (!$user) {
if (!empty($_SESSION['Auth'][$sessionKey])) {
$user = $_SESSION['Auth'][$sessionKey];
}
}
return $user;
}

/**
 * ログインしているMypageユーザーのセッションキーを取得
 *
 * @return string
 */
public static function getLoginSiteUserSessionKey() {
        $sessionKey = Configure::read('SiteUser');
if (empty($sessionKey)) {
            // core.phpでSiteUserが設定されていない場合は
            // システム管理者の情報を取得・・・
$sessionKey = 'User';
}
return $sessionKey;
}

(3)お好きなコントローラで取得
        $userInfo =  BcUtil::loginSiteUser();
        $userId = $userInfo['id'];

これでログインしているMypageユーザの情報取得に成功しました。
後はコンポーネントにつっこめばいいのかな・・・。

というか、これでいいのかな。
CakePHPのヘルパーだったりコンポーネントだったりグローバル変数だったり
理解して作ってないからなぁ。。。

とりあえずできました。

2015/05/31

baserCMS勉強会Vol.13@福岡に行ってきた


行ってきましたbaserCMS勉強会。
本当は4月の勉強会に行きたかったのですが、
逃してしまったためこれはもうあれだなぁって思ってたのですが。
(あれってなんだろ。。。)

コレね。
とりあえず、前日会社の飲み会ではじけたら素晴らしく寝坊しました。
もうこれはダメだ。遅刻して会場に乗り込む勇気はない。
と思いながらもバタバタ準備をしてなんとか間に合う電車に。

天神について一転、こりゃ余裕ですわ(^。^)y-.。o○と休憩して
いざ会場に・・・はい、迷子になりましたorz
人に尋ねたりうろうろ不審者してたら
なんとか時間内に、というか1番乗りで付きました;;

内容としては、
最初の1時間くらい公式様の発表
(1)キャッシュについて
(2)baserCMSのpagination
   メールプラグイン?お問い合わせプラグイン?の項目表示について
(3)baserCMSのマガジンとかホームページの見方だとか紹介

発表が終わった後は
アンケート記入して、それぞれQAを30分

その後、懇親会でみなさんと名刺交換
私の苦手な名刺交換(どうでもいい)

感想としては、
参加者みんな立ち位置やら関わり方がバラバラで
知りたいこととか、気になることがバラバラに感じました。
公式がマニュアルをWebデザイナー向け、Webプログラマー向けなど分けてるみたいなので、
勉強会もいつかは○○向けでやってくれないかなとかちょっと思った。

だから自分でQAとかで発言できないといい情報をお持ち帰りは難しいかも、と思いました。

んまぁ楽しかったです。

2015/05/29

コントローラ内でヘルパーを使用しようとしたらはまった

今日はCakePHPの話。

なんではまったかっていうと
CakePHPの1.xと2.xは違うから。

2.xだと
$view = new View($this);
が必要。

1.xばっかりネットで見てた・・・。

ココを見て解決しました。


2015/05/28

baserCMSがすごい。


もう一度。

baserCMSがすごい。

最近またWeb始めました。
baserCMSといえばWordPressから移行のブログをよく見かけます。
私も3年前、WordPressの環境構築をしました。
というか、WordPress自体使用していないのですが、
たまーにWordPressのことを人から頼まれたりするのでちょいちょいやってるのですが。
(年に1回あるかないかだけどね。。。)

baserCMSのブログ機能は使用していないので
あまり比較にならないかもしれないけど・・・。

間違っていなければいいけど、
WordPressといえばブログ!!というイメージを持っていますが
baserCMSはホームページの構築ってイメージです。(?)

WordPressの場合、
環境構築すると、その直下にブログができあがってますよね。(。。。ね?)
baserCMSの場合はホームページが出来上がります。
ブログはホームページの中で使える機能みたいなイメージかな。

デフォルトではindexやらcompanyなどのページがデフォルトでついてます。
管理者画面で普通のブログみたいにぽちぽちと入力できる感じです。
なので、どっかでサーバやらなんやらレンタルして、
baserCMSさえ入れればトップページやらなんやらが、
一般のブログの記事の投稿みたいに入れて作成できちゃいます。

じゃあホームページとブログが簡単に構築できるんだねって思うかもしれませんが
更にプラグイン機能というものがついています。
そう、プラグイン機能がいいんです。

公式にプラグイン作成のマニュアルがあるし、
メールプラグインがデフォルトで入っているので
まずはプラグイン作成のマニュアルに沿って作ってみて、
その後、メールプラグインとかを参考にしたりしながら
構築していけばPHP、CakePHP初心者の人でも
ある程度のものができちゃう。

すごいねー。

ただ、つまったときに検索しても
あまり情報がないのが欠点かな・・・。
まぁそれは自分で解決できればいいだけの話なので
あまり重視するところでもないと思う。



2015/03/03

久しぶりに


投稿。

特に書くことないけど。

また、3月半ばから勉強の毎日に戻る・・・はず。