【cakePHP2】Controllerの変数をViewに引き渡す

メモ ControllerからView(表示用テンプレート)にデータを渡すには、Controller::set(string $var, mixed $value)関数を使用。 データはどこに格納されたのか調べてみると$this->viewVarsに連想配列で格納されていた。 Viewでフォームヘルパーを使用する場合は、Controllerでデータベースより取得した配列データを$this->Dataに設定して使用する。       スクリプト 課題       まとめ       関連記事       参考  

Continue reading …

【CakePhp】CSRF対策メモ

概要       環境       記事 1.コンポーネントにSecurityを追加する。 class AppController extends Controller{ public $components = array{ ‘Security’ } } ーーーーーーーーーーーーーーーーーーーーーーーーー補足 Securityをコンポーネントに追加すると、適用される機能 Restricting which HTTP methods your application accepts. CSRF protection. Form tampering protection Requiring that SSL be used. Limiting cross controller communication. などが適用されるようです。 あまりないと思いますが、csrfの機能を使わない場合は コントローラーで $this->Security->csrfCheck = false;[…続きを読む]

Continue reading …

【CakePHP2】処理を共通化(モジュール化)する

はじめに CakePHPにはあらかじめ用意された共通化の仕組みがあります。ごりごりプログラムを書いていると後になって共通化しておけばよかったといったことがよくあります。 うまく処理をモジュール化すると生産性が格段に向上します。       Controllerのモジュール化 コントローラのコンポーネントフォルダに /app/Controller/Componentディレクトリに共通したいコードを作成します     Modelのモジュール化 AppModelを作ってそれを継承します。     View(テンプレート)のモジュール化 /app/Controller/Elementsフォルダにテンプレートファイルを作成します。 メインのテンプレートファイルから次のコードでElementsフォルダのテンプレートファイルを呼び出す。     View(コード)のモジュール化 /app/View/Helperディレクトリに共通したいコードを作成します これでView(テンプレートファイル)で使用できるようになります   コントローラのコンポーネントに作成したモジュールをViewで利用したい場合は、PHPのマジックメソッドでヘルパーにない場合はコントローラのコンポーネントを見にいくようにすると便利です。 Controller、Model、Viewに共通する処理のモジュール /app/Vendorディレクトリに共通したいコードを作成します Controller,task、Model、ViewHelperで呼び出すことができます。

Continue reading …

【mysql】データベースがダウンした時の対処メモ

概要 データベースMYSQLが頻繁に落ちるのでその原因を調査、対策しました。     環境 IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB   現象   データベースが突然ダウンした。コマンドプロンプトでmysqlを再起動しても、立ち上がらない。 データベースがダウンした時のログ(mysql.log)は次の通り。 170903 12:36:22 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 170903 12:36:23 mysqld_safe WSREP: Running position recovery with –log_error=’/var/lib/mysql/wsrep_recovery.O1oBoH’ –pid -file=’/var/lib/mysql/kusanagi71-recover.pid’ 170903 12:36:23 [Note] /usr/sbin/mysqld (mysqld 10.0.29-MariaDB-wsrep) starting as[…続きを読む]

Continue reading …

【jQuery】スティッキーメニュー実装してみたメモ

top 技術 アグリ IoTデータ ← 左のscreentop情報が800を超えたらpositionをfixedにする stickey.kit(jQueryプラグイン)で画面上部で文字を固定してみた         概要   jQueryでスティッキーヘッダを実装しました       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用 jQueryプラグイン stickey.kit     javascriptで要素のposition属性を操作する     スクロールのタイミングでタグ要素の位置を判断してcssのposition属性を変更する。   $(window).scroll(function() { $(“#scrcnt”).text($(this).scrollTop()); if ($(this).scrollTop() > 850){ //表示する位置を固定する $(‘#menu ul’).css({“background”:”none”,”position”:”fixed”,”top”:”30px”[…続きを読む]

Continue reading …

【json】phpで作成した日本語を含むjsonデータをpythonで参照するメモ

        概要   phpで作成したjsonデータをpythonで参照しようとしたら日本語エンコードではまってしまったのでメモ       環境         jsonエンコード(php)     php配列変数をjsonデータ文字列に変換します。     オプション   第二引数にオプションを設定できる     見やすくなるように整形する   JSON_PRETTY_PRINT   日本語をエスケープコードにしない   JSON_UNESCAPED_UNICODE   スラッシュはエスケープしない   JSON_UNESCAPED_SLASHES             jsonデコード(python)     jsonデータ文字列をpythonオブジェクトに変換する。第二引数に文字エンコーディングを指定できる。      […続きを読む]

Continue reading …

【WordPress】phpスクリプトを記述できるショートコードを作ってみた

      概要   投稿ページや固定ページでphpスクリプトを直接書くことができるショートコードを作ってみました。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用     ショートコードとは   ショートコードとは投稿ページや固定ページでテキストを装飾するための機能です。HTMLのタグと同様の使い方でさまざまな動作を短いコードで表現することができます。 ショートコードは一般的に[xxxxxx]というように各括弧で囲まれた記述の仕方をします。WordPressを触っている人なら見おぼえがあると思います。     このショートコードには、自己完結型ショートコードと囲み型ショートコードの二つの使い方があります。   自己完結型コードとは、[xxxxxx]で完結します。   [garally]   一方、囲み型ショートコードは、開始タグと終了タグがあり、[xxxxxx]コンテンツ[/xxxxxx]のようにコンテンツをタグで囲みます。   [strong]コンテンツ[/strong]   どちらも属性を設定することが可能です。属性を設定する場合は、タグの中に[xxxxxx a=111 b=222]のように記述します。   WordPressのショートコードAPIは自己完結型ショートコードと囲み型ショートコードの両方をサポートしています。 詳しい説明は WordPress Codex ショートコードAPI[…続きを読む]

Continue reading …

【WordPress】jQueryプラグインFlotを使って投稿ページにグラフを表示してみた

        概要   Flotは、とても豊富な機能を備えたjQueryグラフ描画プラグインです。WordPressに読み込めば簡単にグラフを描画できます。WordPressにFlotプラグインを読み込み、固定ページ内に折れ線グラフを表示してみました。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用 jQueryプラグイン FLOT ver0.83     jQueryプラグインの読み込み     wp_enqueue_scriptsアクションフックのタイミングで、wp_enqueue_script関数でスクリプトの登録を行います。   function my_deregister_script() { if (!is_admin()) { // グラフ描画jQueryを読み込む。 wp_enqueue_script(‘flot’,’https://cdn.jsdelivr.net/jquery.flot/0.8.3/jquery.flot.js’,array(‘jquery’),’0.8.3′); wp_enqueue_script(‘flot.time’,’https://cdn.jsdelivr.net/jquery.flot/0.8.3/jquery.flot.time.min.js’,array(‘jquery’),’0.8.3′); wp_enqueue_script(‘flot.selection’,’https://cdn.jsdelivr.net/jquery.flot/0.8.3/jquery.flot.selection.min.js’,array(‘jquery’),’0.8.3′); } } add_action(‘wp_enqueue_scripts’,’my_deregister_script’,100);    […続きを読む]

Continue reading …

【WordPress】WPに同梱されているjQueryを投稿ページで使用する

      概要   ウィキペディアによるとJqueryは次のように説明されています。     一言でいうとJqueryとは複雑なJavascriptを記述することなく、簡単なコードでJavascriptを実行できる、ライブラリってことですね。WordPressでは管理画面などでjQueryが使用されていますので、わざわざjQueryを読み込むためのコードを追加する必要はありません。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用       WP同梱のjQueryを使用する方法   WordPressではjQueryのほかにもprototype.jsなどのJavaScript ライブラリが使用されているため、WordpressのjQueryには他のライブラリと競合しないように.noConflict() コマンドが追加されています。   そのため、jQueryで慣用的に使用されている$関数が使用できなくなっています。     一番簡単な解決策は、「$」を「jQuery」にすべて変えてしまうことです。   しかし、過去のjQueryコードを使用したい場合や$関数をそのまま使用したいといった場合は、jQuery関数でカプセル化する方法があります。   jQuery(document).ready( function( $ ) {   //ここに$関数を使用したjQueryコードを書く });  […続きを読む]

Continue reading …

【javascript】canvasでシンプルなアナログ時計を描いてみた

    概要   html5のcanvasでアナログ時計の簡単なデモプログラムを書いてみました。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用       WordPressでjavascriptを動かす方法     Javascriptのプログラムをどこにどうやって設置するか方法はいろいろあると思いますが、ここでは一番簡単な方法でjavascriptを動かしてみます。   新規に記事または個別ページを作成して、HTMLが記述できる「テキスト」で以下のコードを記述します。   <div> <script type=”text/javascript”> //ここにjavascriptのコードを記述する </script> </div>   javascriptは上記コメント箇所にコードを記述します。 以上です   ※他にも、プラグインを使用したり、カスタムフィールドを使用したり、さまざまな方法があります。       スクリプト   アナログ時計の描画は、HTML5のCanvas APIを利用して、素のjavascriptで書いています。[…続きを読む]

Continue reading …

【WordPress】WP-CLIを使用してスマートにWordPressデータを扱う

      概要   以前このサイトでWordPressのデータベースを直接のぞいて不要なデータを削除したり別のサーバーに必要なデータを転送したりしたときのメモを残していました。 WordPressのアーキテクチャを理解するのによい勉強になったのですが、WPのデータを扱うのにいちいちSQLを書くのもあれなので、なにかいいツールはないかといろいろさがしていましたが、灯台下暗しでした。 WP-CLIはWordPressをコマンドラインで管理するためのツールです。これでやりたいことが簡単にできそうです。       環境   IDCFクラウド環境 サーバー  (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用     ローカル環境にインストール ローカルにWP-CLIがインストールされていない場合は、次の方法でインストールします。   WP-CLIファイルをダウンロードします curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar パスを通します php wp-cli.phar –info chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp     WP-CLIコマンド   GUIで行うことは基本的にほぼ網羅しているみたいです。データベースを直接いじらないとできなかったこともWP-CLIでは簡単にできるようですね。  […続きを読む]

Continue reading …