Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月23日 at 7:31

1.4.3を見落としてました。
戻るボタン動作確認できました。

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月23日 at 19:56
ありがとうございました。
安心しました。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月23日 at 21:48
すこしだけ、ソースを見せてもらいました。気づいた点

フレームワークではいろいろな定数が用意されていることが多いです。
$_SERVER['HTTP_HOST'] などの もともとのPHPのコードなどは使わないことが多い。
concrete5でもBASE_URLという定数が用意されているようです。
concrete/config/base.php に定義されています。間違ってたらごめんなさい。
参考にされては。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月23日 at 23:09
ありがとうございます。

それは使うべきですね。

それはどこにありましたでしょうか?

フレームワークというより、MVCってのに慣れてないのかも。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月24日 at 15:17
いや、他のブロックを見ているときにすべて大文字のものがあったのでどこかでdefineしているじゃないかなと思って適当に探してたらあった感じ。

MVCに関しての基本は
Model->使用するテーブルの定義・バリデーションの設定。
controller->データ加工・バリデーションの実施・セーブ・メール送信・画面表示以外のものの処理。
view-> 画面表示
もともと、デザイナーがViewを加工し、プログラマーがcontrollerを加工する設計なので、controllerで画面表示のecho、print_rなどをやるとデザイナーに怒られる。
だから、controllerでの表示用オペコード(echo,print_r)はさけなければいけません。


と、僕が読んだ本には書いてありました。(はい、逃げの一手)


一度、画面が白くなったときのソースはいつのバージョンでしたか?
一度ソースを見させてください。
ところで、concrete5のformブロックのmodelはどこにあるんだろう?よくわかりませんでした。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月24日 at 22:57
明日じっくり検討しますが、ひとつだけ。

echoは、view.phpを、echoしているんですよ。

だから、controller.phpでview.phpを無視して出力している訳ではない。
とはいえ、行儀がいいとはいいにくいですね。

このとき正当なMVCの達人ならどう解決するのでしょうかね。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Tomoacさんの作成された機能拡張フォームについて

2011年6月25日 at 12:31
文書ではなかなか説明難しいですね。
view.phpをechoしているのではなく、再度controllerを通ったview.phpを表示していることにならないかなぁ。(永久ループ状態?)

もともとの問題ではheader()が関係しているような気がします。
なぜそのような処理をしているのか不明ですが、その部分を$this->setに変更し、値渡しにするとうまくいくような・・・・やってないからわからないけど。
今日の夜ゆっくり見てみます。
 

ソース変更してみました。

2011年6月26日 at 3:51
controller.phpは get_file_contentsの処理から
if(!$this->noSubmitFormRedirect)の処理までをコメントアウトし
$this->set("post",$post)を追加
view.phpは$_POSTで受けていたものを$postに変更しました。
ファイル添付しましたので確認して下さい。

ここまで作成していただいたので僕の知識で何とかお役に立てればいいのですが・・・
今からテストしてみます。
 

Re: ソース変更してみました。

2011年6月26日 at 13:35
もしかして、set の1行だけですか?
仕組みを教えてくれませんか。

#暑さのせいかPCがこわれましたので、金曜日から再インストールしたりして、さきほどなんとか復活できました。
 

Re: Re: ソース変更してみました。

2011年6月26日 at 15:26
$postの変数の中にすべての情報を集約してありましたので、$this->set一行で解決できました。
controller.phpの$error処理に$this->set('error',$error)というのがあります。それがヒントだったのです。
view.phpの$errorがどこにも定義されていないのにエラーメッセージが入っています。これはcontroller.phpでの$errorの内容をview.phpの$errorで使用できますよという定義をしているからです。
MVCのフレームワークでは$_POSTなどはほぼ使用せず、このようなメソッドが用意されています。viewからcontrollerへの値渡しのときにも$_POSTはあまり使用しませんので探したんですけどわかりませんでした。なのでとりあえずそのまま$_POSTを使用しています。なんとなくcakephpと似ています。というか$this->setなんてそのまんま。しかし、データベースの処理のところで、そのままSQL文が書いてあったり、cakephpでは$this->モデル名->save()でバリデーションからupdateやinsertまですべてやってくれます。と違う部分もあるようなので一概には言えないけど。

それ以外に気づいた点は使用しないソースをいかしたままexitでぬけていること。僕は古い人間なのでexitやgotoは悪という考え方です。使用しないソースはコメントアウトするか削除します。とくにフレームワークはexitでどこまでジャンプするかわからないし・・・・・。

tomoacさんが作成されたソースで定数を使用できるところは使用してしまえばkatz515さんが言われているようにマーケットプレイスに出展できるのでないでしょうか。そのほうがたくさんの人にも使ってもらえるし、デバッガーも増えるし。それくらいのレベルのブロックですよ。ありがとうございした。


追伸
こんだけ暑いとパソコンやばいですよね。
 

Re: Re: Re: ソース変更してみました。

2011年6月26日 at 16:48
>$postの変数の中にすべての情報を集約してありましたので、$this->set一行で解決できました。

なるほどそれがMVCというかフレームワークをつかうメリットなんですね。
このsetがどういう仕様なのかとか、ドキュメントはあるんですかね。

MVCとかフレームワークの勉強で始めましたが、ちっとも勉強になっていなくって、おかげさまでやっとメリットがわかってきた感じですね。独学するには、なにを勉強するのがいいのでしょう。


>それ以外に気づいた点は使用しないソースをいかしたままexitでぬけていること。

元のコードにあったので、exitしてました。
元のコードも残していますので、ご参考に。

課題となっていたので残してました。次回リリースで消しますよ。
この後ととりあえずリリースします。

ところで、ダウンロードページに協力者として掲載させていただきたいのですが、twitterのアカウントとかメールとかご希望をお送りください。

#つぶれたついでに、Linuxをインストールして、KVMってのを載せて、Windowsをインストールしてみたので時間がかかってました。苦労の甲斐あって、KVMはいいですねえ。
 

Re: Re: Re: Re: ソース変更してみました。

2011年6月26日 at 17:12
hgcsynさんに修正&解決いただけましたので、Version 1.5 としてリリースしました。

注意メッセージ削除しました。

以下からダウンロードしてください。
http://concrete5.tomo.ac/index.php?cID=81
 

Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月26日 at 22:49
>なるほどそれがMVCというかフレームワークをつかうメリットなんですね。

いいえ、そこはそれほどではありません。値渡しの場合はviewからcontrollerへの方がメリットを感じます。
フレームワークを使用する利点はセキュリティ問題とバリデーション、データベースとの連結を容易にできるということです。デメリットは遅い。

>このsetがどういう仕様なのかとか、ドキュメントはあるんですかね。

気にしないほうがいいです。そういうもんやと思ったほうがいいです。

>元のコードにあったので、exitしてました。

意見が分かれるところです。構造化プログラミングという概念があるのですが、古い人間なのかもしれません。ごめんなさい。

>独学するには、なにを勉強するのがいいのでしょう。

おすすめはcakephpです。僕も独学なので役に立つかどうかわかりませんが、もしよろしければなんでも聞いてください。
ちなみにlinuxはubuntuですか?apt-getでcakephpがインストールできたように思います。

>ダウンロードページに協力者として掲載させていただきたいのですが、twitterのアカウントとかメールとかご希望をお送りください。

実はtwitterのアカウントは最近取得したばかりで、よくわかりません。
使いかた教えてもらえないでしょうか。一応「acliss19xx」です。

view.phpののリンク先を定数に変更されました?今のままではSSLのページでは使用できません。

それよりマーケットプレイス行っちゃいましょう。せっかくリーダーから誘われていることですし、こんなすばらしいブロックをホームページだけでの公開ではもったいないですよ。
 

Re: Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月27日 at 6:01
>view.phpののリンク先を定数に変更されました?今のままではSSLのページでは使用できません。

わすれてました。これでいいでしょうかね。添付します。

>おすすめはcakephpです。僕も独学なので役に立つかどうかわかりませんが、もしよろしければなんでも聞いてください。

cakephpの本は昨年だったか買って持ています。買ったまま本棚に挟まってます。
引っ張り出して勉強してみます。

>実はtwitterのアカウントは最近取得したばかりで、よくわかりません。
>使いかた教えてもらえないでしょうか。一応「acliss19xx」です。

hgcsynのところをクリックしたらホームページのURLが載ってましたのでそれも載せておきます。

ところで、写真がのっていましたがこの方がご本人ですか?

>それよりマーケットプレイス行っちゃいましょう。せっかくリーダーから誘われて>いることですし、こんなすばらしいブロックをホームページだけでの公開ではもっ>たいないですよ。

遠慮理由は書いてあるとおりです。いまも変わっていませんが、hgcsynさんが広報担当として出演いただき、私は裏方で修正をするとういのならいいですよ。
添付: view-1.5.1.zip
 

Re: Re: Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月27日 at 7:49
>写真がのっていましたがこの方がご本人ですか?

うちの社長の写真ですか?僕はもっと若いっす。

>hgcsynさんが広報担当として出演いただき、私は裏方で修正をするとういのならいいですよ。

それでもいいですよ。しかし、毎週木曜日は会社の定例会議があるので10時に帰れるかどうか不明です。



別件ですが、カレンダーが表示できるヘルパーがありました。ただ、僕的には今のままでも十分です。

$dtt = Load:helper('form/datetime');
$dtt->date($name, $value, $calendarAutoStart) ;
$nameは名前,$valueは初期値,$calendarAutoStartはTrueにするとカレンダー表示されます。


ちなみにほかにもほしいブロックがあるのですが・・・・・。
 

Re: Re: Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月27日 at 12:46
>うちの社長の写真ですか?僕はもっと若いっす。

ですよね。けっこう年取っているとか書かれていたので、もしやと。

>別件ですが、カレンダーが表示できるヘルパーがありました。ただ、僕的には今のままでも十分です。

カレンダーも備わってるんですね。
また試してみます。

>ちなみにほかにもほしいブロックがあるのですが・・・・・。

どんなんでしょう。聞くだけかもですが。
 

Re: Re: Re: Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月27日 at 18:09
ずばり、拡張スライドショーです。
標準のスライドショーはフェードしかできないので・・・
1枚目と2枚目の入れ替わりのときはフェード 
2枚目と3枚目の入れ替わりのときはズーム
など簡単に設定できるブロックです。
すでにあったらごめんなさい。勝手なことばかりいいますが・・・・


view.phpの$_SERVER['PHP_SELF']のところは DIR_REL.'/'ではないでしょうか。

もう、フォームブロックも完成ですのでこのスレッドは一度締めたほうがいいですよね。ちなみに36歳、奈良県在住です。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月28日 at 20:31
修正して、Version 1.5.2 としてリリースしました。ほんとありがとうございました。

まだ私自身で改良したいところはありますが、ぼちぼちやります。

新しいブロックに件は、新規スレッドをたててください。
口コミサイトは作る意味はなさそうですので、それを調べてみます。

ご存知でしたか私も奈良県です。勤務地は、お隣の大東市です。

このスレッドは最後にしましょう。ほとんど、ほとんど2人だけでしたが、関係者には結構知名度があがったと思いますし。
 

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: ソース変更してみました。

2011年6月28日 at 22:33
そうですか、奈良の方ですか。いつか食事でもしたいですね。
お疲れ様でした。うちの会社のホームページはお問い合わせなどフォームを使用することが多いです。ですので非常に助かりました。
また、cakephpのことも遠慮なく聞いてください。

この拡張フォームは特にコーポレートサイトでは非常に役立つと思います。
どんどん、いろんな人に使用してもらい、さらにいいブロックになっていけばいいですね。ありがとうございました。