「Zoho Creator」の編集履歴(バックアップ)一覧はこちら
「Zoho Creator」(2009/10/20 (火) 15:44:11) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
PageLastUpdate:&date()/today:&counter(today)/yesterday:&counter(yesterday)
#contents()
*&aname(複数行テキストボックスをリストに変換/Delugeスクリプトで改行コードを使う){複数行テキストボックスをリストに変換/Delugeスクリプトで改行コードを使う}
複数行テキストボックスを行ごとに分割してリストにしようとしたら、改行コードがわからなくて困った。ヘルプにもどこにも書いてないくせに\nでできる。
#highlight(){MyList = textboxstring.toList("\n")}
*&aname(フォームの登録ボタンを非表示にする自作関数){フォームの登録ボタンを非表示にする自作関数}
「メモの追加」でplaintextフィールドを追加して、何か文字列を表示させた後にこの関数の戻り値を連結するとSubmitとResetのボタンを消せます。
**関数
#highlight(){{string StyleOfFormButtonHidden()
{
return "<style type=\"text/css\">.zc-formbutton {visibility: hidden;}</style>";
} }}
**使い方
plaintextフィールドMyStyleのある状態で
#highlight(){
MyStyle = "すでに登録されています" + StyleOfFormButtonHidden();}
という感じで。
*&aname(「メモ」フィールドにstyleタグを設定して入力欄の幅を広げる){「メモ」フィールドにstyleタグを設定して入力欄の幅を広げる}
2009/07/29
Zoho Creatorはフォームのデザインを変更することができません。
普通のフォームコントロールではそれほど不自由しないんですが、textareaだけは多量に入力したいときに狭すぎます。
いろいろこねくり回した結果、メモフィールドにstyleタグを指定して幅を広げることに成功しました。
#highlight(){{MyStyle
(
type = plaintext
value = "<p>xyz</p><style type=\"text/css\">textarea.zc-textarea { width:100% }</style>\n"
)}}
ポップアップする入力画面の場合は外側のテーブルにもstyle設定してやらないとダメです。
table.dialog-borderかな。クラス名を拾うのはFirebugを使えばなんとか。
divで構成してくれて、cssでいじれるようにしてくれればいいだけなんだけどな。
*&aname(Zoho CreatorでGoogle App Engine用のPythonソースが生成可能に!){Zoho CreatorでGoogle App Engine用のPythonソースが生成可能に!}
2009/06/24
[[Zoho Creator の Google App Engine へのデプロイ>http://blogs.zoho.jp/link/Zoho+Creator+%E3%81%AE+Google+App+Engine+%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]]
すげぇなZoho。しかしビジネスモデルとして競合しないのかな?
Zoho Creatorなら有料になるところをGoogle App Engineに乗り換えちゃえば無料になるんじゃないかなあ。
まあCreatorでしかできない機能もあるからいいのか。それとも何か仕掛けがあるのか。
しかしいままで気がつかなかった。
ほんとにここは宣伝がヘタクソだなあ。
*&aname(いろいろとバージョンアップしてるっぽい){いろいろとバージョンアップしてるっぽい}
2008/10/23
しばらくいじらないうちに、いろいろバージョンアップしていた。
デザイン変更できたり、スクリプトでレコードの追加や削除が出来たり。
権限系もスクリプトからいじれるようになっているので、これでいろんな認証系アプリケーションが組めるなあ。
*&aname(Zoho Creatorのバグ・個人的要望){Zoho Creatorのバグ・個人的要望}
2008/05/28時点
-この記事は「Zoho Creatorは悪い」という内容ではありません。管理人はZoho Creatorを素晴らしいサービスだと思って、実際に業務で使っています。
-バグを明記し、回避手段のあるものについては回避手段を明記することで、他のユーザーが悩む時間を減らすことが目的です。
-バグと確定していなくても引っかかったらリストにいれます。
-バグではないけれど要望も書くことで、できることできないことを明確にします。
-「こうすればOK!」とか「それはできるよ!」とか「こういうのも欲しい!」というネタがあればコメントで教えてください~。
#table_edit(Zoho Creator/BugAndWish,vsize1=1,vsize2=10,vsize3=1,vsize4=10)
#comment_num2(size=40,vsize=3)
----
*&aname(レコード削除時のリレーション整合性チェック){レコード削除時のリレーション整合性チェック}
2008/05/25
フォームAがフォームBからルックアップされているとします。
フォームBに値が存在するレコードをフォームAから消してしまうと、ルックアップされているフィールドは空白になってしまいます。
コレ、同じ値を持つレコードを新しく作ってもダメなんですよね。内部的にはID列で記録されているようです。
フォームBに値がある間はフォームAの当該レコードを削除できないようにしてあげましょう。
私はID列とは別に、必ず一意性のあるフィールドをつくるようにしているので、下記はその前提で書いています。
フォームAの[フォームのアクション]-[削除時]-[検証]に下記コードを設定します。
#highlight(){{
if (count(FormB [Key_A == input.Key_A]) > 0)
{
alert Key_A + "はフォームBに存在するので削除できません。";
cancel delete;
} }}
これだけです。
&font(b,red){count関数}はガルーダスクリプトのヘルプには記載されているんですが、スクリプトビルダーでは探せません。
最初はforeachループ回してましたよ・・・たぶん内部的には最適化されていると思うので、データが増えても大丈夫、かな?
*&aname(インフォメーションページを作成する){インフォメーションページを作成する}
2008/05/25
Zoho Creatorはアプリケーションを開くといきなりフォームが表示されてしまいます。
ユーザーに「ようこそ」のようなメッセージとか、アプリケーションの使い方を説明するインフォメーションページが欲しいですよね。
&font(b,red,120%){「メモの追加」コントロールだけを置いたフォームは[送信][リセット]などが表示されません。}
サポートにメールをしたら教えてくれましたが、こんなの気がつかないってw
これと「メモの追加」コントロールにはHTMLがフルにかけることを利用して、インフォメーションページを作成することにします。
「日本語が消えてしまう」への対応と、いちいちソースを編集する手間を軽減するために、「インフォメーション登録」フォームを作成しましょう。
1.InformationListフォームを作成します。
#highlight(){{form InformationList
{
displayname = "インフォメーションの登録"
success message = "データが追加されました!"
Description
(
displayname = "内容"
type = textarea
)
Visible
(
displayname = "表示"
type = checkbox
defaultvalue = false
)
} }}
2.これだけだと追加用のフォームができるだけなので、適当にメンテナンス用のビューを作成します。
3.ユーザーにインフォメーションを表示させるための「インフォメーション」フォームをつくります。
#highlight(){{form Information
{
displayname = "インフォメーション"
Description
(
type = plaintext
value = "<br />"
)
on add
{
on load
{
for each record in InformationList [Visible]
{
input.Description = record.Description;
}
}
}
} }}
4.「インフォメーション」フォームをレイアウトで一番上に配置し、公開もしくはユーザーに向けて共有します。
5.これで、InformationListに登録したレコードのうち「表示」をonにしたインフォメーションのDescriptionフィールドが、ユーザーがアプリケーションを開いた最初に表示されるようになります。
HTMLが書ける人なら、テーブルでも何でも思うように表示できる、拡張性の高いインフォメーションページになりましたw
もしかしたらZoho Creatorのフォームとか、Zoho WikiとかZoho Writerとか、HTML内に表示できちゃうんじゃないだろうか。
……あとで試そう。
**追記
-検証した結果、スクリプトは無効化されるがiframeは表示できたw
-<Hx>タグはZoho Creatorでは使っていないようなので<H1>からスタートしてよい。
*&aname(単票フォームにURLで指定した画像を表示する){単票フォームにURLで指定した画像を表示する}
2008/05/25
下記の「メモの追加」コントロールを使って、<img>タグをセットしちゃいます。
+「一行」コントロールで[ImageURL]を作成。※URLコントロールで作成しないのはイベントが使えないためです。
+「メモの追加」コントロールで[Image]を作成。
+[フォームのアクション]-[追加時]-[読込時]と[フィードのアクション]-[ImageURL]-[ユーザー入力時」に下記のように入力。
//ImageURLニ入力されていたら画像表示
#highlight(java){{
if ((input.ImageURL == null) || (input.ImageURL == ""))
{
input.Image = "No Image.";
}
else
{
input.Image = "<img src=" + input.ImageURL + " />";
} }}
まあきちんとやるならURLの検証とかいるんだけど、とりあえずURLが画像じゃなければ×が表示されるのでいいか。
ユーザーの入力をそのままHTMLに吐き出すのでXSSが心配。いちおうzohoとしては対策しているらしい。
タグ荒らしは簡単にできるかも。めんどくさいので検証して無い。ユーザー限定しての公開だから荒らし関係ないし。
使用は自己責任で。
*&aname(「メモの追加」コントロールはHTMLをそのまま表示できる){「メモの追加」コントロールはHTMLをそのまま表示できる}
2008/05/25
&font(b,red,120%){実は「メモの追加」コントロールは、&strike(){X}HTMLをそのまま書くことができます。}
タグも無制限に使えます。スクリプトはまだ試してませんが、もしかしたら使えるかもしれません。
ただしリストには表示されません。
「メモの追加」コントロールは2008/05/25現在、「日本語環境で入力した内容が消えることがある」というバグがあるようです。
まあコードで設定する分には関係ないバグなので、安心して使いましょう。
いまのとことZoho Creatorは<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">で出力されています。
*注意事項
管理人がハマった事例
-フォームAを元にしたビューを消さずにフォームAを消したら、ビューを消すことができなくなった。&br()おまけにスクリプトの出力もできなくなってお手上げに。&br()おそらくまだユーザーだけでは処理できないのでサポートに頼むしかなさそう。
FAQの[[障害情報>http://zohocreatorfaq.wiki.zoho.com/%E9%9A%9C%E5%AE%B3%E6%83%85%E5%A0%B1.html]]に載ってた。
障害情報というのは名前がよくないな。ネットワーク障害やサービス停止を連想する。バグと書いたほうが伝わりやすい。
***2008/05/23追記
フォームで使用中の関数を削除しても同様の状態に陥る。
障害情報には下記のようにあるが、「アクションなし」など関係なしに、オブジェクトの削除は関連コードをすべて削除してからに統一したほうがよい。
#blockquote(){■スクリプト画面がひらけません(エラーが表示): スクリプト画面を開こうとすると、「TypeError: xml has no properties」というエラーが表示され、スクリプトを開けないという動作障害が報告されています。
アプリケーションの構造上の矛盾が生じた際に、エラーが表示されスクリプトが開けなくなる場合があります。
原因として、スクリプトにおいて参照(設定)されているフィールドを、何らかの形で削除してしまい、フォーム上に存在しないなどの矛盾が生じていることが考えられます。
本来、スクリプトで参照(設定)されているフィールドを、削除しようとすると、エラーが表示されて削除ができない仕様になっていて、構造上の矛盾を回避しています。
ただし、スクリプトの「アクションなし」画面においては、この仕様が設定されていませんでした。(2008年4月2日現在)
現在、このバグについては修正対応中です。}
苦しいのは、オブジェクトを名前ではなく「オブジェクト」として管理しているようで、同じ名前のフォームや関数を作っても、関連性が復帰されないところ。
***2008/05/24追記
関数の削除についてはエラーは表示されるものの、画面にボタンが残るので、それをクリックするときれいに消えたみたい。
なんにせよ、アプリケーションをスクリプトとしてこまめに保存する&データのある状態ならバックアップとってから修正することが必須。
***2008/05/24追記
どうも管理者でログオンしたときと共有ユーザーでログオンしたときで微妙に動作が異なる。
スクリプトのon editでhideにしたフィールドが表示の瞬間に一瞬表示されるので「マズイな」と思ったら、どうやら管理者じゃないと表示されない?
もしくは管理者のときはフィルタとか削除の表示も多いので、処理に時間がかかるとhideが一瞬見えるのかも。
もしそうだとすると、zoho creatorのhideは重要な秘匿フィールドには使えないということになる。
>&font(b,red){結論:管理者で表示するとフォームで「このフィールドを非表示にする」がチェックされていても表示される。&br()だからスクリプトでhideしても一瞬見える。&br()管理者以外のアカウントでは表示されない。}
これ、わかりやすいところに明記しておかないと、結構ハマる人多いと思うけどなぁ・・・
**価格について
いったんとんでもない金額(1ユーザー1500円/月)で発表されたが、あまりにも不評で撤回する模様。
→Zohoブログ[[Zoho Creator の価格設定の “戦略上の失敗” と 教訓>http://blogs.zoho.jp/link/+Zoho+Creator+%E3%81%AE%E4%BE%A1%E6%A0%BC%E8%A8%AD%E5%AE%9A%E3%81%AE+%E2%80%9C%E6%88%A6%E7%95%A5%E4%B8%8A%E3%81%AE%E5%A4%B1%E6%95%97%E2%80%9D+%E3%81%A8+%E6%95%99%E8%A8%93]]
実際はまだ価格設定作業中で、おそらく2008/07/01の有料化より前に再設定が発表されそう。
***2008/05/28
公式発表ではないが、価格表は掲示されました。
http://zohocreatorfaq.wiki.zoho.com/%E4%BE%A1%E6%A0%BC%E8%A8%AD%E5%AE%9A%E3%81%AE%E6%94%B9%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
***無料版/個人向け有料版
-5つのアプリケーションが無料
-データ容量が合計200MB
-一定時間内に処理できる情報量が制限される
-共有ユーザ制限なし
-容量や処理量を増加させるために有料オプションあり
***ビジネス版
-基本は無料版と同じ
-管理機能あり
-価格はユーザー数によって決まる。検討中だが1ユーザー5ドル、100ユーザー以上で3ドルにディスカウント。
ビジネス用途でも、ユーザーが自分でID登録してくれてデータ量が多くなければ無料版でよさそうです。
***正式価格発表?
2008/05/30
まだ日本でマスコミ発表とかはされていませんが、現在ホームの一番上のバーからアップグレードができるようになってますね。
http://creator.zoho.com/whyupgrade.jsp#freeusers
これで計算すると100ユーザーで30,000/月。これなら現実的かな。
クレジットカード以外での決済はできるのかな?請求書出してくれると社内でラクなんだけど。
・・・日本での価格はFAQに載ってるものになるとすると、日本円換算で1ドル150円はぼり過ぎじゃね?
**とりあえずここは読んでおくべき
-[[Zoho Creator チュートリアル>http://writer.zoho.com/public/jpzoho/Tutorial_Creator_Index]]
-[[Zoho Creator FAQ>http://zohocreatorfaq.wiki.zoho.com/]]
-英語だけどフォーラムもある → [[http://forums.zoho.com/creatorhome.php>http://forums.zoho.com/creatorhome.php]]
**アプリケーションをガルーダスクリプトとして吐き出す
全体構造を見渡したいときにコードを印刷できるとラク。
>アプリケーションのアクセスモード画面で右上の[アプリケーションのコピー]→[スクリプトとして保存]
最初デザインモードで探していて時間を無駄にした。
**プログラマのためのZoho Creatorを理解するコツ
***フォーム名は「ユーザー向けの追加フォームの表示名」として扱い、&br()スクリプト向けに正しいオブジェクト名をつける
Zoho Creatorで最初にとまどうのは「テーブルデザイン」と「レコードの新規登録用フォーム」を作る作業が一体になっているところ。
データベースを設計する思想ではじめると、つい「○○テーブル」とか「○○台帳」のようにフォーム名をつけてしまいそうになるが、Zoho Creatorの場合は「○○の登録」のような名前にしたほうが、後からアプリケーションとしての見通しはよくなる。
その代わり、スクリプトを書くのが前提であれば、フォームを作成してすぐに
[スクリプト]タブ→←メニューの[フォームの定義]内の[アクションあり]を選んでスクリプト画面を開き、
#highlight(java){{
form form1
{
} }}
となっているところを
#highlight(java){{
form ExampleTable
{
} }}のように、テーブルとしての「正しい名前」をつけてやる。
アプリケーションを作りこんでからだと変更できなくなることがある。
同様に、フィールドを追加した後もこの画面でフィールド名を「正しい名前」でつけてやることで、後でアクションを記述するときに見通しがよくなる。
***関数フィールドはレコードを保存するときに計算される。ビューで動的に表示させることはできない。
最初関数フィールドって表示時に毎回計算してくれるのかと思ったらダメでした。
動的に表示できると便利なんだけどな・・・
**今後の予定
とりあえずいままで組み込めた下記の機能を解説予定
-ユーザーの所属組織による権限判定
-登録したレコードのみ編集可能にする
**使っていそうな人
http://blog.aodag.jp/2008/02/zoho-creator.html
http://jutememo.blogspot.com/2008/02/zoho-creator.html
http://mz80k.wiki.zoho.com/Zoho-Creator.html
http://ameblo.jp/privia-man/entry-10082307985.html
上の方の書いた解説ページ → http://www.geocities.jp/kenjimatuzaki/Zoho/
http://ameblo.jp/privia-man/entry-10081526484.html
-2ch現行スレ まだ認知度低い。&br()http://pc11.2ch.net/test/read.cgi/esite/1208823869/
----
*履歴とか
2008/05/23 スクリプトのヘルプが日本語化されていないのとオブジェクト構造図がないのでいろいろと手探り。&br()
幸いサポートがよいので、そこで教わったTIPSを書いていこうと思う。
2008/05/25 最初zohoだけで1ページかと思ってたけど、Zoho Creatorで結構書くことあるので専用ページに変更。
2008/05/28 バグ&要望を編集可能テーブルにしてみる。
----
*comment
このページの記述で聞きたいこととか間違ってることとかありましたらコメントを。
#comment_num2
----
PageLastUpdate:&date()/today:&counter(today)/yesterday:&counter(yesterday)
#contents()
*&aname(複数行テキストボックスをリストに変換/Delugeスクリプトで改行コードを使う){複数行テキストボックスをリストに変換/Delugeスクリプトで改行コードを使う}
2009/10/18
複数行テキストボックスを行ごとに分割してリストにしようとしたら、改行コードがわからなくて困った。ヘルプにもどこにも書いてないくせに\nでできる。
#highlight(){MyList = textboxstring.toList("\n")}
*&aname(フォームの登録ボタンを非表示にする自作関数){フォームの登録ボタンを非表示にする自作関数}
「メモの追加」でplaintextフィールドを追加して、何か文字列を表示させた後にこの関数の戻り値を連結するとSubmitとResetのボタンを消せます。
**関数
#highlight(){{string StyleOfFormButtonHidden()
{
return "<style type=\"text/css\">.zc-formbutton {visibility: hidden;}</style>";
} }}
**使い方
plaintextフィールドMyStyleのある状態で
#highlight(){
MyStyle = "すでに登録されています" + StyleOfFormButtonHidden();}
という感じで。
*&aname(「メモ」フィールドにstyleタグを設定して入力欄の幅を広げる){「メモ」フィールドにstyleタグを設定して入力欄の幅を広げる}
2009/07/29
Zoho Creatorはフォームのデザインを変更することができません。
普通のフォームコントロールではそれほど不自由しないんですが、textareaだけは多量に入力したいときに狭すぎます。
いろいろこねくり回した結果、メモフィールドにstyleタグを指定して幅を広げることに成功しました。
#highlight(){{MyStyle
(
type = plaintext
value = "<p>xyz</p><style type=\"text/css\">textarea.zc-textarea { width:100% }</style>\n"
)}}
ポップアップする入力画面の場合は外側のテーブルにもstyle設定してやらないとダメです。
table.dialog-borderかな。クラス名を拾うのはFirebugを使えばなんとか。
divで構成してくれて、cssでいじれるようにしてくれればいいだけなんだけどな。
*&aname(Zoho CreatorでGoogle App Engine用のPythonソースが生成可能に!){Zoho CreatorでGoogle App Engine用のPythonソースが生成可能に!}
2009/06/24
[[Zoho Creator の Google App Engine へのデプロイ>http://blogs.zoho.jp/link/Zoho+Creator+%E3%81%AE+Google+App+Engine+%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]]
すげぇなZoho。しかしビジネスモデルとして競合しないのかな?
Zoho Creatorなら有料になるところをGoogle App Engineに乗り換えちゃえば無料になるんじゃないかなあ。
まあCreatorでしかできない機能もあるからいいのか。それとも何か仕掛けがあるのか。
しかしいままで気がつかなかった。
ほんとにここは宣伝がヘタクソだなあ。
*&aname(いろいろとバージョンアップしてるっぽい){いろいろとバージョンアップしてるっぽい}
2008/10/23
しばらくいじらないうちに、いろいろバージョンアップしていた。
デザイン変更できたり、スクリプトでレコードの追加や削除が出来たり。
権限系もスクリプトからいじれるようになっているので、これでいろんな認証系アプリケーションが組めるなあ。
*&aname(Zoho Creatorのバグ・個人的要望){Zoho Creatorのバグ・個人的要望}
2008/05/28時点
-この記事は「Zoho Creatorは悪い」という内容ではありません。管理人はZoho Creatorを素晴らしいサービスだと思って、実際に業務で使っています。
-バグを明記し、回避手段のあるものについては回避手段を明記することで、他のユーザーが悩む時間を減らすことが目的です。
-バグと確定していなくても引っかかったらリストにいれます。
-バグではないけれど要望も書くことで、できることできないことを明確にします。
-「こうすればOK!」とか「それはできるよ!」とか「こういうのも欲しい!」というネタがあればコメントで教えてください~。
#table_edit(Zoho Creator/BugAndWish,vsize1=1,vsize2=10,vsize3=1,vsize4=10)
#comment_num2(size=40,vsize=3)
----
*&aname(レコード削除時のリレーション整合性チェック){レコード削除時のリレーション整合性チェック}
2008/05/25
フォームAがフォームBからルックアップされているとします。
フォームBに値が存在するレコードをフォームAから消してしまうと、ルックアップされているフィールドは空白になってしまいます。
コレ、同じ値を持つレコードを新しく作ってもダメなんですよね。内部的にはID列で記録されているようです。
フォームBに値がある間はフォームAの当該レコードを削除できないようにしてあげましょう。
私はID列とは別に、必ず一意性のあるフィールドをつくるようにしているので、下記はその前提で書いています。
フォームAの[フォームのアクション]-[削除時]-[検証]に下記コードを設定します。
#highlight(){{
if (count(FormB [Key_A == input.Key_A]) > 0)
{
alert Key_A + "はフォームBに存在するので削除できません。";
cancel delete;
} }}
これだけです。
&font(b,red){count関数}はガルーダスクリプトのヘルプには記載されているんですが、スクリプトビルダーでは探せません。
最初はforeachループ回してましたよ・・・たぶん内部的には最適化されていると思うので、データが増えても大丈夫、かな?
*&aname(インフォメーションページを作成する){インフォメーションページを作成する}
2008/05/25
Zoho Creatorはアプリケーションを開くといきなりフォームが表示されてしまいます。
ユーザーに「ようこそ」のようなメッセージとか、アプリケーションの使い方を説明するインフォメーションページが欲しいですよね。
&font(b,red,120%){「メモの追加」コントロールだけを置いたフォームは[送信][リセット]などが表示されません。}
サポートにメールをしたら教えてくれましたが、こんなの気がつかないってw
これと「メモの追加」コントロールにはHTMLがフルにかけることを利用して、インフォメーションページを作成することにします。
「日本語が消えてしまう」への対応と、いちいちソースを編集する手間を軽減するために、「インフォメーション登録」フォームを作成しましょう。
1.InformationListフォームを作成します。
#highlight(){{form InformationList
{
displayname = "インフォメーションの登録"
success message = "データが追加されました!"
Description
(
displayname = "内容"
type = textarea
)
Visible
(
displayname = "表示"
type = checkbox
defaultvalue = false
)
} }}
2.これだけだと追加用のフォームができるだけなので、適当にメンテナンス用のビューを作成します。
3.ユーザーにインフォメーションを表示させるための「インフォメーション」フォームをつくります。
#highlight(){{form Information
{
displayname = "インフォメーション"
Description
(
type = plaintext
value = "<br />"
)
on add
{
on load
{
for each record in InformationList [Visible]
{
input.Description = record.Description;
}
}
}
} }}
4.「インフォメーション」フォームをレイアウトで一番上に配置し、公開もしくはユーザーに向けて共有します。
5.これで、InformationListに登録したレコードのうち「表示」をonにしたインフォメーションのDescriptionフィールドが、ユーザーがアプリケーションを開いた最初に表示されるようになります。
HTMLが書ける人なら、テーブルでも何でも思うように表示できる、拡張性の高いインフォメーションページになりましたw
もしかしたらZoho Creatorのフォームとか、Zoho WikiとかZoho Writerとか、HTML内に表示できちゃうんじゃないだろうか。
……あとで試そう。
**追記
-検証した結果、スクリプトは無効化されるがiframeは表示できたw
-<Hx>タグはZoho Creatorでは使っていないようなので<H1>からスタートしてよい。
*&aname(単票フォームにURLで指定した画像を表示する){単票フォームにURLで指定した画像を表示する}
2008/05/25
下記の「メモの追加」コントロールを使って、<img>タグをセットしちゃいます。
+「一行」コントロールで[ImageURL]を作成。※URLコントロールで作成しないのはイベントが使えないためです。
+「メモの追加」コントロールで[Image]を作成。
+[フォームのアクション]-[追加時]-[読込時]と[フィードのアクション]-[ImageURL]-[ユーザー入力時」に下記のように入力。
//ImageURLニ入力されていたら画像表示
#highlight(java){{
if ((input.ImageURL == null) || (input.ImageURL == ""))
{
input.Image = "No Image.";
}
else
{
input.Image = "<img src=" + input.ImageURL + " />";
} }}
まあきちんとやるならURLの検証とかいるんだけど、とりあえずURLが画像じゃなければ×が表示されるのでいいか。
ユーザーの入力をそのままHTMLに吐き出すのでXSSが心配。いちおうzohoとしては対策しているらしい。
タグ荒らしは簡単にできるかも。めんどくさいので検証して無い。ユーザー限定しての公開だから荒らし関係ないし。
使用は自己責任で。
*&aname(「メモの追加」コントロールはHTMLをそのまま表示できる){「メモの追加」コントロールはHTMLをそのまま表示できる}
2008/05/25
&font(b,red,120%){実は「メモの追加」コントロールは、&strike(){X}HTMLをそのまま書くことができます。}
タグも無制限に使えます。スクリプトはまだ試してませんが、もしかしたら使えるかもしれません。
ただしリストには表示されません。
「メモの追加」コントロールは2008/05/25現在、「日本語環境で入力した内容が消えることがある」というバグがあるようです。
まあコードで設定する分には関係ないバグなので、安心して使いましょう。
いまのとことZoho Creatorは<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">で出力されています。
*注意事項
管理人がハマった事例
-フォームAを元にしたビューを消さずにフォームAを消したら、ビューを消すことができなくなった。&br()おまけにスクリプトの出力もできなくなってお手上げに。&br()おそらくまだユーザーだけでは処理できないのでサポートに頼むしかなさそう。
FAQの[[障害情報>http://zohocreatorfaq.wiki.zoho.com/%E9%9A%9C%E5%AE%B3%E6%83%85%E5%A0%B1.html]]に載ってた。
障害情報というのは名前がよくないな。ネットワーク障害やサービス停止を連想する。バグと書いたほうが伝わりやすい。
***2008/05/23追記
フォームで使用中の関数を削除しても同様の状態に陥る。
障害情報には下記のようにあるが、「アクションなし」など関係なしに、オブジェクトの削除は関連コードをすべて削除してからに統一したほうがよい。
#blockquote(){■スクリプト画面がひらけません(エラーが表示): スクリプト画面を開こうとすると、「TypeError: xml has no properties」というエラーが表示され、スクリプトを開けないという動作障害が報告されています。
アプリケーションの構造上の矛盾が生じた際に、エラーが表示されスクリプトが開けなくなる場合があります。
原因として、スクリプトにおいて参照(設定)されているフィールドを、何らかの形で削除してしまい、フォーム上に存在しないなどの矛盾が生じていることが考えられます。
本来、スクリプトで参照(設定)されているフィールドを、削除しようとすると、エラーが表示されて削除ができない仕様になっていて、構造上の矛盾を回避しています。
ただし、スクリプトの「アクションなし」画面においては、この仕様が設定されていませんでした。(2008年4月2日現在)
現在、このバグについては修正対応中です。}
苦しいのは、オブジェクトを名前ではなく「オブジェクト」として管理しているようで、同じ名前のフォームや関数を作っても、関連性が復帰されないところ。
***2008/05/24追記
関数の削除についてはエラーは表示されるものの、画面にボタンが残るので、それをクリックするときれいに消えたみたい。
なんにせよ、アプリケーションをスクリプトとしてこまめに保存する&データのある状態ならバックアップとってから修正することが必須。
***2008/05/24追記
どうも管理者でログオンしたときと共有ユーザーでログオンしたときで微妙に動作が異なる。
スクリプトのon editでhideにしたフィールドが表示の瞬間に一瞬表示されるので「マズイな」と思ったら、どうやら管理者じゃないと表示されない?
もしくは管理者のときはフィルタとか削除の表示も多いので、処理に時間がかかるとhideが一瞬見えるのかも。
もしそうだとすると、zoho creatorのhideは重要な秘匿フィールドには使えないということになる。
>&font(b,red){結論:管理者で表示するとフォームで「このフィールドを非表示にする」がチェックされていても表示される。&br()だからスクリプトでhideしても一瞬見える。&br()管理者以外のアカウントでは表示されない。}
これ、わかりやすいところに明記しておかないと、結構ハマる人多いと思うけどなぁ・・・
**価格について
いったんとんでもない金額(1ユーザー1500円/月)で発表されたが、あまりにも不評で撤回する模様。
→Zohoブログ[[Zoho Creator の価格設定の “戦略上の失敗” と 教訓>http://blogs.zoho.jp/link/+Zoho+Creator+%E3%81%AE%E4%BE%A1%E6%A0%BC%E8%A8%AD%E5%AE%9A%E3%81%AE+%E2%80%9C%E6%88%A6%E7%95%A5%E4%B8%8A%E3%81%AE%E5%A4%B1%E6%95%97%E2%80%9D+%E3%81%A8+%E6%95%99%E8%A8%93]]
実際はまだ価格設定作業中で、おそらく2008/07/01の有料化より前に再設定が発表されそう。
***2008/05/28
公式発表ではないが、価格表は掲示されました。
http://zohocreatorfaq.wiki.zoho.com/%E4%BE%A1%E6%A0%BC%E8%A8%AD%E5%AE%9A%E3%81%AE%E6%94%B9%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
***無料版/個人向け有料版
-5つのアプリケーションが無料
-データ容量が合計200MB
-一定時間内に処理できる情報量が制限される
-共有ユーザ制限なし
-容量や処理量を増加させるために有料オプションあり
***ビジネス版
-基本は無料版と同じ
-管理機能あり
-価格はユーザー数によって決まる。検討中だが1ユーザー5ドル、100ユーザー以上で3ドルにディスカウント。
ビジネス用途でも、ユーザーが自分でID登録してくれてデータ量が多くなければ無料版でよさそうです。
***正式価格発表?
2008/05/30
まだ日本でマスコミ発表とかはされていませんが、現在ホームの一番上のバーからアップグレードができるようになってますね。
http://creator.zoho.com/whyupgrade.jsp#freeusers
これで計算すると100ユーザーで30,000/月。これなら現実的かな。
クレジットカード以外での決済はできるのかな?請求書出してくれると社内でラクなんだけど。
・・・日本での価格はFAQに載ってるものになるとすると、日本円換算で1ドル150円はぼり過ぎじゃね?
**とりあえずここは読んでおくべき
-[[Zoho Creator チュートリアル>http://writer.zoho.com/public/jpzoho/Tutorial_Creator_Index]]
-[[Zoho Creator FAQ>http://zohocreatorfaq.wiki.zoho.com/]]
-英語だけどフォーラムもある → [[http://forums.zoho.com/creatorhome.php>http://forums.zoho.com/creatorhome.php]]
**アプリケーションをガルーダスクリプトとして吐き出す
全体構造を見渡したいときにコードを印刷できるとラク。
>アプリケーションのアクセスモード画面で右上の[アプリケーションのコピー]→[スクリプトとして保存]
最初デザインモードで探していて時間を無駄にした。
**プログラマのためのZoho Creatorを理解するコツ
***フォーム名は「ユーザー向けの追加フォームの表示名」として扱い、&br()スクリプト向けに正しいオブジェクト名をつける
Zoho Creatorで最初にとまどうのは「テーブルデザイン」と「レコードの新規登録用フォーム」を作る作業が一体になっているところ。
データベースを設計する思想ではじめると、つい「○○テーブル」とか「○○台帳」のようにフォーム名をつけてしまいそうになるが、Zoho Creatorの場合は「○○の登録」のような名前にしたほうが、後からアプリケーションとしての見通しはよくなる。
その代わり、スクリプトを書くのが前提であれば、フォームを作成してすぐに
[スクリプト]タブ→←メニューの[フォームの定義]内の[アクションあり]を選んでスクリプト画面を開き、
#highlight(java){{
form form1
{
} }}
となっているところを
#highlight(java){{
form ExampleTable
{
} }}のように、テーブルとしての「正しい名前」をつけてやる。
アプリケーションを作りこんでからだと変更できなくなることがある。
同様に、フィールドを追加した後もこの画面でフィールド名を「正しい名前」でつけてやることで、後でアクションを記述するときに見通しがよくなる。
***関数フィールドはレコードを保存するときに計算される。ビューで動的に表示させることはできない。
最初関数フィールドって表示時に毎回計算してくれるのかと思ったらダメでした。
動的に表示できると便利なんだけどな・・・
**今後の予定
とりあえずいままで組み込めた下記の機能を解説予定
-ユーザーの所属組織による権限判定
-登録したレコードのみ編集可能にする
**使っていそうな人
http://blog.aodag.jp/2008/02/zoho-creator.html
http://jutememo.blogspot.com/2008/02/zoho-creator.html
http://mz80k.wiki.zoho.com/Zoho-Creator.html
http://ameblo.jp/privia-man/entry-10082307985.html
上の方の書いた解説ページ → http://www.geocities.jp/kenjimatuzaki/Zoho/
http://ameblo.jp/privia-man/entry-10081526484.html
-2ch現行スレ まだ認知度低い。&br()http://pc11.2ch.net/test/read.cgi/esite/1208823869/
----
*履歴とか
2008/05/23 スクリプトのヘルプが日本語化されていないのとオブジェクト構造図がないのでいろいろと手探り。&br()
幸いサポートがよいので、そこで教わったTIPSを書いていこうと思う。
2008/05/25 最初zohoだけで1ページかと思ってたけど、Zoho Creatorで結構書くことあるので専用ページに変更。
2008/05/28 バグ&要望を編集可能テーブルにしてみる。
----
*comment
このページの記述で聞きたいこととか間違ってることとかありましたらコメントを。
#comment_num2
----