edo1z blog

プログラミングなどに関するブログです

2013-01-01から1年間の記事一覧

管理画面のメニューを自動で作成する

管理者の権限は色々ありますし、最終的にはメソッド単位で細かく管理できないといけないと思います。 あと、単にそのメソッドを実行できるか否かだけではなく、どのデータを扱うことができるかまで管理できる必要があります。 こういうのはどうもACLというら…

cakePHP モデルからランダムに取得する

orderに、'rand()'とやる public function get_banners($num = 3){ $options = array( 'limit' => $num, 'order' => 'rand()' ); return $this->find('all', $options); }

cakePHPのプロジェクトを簡単に作成するようにする

cakePHPをやってる人なら少なからずやってると思いますが、僕はやってません。 今考えて仕組みをつくりたいと思います。 今つくっているBakeを使いたいので、BakeのプロジェクトをGithubのリポジトリに入れておいて、それをクローンしてデータベースをつくっ…

Bake お気に入り登録機能

お気に入りの登録機能を実装するときにどうしようかなと思っております。 単純に考えると、お気に入りを登録する対象を設定しておき、その対象設定に基づき、モデルを作成します。もしテーブルがなければモデル作成の前にテーブル作成してもいいです。 例え…

phpstorm ディレクトリ内のファイルを全文検索

ディレクトリ内で、何らかの文字列が記載されているファイルを再帰的に探す場合、phpstormだと、ディレクトリ上で”find in path”したらできる(ディレクトリ上で右クリックするとでてくる)。

cakePHP2.3 shellで色変える

参考: http://book.cakephp.org/2.0/ja/console-and-shells.html#styling-output $this->stdout->styles('green', array('text' => 'green', 'blink' => false, 'bold' => true, 'underline' => true)); $this->out(__d('cakeconsole', "<green>Greeeen!!!!</green>\n"));

Bake改造 あたまの整理

Bakeを改造しているわけですが、結局何がしたいのか不明瞭なままつくっているとたこ足配線みたいになってきますので、目的をしぼってリファクタリングしていきます。最終的にはWEB上で設定した内容に基づいてぽこっとサイトを生むようなものを想定しておりま…

cakePHP2.3 Bakeの改造

coreのbakeをコピーしてプラグイン化することによりオリジナルbakeを作成します。 bakeに、下記機能を追加していきます。 ・twitter bootstrapを使ったviewに変更する ・多言語化機能を使った効率的な日本語化を可能にする ・管理画面のメニューもDBに応じて…

capistranoでデプロイ時にURLを置換する

下記を追加してとりあえずデプロイ時にURL置換するようにしました。 run "find #{latest_release}/app/View/. -type f |xargs sed -i -e s/\\/hoge\\//\\/hoge2\\/current\\//g"

cakePHP プラグイン内でモデルを使う

プラグインを追加して、プラグインのコントローラーから、プラグインではないモデルにアクセスする方法がよく分からない。 というか、User認証に関するロジックをプラグイン化しつつ、モデルは既存のUserモデルを使おうとするときに、プラグインのユーザ登録…

cakePHP2.3 多言語化

app/Consoleに移動して、下記を起動する ./cake i18n E押したら翻訳ファイルみたいのを作ってくれる。詳細は、ここ。わかりやすい。 /app/Locale/jpn/LC_MESSAGES/default.poに出力したファイルをコピーする。僕の場合は、/app/Locale内にdefault.potという…

githubにpushするとcapistranoと連動して自動デプロイする

githubにはPost-Receive Hooksという機能があり、これはpushされると、登録したurlにpostアクセスし、json形式でpushしたデータの内容を渡してくれる。なので、このgithubからのpostアクセスを受け付けて、pushデータ内容に応じて、capistranoのサーバにアク…

sshで接続してるときに短時間でタイムアウトにならないようにする

sshでサーバに接続してるときに非常にイライラさせられるので、調べた。 参考:ssh 接続をタイムアウトしないようにする 設定は、クライアント側・サーバ側のどちらかのみすればよいとのこと。 とりえあずサーバ側を設定してみる。 vim /etc/ssh/sshd_config…

capistranoのバージョン戻す

capistrano3.0.0以降は結構色々変わるらしく、勉強工数が必要なのと、今まで全く問題なかったのでバージョン戻してみることにした。3.0.1にアップデートしたらエラーだらけになったので。 sudo gem install capistrano -v 2.5.5 sudo gem uninstall -v 3.0.1…

Apache

Apacheの起動 /etc/rc.d/init.d/httpd start Apacheの再起動 apachectl -k graceful Apacheの再起動は、service httpd restartでもできる http://httpd.apache.org/docs/current/ja/stopping.html

YouTube API

cakePHPのviewでYouTubeAPIを初めて使った。divのid="videoDiv"内に動画が自動で再生される。閲覧中断していた動画は中断したところから再生される。閲覧中断ボタンと、閲覧完了ボタンに対応している。といったようなことをした。 start('script')?> <script src="//www.google.com/jsapi" type="text/javascript"></script> <script> var y…

tmuxをmacで使う

tmuxを教えてもらった。 ターミナルが1つのタブで沢山の画面が使えるようになって、しかも沢山の画面全ての状態を保存しておいてくれる。 macにインストールするには、 brew install tmux とやる。 結構インストールに時間かかる。 終わったと思ったらエラ…

Capistranoでssh接続

ssh接続する場合、下記のように設定できる。 # sshでログインするユーザ set :user, "ユーザー" # ssh 公開鍵設定 set :ssh_options, :port=>ポート, :forward_agent=>false, :keys=>"秘密鍵のパス", :passphrase => "パスフレーズ" # コマンド実行時にsudo…

Tailコマンド

超便利なコマンド知った。 tailコマンド cakePHPのerror.logとか毎回開くのめんどくさい。サーバのエラーログも。 tailコマンドは、ファイルの最新状態を監視して、新しいところを指定行数分リアルタイムに表示してくれるコマンド。 tail -n 30 -f error.log…

XserverにcakePHP置くのが難しかった

4時間くらいかかってしまった。 久しぶりにブログ書く。でも細かくかきたくない。 public_htmlの.htaccessの中身がよろしくなかった。 PHPのバージョンは5.4にしているのだが、 AddHandler x-httpd-php5.4 .php .phps これの.4が抜けていて、真っ白状態が続…

cakePHP FileBinderで画像リサイズ

モデルでこうやってやると、画像登録前にresize_image関数を呼出す。resize_image関数には、引数として画像ファイルが渡される。 public $actsAs = array('Filebinder.Bindable' => array( 'beforeAttach'=>'resize_image', ));

PHP 画像の縮小(リサイズ)

public function resize_image($tmp_file){ $w = 96; $h = 96; list($width, $height, $type) = getimagesize($tmp_file); if($width > $w || $height > $h){ //はみ出している if($width >= $height){ $new_width = $w; $x = 0; $new_height = round($h * $…

スマホで電話番号にリンクはる

< a href = " tel:090-xxx-xxxx " >電話してね< /a > これでいいらしい。。知らなかった。あとでやってみる。

twitter bootstrapの吹き出し

参考:http://getbootstrap.com/2.3.2/javascript.html#popovers 静的に吹き出しを使いたい場合は、下記のような感じでやります。 <div class="popover right show" style="position:relative; max-width:100%;"> <div class="arrow"></div> <h3 class="popover-title"> タイトル </h3> <div class="popover-content"> <p> 内容 </p> </div> </div>

経費の分け方

交際接待費とか色々ありますので、確認します。今日中にまとめないといけないので。 ・旅費交通費ー事業に伴う旅費や交通費。 ・接待交際費ー取引先との接待費、贈り物の費用。 ・荷造運賃ー商品などを発送する時にかかる費用。 ・水道光熱費 ・通信費 ・広…

カメラ - 露出・絞り・シャッタースピード

カメラにはisoとかFとかがあります。isoというのは露出のことらしい。isoが高いと明るくなって低いと暗くなります。 Fはしぼりで、この数値をあげるとしぼられて光が入ってこなくなる。 あとしぼると焦点があたるところが深くなるので、ぼけにくくなります。…

cakePHP2.3 Jsonレスポンス

shops/hoge.jsonをpostで呼出して、結果をjsonで貰おうとするようなことは結構やってるんだけど、忘れてたのでメモ。 (1)ルーターphpに、Router::parseExtensions('json');を追記する。これによって、json拡張子に対応するようになる。 (2)shopsコント…

FileBinderのエラー

FileBinderのエラーが出たからメモ FileBinderでcakePHPのWEB_ROOT下に保存しようとしたらエラーになった。 ディレクトリの所有者をnobodyにしたらエラーがでなくなった。

git

subversionのような省略ワードはエイリアス設定すれば自分でつくれるようだ。 エイリアス設定 git config --global alias.st status ※--globalは個別リポジトリに限定しない全体的な設定 ※configの場所は、.git/configにある。テキストファイル。 リポジトリ…

cakePHP2.3 TwitterKit Plugin

https://github.com/elstc/twitter_kit/tree/2.0 database.phpにコンシューマキーなどの設定を書く public $twitter = array( 'datasource' => 'TwitterKit.TwitterSource', 'oauth_consumer_key' => 'CAIFwaaaaaaaaaa80qZBMQ', 'oauth_consumer_secret' => …