2012-03-11 9 views
0

私は、未知数のGoogleカレンダーフィードを取得し、ウィジェット内のすべてのカレンダーの次のイベントを表示することができるwordpressプラグインを作った。それは動作しますが、私はコードにコードをハードコードしています。それは非常に良い練習のように見えないので、私は管理者インターフェースを計画しています。追加するフィードごとに、配列に格納される3つの情報があります。a)フィードURL。 b)フィードのニックネーム。 c)ニックネームを表示する必要がある場合。私は一枚を格納する方法をすべてのチュートリアルで知っワードプレスウィジェットの管理ページに不明な数のオプションを取得する

  1. :これで Screenshot of mockup

    私の問題:ここで

    は、私はちょうどアイデアを表示するためにやった管理インタフェースの一部醜いモックアップです1つの変数の情報しかし、私はそれらの不明な数をどのように保存するのですか? $ instance変数で配列を使用できますか?私はそれを行う方法のコードサンプルから実際に手がかりを得ていません。

  2. どのように私はこの動的なので、追加するすべてのフィードのために、すぐにインターフェイスに表示されますか?彼らの順序を変えることもできるのは素晴らしいことです。

質問2について質問したいと思います。私がそこにいるとき、私はjavascriptで何かをuppに送ることができると思います。しかし、1番の質問ではどこから探し始めるのか分かりません。だから、誰かがヒントや正しい方向へのプッシュを与えることができたら、私はとても感謝しています。

更新

ありがとうございます。私は実際にこれを実装しようとする時間を解放する必要がありますが、私は数日かかるかもしれません。私にとって最も有益だった答えは...

+0

usabillityのヒント:ラジオボタンのラベルを変更すると、trueとfalseはあまりユーザーフレンドリーではありません。 – janw

+0

あなたの声明は本当だと思います:-p –

答えて

1

あなたは、配列のadd_option()update_option()とを保存し、その後、〜20以上を保管することを計画している場合、私はこれに対して推薦するget_option() 読むことができます。

<?php 
$feeds = array(
    0 => array(
     'feedUrl' => 'http://calander.google.com/calname1', 
     'nickname' => 'first calander', 
     'useNick' => false 
    ), 
    1 => array(
     'feedUrl' => 'http://calander.google.com/calname2', 
     'nickname' => 'birtday calander', 
     'useNick' => true 
    ), 
    2 => array(
     'feedUrl' => 'http://calander.google.com/calname3', 
     'nickname' => 'take out garbage days calander', 
     'useNick' => false 
    ), 
); 
add_option('calender_feeds', $feeds, '', 'no'); 
?> 


<?php 
//read feeds 
$feeds = get_option('calender_feeds'); 
?> 

複数のフィールドを動的に追加する場合は、jQueryをおすすめします。

+0

ありがとう。その配列に格納するFORMを取得する方法についても失われています...: -/ –

+0

私の答えを投票していただきありがとうございます;)、FORMの格納はどういう意味ですか? – janw

+0

大きな問題は、私がまだPHP/HTMLを十分に理解していないことだと思います。しかし、Wordpress Widget APIサイトの例によると、データベースに1つのオプションを格納するフォームを作成するのは簡単です。しかし、この場合、私はそれをすることはできません。それが存在するならば、私はオプションを最初に取得する必要があります(あなたがどのように示したか)。その後、配列にデータを追加し、最後に古い配列を新しい配列で上書きします。私は単純なhtmlの入力ラインでそれを行うことはできません。申し訳ありませんが、私は説明を吸うと...しかし、私はいくつかのより多くの研究をやろうとします... –

1

このプラグインの新しいテーブルを作成してwp_feedwhateverまたはそれに類するものを作成し、各フィードのレコードを作成するだけではどうですか。

もう1つの方法(WordPressは多くを使用する傾向があります)は、シリアル化されたデータです。これは、作業するバットの痛みです。

動的部分はjQueryで行うことができます。

+0

wordpressがwp_optionsテーブルで使用するシリアライズされたデータは、 'add_option'、 'update_option'、 'get_option'と一緒に使用すると使いやすくなります – janw

1

Widgets APIが参考になる場合があります。これはウィジェットを作成するためのコーデックスです。私はこれがあなたが達成しようとしていることを処理する最良の方法かもしれないと思います。下部を見ると、ウィジェットの例があります。これにより、カレンダーウィジェットの複数のインスタンスを作成することができ、各インスタンスには3つのオプションがあります。

WP_Widget :: form()は、3つのフィールドのユーザー情報を収集する場所です。

WP_Widget :: update()は、情報をデータベースに格納するためのものです。 Wordpressはあなたのために複雑なものをやっている良い仕事をしています。

WP_Widget :: widget()は、データを取得してウィジェットで使用するためのものです。

関連する問題