Loading

ブログ - flatdata [0.15d] を試してみた

flatdata [0.15d] を試してみた

カテゴリ : 
Customize/Hackメモ » その他
執筆 : 
masa 2008/7/13
FlatData(フラットデータ)は、XOOPS2JP / XOOPS Cube Legacy で動作する小規模簡易データベースモジュール。
smarty プラグイン "flatdata" が追加されていて、ほかのモジュールにデータを埋め込むことができているところが特徴。

いろいろなことができそうだが、とりあえずニーズの多い「ユーザ情報の追加」を試してみた。

参考にしたのは、「新規登録時にアカウント情報にデータを追加する」
(http://flatdata.neverever.xrea.jp/modules/docs/index.php?content_id=5)

■事前準備
(1)インストール
zip アーカイブを展開。モジュールを通常通りインストールする。
(2)smarty プラグインの配置
zip アーカイブの
flatdata/EXTRA/html/class/smarty/plugins/function.flatdata.php を
html/class/smarty/plugins/ の下に配置する。
(3)プリロードの配置
flatdata/EXTRA/html/preload/FlatdataEmbeddataInsert.class.php を
html/preload/ の下に配置する。

これで準備完了

■設定
(1)データ項目の準備
まずは管理画面の「フラットデータ」−「項目管理」からデータ項目を追加する。

とりあえず、都道府県、住所、電話番号といった項目を追加した。

(2)新規登録画面テンプレートへの埋め込み
次に、管理画面の 「altsys」−「テンプレート管理」から「ユーザモジュール」の以下のテンプレートを修正する。
user_register_form.html
user_register_confirm.html
それぞれ、適当な場所に次の一行を追加するだけだ。
<{flatdata fd_dir=flatdata embed_dir=register.php item_field=uid item_id=0 mode=form}>

修正後は次のようになる。
user_register_form.html
@@ -57,11 +57,12 @@
       <label><{xoops_input type=checkbox name=agree value=1 default=$actionForm->get('agree')}>
     <{$smarty.const._MD_USER_MESSAGE_IAGREE}></label>
     </td>
   </tr>
   <{/if}>
+<{flatdata fd_dir=flatdata embed_dir=register.php item_field=uid item_id=0 mode=form}>
   <tr>
     <td colspan="2" class="foot" style="text-align:center;">
       <input type="submit" value="<{$smarty.const._MD_USER_LANG_SUBMIT}>" />
     </td>
   </tr>
 </table>
 </form>

user_register_confirm.html
@@ -11,12 +11,13 @@
     <td class="<{cycle values="odd,even"}>">
       <{$registForm->get('email')|xoops_escape}>
     </td>
   </tr>
+<{flatdata fd_dir=flatdata embed_dir=register.php item_field=uid item_id=0 mode=form}>
   <tr>
     <td colspan="2" class="foot" style="text-align:center;">
       <input type="submit" value="<{$smarty.const._MD_USER_LANG_FINISH}>" />
       <input type="button" name="confirm_back" value="<{$smarty.const._CANCEL}>"
          onclick="java script:history.go(-1);" />
     </td>
   </tr>
 </table>
 </form>

たったこれだけで、ユーザ登録画面に項目を追加することができる。
ちょっと気になるのは、確認画面の表示が readonly ではあるが、テキストボックスのままだということだ。

これを少し変更してみよう。
続く...
  • トラックバック (0)
  • 閲覧 (14743)