0

現在、アプリの 1 つにカスタム モバイル レイアウトを追加しています。

AppController.php

if ($this->request->is('mobile')) {
   //$this->viewClass = 'Theme';
   $this->theme = 'Mobile';
} else {
   $this->theme = Configure::read('App.theme'); 
}

正常に動作しています..現在、jquery mobile を問題なく実行しています。ただし、メイン Web サイトは、モバイル バージョンが必要とするよりもはるかに多くのデータを DB から収集するため、コントローラーの個別の機能で開発したいと考えています。

だから私は、リクエストモバイル=>このプレフィックス=モバイルを設定する場合、またはそのようなアプローチを考えていますか?コントローラーで個別のモバイル機能を使用できるようにします。

助言がありますか?

また、ページが読み込まれたときに、モバイル版を表示しますか? などのパラメータを設定したいと思います。はい / いいえ。いいえの場合 => モバイルの表示 = false、はいの場合 => モバイルの表示 = true。できれば、ある種のポップアップ (tapatalk フォーラム アプリの通知など) を使用します。

これについて助けてくれてありがとう.. :)

-トム

4

1 に答える 1

0

AppControllerで$this->request->is('mobile')を使用するのと同じように、すべてのコントローラーで同じメソッドを使用して、リクエストの種類に応じてロジックを実行できます。これは、目的を達成するための良い方法です。ゴール。

第二に;

ユーザーに「モバイルかどうか」を尋ねる要素を作成できます。

ランディング ページ コントローラーで (または、各ページでこのチェックを行いたい場合、たとえば、ユーザーが他のサイトからのリンクを含む特定のページにアクセスした場合。次にAppController beforeFilter()でこれを行います)、次のような値をチェックします。

$mobilePref = Configure::read('Config.mobilePreference');
if($mobilePref){
     $this->set('showMobileElement', true);
} else {
     if($mobilePref == 'Mobile'){
          $this->set('showMobileLayout', true);
     } else {
          $this->set('showMobileLayout', false);
     }
}

レイアウトでは、 $showMobileLayoutをチェックするだけです。true の場合はモバイル レイアウトを表示し、false の場合は通常のレイアウトを表示します。設定されていない場合は$showMobilePrefをチェックし、true の場合は「Mobile or Not?」を呼び出します。エレメント。そして要素からのユーザーの答えに応じて、設定します

 Configure::write('Config.mobilePreference', true); //or false, depending on answer

おおむねこれくらいかな。もちろん、ユーザーを認証している場合は、ユーザーの選択を保存し、次にユーザーがログインするときにそれを覚えておく必要があります。

于 2012-11-16T22:59:24.447 に答える