このブログを検索

2012年8月17日金曜日

Googleサイトへ新規ページ追加時に親ページを指定

■課題①親ページの指定方法

   昨日の記事の最後でも書いたとおり、以下の構文を追加すると、
   新しくページを追加する場合の親ページを指定できるとのこと。


   私が新しく追加したページを配置したいのは、下記の場所です。
 
     「https://sites.google.com/a/mypleis.com/yuka_matsuda/」の直下にある
     「自伝を書く (jiden)」というページの下 
       ※()内は、ページ名です

   これらの情報を基に、スクリプトを書いてみました。

   なお、正しいスクリプトを載せる前に、しばし試行錯誤した結果にお付き合いください~。


■これらは間違い

    まず、言葉の通り忠実に、書いてみたのが次のスクリプト。

   「続けて」書いて、「親ページ」のページタイトルを構文の中に書き込み書き込み。
     ※以下、昨日の記事に載せたスクリプトの抜粋です。全文は昨日の記事を参照。



   あれ、やっぱりホーム直下にページが追加されてる。




 
   しかも、「スクリプト失敗しました」というメールも届いて、これじゃダメだって。



   では、「(親ページ)」の所をページ名(jiden)にしてみる?



   それとも、URLを指定すればOK??



   どちらもダメ―。。。。。

   あ、setParentの前に、サイトを指定(”site.~”)してみる?



   あれー、意外と難しいわねー。

   分かる人から見たら、何をアホなことを・・・と呆れられそうですね フゥ(o´Å`)=з


■さらなる参照元

   何かもっと詳しく説明してあるブログはないか?と色々検索してみて、
   やっと、それらしい記事を発見しました!

     【初心者のためのGoogle Apps Scriptプログラミング入門:】
     http://libro.tuyano.com/index3?id=667001&page=4


   ブログの著者の方には大変申し訳ないですが、「入門以下」レベルの私には、
   書いてあることの意味を紐解くのにかなり苦心しましたが・・・(´`)=3

   お蔭様で何となく分かったのは、

     ① setParent()の()内には、「Pageオブジェクト」というものを入れるということ。

     ② Pageオブジェクトを取得するには、以下のような構文があるということ。
          -.getAllDescendants(オプション);
          -.getChildren(オプション);
          -.search(クエリー,オプション);
          -.getChildByName(名前);

   オプション、クエリーというのが何なのかはまだ分からないので、とりあえず、
   ”.getChildByName(名前)”を選ぶことにします。



■これが正解

 
   そうこうしながら、やっとこさ行き着いたスクリプトがこちら。


   思った通り、これでいけました!

   でも、これだとまだ冗長な気がするし、「createWebPage()に続けて・・・」という説明に
   当てはまらないような。
   
   で、結果的に行きついた、恐らく100点満点のスクリプトがこちら。
   (随分引っ張ってしまってごめんなさいね~~。)





■動作テスト

   さて、では上記のスクリプトを動かしてみるとどうなるかしら。
   
   フォームから入力・送信→フォームの台帳に反映されるまでは、昨日と一緒なので割愛。
   そして、Googleサイトに戻って更新してみると・・・・・・

   「自伝を書く (jiden)」の直下にサブページとして、ページが追加されています~~~♪


   
   Googleサイトのデフォルト機能で、「サブページリスト」を挿入しているので、
   そのリストにもきちんと反映されています。




今日はここまで。


■予告編

   明日は、先日の課題②ページ名を自動生成させるというのを解決すべく、
   頑張ってみようと思います。