2016/03/31

今更Dropboxをインストール【windows】




というわけで、インストールしました。

窓の杜Dropboxをダウンロードして、実行。

しばらくしたらログイン画面が出てくるので、ユーザ名とパスワードを入力してログイン。

ユーザの下にDropboxができました。

ちゃんちゃん。

ファイルに緑チェックがついてる。

右クリックしたら以前のバージョンも見れるし。

まるでsvnみたい。

ま、そんなもんか。


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とかで発言できないといい情報をお持ち帰りは難しいかも、と思いました。

んまぁ楽しかったです。