Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2009-07-31 21:04:26

nakazoe
メンバー
登録日: 2009-06-22
投稿: 8

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

※AdjustSkin2MobileLiteを利用されることをおすすめしています

<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=4806">viewtopic.php?t=4806</a><!-- l -->
http://japan.nucleuscms.org/wiki/plugin ... mobilelite

AjustSkin2MobileはUserAgentを判別しSkinを変更します。
docomo、au、SoftBank、Willcomを携帯端末、iPhone、Androidをスマートフォンとして認識し、PC|携帯|スマートフォン|キャリア|機種毎に適用するSkinを選択してくれます。

http://japan.nucleuscms.org/wiki/plugin ... kin2mobile


Attachments:
zip AdjustSkin2Mobile_0.2.zip, Size: 220.52 KiB, Downloads: 610

オフライン

#2 2009-10-27 19:17:32

nakazoe
メンバー
登録日: 2009-06-22
投稿: 8

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

SqlTablePrefixをサポートしました
CarrierName、TerminalModelでifが使えるようになりました

オフライン

#3 2010-01-19 16:36:13

nakazoe
メンバー
登録日: 2009-06-22
投稿: 8

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

simplepie利用時にUTF-8で表示されてしまう不具合への対応として
event_PostSkinParse時に行っていた文字コードの宣言をevent_PostSkinParse時に変更しました

オフライン

#4 2010-02-16 02:20:55

batchi
メンバー
登録日: 2009-07-29
投稿: 30

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

http://japan.nucleuscms.org/wiki/plugin ... e#insutoru
上記を参考にこのプラグインを管理画面からインストールしたところ管理画面が文字化けしてしまいました。

インストール手順3の、PEAR::Net_UserAgent_Mobileをインストールという部分で特に何もせずに解凍したファイルをアップロードしただけなのですが、それがまずかったのでしょうか?

どなたか対処の仕方及びアドバイスをいただければと思います。
よろしくお願いします。


------------------------------------------
Nucleus CMS v3.41
文字コード EUC-JP
PHP 5.2.8
Apache/1.3.41
MySQL4.0.25 (Ver 12.22 Distrib 4.0.25)

オフライン

#5 2010-05-12 21:37:43

dan
メンバー
登録日: 2007-08-14
投稿: 76

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

現在Nucleusで運用しているサイトに、NP_AdjustSkin2Mobileをインストールして、
携帯サイトの並行運用を準備をしています。

PC、その他のモバイル端末が判別され、それぞれのSkinで表示してくれる
ところまで、なんとかこぎ着けました。

絵文字も、ドコモ携帯ではきちんと表示されるのですが、他の端末では
「□」みたいな状態で、正常に変換されませんでした。
(ドコモ携帯の他には、パソコンとiPod touchの携帯エミュレータで表示のテストをしました)

要するに絵文字が置いてあるディレクトリを参照できていないのかもしれないと考えました。

そこで、もしかして、「Nucleus」フォルダをルートでなく下層に置いていることが
原因かも、と思い、プラグインのソースを見たところ、74行目に、

PictDir = "./nucleus/plugins/adjustskin2mobile/images/"

とあったので、ここを自分の状況に合わせて書き換えてみようとしました。

私の場合、アタックを避けたい理由など、いろいろな訳があり、

・root
・xx(←通常はここにnucleusフォルダ)
・xxx
  ・xxxx(←通常でいうところのnucleusフォルダがこれ)

としていますので、

PictDir = "./xx/xxx/xxxx/plugins/adjustskin2mobile/images/"

と書き換えました。

しかしやはり、改善しませんでした。

試しに(素人考えで^^;)絶対パスを書いてみましたが、やはり結果は同じでした。

他にどのような理由が考えられますでしょうか。
アドバイスいただけますと幸いです。

======
レンタルサーバー チカッパ
PHP4
MySQL4.0
Nucleus ver.3.41
文字コード UTF-8
======
以下 プラグイン管理画面より
インストール済みプラグイン

SkinFiles
Customized URL
Show Blogs
Blog Menu
ExtraSkinJP
znItemCache
Navigation Bar
New Item
znKeywordLink
mediatocu
ItemFormmail alpha
Chopped description
Captcha
NP_ImageLimitSize
Extensible Search
NP_MitasNom
LightboxEX
Collapse/Expand contents block
AutoLink
Custom Thumbnail
Archive Index
Count Entries
NP_if
BlogInfo
AdjustSkin2Mobile

オフライン

#6 2010-05-13 12:36:02

nakazoe
メンバー
登録日: 2009-06-22
投稿: 8

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

こんにちは作者です
多忙に任せて更新できなくてすみません

dan さんの発言:

現在Nucleusで運用しているサイトに、NP_AdjustSkin2Mobileをインストールして、
携帯サイトの並行運用を準備をしています。

PC、その他のモバイル端末が判別され、それぞれのSkinで表示してくれる
ところまで、なんとかこぎ着けました。

絵文字も、ドコモ携帯ではきちんと表示されるのですが、他の端末では
「□」みたいな状態で、正常に変換されませんでした。
(ドコモ携帯の他には、パソコンとiPod touchの携帯エミュレータで表示のテストをしました)

要するに絵文字が置いてあるディレクトリを参照できていないのかもしれないと考えました。

そこで、もしかして、「Nucleus」フォルダをルートでなく下層に置いていることが
原因かも、と思い、プラグインのソースを見たところ、74行目に、

PictDir = "./nucleus/plugins/adjustskin2mobile/images/"

とあったので、ここを自分の状況に合わせて書き換えてみようとしました。

imagesを利用するのはPCで表示する場合のみです
「□」みたいな状態になっているということなので、実機で確認できれば正常に表示されるものと思われます

http://firemobilesimulator.org/
こちらのシュミレータで確認してみて頂けますでしょうか
よろしくお願いします

オフライン

#7 2010-05-13 15:06:43

dan
メンバー
登録日: 2007-08-14
投稿: 76

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

nakazoe さんの発言:

imagesを利用するのはPCで表示する場合のみです
「□」みたいな状態になっているということなので、実機で確認できれば正常に表示されるものと思われます

なるほど…それならば、「PictDir」のパスをきちんと指定しさえすれば、大丈夫なはず…
と、いろいろとやっていたらていたら、パソコンでもちゃんと表示されました。

それで、その原因というか、顛末ですが…

パソコンのブラウザでモバイルサイトのURLを入力するとき、

http://hoge.com/xx/xxx/mobile

とすると絵文字が表示されませんが、

http://hoge.com/xx/xxx/mobile/

とすると、絵文字が表示されるのです。(違い:最後のスラッシュ)

いつもの癖で、最後の「/」は書かなくてもいいと思っていて。。。
最後の「/」を抜いてページを表示させると、画像のパスがrootになってしまいます。
最後に「/」を入れて表示させれば、画像のパスも正常になります。

それで、試しに「PictDir」のパスを相対パスでなく、絶対パスで書いてみました。
すると、「/」の有無にかかわらず、ちゃんと表示されます。
この段階で、とりあえず解決です。(^_^;)

こうなってしまったのも、おそらく「PictDir」のパスを書き換えなければ
ならない自分の環境のせいなのかもしれませんね。。。

とにかく、ふたを開けてみると、ここで質問するような問題ではなかったような気がします。
お手を煩わせてしまい、申し訳ありませんでした。

http://firemobilesimulator.org/
こちらのシュミレータで確認してみて頂けますでしょうか
よろしくお願いします

ありがとうございます! こりゃ便利ですね〜。
いままでパケ代気にしながら携帯で確認していました。(^^;)

オフライン

#8 2011-01-29 04:43:57

shige_s34
メンバー
登録日: 2007-04-22
投稿: 1

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

上記絵文字が表示されない件にて同様の現象が発生し困っていたため、参考までに対処方法を記載しておきます。

プラグイン内のInit()メソッド内にて、

===
  $this -> PictDir = "./nucleus/plugins/adjustskin2mobile/images/";
===

となっている部分を

===
  global $CONF;
  $this -> PictDir = $CONF['IndexURL'] . "/nucleus/plugins/adjustskin2mobile/images/";
===

とすることで、表示が可能になりました。
(全てのバージョンで確認はしておりませんが、今現在最新の3.51では動作しております)

オフライン

#9 2011-03-06 15:01:30

ohgiken
メンバー
登録日: 2011-03-06
投稿: 2

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

MobileWithSinglePageをAdjustSkin2Mobileに置き換え、MobileWithSinglePageのmobスキン内容をそのままdafault/mobileスキンに書き換えて運用しようと思いました。携帯用ページに関するご相談です。

トップページ(メインブログに帰属)は問題なく表示されたのですが、なぜか複数ブログのメインブログ以外を表示しようとすると、上手くいきません。
具体的には、dafault/mobileスキンにて、メインブログ=<%if(blogsetting,bnumber,1)%>には正常対応したにもかかわらず、複数ブログのメインブログ以外=<%if(blogsetting,bnumber,xx)%>に反応しないかのように、意図しない内容がPC用スキンで表示されてしまいます。
なお、MobileWithSinglePage使用時には携帯用スキンはmobスキンでまとめていましたが、PC用としては、複数ブログ部分はメインブログ用とは別のスキンを適用しています。(PC用の「別のスキン」が表示されてしまうのかも)

MobileWithSinglePageでは複数ブログが正常に表示されており、「文法」部分に問題があるとは思えません。
もし存在するならば、恐れ入りますが解決法をご教示いただけないでしょうか?

オフライン

#10 2011-03-09 17:15:23

nakazoe
メンバー
登録日: 2009-06-22
投稿: 8

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

こんにちは

>複数ブログ部分はメインブログ用とは別のスキンを適用しています。

とのことですね
「Blogの標準のスキン」をメインとサブで違う設定をされているのでしょうか

例えばサブブログの標準スキン名がsub_defaultだった場合は
sub_default/mobileというスキンを用意して頂く必要があります

一度ご確認頂けますでしょうか
よろしくお願いします

オフライン

#11 2011-03-15 13:23:02

ohgiken
メンバー
登録日: 2011-03-06
投稿: 2

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

nakazoe さんの発言:

>例えばサブブログの標準スキン名がsub_defaultだった場合は
>sub_default/mobileというスキンを用意して頂く必要があります

ありがとうございます。

sub_default/mobileのスキンを作ったところ、うまく動作しました。

ただ、こちらのサブブログ標準スキン名の呪文が長すぎて、Nucleusにフルスキン名を受け入れてもらえず、仕方がないので「mobile」ではなく「mo」というスキン名で携帯サイトに振り分けるようにプラグインを改造させていただきました。
(問題なく動いてます。)

素晴らしいプラグインを、ありがとうございます!

オフライン

#12 2011-03-18 14:20:20

nakazoe
メンバー
登録日: 2009-06-22
投稿: 8

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

>ohgikenさん

動いたようでなによりでございます
また使用感など教えて下さい

>shige_s34さん

遅くなりましたがフォローありがとうございました
NP_AdjustSkin2MobileLiteでは、助言頂いた内容を参考に、絵文字ファイルへのパスをオプション化致しました
この場を借りてお礼を申し上げます

オフライン

#13 2011-09-20 15:57:52

dan
メンバー
登録日: 2007-08-14
投稿: 76

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

プラグイン開発をされている皆さん、フォーラムに関わっている皆さん、いつもありがとうございます。

Nucleus v3.61、PHP 5.2.17、MySQL 5.1.34-log (5.0.45)でサイト運用しています。
レンタルサーバーはロリポップです。

サイトを携帯対応にするため、NP_AdjustSkin2MobileLiteをインストールしましました。

途中までは順調に進んでいましたが、検索結果のページでトラブルが起きてしまいました。

検索フォームにキーワードを入れて検索すると、

Input Error
Invalid input.

とだけ表示されてしまう状況です。スキンは反映されていません。
ページタイトルも「Input Error」です。
携帯電話実機からも、Firefoxのシミュレータでも、同じエラーが出ます。

ちなみに、携帯に振り分けられないPCサイトでは正常な検索結果が得られています。

自分なりに浅はかな知識で対策を練ってみました。
もしかして、フォームに記入されたキーワードの文字コードに起因するかもしれないと思い、
検索フォームを「<%searchform%>を使わず手書きタグでおこして、formタグを

<form method="get" action="" accept-charset="UTF-8">

というように、「accept-charset」を追加してみました。

すると、検索結果が表示されたと思いきや、今度は不可思議な挙動になりました。

たとえば、キーワードを「鈴木」とするときちんと検索結果が出るのに、
「松井」とすると上記のエラーが出るのです。(不思議 ^_^;)
さらに、「松井」ではエラーなのに「松井の」のするときちんと検索結果が表示されます。

平仮名でも、不規則にエラーがでます。
たとえば「こころ」とするとエラーですが「こころの」とするとOK…という感じです。
何文字だからNG・OKという規則性もないような気がします。

フォーラム内の、
http://japan.nucleuscms.org/bb/viewtopi … 910#p24910

http://japan.nucleuscms.org/bb/viewtopi … 3774#23774
も参考にしてみたのですが、
類似プラグインとはいえ別プラグインのトピックということもあり、解決の糸口が見えません。

アドバイスをいただけないでしょうか。
どうぞ宜しくお願いいたします。┌(_ _)┐

オフライン

#14 2011-09-20 18:37:49

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

私はNP_AdjustSkin2MobileLiteを使っていないので確かなことは言えないのでその点ご了承下さい。

「Input Error Invalid input.」という文字列は、globalfunctions.phpの関数「encoding_check」が出力しています。おそらく、コアファイルのどこかでこの関数を呼び出すか、プラグインが呼び出すかする際にエラーを起こしているのでしょう。

とりあえずこの関数内で値をダンプするなどして調べていけば、原因がはっきりするかと思います。

この関数の趣旨は
・UTF-8、Shift_JIS、EUC_JP、gb2312の各エンコーディング方法によって表現される文字列を正規表現で一般化し、チェック対象の文字列をマッチング。もしマッチしていたらその箇所がまるまる消されます。
・もし何か文字列が残る=置換から漏れた文字列があるなら、不正なエンコーディングの文字列を含むとみなし、「Input Error Invalid input.」を出力してスクリプトを終了する

オフライン

#15 2011-09-22 17:45:01

dan
メンバー
登録日: 2007-08-14
投稿: 76

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

Mocchiさん

詳しいご説明ありがとうございます。

Mocchi さんの発言:

「Input Error Invalid input.」という文字列は、globalfunctions.phpの関数「encoding_check」が出力しています。おそらく、コアファイルのどこかでこの関数を呼び出すか、プラグインが呼び出すかする際にエラーを起こしているのでしょう。

なるほど。

Mocchi さんの発言:

とりあえずこの関数内で値をダンプするなどして調べていけば、原因がはっきりするかと思います。

globalfunctions.phpの関数「encoding_check」の箇所を見てみました。
「関数内で値をダンプする」というところが、今の私にはどうすればよいかわからないのですが、たとえば、「NP_AdjustSkin2MobileLite」側の「encoding_check」に関する部分をごっそり抜いて試してみる、というのは有効でしょうか?
乱暴なやり方でしょうか?(^^;)

オフライン

#16 2011-09-25 23:47:40

dan
メンバー
登録日: 2007-08-14
投稿: 76

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

未解決ではありますが、自己レスです。

Mocchiさんがアドバイスしてくださった内容はまだ試していないのですが、経過をご報告します。

あれからいろいろと設定などを見直していたところ、一つ発見がありました。

NP_CustomURLをインストールしているのですが、Blog毎の設定に
「/search/検索語」にリダイレクトしますか?」というオプションがあります。

このチェックを「いいえ」にしますと、「NP_AdjustSkin2Mobile」を使った携帯サイトでも
きちんと検索ができるようになりました。
その際、検索フォームの

<form method="get" action="" accept-charset="UTF-8">

という書き換えは行わずに、標準の「<%searchform%>」に戻さないといけませんでした。
(今度は「accept-charset="UTF-8"」がエラーの原因になるから)

しかし!
こうすると困ったことが起きました。
PCサイト・携帯サイトともに「エラーページ」からの検索ができなくなってしまうのです。

たとえば、なんらかの不正なアドレスでアクセスするとします。
そうすると、スキン編集で書いた「エラーページ」が表示されるわけですが、
そこから「それなら記事を検索しようかな」と、そのエラーページにある
検索フォームにキーワードを入れて検索すると、アドレスバーに

http://xxx.jp/▲▲▲?amount=0&blogid=0&query=キーワード
※「▲▲▲」はエラーのもとになる不正な文字列

というように表示されたまま、何度検索してもエラーページから遷移しないのです。

つまり、先述のCustomURLのオプションが「はい」のままなら、エラーページからの検索は

http://xxx.jp/search/キーワード

とリダイレクトされ、通常の検索結果ページへと遷移します。

しかし、このCustomURLのオプションを「いいえ」にしてしまうと、上記の「▲▲▲?」が残ったままになってしまい、
結果的にエラーページにとどまったままになってしまいます。

「エラーページに検索フォームを置かずにホームにでも戻るようにすればいいのでは」という考え方もあるのですが、
エラーが出たときこそ、すぐに記事検索できるようにしておきたいのが正直なところです。

オフライン

#17 2011-09-27 22:45:21

きゃしゃ
メンバー
From: 北河内
登録日: 2007-12-15
投稿: 351

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

dan さんの発言:

たとえば、なんらかの不正なアドレスでアクセスするとします。
そうすると、スキン編集で書いた「エラーページ」が表示されるわけですが、
そこから「それなら記事を検索しようかな」と、そのエラーページにある
検索フォームにキーワードを入れて検索すると、アドレスバーに

http://xxx.jp/▲▲▲?amount=0&blogid=0&query=キーワード
※「▲▲▲」はエラーのもとになる不正な文字列

というように表示されたまま、何度検索してもエラーページから遷移しないのです。

動作としては正しいですが、それはそれとして、こんなアプローチでいかがでしょか。
a. スキンの記述に<%searchform%>を使わず、フォームのHTMLをベタで書く。
b. nucleus/forms/searchform.templateを編集し、action先をトップページにする。

b.は一応コア改変になるので自己責任で。
あと、どちらもselectBlog等による絞り込みは無効になりますので、
動作が変わることに留意してください。

オフライン

#18 2011-09-29 11:01:09

dan
メンバー
登録日: 2007-08-14
投稿: 76

Re: NP_AdjustSkin2Mobile - UserAgentを判別しPC、スマートフォン、携帯へスキンを振り分ける

きゃしゃさん、アドバイスありがとうございます!

それと、問題が枝分かれしたことで、トピックが横道にそれてしまって申し訳ないです。┌(_ _;)┐

きゃしゃ さんの発言:

a. スキンの記述に<%searchform%>を使わず、フォームのHTMLをベタで書く。
b. nucleus/forms/searchform.templateを編集し、action先をトップページにする。

あ!そうか、って感じです! :shock:

「b」を試してみましたところ、すんなりOKでした。

ただ今回は、NP_CustomURL使っているからなのだと思いますが、
actionの先は「/」でOKでした。

きゃしゃ さんの発言:

あと、どちらもselectBlog等による絞り込みは無効になりますので、
動作が変わることに留意してください。

…つまり、どのBlogからの検索であれ、デフォルトBlog上での検索結果ページになってしまう、
ということですよね。

そこなのですが、実は今回、デフォルトBlog以外はすべてサブドメインで運用しようとしています。
そのためなのか、サブドメインBlog上での不正なアドレス入力によるエラーページから再検索しても、
ちゃんと元のサブドメインBlog上で検索結果ページが表示されました。

おかげさまで、この「エラーページからの再検索」問題はクリアになりました。

ただ… :oops:

もともと起きていた問題である、「 NP_AdjustSkin2Mobile」を使ったモバイルサイトでの
検索結果が「Input Error Invalid input.」になってしまうことは、そのまま解決されていません。

ひきつづき、Mocchiさんからアドバイスいただいた内容を試してみないといけませんね。。。

頑張ります!

経過はまたご報告します。┌(_ _)┐

オフライン

Board footer