NP_MobileWithSinglePage(Nucleus CMS)
環境はxrea
PHP(4.4.8)
MySQL(4.0.26(4.0.27))
Nucleus(v3.41)
NP_MobileWithSinglePage(2.1.0)
PEARライブラリである
Net_UserAgent_Mobileと、XML_HTMLSaxが必要なので、
SSHにて当サーバーに導入されているライブラリをチェックすると入っていない様子。
http://pear.php.net/より
Net_UserAgent_Mobile(1.0.0)と、XML_HTMLSax(2.1.2)を入手して、
*icon_dir* public_html
└ *icon_dir* nucleus
└ *icon_dir* plugins
└ *icon_dir* sharedlibs
├ *icon_dir* XML
│ ├ *icon_doc* XML_HTMLSax.php
│ └ *icon_dir* HTMLSax
│ └ ...(以下省略)
└ *icon_dir* Net
└ *icon_dir* UserAgent
├ *icon_dir* Mobile
│ └ ...(以下省略)
└ *icon_doc* Mobile.php
とする。
Fatal error: Call to undefined method: net_useragent_mobile_docomo->iserror() in MyHost/nucleas/plugins/NP_MobileWithSinglePage.php on line 104
net_useragent_mobile~が見当たりません・・・だって。
しかたが無いので最終β(0.31.0)と差し替えてみると動きました。
でもちょっと待って。
新規定義された端末判定が出来ないじゃないんじゃないの?
それってちょっとカレーに肉が入っていないくらい駄目なんじゃないの?
ってことで、
エラーを掘り下げてみた。
NP_MobileWithSinglePage.php(2.1.0)のline104
if (!$objUAMobile->isNonMobile() && !$objUAMobile->isError()) {
isErrorメソッドが定義されてないって言われてる。
↑は同line103
$objUAMobile =& Net_UserAgent_Mobile::factory($userAgent);
で参照渡しされてるみたい。
で、よーしもっと掘ってくぞぃってところで、
::これなに?コロンのダブル。
詰まった。。。こんなの知らない。。。検索しても上位には無い。。。
ごめんなさい。だからどうか、教えてえろい人。
しかし某掲示板には返事が無い。
ただの屍のようだ。。。
ってことで、
として寝ます。
if (!$objUAMobile->isNonMobile() && !$objUAMobile->isError()) {
こんなのに引っ掛かる端末も少ないだろうし。。。
::って何なんだよ><
PHP(4.4.8)
MySQL(4.0.26(4.0.27))
Nucleus(v3.41)
NP_MobileWithSinglePage(2.1.0)
PEARライブラリである
Net_UserAgent_Mobileと、XML_HTMLSaxが必要なので、
SSHにて当サーバーに導入されているライブラリをチェックすると入っていない様子。
http://pear.php.net/より
Net_UserAgent_Mobile(1.0.0)と、XML_HTMLSax(2.1.2)を入手して、
*icon_dir* public_html
└ *icon_dir* nucleus
└ *icon_dir* plugins
└ *icon_dir* sharedlibs
├ *icon_dir* XML
│ ├ *icon_doc* XML_HTMLSax.php
│ └ *icon_dir* HTMLSax
│ └ ...(以下省略)
└ *icon_dir* Net
└ *icon_dir* UserAgent
├ *icon_dir* Mobile
│ └ ...(以下省略)
└ *icon_doc* Mobile.php
とする。
Fatal error: Call to undefined method: net_useragent_mobile_docomo->iserror() in MyHost/nucleas/plugins/NP_MobileWithSinglePage.php on line 104
net_useragent_mobile~が見当たりません・・・だって。
しかたが無いので最終β(0.31.0)と差し替えてみると動きました。
でもちょっと待って。
新規定義された端末判定が出来ないじゃないんじゃないの?
それってちょっとカレーに肉が入っていないくらい駄目なんじゃないの?
ってことで、
エラーを掘り下げてみた。
NP_MobileWithSinglePage.php(2.1.0)のline104
if (!$objUAMobile->isNonMobile() && !$objUAMobile->isError()) {
isErrorメソッドが定義されてないって言われてる。
↑は同line103
$objUAMobile =& Net_UserAgent_Mobile::factory($userAgent);
で参照渡しされてるみたい。
で、よーしもっと掘ってくぞぃってところで、
::これなに?コロンのダブル。
詰まった。。。こんなの知らない。。。検索しても上位には無い。。。
ごめんなさい。だからどうか、教えてえろい人。
しかし某掲示板には返事が無い。
ただの屍のようだ。。。
ってことで、
if (!$objUAMobile->isNonMobile()) {
$this->isMobile = true;
$this->aMobileInfo['carrierLongName'] = $objUAMobile->getCarrierLongName();
$this->aMobileInfo['carrierShortName'] = $objUAMobile->getCarrierShortName();
$this->aMobileInfo['name'] = $objUAMobile->getName();
$this->aMobileInfo['version'] = $objUAMobile->getVersion();
$objDisplay = $objUAMobile->getDisplay();
if (!PEAR::isError($objDisplay)) {
$this->aMobileInfo['height'] = $objDisplay->getHeight();
$this->aMobileInfo['width'] = $objDisplay->getWidth();
$this->aMobileInfo['color'] = $objDisplay->isColor();
$this->aMobileInfo['depth'] = $objDisplay->getDepth();
}
} else {
echo 'その端末、変なんです。変なんです。';
}
として寝ます。
if (!$objUAMobile->isNonMobile() && !$objUAMobile->isError()) {
こんなのに引っ掛かる端末も少ないだろうし。。。
::って何なんだよ><
[PR] 全てが規格外!しかも1年間の全額返金保証!! [PR]
function &factory($userAgent = null)辺りで「ん???」となったので、
『isError』を『getError』に書き換えてみました。
パラメーター的には問題ないみたいですが、『携帯端末じゃなくて、キャリアも不明』な状況。
特に、キャリアが不明という点がよく解からないし再現も出来ない。
自己責任でお試しください。心配な方は、NP_MobileWithSinglePage.phpの新バージョンを待つか、それぞれの環境で問題の無いバージョンに戻すかして下さい。
今回の処置は、とりあえずのエラー回避だけが目的で、根本解決どころか余計なトラブルが発生する可能性もあります。
がしかし気持ち悪いので、もうちょっと勉強してみます。