投稿フォームに項目追加
- このフォーラムに新規トピックを投稿できます
- このフォーラムではゲスト投稿が許可されています
投稿ツリー
-
投稿フォームに項目追加 (minmin, 2011/1/26 15:55)
-
Re: 投稿フォームに項目追加 (ゲスト, 2011/1/27 10:48)
-
Re: 投稿フォームに項目追加 (ゲスト, 2011/1/27 10:53)
-
Re: 投稿フォームに項目追加 (minmin, 2011/1/27 11:24)
-
Re: 投稿フォームに項目追加 (minmin, 2011/1/27 13:54)
-
Re: 投稿フォームに項目追加 (なーお, 2011/1/27 17:34)
-
Re: 投稿フォームに項目追加 (ゲスト, 2011/1/28 14:46)
投稿フォームに項目追加
msg# 1
本文とは別に、追伸やつぶやきなど文章を追加する項目をいくつか増やしたいと考えております。
以下のファイルに項目を追加してみたところ、送信するとデータベースにデータは渡るのですが、記事には表示されていません。
また、プレビューにすると表示されず、入力文も消えてしまいます。
main/edit.php
main/detail.php
class/diary.class
class/func.class
template/detail.html
template/edit.html
具体的に変更した部分は後ほどお伝えいたします。
いつもなーおさんのお時間を取らせて申し訳ございませんので、もし気が向いたらで結構ですので、ご教授いただけますと幸いです。:-)
Re: 投稿フォームに項目追加
msg# 1.1
あたらしく追伸を追加しようと、newpsとして以下のように追加してみました。
前途のようにプレビューなしで送信すればデータベースには受け渡しされるのですが、記事に表示されません。
プレビューにすると表示されませんし、入力欄に入力したものが残りません。
main/edit.php
293行あたりに以下を追加
&font(#ff0000){$diary->newps=$d3dConf->func->getpost_param('newps');};
328行あたりに以下を追加
&font(#ff0000){$yd_data['newps'] = htmlSpecialChars($diary->newps, ENT_QUOTES);};
3990行目あたりに以下を追加
&font(#ff0000){$yd_data['newps'] = $diary->newps;};
412行目あたりに以下を追加
&font(#ff0000){$diary->newps=$d3dConf->func->getpost_param('newps');};
main/detail.php
57行目あたりに1行追加
$yd_name = (!empty($rtn['name'])) ? $rtn['name'] : "" ;
&font(#ff0000){$yd_data['newps'] = $diary->newps;&br;};$yd_data['bid'] = $diary->bid;
class/diary.class.php
6行目あたりに以下を追加
&font(#ff0000){var $newps;};
43行目あたりに以下を追加
&font(#ff0000){$this->newps = $dbdat['newps'];};
110行目あたりif以下を変更
if (!get_magic_quotes_gpc()) {
$sql = "INSERT INTO ".$xoopsDB->prefix($mydirname.'_diary')." (uid, cid, title, diary, &font(#ff0000){newps,}; create_time, update_time, openarea, dohtml, vgids, vpids) VALUES (
&font(#ff0000){ '".addslashes($this->newps)."',&br;}; '".addslashes($this->uid)."',
else以下も変更
else { $sql = "INSERT INTO ".$xoopsDB->prefix($mydirname.'_diary')." (uid, cid, title, diary, &font(#ff0000){newps,}; create_time, update_time, openarea, dohtml, vgids, vpids) VALUES (
&font(#ff0000){ '".$this->newps."',&br;}; '".$this->uid."',
188行目あたりif文中に以下を追加
&font(#ff0000){ $newps=addslashes($this->newps);};
198行目あたりelse文中に以下を追加
&font(#ff0000){ $newps=$this->newps;};
217行目あたりに以下を追加
&font(#ff0000){ newps='".$newps."',};
247行目あたりにも以下を追加
&font(#ff0000){ newps='".$newps."',};
260行目あたりにも以下を追加
&font(#ff0000){ newps='".$newps."',};
class/func.class.phpの
623行目あたりを追加変更
$sql = "SELECT d.uid AS uid, d.bid AS bid, d.title, d.cid, d.diary, d.newps, d.create_time,
697行目あたりを追加変更
$sql = "SELECT d.uid AS uid, d.cid, d.title, d.create_time, d.url, d.diary, d.newps,
1536行目あたりを追加変更
$yd_data['newps']=addslashes($yd_data['newps']);
その後の以下にも追加変更
# entry追加
$query = "INSERT INTO ".$db->prefix($this->mydirname.'_newentry')." (uid, cid, title, url, create_time, blogtype, diary, newps)
VALUES ( '".$yd_data['newps']."' '".$line['uid']."',
edit.html
275行目あたりに以下を追加
''detail.html
''140行目あたりに以下を追加
<div class="itemText"></div>
以上です。
もしよろしければ私の未熟な試みにご指摘をください。
宜しくお願いします。
Re: 投稿フォームに項目追加
msg# 1.2
先ほどの投稿がうまく表示されませんでした。また後ほど投稿します。
Re: 投稿フォームに項目追加
msg# 1.3
記事に表示する事が出来ました。
プレビューだけがまだ出来ていません。もう少し自分でやってみようと思います。お騒がせしてすみません。
Re: 投稿フォームに項目追加
msg# 1.4
自己解決しました。大変お騒がせしました。

minminさん
ハックお疲れさまです。
そこまでやると、d3diaryのバージョンアップ時にマージが大変ですね。。 私だったら、本文分割のpagebreakタグのような感じで、本文の最後に分割して書いて送信し、サニタイズでやっちゃうかな。。
(func.class.phpの、substrTareaと、stripPb_Tareaで分割処理)
Re: 投稿フォームに項目追加
msg# 1.5
そういう手があったのですね。PHP初心者の今の私にはとても無理ですが・・・
でも、このままではバージョンアップの度に悲鳴をあげるのが目に見えてますね