質問 > フロント機能 > ページを同じディレクトリ内に量産したい |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kanaryo |
投稿日時: 2013/2/4 17:43
対応状況: 解決済
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: ページを同じディレクトリ内に量産したい dkazuto様
yuh様 ご親切にアドバイスいただきありがとうございました! おかげさまで希望のアクションが実現いたしました。 少しのCSSと、かじった程度のhtmlしか分からないため、 ショボイ静的ページしか作成できない私ですので、 今回のように希望のアクションを実現させるために、 ・修正するべきファイル名、 ・コードを記述 or 修正する箇所、 ・コード内容 の3点を教えていただけることが何より嬉しいです!! また、「教えて下さい!」のフォーラムにちょくちょく現れると思いますが、 その時もご指導いただければ何より幸いです。 この度はありがとうございました。m(__)m |
dkazuto |
投稿日時: 2013/2/4 11:43
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: ページを同じディレクトリ内に量産したい kanaryo様
変更点は以下の部分かと思います。
これは、nameで渡される値に制限をかけるためのものです。 たとえば、hoge_hoge.tplというテンプレートを作成して、開いて見てください。 おそらく空白ページになってしまうかと思います。 この処理によって特定のパターンの文字列しか受け付けないようにしています。 ※この場合、アンダースコアを無視するようになっています。 変な名前が指定されたときに空白ページを 表示せず、index.tpl(デフォルトのテンプレート)を表示するようにするための対策と言えます。 詳しくは「正規表現」で検索してもらえますと 色々な条件の指定方法が出てくるかと思います。 |
kanaryo |
投稿日時: 2013/2/4 11:19
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: ページを同じディレクトリ内に量産したい 常連様
アドバイスありがとうございます! 前回教えて下さったコードでも今回のコードでも、 どちらのコードでも下記のようにtplを開くことができます。 例) abc1.tpl、abc2.tpl、hoihoi.tpl・・・のファイルを用意し、 /data/Smarty/templates/default/hoge へ全てのtplファイルをアップした後、 http://ドメイン/hoge/index.php?name=abc1 http://ドメイン/hoge/index.php?name=abc2 http://ドメイン/hoge/index.php?neme=hoihoi でアクセスすると、abc1の部分がabc2でもhoihoiでも、 どのような値でもそれに応じたtplを開くことが出来ます。 今回のコードの方が前回に比べ、何か利点でもあるのでしょうか? 規則性でいうと、index.php?name=の部分までは同じURLにしたいと思っています。 解説いただけると幸いです。 |
yuh |
投稿日時: 2013/2/1 12:43
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: ページを同じディレクトリ内に量産したい name=abc[数字]で命名規則が決まっているのであれば
値のチェックは入れておいた方がいいと思います |
kanaryo |
投稿日時: 2013/1/31 17:24
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: ページを同じディレクトリ内に量産したい 常連様
いつも迅速に返信して下さりありがとうございます。 やっと、やっと、、できました。 本当にありがとうございました!! tplはどんな名前でも開くことが出来ます! 毛穴が全開になるほど嬉しいです\(◎o◎)/! この度は懇切丁寧にご指導いただき、ありがとうございました。 また、機会があればよろしくお願い申し上げます。 m(__)m |
dkazuto |
投稿日時: 2013/1/31 16:56
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: ページを同じディレクトリ内に量産したい kanaryo様
おめでとうございます。 常にname=abc[数字]というパターンであるならば以前のコードを以下のように変更してみてください。
switch文をまるっと消してしまい、name=abc[数字]というパラメータが送られたときは そのnameに該当するテンプレートを割り当てるという処理に切り替えています。 name=testtestで送信すると testtest.tplが適用されるというな仕組みです。 以上、お試しください。 |
kanaryo |
投稿日時: 2013/1/31 15:10
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: ページを同じディレクトリ内に量産したい 常連様
出来ました!!!!!!!! 最初に生成されたphpファイルのaction()メソッド内に、 常連様が教えてくれたコードを記述すれば出来ました! ですが・・・ case 'abc1': $this->tpl_mainpage = $path.'hoge/abc1.tpl'; break; case 'abc2': $this->tpl_mainpage = $path.'hoge/abc2.tpl'; の部分に、tplが増える度に書き足さなくてはいけないのですよね。 今後の予定として、abc1〜abc1000というように、 1000ページ以上になると思うのですが・・・。 phpファイルに書き足さなくてもいい方法はないのでしょうか(+_+)?? よろしくお願いいたします。。m(__)m |
kanaryo |
投稿日時: 2013/1/31 14:51
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: ページを同じディレクトリ内に量産したい 常連様
返信ありがとうございます。 私の説明が下手なのでしょうか(^_^;) 管理画面から新規ページ作成機能でページを追加した場合、 生成されるファイル場所とファイル名は下記の通りです。 (hoge/任意名.phpに作成する場合) /html/user_data/hoge/任意名.php /data/Smarty/templates/default/user_data/任意名.tpl ですので常連様がおっしゃるLC_Page_Hoge.phpのファイルは生成されないのです。 LC_Page_Hoge.phpのファイルがあれば常連様が教えていただいたコードを、 ファイルに記述してテストしたいのですが…。 |
dkazuto |
投稿日時: 2013/1/31 14:28
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: ページを同じディレクトリ内に量産したい kanaryo様
こんにちは。 http://ドメイン/hoge/index.php?name=abc1 という形式でアクセス可能です。 追加していただいたPHPファイル(/data/class/pages/hoge/LC_Page_Hoge.php) のaction()メソッド内に2レス目に私がお教えしたコードを記述してみてください。 http://ドメイン/hoge/index.php?name=abc1 でアクセスすれば、abc1.tplの内容が表示され、 http://ドメイン/hoge/index.php?name=abc2 でアクセスすれば、abc2.tplの内容が表示されます。 hoge.phpやLC_Page_Hoge.phpはひとつでかまいません。 以上ご確認ください。 |
kanaryo |
投稿日時: 2013/1/31 13:00
対応状況: −−−
|
常連 登録日: 2011/10/18 居住地: 投稿: 66 |
Re: ページを同じディレクトリ内に量産したい 常連様
返信ありがとうございます。 ページの追加は出来るのですが、 http://ドメイン/hoge/index.php?name=abc1 という様なURLで表示させたいのです。 何故ならば、通常にページを追加するとuser_dataフォルダ内に自動生成されます。 この場合、http://ドメイン/user_data/hoge/abc1.php などというように、URLにuser_dataが必要になります。 そこで、データベースを修正し、user_dataに生成されたphp、tpl の各ファイルを任意のディレクトリ(この場合hoge)に移動させると、 http://ドメイン/hoge/abc1.phpのURLで表示が可能です。 ですが、上記のような作業ですと、ページ(tplファイル)の数だけ phpファイルも発生しますし、100ページや200ページとなると、 管理画面で表示されるページのタイトル数が膨大になります。 ですので、tplファイルのみをコピー複製し、それを任意のファイル名(abc1など) に変更して大量に増やしていき、1つのphpファイルでアクセスURLに応じた ページを表示させたいのです。 http://ドメイン/hoge/index.php?name=abc1(この場合はabc1のtplを表示) http://ドメイン/hoge/index.php?name=abc2(この場合はabc2のtplを表示) ・ ・ ・ 以下、何ページ作ったとしても増えるのはtplファイルのみで、 phpファイルは増えない。例えるとブログのような感じですかね。 どうか、よろしくお願いいたします。m(__)m |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |