こちらの記事は1.x系です。2.x系はこちらをご覧ください。
またEC-CUBEネタです。
新着情報のブロック(サイトのニュースとかを載せるところね)をいじっていました。
デフォルトだと、過去のニュースを追加していくと、どんどん下に長ーくなってTOPページがひょろ長くなって見づらいんですよ。かっこ悪いし。。
そんで、TOPには最新3件ぐらい載せて、全部読むにはこちら。みたいな感じに別のページを作って、そちらに表示させようとしてたんですよ。
・・・・これが、えらい苦労しましてww
こちらを参考にしてやってみたんですが。
覚書として書いておきます。( ・ω・)ノ
管理画面⇒デザイン管理⇒新規ページ作成しる。
名前は適当(新着全部とか)につけて、ファイル名もわかればいいので、xyz.phpとかに。
ソースはデフォルトで入ってるnews.phpから全文コピペして「登録」をクリック。
ここまではまぁ、簡単。
で、次から無限ループの罠が。。。 ( ゚Д゚ ;)))ガクガクブルブル
xyz.phpの変更
ftpで見てみると、user_dataフォルダの中にxyz.phpが出来上がっているので、それをダウンロードして、エディタで次のように書き換え。
xyz.php
<?php require_once("/html/require.php"); class LC_Page { function LC_Page() { /** 必ず変更する **/ $this->tpl_css = URL_DIR.'css/layout/contact/index.css'; $this->arrNews = array(); // 追加 } } $objPage = new LC_Page(); $objView = new SC_SiteView(); // レイアウトデザインを取得 $objPage = sfGetPageLayout($objPage); //新着情報取得 $objPage->arrNews = lfGetNews(); //追加 // 画面の表示 $objView->assignobj($objPage); $objView->display(SITE_FRAME); //----------------------------------------------------------- // 以下、追加 function lfGetNews(){ $conn = new SC_DBConn(); $sql = "SELECT *, cast(substring(news_date,1,10) as date) as news_date_disp FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC"; $list_data = $conn->getAll($sql); return $list_data; } ?>
これを元の場所にアップロード。
xyz.tplを書き換え
tenmplatesフォルダにxyz.tplが出来ているので、これをDLしてデフォルトのnews.tplの内容をコピペして上書きアップロード。
そして、TOPページ用のnews.tplは以下を修正。
<!--{section name=data loop=$arrNews}-->
から
<!--{section name=data loop=$arrNews max=3}-->
に。
これでうまくいくはず!
・・・・と思ったらダメ。ソースがそのまま表示されちゃってたし、新しく作ったページも3件になってしまった。
ここで既に右腕がしびれてきてマウスがやけに重く感じてきたwww
しかし、なんとか解決しないと寝れん!
気づいたらテンプレートが消えてた。。。
いろいろとレイアウトいじったり、管理画面からも更新してみたり(これが一番悪かった)してたら、デフォルト以外のテンプレートがいつの間にか消滅。
先ほど作ったxyz.tplは中身が消えてるしw
しかも、IEで見ると微妙に表示がずれてるしww
で、もう眠くていやになってきてたけど、テンプレートをインストールし直して一からまたやり直してみた。
今度は、管理画面で更新したり、ブロックレイアウトをいじったりせずに。
そしたら、なんとか表示されましたわ。。。(;´ρ`)チカレタヨ・・・
もう一つ大事なこと。
news.tplは二つあって、
user_data/templates/テンプレート名/include/bloc/にあるものと
user_data/include/bloc/の二つを上記のように修正しないとうまく動かない。(と思う。。)
ただ、これはデフォルト以外のテンプレートを使っていたからかもしれない。
うーん、ややこしいなぁ(´・ω・`)
というわけで、TOPページ(http://******.com)には3件のみ。
新しく作ったhttp://******.com/user_data/xyz.phpにアクセスするときちんと全部表示されました。
゚・*:.。..。.:*・゜ヽ( ´∀`)人(´∀` )ノ・゜゚・*:.。..。.:*
寝ます。。。。。。。⊂⌒~⊃*。Д。)-з
この記事で助かりました!
以前、一覧を5件表示させ、別リンクで新規で作った詳細ページに飛ばすようにつくっていたのですが、サイトをリカバリしたところ、該当ページが白紙になって困っておりました。
このイヌブロブログ さんのお陰で、再度構築する手がかりになりました。
ありがとうございます
>しんのすけさん
この古くて読みづらい記事がお役に立てて嬉しいです。
EC-CUBEは導入が簡単ですが、カスタマイズはなかなか難しいですよね。
最近弄ってないのですが、また少し弄ってみようかなと思ってます。