NP_ChgSkin2SP[v1.31]

iPhone6/6plusの発売とともに、iOS8がリリースされましたね。みなさんはもうアップデートしたでしょうか。 …ってどっかで見た出だしですな。
ちなみにわたしのiPhone5、iOS8へのアップデートはPCにつないでiTunes経由で行ったのですが、失敗してリカバリモードになった末、復元しましたよww。もちろん直前にバックアップは取ってあったので無問題です。いつだったかのメジャーアップデートの時も同じ失敗をしているので、もしかしたらPCが悪いのかも。

さて、スマートホン表示に対応するための拙作プラグイン「NP_ChgSkin2SP」、yamaさんにいろいろ直していただきました。ありがとうございます。顛末はこの記事を読んでみてください。いまだNP_Cacheとの共存については検証しきれていません。

それはそれとして、久しぶりにソースを触ってみて、そういえばここが使いにくかったんだよなぁというところを思い出しまして。ちまちまと直してみました。

NP_ChgSkin2SPをインストールしたら、プラグインの「オプション編集」で各種設定をするわけです。その中にある「スマートホン表示で使用するスキン名」ってところがテキストボックスで、いちから入力しなけりゃならない。ここをプルダウンメニューにして、インストール済みのスキンから選ぶ方式にしたら間違いが減るんじゃなかろうかと考えたわけです。

で、つくりました。

★NP_ChgSkin2SPのオプション設定

赤い矢印のところに注目。下向きの三角を押すとプルダウンしてインストール済みのスキン一覧を表示します。スマホからのアクセス時に使うスキンをここから選んでください。
選択しないというわけにはいかないので、必ずここに表示されているスキンを使います。実在しないスキン名を間違って入力したときは「グローバル設定>基本のスキン」で表示するということはありません。

なおスキン変数周りの処理はv1.2以前と同じです。
スキンに<%ChgSkin2SP%>と記述すると、その場所に表示を切り替えるためのリンクを出力します。

旧バージョンをインストールしている場合はまずアンインストールしてからインストールしてくださいね。

NP_ChgSkin2SP_v1.31.zip

NP_ChgSkin2SP_v1.31.zip v1.31 (2014.10.13)

例によって良くわからずに書いているところが多々あります。
今回は久しぶりにSQL文をひねってみたりしています。たぶんもっとスマートなやり方があるんだろーなとは思ってます。はい。
コメント欄にてご指南ご指導いただければこれ幸いでございます。

なお前のバージョンもそのまま残してありますので、気になる方はそちらも参照ください。
スマホ対応プラグインNP_ChgSkin2SPをつくってみた

【2014/10/13追記】—————————————————————————–
v1.3からv1.31にバージョンアップしましたので、記事中の表記およびリンク先などを更新しました。
v1.31はGithubにてyamaさんに手を入れていただいたものです。NucleusCMS v4.0では使えなくなるmysql_xxx関数をsql_xxxに置き換えたりしてます。あとこれが重要なんですが、<%ChgSkin2SP%>を記述しない場合にデバイス判定ができなかったようです。お恥ずかしい。
v1.3をダウンロードしていただいたあなたとあなた、是非v1.31の再ダウンロードをお願いします。

コメント

  1. kyu より:

    v1.3公開直後にyamaさんが修正してくれていたみたいなんですが、正直今日の今日まで全く気付かなかったです。
    で、修正を反映するのにだいぶ手間取ってしまいました。GitHubって難しいですわ。

  2. 嶽花 より:

    はじめまして。
    最近、Googleでモバイルフレンドリーではない、と検索結果で警告が出るようになったこともあり、今回導入させていただきました。
    私の環境がPHP4しか使えないので、Nucleusが3.4.1だったこともあり、プラグインの必要バージョンを340に書き換え、「sql_fetch_assoc」を「mysql_fetch_assoc」に三箇所書き換えたところ、無事動作しました。
    便利なプラグインを提供していただき、ありがとうございました。

  3. kyu より:

    嶽花さんこんばんは。
    有名な方からコメントいただくとドキドキしてしまいます。NucleusCMS関連でググっていると必ずヒットするので、サイトの方、時々拝見してました。
    正直な話、このプラグイン、スマホ用のスキンを別につくる必要があるので、最近のレスポンシブデザインの流れ的にちょっとなぁと思っています。
    コメントありがとうございました。

  4. kan より:

    kyuさん。ご回答ありあがとうございました。
    ネットを調べたら何となくPHPのバージョンらしきページに行き当たっていました。
    インストールしたシステムは、
    PHP のバージョン 7.1.5
    データベース と バージョン MySQL : 5.5.5-10.1.23-MariaDB (mysqlnd 5.0.12-dev – 20150407 – $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $)
    データベースのドライバ mysql / emulated mysql driver
    PHP の設定
    magic_quotes_gpc Off
    magic_quotes_runtime Off
    register_globals Off
    (nucleusのシステム環境一覧より)です。
    なお、インストールしたChgSkin2SPは
    製作者: kyu
    バージョン: 1.31[2014.10.13]
    入手サイト:
    (プラグインの管理画面より)です。またNucleus CMSは v3.71です。
    どうかよろしくお願いします。

  5. kyu より:

    kanさんこんばんは。
    検証環境をPHP 7.1.4 にして確認しました。確かに再現しますね。
    このファイル ( http://kyu.php.xdomain.jp/m… ) を試してみてもらえますか。ほとんど当てずっぽうで修正しております。
    ちなみに、NucleusCMS 3.71 / PHP 7.1.4 だと主要なプラグインが軒並み使用不能だったのですが、そちらは大丈夫ですか?
    NucleusCMS に関しては、まだまだ PHP 5 系のほうが安全な気がします。

  6. kan より:

    kyuさん こんにちは。
    ありがとうございました。インストールでもエラーが出ませんし、オプションでkyrieスキンを選択し、スマホからアクセスもできました。
    実はそれほどプラグインを試しておりません。軽快さと引き換えになるのではないかと思い、極力控えようかと思ったのですが、スマホからの表示は不可欠かなと思った次第です。
    でも、最初に試したNP_AdjustSkin2MobileLite.phpはインスール画面がエラーを吐いたまま固まってしまったのです(コマンドラインから削除して脱出しました)。
    こんなですから、まだまだPHP5の方が安全かと思いますが、OSがArchLinuxなもので、これが売りだとも言える状況なのです。
    本当にありがとうございました。そしてこれからもよろしくお願い申し上げます。

  7. kyu より:

    kanさんこんばんは。
    うまくいってよかったです。
    識者によると、この件は結構根が深くて、NucleusCMS のプラグインのほとんどがエラーになってしまうようです。
    PHP7 ではデフォルトで display_errors がオフなので気づかずに今まで来ていたようです。PHP7.1 で変わったのかな。
    いやー、困りましたね。
    ともかく、ご指摘とテストありがとうございました。
    あー、GitHub のほうも修正しないと。

タイトルとURLをコピーしました