ホーム > フォーラム > 質問箱 > TinyDメニューの表示順について

TinyDメニューの表示順について
投稿者: onchan777 | 投稿日時: 2006/10/18 2:21 | 閲覧: 18221回
onchan777
あまりプログラムに詳しくないので、是非ここでご教授
願いたいのですが、

tinyDでコラムをまとめているのですが、どうしてもtinyd
メニューで更新日の新しい物から順番に上から表示したいので
すが、どうにかならないものでしょうか?

管理画面で表示順が選べる事は知っていますが、新しい記事を書く
たびに順番を入れ替えてやるのもチョット・・・。

こいった場合どのデータのどこを変えてDBの更新日を読み込んで
やればいいのでしょうか?

どうか皆様宜しくお願いします。

コメント(12)

Re: TinyDメニューの表示順について 
投稿者: mutsuki | 投稿日時: 2006/10/18 11:57
mutsuki
onchan777さんこんにちは。

引用:

tinyDでコラムをまとめているのですが、どうしてもtinyd
メニューで更新日の新しい物から順番に上から表示したいので
すが、どうにかならないものでしょうか?


試していないのですが、データベースからデータを取得する際、
ソートキーをブロックIDではなく、更新日に指定すればよいと思いますよ。
→実現されている方がおりましたらフォロー願います。


引用:

あまりプログラムに詳しくないので、是非ここでご教授
願いたいのですが、


MySQLのサイトを検索してみてはいかがでしょう。たぶん解決の道が開けると思いますよ!
Re: TinyDメニューの表示順について 
投稿者: Grizzly | 投稿日時: 2006/10/18 13:36
Grizzly
んな大げさな。TinyDの記事の表示順を変えればTinyDメニューの表示順も変わります。
Re: TinyDメニューの表示順について 
投稿者: onchan777 | 投稿日時: 2006/10/19 0:45
onchan777
ソートの部分の記述が一体どこなのやら・・・

単にメニューの表示順を指定するぐらいなら管理画面がから
操作できるのはわかっています。

問題は新しい記事を最上部に表示したいのに、それには表示順
を毎回最新の順位に設定していかないかなくてはならない事です。

なんとかソートできれば・・・ちなみに100以上記事があります。

考えた末のtinyD使用なのですが、コラムに強いモジュールなど
他にありましたら(インデクッス表示が出来るような物)それでも
かまいませんので宜しくお願いします。
Re: TinyDメニューの表示順について 
投稿者: inukichi | 投稿日時: 2006/10/19 2:46
inukichi
引用:

onchan777さんは書きました:
考えた末のtinyD使用なのですが、コラムに強いモジュールなど
他にありましたら(インデクッス表示が出来るような物)それでも
かまいませんので宜しくお願いします。


そういう仕様を実現するために考えた末がなぜTinyDに?

すでに記事数が100超だと他のモジュールへの乗り換えは厳しいかもしらんが、セクション系のモジュールにするとか、前に誰かがコラム書き用モジュール作ったと言ってたような気もするが、もっと手っ取り早くやるならニュースモジュール(suinさんのbulletinお勧め)でも以外とできるもんだぜ。

ニュースモジュールなら編集した時にトップにするかどうか選べるしな。

この公式でも確か一度話題に出た(ケーススタディだったか? 忘れた・・・)二宮清純さんのSPORTS COMMUNICATIONS(ここは標準のニュースモジュールと思われ)が参考にならんか?

※いろんなサイトを実際に見て歩くだけでもヒントはたくさん隠れてるもんだ。
Re: TinyDメニューの表示順について 
投稿者: mutsuki | 投稿日時: 2006/10/19 9:37
mutsuki
Grizzlyさん>
確かに大げさ・・・ですよね。でも更新順に表示するのであればこうするのが一番かな?と。


onchan777さん>
引用:

ソートの部分の記述が一体どこなのやら・・・


tinyDのフォルダ内のファイル(内容)を、ソートのキーワードで検索してください。見つかるはずですよ^^


inukichiさん>
引用:

そういう仕様を実現するために考えた末がなぜTinyDに?
もっと手っ取り早くやるならニュースモジュール(suinさんのbulletinお勧め)でも以外とできるもんだぜ。

ニュースモジュールなら編集した時にトップにするかどうか選べるしな。


確かに!ニュースモジュールだとonchan777さんのやりたいことが簡単にできそうですね。
モジュール名に惑わされず、発想の転換も必要なんだなぁ!
Re: TinyDメニューの表示順について 
投稿者: Grizzly | 投稿日時: 2006/10/19 11:03
Grizzly
プログラミングのスキルは限りなくゼロな(´(・)`)ノが、自サイトでためしてみますた。

1、まずTinyDメニューのテンプレートを見て目星をつけといて、
2、適当にgrepかけてみて、modules/tinyd0/blocks/tinycontent_navigation.php あたりじゃないかなぁ?と思ってエディタで開く
3、74行目の後ろのほうの「$whr_submenu ORDER BY blockid」が、なんとなくクサいと感じるので、blockid以外の何かに置き換えてみる
4、出来たみたい(´(・)`)ノ


ボクの場合:

blockid の代わりに、同じ74行目の前半に転がっていた UNIX_TIMESTAMP(last_modified) DESC を突っ込んだ。昇順降順の指定が出来るヤツなら何でも良かった。合ってるか間違ってるかは考えず、勢いでやった。今は反省している。

Re: TinyDメニューの表示順について 
投稿者: pipipipi20 | 投稿日時: 2006/10/20 13:21
pipipipi20
onchan777さん、こんにちは。

私もtinydを使ったニュースサイトをやっていて、記事数も数百程度になっていて、移行が難しい状態にあります。

だからお気持ちがよくわかりますよ(汗)
私も以前に更新日順の並びにしたいと思って、いろいろ試したことがあります。全体の表示順を変えてしまうのは私には無理だったので、要は、カスタムブロックで作って表示させるということをしても見た目は同じだと思いますよ。

こんな感じで私は作りました。


global $xoopsDB;

include_once( XOOPS_ROOT_PATH . '/class/pagenav.php' );

$num = empty( $_GET['num'] ) ? 1000 : intval( $_GET['num'] );

if( $num < 1 ) $num = 20;

$pos = empty( $_GET['pos'] ) ? 0 : intval( $_GET['pos'] );

$prs = $xoopsDB->query( "SELECT COUNT(storyid) FROM ".$xoopsDB->prefix('tinycontent2')." WHERE visible=1 AND blockid<>999" );
list( $story_sum ) = $xoopsDB->fetchRow( $prs );

if( $story_sum > 0 ) {
  $prs = $xoopsDB->query( "SELECT storyid,title,text,last_modified FROM ".$xoopsDB->prefix('tinycontent2')." WHERE visible=1 AND blockid<>999 ORDER BY last_modified DESC" , $num , $pos );

// Display stories
  include_once(XOOPS_ROOT_PATH."/class/smarty/plugins/modifier.mbtruncate.php");

  while( list($storyid, $title, $text) = $xoopsDB->fetchRow( $prs ) ) {
    echo "

<a href='http://ここは指定してね/tinyd02/index.php?id=".$storyid."'>
".$title."
</a>

<br />

";
  }

} else {
  echo "No data found";
}



注意)私はプログラムがかけませんで、いろいろなところをみてちょこちょこしたものなので、自己責任で使ってくださいね。
Re: TinyDメニューの表示順について 
投稿者: naox | 投稿日時: 2006/11/10 11:47
naox
pipipipi20さん
すばらしい、カスタムブロックですね。
参考にさせていただきます。

TinyDでニュースモジュールの代用をしたいという方の中には、SPAWやFCKeditorーを利用して、HTMLを使わず、他のモジュール(MyAlbum)なども使わずに写真つきのニュースをアップしたい願望を持った方が多いのでは??

私も、その一人です。

「更新日時」の表示も出来れば、最高ですね。

もし可能でしたら、教えてください。
Re: TinyDメニューの表示順について 
投稿者: naox | 投稿日時: 2006/11/11 5:59
naox
自己レスです。
やってみれば出来るんだな。と、思って色々とやってみましたら
何とか、更新日時らしいものを表示できるようになったのですが、
20061110245835
↑のように年月日字分秒のすべてが、数字だけで表示されるんです。

2006-11-10
↑のように、見やすく年月日のみを表示できたら、いいのですが。

再トライしてみます。

とりあえず、pipipipi20さんのカスタムブロックを参考に付け足した
ものを添付しておきます。

引用:

global $xoopsDB;

include_once( XOOPS_ROOT_PATH . '/class/pagenav.php' );

$num = empty( $_GET['num'] ) ? 1000 : intval( $_GET['num'] );

if( $num
$pos = empty( $_GET['pos'] ) ? 0 : intval( $_GET['pos'] );

$prs = $xoopsDB->query( "SELECT COUNT(storyid) FROM ".$xoopsDB->prefix('tinycontent0')." WHERE visible=1 AND blockid999" );
list( $story_sum ) = $xoopsDB->fetchRow( $prs );

if( $story_sum > 0 ) {
$prs = $xoopsDB->query( "SELECT storyid,title,text,last_modified FROM ".$xoopsDB->prefix('tinycontent0')." WHERE visible=1 AND blockid999 ORDER BY last_modified DESC" , $num , $pos );

// Display stories
include_once(XOOPS_ROOT_PATH."/class/smarty/plugins/modifier.mbtruncate.php");

while( list($storyid, $title, $text , $last_modified) = $xoopsDB->fetchRow( $prs ) ) {
echo "


(".$last_modified.")-".$title."




";
}

} else {
echo "No data found";
}
Re: TinyDメニューの表示順について 
投稿者: naox | 投稿日時: 2006/11/11 16:50
naox
色々、トライしてみましたが、表示方法が変わりません。

日付表示を変える方法をお持ちの方がいらっしゃいましたら
教えていただければ幸いです。
Re: TinyDメニューの表示順について 
投稿者: kusuchin | 投稿日時: 2006/11/11 17:07
kusuchin
引用:

naoxさんは書きました:

2006-11-10
↑のように、見やすく年月日のみを表示できたら、いいのですが。


SQL文を以下のようにされてはいかがでしょう?


$prs = $xoopsDB->query( "SELECT storyid,title,text,DATE_FORMAT(last_modified, '%Y-%m-%d') FROM ".$xoopsDB->prefix('tinycontent0')." WHERE visible=1 AND blockid<>999 ORDER BY last_modified DESC" , $num , $pos );


※MySQLのDATE_FORMAT()関数を勉強されると、
他にもどのようなことがMySQL側でできるかもわかると思います。
Re: TinyDメニューの表示順について 
投稿者: naox | 投稿日時: 2006/11/12 8:48
naox
kusuchinさま

早速、有難うございます。
バッチリ思い通りの表示になりました。

やはり、XOOPS細部の表示を変えるには、PHPやMySQLの知識が大事ですね。
少しずつMySQL自体の勉強をしていきたいと思います。

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top