Blogブログ

Archives

JS関数の存在チェック

メモ代わりに。 jsでfunction_existsのように関数が定義されているかチェックします。 Javascript if( typeof function_name == ‘function’ ){ … 同じ様に、jQueryのプラグインの場合。 jQueryプラグイン if( [‘plugin_name’] || $.fn[‘plugin_name’] ){ …

MT複製メモ

普段あまりMTは使わないのだけど、先日同サーバ内で複製する必要があったので手順をメモ。 本来MTはウェブサイト・ブログの出力先を変えることでステージング環境もすぐ作れるのですが、このケースでは記事内のデータ置換やテンプレの細々とした修正が必要だったので別にMT管理画面を設けることに。 調べた所、一般的にMTを複製する場合は以下の方法だそうです。 ・バックアップ機能を使う ・「エクスポート」と「インポート」によるブログ記事データの移行 参考:http://www.movabletype.jp/faq/export-blogs.html この場合どちらも、同じバージョンのMTのインストールが必要とのこと。 MTはバージョンごとの互換性はほとんど無いと聞いているので、当然でしょう。 で、ここで一つ疑問。 「ファイル+DBを移して設定ファイルを弄れば、復元出来るんじゃないのか?」 探してみたところ、やはりありました。 参考: http://www.stereo-kitchen.net/20131001/ この場合、想定されるのは以下の手順らしいです。 旧サーバ 1.ファイル一式をローカルにDL 2.dbのダンプ取得 新サーバ 3.ローカルからファイル一式をUL 4.ダンプデータ内のURL,パスを変更 5.設定ファイルmt-config.cgiにて必要箇所を調整 6.ダンプデータのインポート 7.再構築 早速試してみました。 1〜3までは問題なし。 4でちょっと悩みましたが、テンプレートと記事テーブル内のデータは必須だろうから、そこだけ置換します。 今回は先にインポートしたので、sqlを走らせます。 UPDATE `mt_template` SET template_text=REPLACE(template_text, “old_url”, “new_url”) where template_text like “%old_url%” 色々なパスの形が混在してたのですが、そこは試しながらやりました。 5の設定ファイルもシンプルなので悩むところはなし。 ですが6のアップロード後、管理画面へアクセスしたところパーミッションで弾かれてしまいました。 現サーバ内のパーミッションを確認したところ、ファイルアップロードの際に644になってしまったファイル群があったので、755へ変更しました。 そしてウェブサイト、ブログの出力先を変更します。 具体的にはウェブサイトを選択→全般設定から公開パスを変更します。 そして再構築したところ、無事に生成できておりました。 今回は記事やテンプレが多かったので、パス変更のデバッグが大変でした‥   追記 WP4.1にアップデートしたので、Twenty-fifteenに変えてみました。 Twenty-Twelve が好きだったのですが、同じようにブログ向けのさっぱりしたレイアウトでいい感じです。

SSH on Mac

mac でterminalを使ったssh接続の備忘録。 LINUX 1 サーバOSとバージョン確認 cat /etc/`ls /etc -F | grep “release$\|version$”` 2 パスワード認証の接続を許可。 vim /etc/ssh/sshd_config /PasswordAuthentication で検索し、yesに。 これでパスワード接続が可能に ssh再起動。 /etc/init.d/sshd reload 3 .sshディレクトリの作成 ※所有者がssh接続するユーザーである必要があるので、そのユーザでなければ、ログインしなおす mkdir ~/.ssh chmod 700 ~/.ssh MAC OS X 4 ターミナルでRSA鍵作成 ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/yyyyyyy/.ssh/id_rsa): (リターンを入力) Enter passphrase (empty for no passphrase): (リターンを入力) […]

wordpressのメタボックスのラベルを変更

クライアントによっては管理画面のそれぞれのタイトルを変える必要があることもあります。 今回は、投稿の右側にある、「フォーマット」というラベルを変えたい場合に調べたのでシェア。 グローバル変数である$wp_meta_boxesに、各メタボックスのタイトルや名前が入っているのでこれを使って、 function change_format_meta_box_label() { global $wp_meta_boxes; unset( $wp_meta_boxes[‘post’][‘side’][‘core’][‘formatdiv’] ); add_meta_box( ‘formatdiv’, ‘_(“Hogehoge!!!”)’, ‘post_format_meta_box’, ‘post’, ‘side’, ‘low’ ); } add_action( ‘add_meta_boxes’, ‘change_format_meta_box_label’, 0 ); こんな感じでOKです。 ちなみに、$wp_meta_boxesではメタボックスで存在する ・公開 ・カテゴリー ・タグ ・アイキャッチ画像 ・抜粋 ・スラッグ ・作成者 なんかも変えれます。

phpファイル群をajax限定のアクセスにする。

Youtube, vimeoのAPIにアクセスしてサムネイルを取ってくるツールを作った。 http://tools.shnr.net/tg/ このツールを作る中でやりたかった事が、phpファイルを格納しているlibディレクトリは、基本アクセス不可で、ajaxでアクセス必要なファイルだけを許可するという事。 ディレクトリ配下をアクセス不可にするのはhtaccessにこう記載するだけで簡単。 Order Deny,Allow Deny from all ajaxでアクセスさせる場合、php側にisAjax関数を追加した。 参考: http://davidwalsh.name/detect-ajax function isAjax(){ if(!empty($_SERVER[‘HTTP_X_REQUESTED_WITH’]) && strtolower($_SERVER[‘HTTP_X_REQUESTED_WITH’]) == ‘xmlhttprequest’) { return true; } return false; } ajaxでアクセスさせるファイルにはこの判定を加えれば、不要なファイルアクセスが避けれそうだ。

備忘録:phpmyadminで大きめデータのアップロード

xamppのphpmyadminで、up_load_filesizeが変更できなかったので探したところ、 ローカルからアップロードする手法を知ったのでメモ。 1.xampp/phpmyadmin/config.inc.phpに以下を追記 $cfg[‘UploadDir’] = './upload'; 同ディレクトリ内に、config.sample.incみたいな名前のファイルがあるので、記述方法は参考になる。 ここでそのた設定も変更できそう。   2.上記で記述したディレクトリを作成、その後アップロードしたいデータを放り込む。 3.するとimport画面で、ファイル選択が出来る画面が出てくる。   自分の場合はこれで上手く行きました。  

EC CUBEのSmartyのキャッシュ

EC CUBEのSmartyのテンプレートキャッシュをオフにする方法。 ※2.12.2 data/module/Smarty/libs/Smarty.class.php この150行目あたり、$force_compileがデフォルトでfalseになっているが、 var $force_compile   =  true; にする。   こうするとページアクセスの度にキャッシュが生成されるらしい。 開発中はFTPでテンプレファイルをアップする場合もあるので、これが便利。 運用時は必ずfalseにするように。  

WordPress RSSフィードまとめ

取得URL http://example.com/?feed=rss2 http://example.com/feed/ http://example.com/feed/rss/ カテゴリー指定も可能。 http://domain.tld/category/categoryname/feed/ (Permalink format) http://domain.tld/wp-rss2.php?cat=33 (Default format)   RSSのURLでパースエラーが出た場合 サーバーによってはこのようなエラーが出る場合があるようだ。 This page contains the following errors: error on line 2 at column 6: XML declaration allowed only at the start of the document …. 原因は未検証だが、下の方法で解決出来た。 こちらを参考に、   以下のファイルの先頭に、 wp-includes/feed-rss2.php wp-includes/feed-rss2-comments.php ob_end_clean(); を追加する。 RSS feed へのサムネイル追加方法 まずはじめに見つけたのがこちら。 if(!function_exists('rss_post_thumbnail')): function rss_post_thumbnail($content) { global […]

Backbone.jsでAPIに渡すときのメモ。

Backbone.jsでAPIに渡すときのメモ。 Backbone.sync とは Backbone.sync とはBackboneがモデルからデータを取得したり保存したりする際に使う関数。 デフォルトでは、jQUery.ajaxを使ってRESTful JSON リクエストを送信し、jqXHRを受け取る。 また、オーバーライドも可能。 —————————- RESTful とは ウェブサービスのひとつの形 ・明示的に HTTP メソッドを使う ・ステートレスにする ・ディレクトリー構造に似た URI を公開する ・XML、JSON (JavaScript Object Notation) のいずれか、またはその両方を転送する jqXHR とは XMLHttpRequestオブジェクトを一般化し、クロスブラウザ対応を行ったjQuery独自のオブジェクト。 —————————- sync()の基本形 sync(method, model, [options]) method – the CRUD method ("create", "read", "update", or "delete") model – the model to be saved (or collection to be read) […]

Spread Sheet でGoogle Apps Script

Google Document の Spread Sheetで使える、Google Apps Scriptを使ってみた。 https://developers.google.com/apps-script/?hl=ja Google Apps Scriptは、その気になればスプレッドシートだけでなく、Gmail、Googleカレンダー、Googleマップ等、Googleが提供するサービスを処理することが出来る使いこなしたら超便利なスクリプトらしい。 先ずは手始めに、スプレッドシートに独自関数の追加というのをやってみる。 エクセルのマクロはあまり使ったことが無いんだけど、最近ではプロジェクト管理にスプレッドシートを使うことも少なくない。 そんな時にあると便利なのが、更新日時・時刻の自動記入。 サンプルを作ってみた。 https://docs.google.com/spreadsheets/d/1kj6K_lvbfoq_MwgvR0doE36IzoK16t8YtwVJuTce8T4/edit?usp=sharing ソースは以下。 これを、tools -> edit script で開くエディタで編集する。 簡単に解説すると、2,3列目の編集したらテーブルの最後の列に日付が出るよ、という単純なもの。 function onEdit(event){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var actSht = event.source.getActiveSheet(); var actRng = event.source.getActiveRange(); var activeCell = actSht.getActiveCell(); var row = activeCell.getRow(); var column = activeCell.getColumn(); if(row < 2) return; //ヘッダーの行ならreturn var […]