カテゴリー: 技術

wordpress3.2アップグレード時にエラー…顛末記

投稿者:isc_blog

本日、ワードプレスの管理画面にて
「wordpress3.2」が利用できます的なメッセージが表示されていたので

思わず…

ホント何気なく

釣られて…

押してしまいました。

すると、いつもならすぐに
「アップグレード完了」的なメッセージが表示されるのに…今回は全然戻ってこない…

しかもブログを見ようとすると「予定されたメンテナンス…」みたいなメッセージが

いやいや、全然予定してないし

メンテナンス画面を解除をするには
ワードプレスのルートに作られる「..maintenance」ファイルを削除すれば良いのは分かったのですが、消したところでphpのエラーが表示されるだけ…さすがに焦りました。

幸い、データはバックアップとってあったので思い切って手動アップグレードすることにしました。

wordpressのバージョンは
3.1.4から3.2です。

最終的にはバージョン3.2のアーカイブをダウンロードして解凍し
wp-config.php以外を上書きアップロードして(テーマなどオリジナルに手を入れている方は気をつけて下さい)、管理画面にアクセス。

データベースをアップデートします的なボタンを押したら…

やっと復活しましたー

今回はちょっと焦ったなぁ

管理画面は3.1系とちょつぴりデザインが変わりました。
バックアップは大事ですね!

2011年7月5日

ブラウザの種類によってテーマを変えるWordPressプラグイン

投稿者:isc_blog

WordPressのテーマですごい魅力的なのに
HTML5・CSS3満載のため使えない・・・とか
IE6のために最近のテーマが使えないとかいうときに
便利なプラグインがあります。

AVH WordPress PluginsAVH Themed By Browserというプラグインです。

これはインストールしてから
IE6では、このテーマを使用する!
IE8では、このテーマを使用する!

というのが決められて便利です。
当ブログでもIE6/IE8で閲覧するのとその他ブラウザで閲覧するのとでは実はテーマを変更するようにしています。(2011/07/03現在)

設定はすごく簡単です。

テーマを変更したいブラウザを選んで変更対象テーマを設定するだけ。

こんな感じです。

追加する際も「Browser」を選択肢から選んで「Theme」をインストールしているテーマから選んで設定するだけ。

これで最新テーマを入れても悩みナシ!?

2011年7月3日

IETesterでも確認出来るみたいです!~「WordPressがIE6でめちゃくちゃになっていた件」

投稿者:isc_blog

先日投稿した「WordPressがIE6でめちゃくちゃになっていた件」を
IETesterでも確認出来たという記事がありましたのでご紹介!

sakitamax blogより「WP Social Bookmarking Light が IETester でエラー

こちらの著者の方は実際のIE6での確認ではなく、IETesterのIE6モード(っていうのかな)で確認出来たとのことです。
IETester恐るべしですね。

実は他に不具合があって「IE8」だとテーマ的に崩れてしまうため
AVH Themed By Browser っていう
ブラウザの種類によってテーマを変更出来るwordpressプラグインも使用しています。

InternetExplorer はバージョンによって仕様が違いすぎw

関連記事:
WordPressがIE6でめちゃくちゃになっていた件
IEバージョン違いによる動作確認

2011年7月2日

CodeIgniter ちょいメモ

投稿者:isc_blog

よくあるウェブアプリケーションの画面遷移
入力→確認→登録完了
的なもの

確認画面で隠しフィールドで・・・みたいなこと考えるといちいいコーディングが大変なんですが

CodeIgniterのFormヘルパが解決してくれました。

ユーザガイドより抜粋

隠しフィールドの追加
次のように、第3パラメータに連想配列で渡すことで、隠しフィールドを追加できます:

$hidden = array(‘username’ => ‘Joe’, ‘member_id’ => ‘234’);

echo form_open(‘email/send’, ”, $hidden);
上の例は、次のようなフォームを生成します:
[html]
<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send">
<input type="hidden" name="username" value="Joe" />
<input type="hidden" name="member_id" value="234" />
[/html]

ふむふむなるほどなるほど・・・と思いControllerクラスでデータを配列に格納
[php]
・・・
$req_data = array();
// 全部「test」って入力されてます
$req_data[‘title’] = $this->input->post(‘title’);
$req_data[‘name’] = $this->input->post(‘name’);
$req_data[‘memo’] = $this->input->post(‘memo’);

$data[‘req_data’] = $req_data;
・・・
[/php]

ビューでこんな記述
[php]
<?php $attributes = array(‘class’ => ‘form’, ‘id’ => ‘form’); ?>
<?php echo form_open(‘regist’, $attributes, $req_data); ?>
[/php]

すると・・・こんなHTMLになります。
[html]
<form action="http://~your-domain~/index.php/regist" accept-charset="utf-8" name="form" method="post">
<div class="hidden">
<input type="hidden" name="title" value="test" />
<input type="hidden" name="name" value="test" />
<input type="hidden" name="memo" value="test" />
</div>
[/html]
素敵やん!

2011年7月1日

CodeIgniterのすすめ

投稿者:isc_blog

PHPでのシステム開発で最近「CodeIgniter」を利用しています。

以前、一度開発した頃は CodeIgniter1.6から1.7になったあたりだと思うので・・・うーん、それほど前では無いけどいつだか忘れました・・・。

CodeIgniterとはPHPのフレームワークでJava経験者にはとっつきやすいものだと・・・オススメしています。

まず、「CodeIgniterへようこそ」ページを見るとこんな内容が・・・・

CodeIgniter は、こんな人にぴったりです:

省スペースのフレームワークが欲しい人。
圧倒的なパフォーマンスを求める人。
PHP のバージョンや環境設定の違う一般的なホスティング(レンタルサーバ)で幅広く動作するものが欲しい人。
ほとんど設定がいらないフレームワークを希望する人。
コマンドラインを使う必要がないフレームワークを好む人。
決められたコーディングルールに厳格に従う必要がないフレームワークが欲しい人。
PEAR のような大規模な一枚岩のライブラリには興味がない人。
テンプレート言語を習得しなければならないのが嫌な人(必要な場合だけにオプションでテンプレートパーサが利用できるようなものは除く)。
複雑なものを避け、シンプルな解決策を好む人。
わかりやすく詳細なドキュメントが欲しい人。

PHPでの開発経験者にフレームワークなにがいいですか?って聞かれたら最近は迷わずオススメしています。

コードはこんな感じです。 ※CodeIgniter1.7.3 のソースです。

コントローラー部
[php]
class Top extends Controller {

function Top()
{
parent::Controller();
$this->load->library(‘session’);
$this->load->database();
$this->load->helper(array(‘form’, ‘url’));
$this->load->library(‘validation’);
$this->output->set_header(‘Content-Type: text/html; charset=UTF-8’);
}

function index()
{

// データ取得 DBに作成したピックアップニュースビューからデータ取得
$data[‘pickupnews_query’] = $this->db->get(‘view_pickupnews’);
// データ取得 DBに作成した本日の紹介ショップ記事からデータ取得
$data[‘sp_query’] = $this->db->get(‘view_spshops’);
// 画面描画
$this->load->view(‘top’, $data);
・・・・・
[/php]

ビュー部
[php]
・・・・(前略)
<?php foreach($pickupnews_query->result() as $row): ?>
<TR bgcolor="#FFFFFF">
<td>
<a href="spdetail?id=<?=$row->ID?>"><?=$row->title?></a>
</td>
<td align="left">
・<?=$row->SP_NEWS1?><br />
・<?=$row->SP_NEWS2?><br />
<?=n2br($row->SP_NEWS3, "")?>
</td>
</TR>
<?php endforeach; ?>



<?php foreach($sp_query->result() as $row): ?>
<TR bgcolor="#FFFFFF">
<td>
<?=$row->SHOP_NM?>
</td>
<td>
<!– <?=$row->SHOP_CD?> –>
<?=$row->SP_NEWS1?>
</td>
<td>
<?=$row->SP_NEWS2?>
</td>
<td>
<?=$row->SP_NEWS3?>
</td>
<td>
<?=$row->SP_NEWS4?>
</td>
<td>
<?=$row->SP_NEWS5?>
</td>
<td>
<a href="sdetail?scd=<?=$row->SHOP_CD?>">詳細</a>
</td>
</TR>
<?php endforeach; ?>
・・・・
[/php]

これは・・・なに作ったか忘れましたが自作のサイトから引用したものです。
// DBから取得して・・・のコメントあたりがものすごく便利な書き方していると思います。

実際はCREATE VIEW で作ったVIEWをおもむろに取得して表示しているだけなんです。

現行バージョンの2.0.1(日本語バージョン)では
extends Controller  あたりと
コンストラクタの
parent::Controller();
あたりに相違点がありますがほぼ一緒です。

※CodeIgniter2.0以降の例
[php]
class Top extends CI_Controller {

function Top(){
parent::__construct();

//ヘルパの追加
$this->load->helper(‘url’);
$this->load->helper(‘form’);
}

function index()
{
$data[‘title’] = "TOP:タイトル";
$data[‘heading’] = "タイトル";
・・・
[/php]

サクサク出来ちゃいます。
PHPで開発しなきゃ・・・という方はお試し下さい!

PHPフレームワークの「codeIgniter」がスゴすぎる」という記事に書いてあるのですが、CodeIgniterはControllerがあれば動作します。

で?
ってこれがどういうことかと言うと
WebAPIを作るのに重宝するんです。
POSTやGETでパラメータを受け取って・・・処理して・・・画面に表示しないでJSONで出力っていうのにも対応します。

出力クラス::CodeIgniter ユーザガイド 日本語版によると・・・ページを表示する代わりにこんな出力も出来ます!
[php]
$this->output
->set_content_type(‘application/json’)
->set_output(json_encode(array(‘foo’ => ‘bar’)));
[/php]

参考文献:
日本CodeIgniterユーザ会
CodeIgniter ユーザガイド 日本語版 Version 2.0.1
PHPフレームワークの「codeIgniter」がスゴすぎる

2011年6月29日

Google Chrome 拡張機能リリース 第2弾 URLエンコード/デコード ツール

投稿者:isc_blog

本日、またGoogle Chromeの拡張機能をリリースしました。

URLエンコード/デコードを行う際にペロっとやりたくて作ったツールです。
URLエンコード速攻!

是非使ってみてください!

使う機会は限られているかもしれませんが・・・

関連記事:
Google 拡張機能 そして世界公開へ・・・のはずが
Google Chromeの拡張機能を作ってみる!

2011年6月27日

Android ImageViewにWeb上の画像を表示・・・その後

投稿者:isc_blog

先日、Android ImageViewにウェブ上の画像表示という記事の中で書いた
Web上の画像をImageViewで表示する方法でしたが・・・

実は「UrlImageView」なるものを作成している方がいらっしゃいまして、そちらの方が便利!なのでご紹介します。

CaddieDroid
ImageViewをカスタマイズして、Webの画像を表示できるようにしました

上記の記事の中で紹介されているのですがすごく助かりました。

このソースに関しては

AndroidのImageViewで、インターネット上にある画像を表示する独自ImageView。
MIT Licenseで、自由にお使いください。ソースの書き換えて等も自由にしてください。

とのことですのでMIT Licenseを理解の上で利用させていただきましょう!

GitHubで全ソース+サンプルコードをダウンロード出来るそうです。
https://github.com/sharakova/UrlImageView

2011年6月24日

Android開発・・・ScrollViewでつまずいた今日

投稿者:isc_blog

Android開発でScrollViewについて悩んだことメモ

どうもScrollViewって使いにくい!っていう話はおいといて事象と解決策をメモしておきます。

画面上でスクロールさせたいのでScrollView使ったんですが
おもむろに使ったら・・・

ERROR/AndroidRuntime(17331): Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child

みたいなエラーが出てしまいました。
で、いつものように調べました・・・

Androidでスクロールバーを表示する方法

こちらのブログに書いてありました。

ScrollViewには子要素は一個にしろ・・・と

まぁ、エラーを解読すればそのまんまでした・・・

で、こちらのブログ通りを作って要素を囲みました。
LinearLayout自体がスクロール可能な方がいい気がしますね。

2011年6月23日