セキュリティの脆弱性を指摘されたので先日緊急にセキュリティを強化いたしましたが、再び対応不足との指摘を受けました。これ以上対応できる状況にないので、このプラグインをご使用の方は即座に使用を中止してください。ご迷惑をおかけしますが、よろしくお願い申し上げます。(2006-09-22)
「NP_Views」と「NP_MostViewed」を一体化させた上で、機能向上をはかった人気記事を表示するプラグインです。本家とは微妙にプラグイン名を変えたの間違えないようにお願いします。
また、様々なテンプレート変数を表示することもできるので、微妙に便利かもしれません。
不都合や要望等がありましたら、ご連絡ください。可能な限り、誠実に対応いたします。8)
[A.主な特徴]
●人気記事だけでなく、直近アクセスページも表示可能。
●ブログやカテゴリーを絞り込んでの表示が可能。
●メンバーごとの表示が可能。ログイン時に自分のアイテムだけが表示可能。
●除外アイテムや除外ブログがオプションにて設定可能。(※バージョン1.1より除外カテゴリーを追加)
●直前アクセスのIPアドレスについては重複カウントせず。(※バージョン1.1よりオプション設定で可否の選択が可能になりました)
●ログイン時にはカウントせず。(※バージョン1.1よりオプション設定で可否の選択が可能になりました)
●全てのスキンで使えると思います。
●自動的に直近7日間の人気記事デイリーランキング及び順位を抽出(※バージョン1.1より)
●自動的に直近7日間の人気記事ウイークリーランキングを抽出(※バージョン1.1より)
●自動的に月別に人気記事ランキング及び順位を抽出(※ただし1年以内のもの。バージョン1.1より)
●自動的に直近1年間の人気記事ランキングを抽出(※バージョン1.1より)
●各ランキングにおいて日付の表示が可能(※日付のフォーマットはオプション設定で変更可。バージョン1.1より)
●毎日1回or毎月1回、Nucleusの全テーブルを最適化することが可能(※オプション設定。バージョン1.1より)
●日別・週間・月別・年間の各ランキングへの切替が可能→サンプル(※バージョン1.11より)
[B.基本的な使用方法]
1.「NP_View」をインストール[size=150:ttyrdzxy](★必須) (※データベースの作成)
2.個別アイテムページの好きな場所に「<%View%>」を記入[size=150:ttyrdzxy](★必須) できるだけ<body></body>内の上の位置に記述して方がいいと思います。 (※カウント開始)
3.人気記事等を表示させたいスキンに<%View(テンプレート名,表示数)%>を記入[size=150:ttyrdzxy](★必須) (※人気記事を表示)
4.表示数は100を限度にしています。
[C.テンプレート変数<%View%>]
※テンプレートで使えるようになる変数です。
・<%View%> … 累計カウント数
・<%View(time)%> … 直近のアクセス時間 (※バージョン1.01より)
・<%View(ip)%> … 直近のアクセスIPアドレス (※バージョン1.01より)
・<%View(day,数字)%> … [数字]日前の日別カウント数 (※バージョン1.1より)
・<%View(week)%> … 週別カウント数 (※バージョン1.1より)
・<%View(month,数字)%> … [数字]月前の月別カウント数 (※バージョン1.1より)
・<%View(year)%> … 年別カウント数 (※バージョン1.1より)
・<%View(day, 数字/num)%> … [数字]日前の日別順位 (※バージョン1.1より)
・<%View(month, 1/num)%> … [数字]月前の月別順位 (※バージョン1.1より)
#「num」のところに「get」を入れると切替スイッチ稼動時以外は表示されない。(※バージョン1.11より)
#「num」のところに「get/a」を入れると切替スイッチ稼動時(+α)以外は表示されない。(※バージョン1.11より)
※記述例
<%View(day, 2)%>
2日前のカウント数
<%View(month, 5)%>
5ヶ月前の月間カウント数
<%View(day, 3/num)%>
3日前の順位
<%View(month, 1/num)%>
1ヶ月前の月間順位
<%View(day, 0/get)%>
今日のカウント数。ただし切替スイッチ稼動時以外は表示されない。(※バージョン1.11より)
<%View(week, 0/get/a)%>
直近1週間のカウント数。ただし切替スイッチ稼動時(+α)以外は表示されない。(※バージョン1.11より)
※[おまけ] その他にも以下のテンプレート変数が使えます。
・<%View(bname)%> … ブログ名 (※バージョン1.01より)
・<%View(bid)%> … ブログID (※バージョン1.01より)
[D.スキン変数<%View%>]
※スキンで使えるようになる変数です。
<%View(テンプレート名, 表示数, スイッチ, ブログ, カテゴリー, ナンバー)%>
<%View($template, $vitem, $vmode, $vblog, $vcat, $num)%>
バージョン1.1より[ナンバー]パラメータが加わりました。[ナンバー]には1日前や1ヶ月前の人気記事を表示する場合は「1」を、2日前や2ヶ月前の人気記事を表示する場合は「2」を、それぞれ入れます。その日やその月の場合は「0」となります。
[ナンバー]に「/a」を加えると日付も表示されます。人気記事デイリーランキングでの「2/27[Sun]」等がそれにあたります。
[ナンバー]に「/b」を加えると日付に加えて切替スイッチも表示されます(※バージョン1.11より)。アクセスランキングでの「2/23[Wed]~3/1[Tue] 【切替】 日別 週間 月別」等がそれにあたります。
また[スイッチ]に「day」[week][month][year]を入れると、それぞれ日別・週別・月別・年別のランキングになります。
1.各ブログから5件ずつ人気記事を表示。(ただし、カテゴリー選択時には各カテゴリーから)
<%View(grey/short,5)%>
2.各ブログから5件ずつ人気記事を表示。(カテゴリー選択時も各ブログから)
<%View(grey/short,5,,,b)%>
●サンプル (※「アクセス週間TOP5」)
http://circle.club.or.jp/blog/13/catid/65
3.全ブログから50件ずつ人気記事を表示。
<%View(grey/short,50,,all)%>
4.IDが2と4のブログより10件ずつ人気記事を表示。
<%View(grey/short,10,,2/4)%>
5.IDが1と5のカテゴリーより10件ずつ人気記事を表示。
<%View(grey/short,10,,all,1/5)%>
6.全てのブログから直近1週間の人気記事を50件ずつ表示。日付も表示。(※バージョン1.1より)
<%View(grey/short,50,week,all,,0/a)%>
●サンプル
http://circle.club.or.jp/archives/14
7.全てのブログから1日前の人気記事を50件ずつ表示。日付も表示。(※バージョン1.1より)
<%View(grey/short,50,day,all,,1/a)%>
●サンプル(※実際は切替スイッチを使用して表示しています)
http://circle.club.or.jp/archives/14?vmode=day&vnum=1
8.全てのブログから2ヶ月前の人気記事を50件ずつ表示。日付も表示。(※バージョン1.1より)
<%View(grey/short,50,month,all,,2/a)%>
●サンプル(※実際は切替スイッチを使用して表示しています)
http://circle.club.or.jp/archives/14?vmode=month&vnum=2
9.idが1と4のカテゴリーから3ヶ月前の月間人気記事を10件ずつ表示。日付は非表示。(※バージョン1.1より)
<%View(grey/short,10,month,all,1/4,3)%>
10.idが2と3のブログから直近1年間の人気記事を5件ずつ表示。日付は非表示。(※バージョン1.1より)
<%View(grey/short,5,year,2/3)%>
11.メンバー詳細ページにおいて、当該メンバーのアイテムを、各ブログから5件ずつ人気記事を表示。(カテゴリー選択時も各ブログから)
<%View(grey/short,5,mem,,b)%>
12.IDが1のメンバーのアイテムを、各ブログから10件ずつ人気記事を表示。(ただし、カテゴリー選択時には各カテゴリーから)
<%View(grey/short,10,mem/1)%>
13.ログインしているメンバーのアイテムを、全ブログから10件ずつ人気記事を表示。(ただし、ログインしていないときは非表示)
<%if(loggedin)%>
<%View(grey/short,10,m,all)%>
<%endif%>
14.直近のアクセスページを、各ブログから5件ずつ表示。
<%View(grey/short,5,time)%>
●サンプル (※「最新アクセスページ」)
http://circle.club.or.jp/blog/13
15.直近のアクセスページを、全ブログから5件ずつ表示。
<%View(grey/short,5,time,all)%>
16.全てのブログから直近1週間の人気記事を50件ずつ表示。日付・切替スイッチも表示。
<%View(grey/short,50,week,all,,0/b)%> (※バージョン1.11より)
●サンプル
http://circle.club.or.jp/archives/14
※[おまけ] その他にもスキン・個別アイテムページにて以下のスキン変数が使えます。
・<%View(cname)%> … カテゴリー名 (※バージョン1.02より)
・<%View(cid)%> … カテゴリーID (※バージョン1.02より)
[E.オプション設定](※管理画面「プラグインの管理」→「編集」)
1. Count at loggedin?(はい いいえ) … ログイン時にもカウントするか否か
2. Count at same IPadress?(はい いいえ) … 直前アクセスのIPアドレスについて重複カウントするか否か
3. Delete View Counts on deleted item?(はい いいえ) … アイテム削除と同時にNP_Viewの当該カウントを削除するか否か
4. Delete tables on uninstall?(はい いいえ) … NP_Viewアンイストールと同時にデータベースを削除するか否か
5. ItemID to except. (*ex. 3/15/120) … 除外アイテムidの指定
6. CategoryID to except. (*ex. 2/5/8 ) … 除外カテゴリーidの指定
7. BlogID to except. (*ex. 1/4) … 除外ブログidの指定
8. Last month format. (*ex. Y-m ) … 月別・年別の場合の日付フォーマット設定
9. Last day format. (*ex. Y-m-d ) … 日別・週別の場合の日付フォーマット設定
10. Week or Year format. (*ex. -> ) … 週別・年別の場合の期間ハイフン設定
11. Viewbody's CSS tag. (*ex1. div)(*ex2. ol) … CSS「.viewbody」で使うタグ。デフォルトは「div」
12. Optimize tables every month?(はい いいえ) … 毎月1回テーブルを最適化するか否か
13. Optimize tables every day?(はい いいえ) … 毎日1回テーブルを最適化するか否か
14. Switch format. (*ex. <br />[switch]:) … 切替スイッチのフォーマット(※バージョン1.11より)
15. Switch button. (*ex. Daily/Weekly/Monthly/Yearly/ Access Ranking) … 切替スイッチのボタン(※バージョン1.11より)
8と9の日付フォーマットについては下記ページの文字を使うことができます。
http://www.php.net/manual/ja/function.date.php
ちなみに私の場合、日付フォーマットは、8→「Y年m月」、9→「n/j[D]」、10→「~」と設定しています。
テーブルの最適化を行なう場合、12と13についてはどちらか片一方のみを「はい」にしてください。なお、テーブルの最適化について不安がある場合は「いいえ」のまま変更しないでください。テーブルの最適化については下記ページを参照のこと。
http://dev.mysql.com/doc/mysql/ja/optimize-table.html
14と15の切替スイッチについてはバージョン1.11から使えます。バージョン1.1以前のものがインストールされている場合は、一度アンインストールした後に再度インストールしてください。
15は「/」で5つに区切られています。1~4番目までは、日別・週間・月別・年間の各ランキングへのリンクとなります。表示させたくないものについては空白にしてください。また、5番目についてはリンクの「title」部分で使われます。ちなみに私の場合、「日別/週間/月別//アクセスランキング」と設定しています。
[F.NP_ViewのCSS設定]
・日付部分: .viewtitle
・人気記事本体部分: .viewbody
「.viewbody」についてはオプション設定「11. Viewbody's CSS tag. (*ex1. div)(*ex2. ol)」において「div」「ol」「ul」などを選択することができます。
参考までに人気記事デイリーランキングのCSSは以下の通りです。<ol class="viewbody"></ol>の場合は、「.viewbody」の「list-style-position: inside;」がポイントになると思います。
.viewtitle {
border: 1px solid #ccc;
border-bottom: 0px solid #ccc;
background-color: #ffeeff;
color: #000;
font-size: 14px;
padding : 2px;
}
.viewbody {
font-size: 12px;
border: 1px solid #ccc;
padding : 2px;
line-height: 1.6em;
margin: 0px 0px 5px 0px;
list-style-position: inside;
}
[G.参考:「phpMyAdmin」を使ったNP_viewsからのデータ移動法についてのメモ]
1.「phpMyAdmin」を開く。(※「phpMyAdmin」が分からない人はやめた方が無難です)
2.「nucleus_plugin_views」を選択。(※「plugin_views」)
「操作」→「テーブルを(database.table)にコピーする:」
コピー先のテーブル名:「nucleus_plugin_view」(※「plugin_view」)
※「構造とデータ」にチェック
3.新しくできた「nucleus_plugin_view」を選択。
「構造」→「フィールドの追加」(テーブルの最後)
(※既に「ip」フィールドがある場合、この作業は不要です)
フィールド ip
フィールドタイプ char
長さ/セット 15
表示 (空白)
空の値(Null) NULL
基本値 (空白)
追加 (空白)
4.さらに追加。「構造」→「フィールドの追加」(テーブルの最後)
フィールド vtime
フィールドタイプ datetime
長さ/セット (空白)
表示 (空白)
空の値(Null) NOT NULL
基本値 (空白)
追加 (空白)
5.「NP_View」をインストール。以下、[B.基本的な使用方法]を参照。
6.「NP_View」が正常に動作することを確認した上で、「NP_Views」と「NP_MostViewed」を削除。(場合によっては「phpMyAdmin」より「nucleus_plugin_views」も同時に削除)
【追記】 テンプレート変数を4個追加して、バージョン1.01にしました。(2004-11-08)
【追記】 おまけスキン変数を2個追加して、バージョン1.02にしました。(2004-11-09)
【追記】 大幅に機能拡充して、バージョン1.1にしました。(2005-02-27)
【追記】 切替スイッチ機能を追加して、バージョン1.11にしました。(2005-03-01)
オフライン
テンプレート変数をさらに増やしました(と言うか、増やしすぎ)。既に別の顔を持つプラグインに変貌しているような気がしますが。 8)
【追加したテンプレート変数】
(※まぎらわしいので削除)
主にNP_MultiBlogs1.3以上との連携を想定しています。
【追伸】コメントIDを正確に表示することができないので、ダウンロードを一時中止します。NP_View1.02をダウンロードしてお使いください。(2004-11-14)
オフライン
使わせて頂いてます。
mode にちょっと追加してみました。
「最近n日の人気」がやりたかったので、その修正。
もしデフォルトで入っていた、あるいはこれじゃ動かないって場合はごめんなさい。
モード分岐に追加:
}elseif($vmode[0] == 'day') {
$days = ( !empty($vmode[1]) && is_numeric($vmode[1])) ? (int) $vmode[1] : 7 ;
$query .= ' and UNIX_TIMESTAMP(v.vtime) >= '.(time() - 3600 * 24 * $days); // weekly
$query .= ' ORDER BY v.view';
書式:
<%View(template, num , day/7)%>
テンプレート template を用いて、num個のアイテムを表示、
ただし7日間のアクセス数のみで人気順に並べる。
まだ実装したばかりなので、推移をちゃんとみていません。
たぶん動くはず・・・レベルです。
こんにちは。
「最近n日の人気」というのはよいアイデアですね。このプラグインの弱点は数値が累積してゆく一方で、手動でリセットする必要があるということでしょう。最近n日に加えて、直近n件もぜひ頼みます。
個人的には直近1万件にすれば約1週間分になります。どの記事が上昇し、下降してゆくかを毎日チェックできます。いまの状態だと1度大人気記事が出ると、もはやだれも見なくなっても1位に糊付けになってしまいますから、毎月クリアする必要があります。ところが一度クリアすると、最初にヒットした記事が瑣末であってもランクインし、アクセスを集めるという悪い循環が生まれてよくありませんでした。やはりアクセス解析などと同じで、ランクは自然に上がったり下がったりするのがよいと思います。
どうもこんにちは。
いきなり質問で申し訳ないのですが、このプラグインを使って順位を表示させようと思い、
[url]http://circle.club.or.jp/item/589
に書かれている
<ol class="view">
<li>
<a href="<%itemlink%>"><%title%></a>(<%View%>)
</li>
</ol>
を使ったのですが、全て 1. と表示されてしまいます。
どのようにしたらちゃんと1位、2位、という風に表示できるのでしょうか?
いろいろ調べたり、自分でやってみたりしたのですが、駄目でした。
分かる方、ぜひ教えてください。
<ol class="view">
<li>
<a href="<%itemlink%>"><%title%></a>(<%View%>)
</li>
</ol>
ちょっと説明が不十分でしたね。テンプレートには以下のように記述すればOKだと思います。(未確認ですが…)
【アイテムのヘッダー】
<ol class="view">
【アイテムの本体】
<li>
<a href="<%itemlink%>"><%title%></a>(<%View%>)
</li>
【アイテムのフッター 】
</ol>
【追記】 確認したところうまく表示されないことが判明 :oops: 「アイテムの本体」は正しいのですが、「アイテムのヘッダー」「アイテムのフッター」は間違え。正しくはNP_Viewをカスタマイズする必要があります。(※「$blog -> showUsingQuery($template, $query, 0, 1, 1);」の前後に「echo '<ol class="view">;」と「echo '</ol>';」を追加)
ただし、バージョン1.1よりオプション設定で指定できるようになりました(CSSは「.viewbody」)。「11. Viewbody's CSS tag. (*ex1. div)(*ex2. ol)」で「ol」と指定し、テンプレートの「アイテムの本体」に「<li><a href="<%itemlink%>"><%title%></a>(<%View%>)</li>」等と記入すればOKです。(2005-02-28)
オフライン
NP_View1.02を大幅に機能拡充させました。主な変更点は以下の通り。
・自動的に直近7日間の人気記事デイリーランキング及び順位を抽出
・自動的に直近7日間の人気記事ウイークリーランキングを抽出
・自動的に月別に人気記事ランキング及び順位を抽出(※ただし1年以内のもの)
・自動的に直近1年間の人気記事ランキングを抽出
・IPが連続する時、及び、ログイン時にカウントするか否かをオプションで設定できるようにした
・各ランキングにおいて日付の表示が可能(※日付のフォーマットはオプション設定で変更可)
・毎日1回or毎月1回、Nucleusの全テーブルを最適化することが可能(※オプション設定)
・日別・週間・月別・年間の各ランキングへの切替スイッチ(※バージョン1.11より)
人気記事のデイリーランキング・ウイークリーランキングのサンプルは以下のページにあります。(月別・年別についてはデータが不足しているので未作成)
人気記事デイリーTOP5
http://circle.club.or.jp/blog/26
●スキンへの記述例
<%View(テンプレート名, 表示数, スイッチ, ブログ, カテゴリー, ナンバー)%>
<%View($template, $vitem, $vmode, $vblog, $vcat, $num)%>
[ナンバー]には1日前や1ヶ月前の人気記事を表示する場合は「1」を、2日前や2ヶ月前の人気記事を表示する場合は「2」を、それぞれ入れます。その日やその月の場合は「0」となります。
[ナンバー]に「/a」を加えると日付も表示されます。人気記事デイリーランキングでの「2/27[Sun]」等がそれにあたります。
[ナンバー]に「/b」を加えると日付に加えて切替スイッチも表示されます(※バージョン1.11より)。アクセスランキングでの「2/23[Wed]~3/1[Tue] 【切替】 日別 週間 月別」等がそれにあたります。
<%View(grey/short, 5, day, all, , 1/a)%>
全てのブログから1日前の人気記事を5件ずつ表示。日付も表示。
<%View(grey/short, 5, month ,, , 0/a)%>
そのブログから今月の人気記事を5件ずつ表示。日付も表示。
<%View(grey/short, 50, week , all, , 0/b)%> (※バージョン1.11より)
全てのブログから直近1週間の人気記事を50件ずつ表示。日付・切替スイッチも表示。
http://circle.club.or.jp/archives/14
<%View(grey/short, 10, month, all, 1/4, 3)%>
idが1と4のカテゴリーから3ヶ月前の月間人気記事を10件ずつ表示。日付は非表示。
<%View(grey/short, 5, year, 2/3)%>
idが2と3のブログから直近1年間の人気記事を5件ずつ表示。日付は非表示。
●テンプレートへの記述方法
<%View(day, 2)%>
2日前のカウント数
<%View(week)%>
直近1週間のカウント数
<%View(month, 5)%>
5ヶ月前の月間カウント数
<%View(year)%>
直近1年間のカウント数
<%View(day, 3/num)%>
3日前の順位
<%View(month, 1/num)%>
1ヶ月前の月間順位
<%View(day, 0/get)%>
今日のカウント数。ただし切替スイッチ稼動時以外は表示されない。(※バージョン1.11より)
<%View(week, 0/get/a)%>
直近1週間のカウント数。ただし切替スイッチ稼動時(+α)以外は表示されない。(※バージョン1.11より)
●NP_ViewのCSS設定
日付部分のスタイルシートは「.viewtitle」で、人気記事本体部分のスタイルシートは「.viewbody」で指定できます。「.viewbody」についてはオプション設定で「div」「ol」「ul」などを選択することができます。
参考までに人気記事デイリーランキングのCSSは以下の通りです。<ol class="viewbody"></ol>の場合は、「.viewbody」の「list-style-position: inside;」がポイントになると思います。
.viewtitle {
border: 1px solid #ccc;
border-bottom: 0px solid #ccc;
background-color: #ffeeff;
color: #000;
font-size: 14px;
padding : 2px;
}
.viewbody {
font-size: 12px;
border: 1px solid #ccc;
padding : 2px;
line-height: 1.6em;
margin: 0px 0px 5px 0px;
list-style-position: inside;
}
●NP_View1.02からのアップデート方法
1.テーブル構成が変わるので、NP_View1.02のデータを引き継ぎたい場合は、phpMyAdmin等を使って以下のSQL文を実行してください。(※phpMyAdminの場合は、phpMyAdminを開き、「nucleus_plugin_view」→「SQL」→SQL文を記入して実行)
2.その上で一度「NP_View」をアンインストールしてから、あらためてインストールし直してください。
ALTER TABLE `nucleus_plugin_view`
CHANGE `id` `id` INT(11) UNSIGNED DEFAULT '0' NOT NULL,
CHANGE `view` `view` INT(11) UNSIGNED DEFAULT '0' NOT NULL,
ADD `month01` INT(11) UNSIGNED NOT NULL,
ADD `month02` INT(11) UNSIGNED NOT NULL,
ADD `month03` INT(11) UNSIGNED NOT NULL,
ADD `month04` INT(11) UNSIGNED NOT NULL,
ADD `month05` INT(11) UNSIGNED NOT NULL,
ADD `month06` INT(11) UNSIGNED NOT NULL,
ADD `month07` INT(11) UNSIGNED NOT NULL,
ADD `month08` INT(11) UNSIGNED NOT NULL,
ADD `month09` INT(11) UNSIGNED NOT NULL,
ADD `month10` INT(11) UNSIGNED NOT NULL,
ADD `month11` INT(11) UNSIGNED NOT NULL,
ADD `month12` INT(11) UNSIGNED NOT NULL,
ADD `week0` MEDIUMINT(8) UNSIGNED NOT NULL,
ADD `week1` MEDIUMINT(8) UNSIGNED NOT NULL,
ADD `week2` MEDIUMINT(8) UNSIGNED NOT NULL,
ADD `week3` MEDIUMINT(8) UNSIGNED NOT NULL,
ADD `week4` MEDIUMINT(8) UNSIGNED NOT NULL,
ADD `week5` MEDIUMINT(8) UNSIGNED NOT NULL,
ADD `week6` MEDIUMINT(8) UNSIGNED NOT NULL
●オプション設定
1. Count at loggedin?(はい いいえ) … ログイン時にもカウントするか否か
2. Count at same IPadress?(はい いいえ) … 直前アクセスのIPアドレスについて重複カウントするか否か
3. Delete View Counts on deleted item?(はい いいえ) … アイテム削除と同時にNP_Viewの当該カウントを削除するか否か
4. Delete tables on uninstall?(はい いいえ) … NP_Viewアンイストールと同時にデータベースを削除するか否か
5. ItemID to except. (*ex. 3/15/120) … 除外アイテムidの指定
6. CategoryID to except. (*ex. 2/5/8 ) … 除外カテゴリーidの指定
7. BlogID to except. (*ex. 1/4) … 除外ブログidの指定
8. Last month format. (*ex. Y-m ) … 月別・年別の場合の日付フォーマット設定
9. Last day format. (*ex. Y-m-d ) … 日別・週別の場合の日付フォーマット設定
10. Week or Year format. (*ex. -> ) … 週別・年別の場合の期間ハイフン設定
11. Viewbody's CSS tag. (*ex1. div)(*ex2. ol) … CSS「.viewbody」で使うタグ。デフォルトは「div」
12. Optimize tables every month?(はい いいえ) … 毎月1回テーブルを最適化するか否か
13. Optimize tables every day?(はい いいえ) … 毎日1回テーブルを最適化するか否か
14. Switch format. (*ex. <br />[switch]:) … 切替スイッチのフォーマット(※バージョン1.11より)
15. Switch button. (*ex. Daily/Weekly/Monthly/Yearly/ Access Ranking) … 切替スイッチのボタン(※バージョン1.11より)
8と9の日付フォーマットについては下記ページの文字を使うことができます。
http://www.php.net/manual/ja/function.date.php
ちなみに私の場合、日付フォーマットは、8→「Y年m月」、9→「n/j[D]」、10→「~」と設定しています。
テーブルの最適化を行なう場合、12と13についてはどちらか片方のみを「はい」にしてください。なお、テーブルの最適化について不安がある場合は「いいえ」のまま変更しないでください。
http://dev.mysql.com/doc/mysql/ja/optimize-table.html
14と15の切替スイッチについてはバージョン1.11から使えます。バージョン1.1以前のものがインストールされている場合は、一度アンインストールした後に再度インストールしてください。
15は「/」で5つに区切られています。1~4番目までは、日別・週間・月別・年間の各ランキングへのリンクとなります。表示させたくないものについては空白にしてください。また、5番目についてはリンクの「title」部分で使われます。ちなみに私の場合、「日別/週間/月別//アクセスランキング」と設定しています。
【追記】 日別・週間・月別・年間の各ランキングへの切替スイッチをつけた上でバージョン1.11にアップしました。
[サンプル] アクセスランキング
http://circle.club.or.jp/archives/14
なお、アクセスランキングにおいては、スキンとテンプレートには以下のような感じで記述しています。
1.スキンへの記述
<%View(grey/view,50,week,all,,0/b)%>
2.テンプレート「grey/view」への記述
<li>
<a href="<%itemlink%>"><%title%></a>
<span class="iteminfo">
<%View(day,0/get)%><%View(week,0/get/a)%><%View(month,0/get)%><%View(year,0/get)%>
<%edit%></span>
</li>
#「<%View(week,0/get/a)%>」のように「get」の後に「/a」をつけると、切替スイッチが稼動していないデフォルト状態時にもカウント数が表示されます。
【追記】 NP_Thumnailと一緒に使う場合に生じるバグを修正した上で、バージョン1.12にアップしました。Andyさん、ありがとうございます。 (2005-11-07)
【追記2】 セキュリティを強化した上で、バージョン1.121にアップしました。(2006-09-05)
オフライン
NP_Viewバージョン1.11 を使わせていただいています。
私のブログの場合、公開URLが
http://www.hoge.com/ で
ブログを
http://www.hoge.com/blog/ に置いています。
そのため、hoge.com/下のindex.phpに
<?php
// This file will generate and return the main page of the site
$CONF = array();
$CONF['Self'] = 'index.php';
include('./blog/config.php');
selector();
?>
とか書いて対応しています。
さて、本題ですが、このhttp://www.hoge.com/でNP_Viewの切り替え機能
スイッチを利用した場合、
http://www.hoge.com/&vmode=month
等にリンクされてしまい正常に動作しません。
どこをいじればよいのでしょうか?
(ちなみにfancyurlも使用しています。
オフライン
リンクについては「//print」の以下のコードで制御されています。
$vlink = ($CONF['URLMode'] == 'pathinfo') ? '<a href="'.$_SERVER['PHP_SELF'].'?vmode=' : '<a href="'.$vl[0].'&vmode=';
fancyurlならば、下記のように書き換えれば大丈夫かも。
$vlink = ($CONF['URLMode'] == 'pathinfo') ? '<a href="'.$_SERVER['PHP_SELF'].'blog/?vmode=' : '<a href="'.$vl[0].'&vmode=';
オフライン
さっそくのご返事ありがとうございます。
実は、完全に(?)fancy化できていないようで、junさんご指摘の方法ではうまくいきませんでした。
リンクが
http://www.hoge.com/&vmode=month
等のままです。
完全にfancy化していないとは、おはずかしながらトップページからは記事等のリンクが
http://www.hoge.com/blog/?itemid=xxxx
等になっているのです。
一度、このリンク等、記事中に入ってしまえば(つまりblogディレクトリに移ってしまえば?)、
リンクは
http://www.hoge.com/blog/item/xxxx
のように表示されます。
(これらも解決したいのですが・・・。もちろん、NP_Viewとは無関係なことはわかっています :cry: )
一般的な回答でなくなってしまうかもしれませんが、このような環境の時はどういじればいいでしょうか?
ご指摘の行の2つ上くらいの$urlまわりかなぁという気もするんですがうまくいきませんでした・・・
お願いいたします。
オフライン
確かにfancyurl化されていないようですね。NP_Viewより先に何とかしなければいけないような気がします。
試しにhoge.com/の下のindex.phpを次のように変更して、
<?php
header("Location: ./blog/") ;
?>
hoge.com/blog/下に次のindex.phpを置いてみてはいかがでしょうか。
<?php
// This file will generate and return the main page of the site
$CONF = array();
$CONF['Self'] = '.';
include('./config.php');
selector();
?>
blogディレクトリに移ってしまえばfancyurl化されるようですので、http://hoge.com/からhttp://hoge.com/blog/に自動転送するように設定すればうまくいくような気がします。
追記 記述が間違っていたので「$CONF['Self'] = 'index.php';」を「$CONF['Self'] = '.';」に修正しておきました。
オフライン
本来の趣旨と違うところでお付き合いいただきましてありがとうございます。
ご指摘のとおりにおのおののindex.phpを書き換えましたがだめでした。
スイッチのところのリンクが
http://www.hoge.com/blog/&vmode=month
となってしまい、404エラーとなってしまいます。
また、全体的にfancy化になってしまわなくなりました。
(/blog下に入っても、http://www.hoge.com/blog/?itemid=230と?でつながってしまう)
私の本来のルートのindex.phpは
<?php
// This file will generate and return the main page of the site
$CONF = array();
$CONF['Self'] = 'index.php';
include('./blog/config.php');
selector();
?>
/blog 下のindex.phpは
<?php
// This file will generate and return the main page of the site
$CONF = array();
$CONF['Self'] = '.';
include('./config.php');
selector();
?>
となっています。
実はこの中途半端な状態の為か、動かない(と思われる)プラグインもあります。
すいません、ちょっと本線と離れてしまいますが、解決にご協力ください。他になにか提示しなければ
いけない情報はありますでしょうか?
オフライン
先ほど間違えたことを書いていました。index.phpに「$CONF['Self'] = 'index.php';」と記述したらfancyurl化されませんね。 :oops:
/blog 下のindex.phpは
<?php // This file will generate and return the main page of the site $CONF = array(); $CONF['Self'] = '.'; include('./config.php'); selector(); ?>
hoge.com/blogの下のindex.phpが上記のような設定ならば、hoge.com/の下のindex.phpに「<?php header("Location: ./blog/") ;?>」と記述すればいいような気がします。
以下、質問。
NP_View自体は動いているのでしょうか?(日別、週間、月別モード等)
ところで、以前うちのサイトで「月間Top50」の作り方について質問された方ですか?(名前に見覚えがあるような)
オフライン
ありがとうございました。ご指摘の方法で
<!-- w --><a class="postlink" href="http://www.hoge.com/">www.hoge.com/</a><!-- w --> へのアクセスが
<!-- w --><a class="postlink" href="http://www.hoge.com/blog/">www.hoge.com/blog/</a><!-- w --> に移動するとともに、blog/下でfancyurlが使えております。
NP_Viewも正常に動いております。ありがとうございました。
ところで、以前うちのサイトで「月間Top50」の作り方について質問された方ですか?(名前に見覚えがあるような)
あ、そうです。その節はありがとうございました。もうひとつブログを使う方法を試した見たのですが、うまくいかずに諦めてしまいました。もしかしたら、今回の問題をクリアできたので(index.php -> blog/index.php)うまくいくかもしれませんが・・。ちょっと敷居が高かったです・・・
もし、どこかで解説することがありましたらお願いいたします。
オフライン
問題が解決してよかったですね。
ついでですので、新規にBlogを作成して、そこでNP_Viewを使う手順について書いておきます。
1.管理画面の「新規Blog作成」で新しいブログを作ります。(→アクセス先設定画面へ移動)
2.「方法 2」でアクセスとするならば「http://www.hoge.com/blog」を記入して「Blogを作成」ボタンをクリック。
3.管理画面ホームに戻り、作ったばかりのBlogのIDを確認。
4.仮に、新たに作成したブログidが3で、メインの目次ページにおけるデフォルトの記述が「<%blog(grey/short,15)%>」だとすれば、メインの目次ページに以下のようなif文を記入。
<%if(blogsetting,bnumber,3)%>
<%View(grey/short,50,month,1)%>
<%else%>
<%blog(grey/short,15)%>
<%endif%>
5.「http://www.hoge.com/blog/blog/3」にアクセスすれば人気記事の月間TOP50が表示される。
6.月次アーカイブ一覧ページで使うことも可能です。その場合は、上記と同様のif文を記述し、リンク先は「http://www.hoge.com/blog/archives/3」となります。(参考:アクセスランキング)
#試していませんが月次アーカイブページでも可能なような気がします
NP_Viewとは関係ありませんが、同様な手順を踏めば、トラックバック一覧やコメント一覧といったページの作成も可能です。(要.NP_CT)
なお、NP_ExtraSkinJPを使えば、新規にBlogを作らずに、手軽に人気記事の月間TOP50ページを作成することができるようです。
オフライン
junさん、ご丁寧な解説ありがとうございました。
以前やったときとは勘違いしている部分もあったようで、ご指摘の方法で再度やってみましたら、
うまく別ページでアクセストップ20を作ることができました。ありがとうございます。
そこでひとつ質問なんですが、
<%if(blogsetting,bnumber,3)%>
<%View(grey/short,50,month,1)%>
<%else%>
<%blog(grey/short,15)%>
<%endif%>
のif文なのですが、これはどのような状況を想定されているのでしょうか?
オフライン
NP_Viewの最新版を入れ各ページでのカウントはうまくいってるのですが、ランキング表示でうまくいきません。(Fancy URLモードです)
http://ドメイン/nucleus/にインストールして使っているのですが、メインの目次に表示しているランキング表示では
http://ドメイン/item/**のようにnulceusフォルダの指定がなくなってリンクできていません。
どこを直せばいいでしょうか。よろしくお願いします(__)
えー、すいません。 できました。
fancy urlモードにするときの、index.php内の
$CONF['Self'] = '.';
とする作業を間違えてどっと(.)を抜いていました。
NP_View以外は正しく動作していたためfancy urlはうまくいっているのかと思いこんでいました。
ありがとうございました。
NP_Viewを使われる方は
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=1213&">viewtopic.php?t=1213&</a><!-- l -->
の修正を入れるよう,オススメします。
オフライン
NP_Viewを利用して、サイドバーに人気記事をリスト表示しています。
通常のスキンでは問題なく動作するのですが、ExtraSkinJPで作ったスキンページから、このリストのリンク先に行こうとするとエラーになってしまいます。
エラーメッセージは以下の通りですが、
Fatal error: Call to a member function on a non-object in
mypage\nucleus\plugins\NP_MultiBlogs.php on line 79
初心者ゆえ、メッセージの意味も分かりません。
リンク先が、mypage/extra.php?item=×× となっているせいでしょうか。修正方法とかありますでしょうか。
オフライン
通常のスキンでは問題なく動作するのですが、ExtraSkinJPで作ったスキンページから、このリストのリンク先に行こうとするとエラーになってしまいます。
NP_ViewとNP_MultiBlogsはExtraSkinJPに対応していないのでカスタマイズする必要があると思います。ExtraSkinJPを使っていないのでよく分かりませんが。(お役に立てなくてスミマセン)
オフライン
ああ、プラグインの組み合わせの問題がありましたね。忘れていました。
カスタマイズは簡単には出来そうもないので、当面はExtraページではNP_Viewを使わないことでしのぎます。
オフライン
NP_Viewを利用させていただいています。便利なプラグインありがとうございます。
ところで、何かのタイミングなのか、1件Viewのカウントがおかしくなっています。そこで手作業ででも
カウントを修正したいのですが、具体的にはどうしたらいいのでしょうか?(SQLのデータをいじるんですよね?)
ちなみに、へんなデータというのは
http://masa.moto84.com/blog/blog/3?vmode=week
http://masa.moto84.com/blog/blog/3?vmode=year
http://masa.moto84.com/blog/blog/3?vmode=month
とかにある、の「第3回 名栗湖~棒ノ嶺ピーク・・・・」です。
オフライン
1件Viewのカウントがおかしくなっています。そこで手作業ででも
カウントを修正したいのですが、具体的にはどうしたらいいのでしょうか?(SQLのデータをいじるんですよね?)
確かに変ですね。どうやら2006年に入ってから、アイテムIDが281のデータだけ、妙な動作をしているようです。
phpMyAdminやNP_Databaseを使うなりして、「plugin_view」テーブルの状況を確認してみてください。
以下、「NP_Database」を使った場合について記しておきます。
1.「plugin_view」テーブルの「View」をクリック。
2.「281」で検索をして「id」が「281」のレコードを特定。
3.「Action」の「編集」をクリック。
4.「month01」「month02」というのが月別データ(※前者が1月、後者が2月)、「week2」「week3」というのが日別データなので、変な数字が入っていたら適宜修正の上「レコードの編集」ボタンをクリックしてください。
5.仮に「id」が「281」のレコードが重複して存在していた場合には、どちらかを削除してください。(※「Action」の「編集」→「レコードの削除」
オフライン
ありがとうございます。
レコードがダブっていましたので削除しました。それと、先月・今月のデータがちょっと異常だったので、常識的な数字に書き換えました。
ほんと、このレコードだけだと思うので、今までどおり、気持ちよく表示されています。ありがとうございました。
オフライン