User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha
エントリーループの外でauther取得 投稿者: tm 投稿日:2004/11/23(Tue) 03:23 No.947  
お忙しいところすみません2点質問させてください。

$xoopsTpl->assign("xoops_pagetitle")
にautherのログイン名を表示する事はできますか?
auther別やエントリー別ディティール表示時以外では
特定できませんので無しになりますが。

もう1点
できればauther別の見出し画像(アバタ風とかタイトルバック風とか)
をページ先頭に一つつけられないかなぁと思っています。

header.phpで$module_titleが入っているようですが
エントリー別のディティール表示時には
xoops_pagetitleにエントリタイトルも入っていますよね。
これヒントになるかと思って調べたのですが
どこで入ったのか見つけられませんでした。

見出し画像はindex-template.phpには入れる事ができ、うまく
auther別に見出し画像などがつけられたんですが
これですと、一覧表示した時、見出し画像がくり返し
表示されます。エントリループの中なので当然なのですが。

ループの外でいじってみたいのです。


Re: エントリーループの外でauther取得 投稿者: のぶのぶ 投稿日:2004/11/23(Tue) 13:29 No.949  

引用:

$xoopsTpl->assign("xoops_pagetitle")
にautherのログイン名を表示する事はできますか?
auther別やエントリー別ディティール表示時以外では
特定できませんので無しになりますが。

これは、次期リリースで入れたいと思います。
実現方法は、
まず、wp-includes/template-functions-general.phpに、

function single_author_title($prefix = '', $display = true ) {
	global $p, $author,$author_name, $wpdb, $wp_id;
	if (!empty($author_name)) {
		$author_name = rawurldecode($author_name); // For Japanese Author Name;
		$sql = "SELECT * FROM {$wpdb->users[$wp_id]}  WHERE user_login='".$author_name."'";
	} elseif (!empty($author)) {
		$author=intval($author);
		$sql = "SELECT * FROM {$wpdb->users[$wp_id]} WHERE ID='".$author."'";
	} elseif (!empty($p)) {
		$author = $wpdb->get_var("SELECT post_author FROM {$wpdb->posts[$wp_id]} WHERE ID = '$p'");
		$sql = "SELECT * FROM {$wpdb->users[$wp_id]} WHERE ID='".$author."'";
	}
	if ($sql) {
		$results = $wpdb->get_results($sql);
		$result = $results[0];
		$idmode = $result->user_idmode;
	    if ($idmode == 'nickname')    $id = $result->user_nickname;
	    if ($idmode == 'login')    $id = $result->user_login;
	    if ($idmode == 'firstname')    $id = $result->user_firstname;
	    if ($idmode == 'lastname')    $id = $result->user_lastname;
	    if ($idmode == 'namefl')    $id = $result->user_firstname.' '.$result->user_lastname;
	    if ($idmode == 'namelf')    $id = $result->user_lastname.' '.$result->user_firstname;
	    if ($idmode == 'ID')        $id = $result->ID;
	    if (!$idmode) $id = $result->user_nickname;
	    if ($display) {
	    	echo $prefix.strip_tags(stripslashes($id));
	    } else {
	    	return $prefix.strip_tags(stripslashes($id));
	    }
	}
}

という行を追加して下さい。
その後に、
header.phpの、

$module_title =single_post_title(' :: ',false).single_cat_title(' :: ',false).single_month_title(' :: ',false);

という行を、

$module_title =single_post_title(' :: ',false).single_cat_title(' :: ',false).single_month_title(' :: ',false).single_author_title(' by ',false);

に変更して下さい。
実は、single_month_titleという関数もパーマネントリンクに対応していないなどの不具合があってきちんと動作してはいませんが。これも次リリースで修正予定です。

リクエストの二番目に関しては、まだ良い考えが浮かんでいませんが、上記の関数がなんらかのヒントにはなるかと思います。
ユーザ指定でブログを表示する場合、パーマネントリンクでない場合には、

htttp://xxxxx/modules/wordpress/index.php?author=1

という形で呼び出され、パーマネントリンクの場合には、最終的には

htttp://xxxxx/modules/wordpress/index.php?author_name=user

という形で呼び出されます。
これらのパラメータを元にして現在の画面のユーザ情報を画面上に表示するというような事をすれば良いのでは?と思います。


Re[2]: エントリーループの外でauther取得 投稿者: tm 投稿日:2004/11/24(Wed) 07:52 No.950  

のぶのぶさん、お手数かけてすいませんでした。

次期Verで採用されるはずだったものを、せっついてしまった
形になってしまいハンセイしています。

single_author_titleなんてりっぱなルーチンがあって
はじめてできる事だったんですね。あさはかでした。
しかしおかげさまで、title実装できました。

他についても参考にしながら考えてみます。

#が、予約されている仕様のリストをみるとコレデモカというものばかりで「おぉ」という感じです。今の仕様でも十分楽しめますが、お言葉に甘えて楽しみにもさせていただきます。


NO: PASS:

このプログラムは KENT 氏の yybbs を xoops(PHP) に移植したものです
- KENT -