web関係 デザイン

EC-CUBE(新着情報で苦闘)

投稿日:2007年9月16日

こちらの記事は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にアクセスするときちんと全部表示されました。

゚・*:.。..。.:*・゜ヽ( ´∀`)人(´∀` )ノ・゜゚・*:.。..。.:*

寝ます。。。。。。。⊂⌒~⊃*。Д。)-з

-web関係, デザイン
-


  1. しんのすけ より:

    この記事で助かりました!
    以前、一覧を5件表示させ、別リンクで新規で作った詳細ページに飛ばすようにつくっていたのですが、サイトをリカバリしたところ、該当ページが白紙になって困っておりました。

    このイヌブロブログ さんのお陰で、再度構築する手がかりになりました。
    ありがとうございます

  2. フォクすけ より:

    >しんのすけさん

    この古くて読みづらい記事がお役に立てて嬉しいです。
    EC-CUBEは導入が簡単ですが、カスタマイズはなかなか難しいですよね。
    最近弄ってないのですが、また少し弄ってみようかなと思ってます。

フォクすけ へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Magpie RSSを使おうとした件

RSSを引っこ抜いてトップに表示させようとしていて、Magpie RSSというのがあるのを発見。 い …

スマイリーがおかしい

変だな~、以前書いたエントリーのスマイリーが表示されなくなってます。 編集しなおすと表示されるんだけ …

BerkeleyDB⇒MySQL

さてさて、こんな朝っぱらからなんですがw サーバーも移転したことだし、念願だったBerkeleyDB …

サイト構造に関して

以下はオイラの個人的な意見なので・・・・・。 このblogで、オイラはあまり追記というのを使いません …

覚え書

検索フォームで「Search」とかって文字をクリックしたら消えるjavascript <inp …

カテゴリー

アーカイブ

サイト内検索