AnythingRatingは使えますか?  【解決済み】

質問全般・改善要望
返信する
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

AnythingRatingは使えますか?

投稿記事 by mana »

記事を評価して評価順に表示できる物はないかと探していてAnythingRatingを見つけたんですが
anythingRating_readme.txtなどを見ながらsnippet.anythingRating.phpの内容をコピーし管理画面のスニペットでAnythingRatingを作り、
/snippets/にanythingRatingディレクトリを作成しzipファイルの中身を入れ、
記事を表示するテンプレートに[!AnythingRating? &define=`1` &atrGrp=`grpName`!]と [!AnythingRating? &atrGrp=`grpName` &atrId=`idItem`!]を入れたりしてみたんですがエラーが出てしまいます。
http://modxcms.com/forums/index.php/top ... 1.100.html
も見たりしたんですが英語力が無く理解できませんでした。
なんとなくですが使えてるような・・

今のmodxでも使える物なのでしょうか?
または、使い方をご存知の方はいらっしゃらないでしょうか?
すみませんが宜しくお願いします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: AnythingRatingは使えますか?

投稿記事 by sama55 »

こんにちは

ローカルサーバー + MODx V1.0.5J 環境で動かしてみました。MaxiGalleryとの連携は確認してませんが、記事単位ではちゃんと動くようです。
ただ、anythingRating_1.0beta3/anythingRating/anythingRating_readme.txt には誤記があるようです。例えば、「How-to use this snippet(L336近辺)」のコード例の引数名が間違ってたり(バージョンを上げた時に正しく反映しなかったのかと)。同ファイルのL74~178近辺の引数定義が正しそうです。サンプルサイトも実際稼動してなかったりするので心配になりますよね。 ^^;

余談1)
assets/snippets/anythingRating/snippet.anythingRating.phpはスニペを作ったら不要なので、サーバーのフォルダに残ってるようでしたら削除しといた方が良いかもです。

余談2)
本家のExtraページですが、デフォルトではRevoにフィルタリングされるので、ページ表示後にキーワードだけで検索するとEvoの部品が表示されません。このページに最近何度訪問しても操作をミスってしまいます(できればデフォはAllにして欲しい)。更に、最近のドメイン変更の影響かは分かりませんが、Googleなどにスタックされたインデクスが404になることが多いようです。お気をつけくださいまし。
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: AnythingRatingは使えますか?

投稿記事 by mana »

sama55さま、お返事ありがとうございます。
ローカルサーバー + MODx V1.0.5J 環境で動かしてみました。MaxiGalleryとの連携は確認してませんが、記事単位ではちゃんと動くようです。
との事ですがコールの書き方が悪いのか動いてくれません。。
どのように書かれたんでしょうか? 
更に、最近のドメイン変更の影響かは分かりませんが、Googleなどにスタックされたインデクスが404になることが多いようです。お気をつけくださいまし。
AnythingRatingはなるべく使わないほうがいいって事でしょうか?

すみませんがよろしくおねがいします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: AnythingRatingは使えますか?

投稿記事 by sama55 »

mana さんが書きました:
ローカルサーバー + MODx V1.0.5J 環境で動かしてみました。MaxiGalleryとの連携は確認してませんが、記事単位ではちゃんと動くようです。
との事ですがコールの書き方が悪いのか動いてくれません。。どのように書かれたんでしょうか?
**********************************************************************
1.星の表示
**********************************************************************
1.0.5Jに同梱のテンプレート(xray)にコール文を2つほど。一つ目はグループ定義。二つ目は☆☆☆☆☆の表示。

コード: 全て選択

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <base href="[(site_url)]" />
  <title>[*pagetitle*]|[(site_name)]</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="assets/templates/xray/style.css" />
  <link rel="stylesheet" type="text/css" href="assets/templates/xray/content.css" />
</head>
<body>
[!AnythingRating? &define=`1` &atrGrp=`grpName`!]
<div class="wrap">
	<div class="header">
	    <h1><img src="assets/templates/xray/images/header_image.png" alt="[(site_name)]" /></h1>
	</div>
	<div class="navi">
	    [[Wayfinder?startId=0&hideSubMenus=true&level=1]]
	</div>
	<div class="content">
	    [[Breadcrumbs]]
	    <h2>[*pagetitle*]</h2>
[!AnythingRating? &atrGrp=`grpName` &atrId=`[*id*]`!]
	    [*content*]
	</div>
	<div class="footer">
	    (c)2011 [(site_name)]
	</div>
</div>
</body>
</html>
star.jpeg
**********************************************************************
2.評価リスト
**********************************************************************
下はページに表示した例(リソースを新規に追加し、コンテンツ部に下のコール文を入力)。普通はサイドバーあたりに「人気の記事」とでもタイトルを付けて表示するのでしょうね。

コード: 全て選択

[[AnythingRating? &getTopRated=`1` &atrGrp=`grpName` &topTable=`site_content` &topTitleField=`pagetitle`]]
ratelist.jpeg
mana さんが書きました:
更に、最近のドメイン変更の影響かは分かりませんが、Googleなどにスタックされたインデクスが404になることが多いようです。お気をつけくださいまし。
AnythingRatingはなるべく使わないほうがいいって事でしょうか?
いえいえ、Evoの部品が上手に探せないという話です。 気になさらず。 ^^;
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: AnythingRatingは使えますか?

投稿記事 by mana »

sama55さまに教えていただきましたようにやっていますが何回やってもエラーが出てきてしまいます。

コード: 全て選択

http://modxcms.com/extras/package/?package=22
から何回もダウンロードして、sama55さまに教えていただきましたコールを2つ追加してるんですが

≪ MODx Parse Error ≫
MODx encountered the following error while attempting to parse the requested resource:
≪ Execution of a query to the database failed - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '○○○_atRating_grpName ( `id` int(11) NOT NULL auto_increment, ' at line 1 ≫
SQL: CREATE TABLE ○○○_atRating_grpName ( `id` int(11) NOT NULL auto_increment, `rating_id` VARCHAR(80) NOT NULL, `rating` int(11) NOT NULL, `lastIP` varchar(255) NOT NULL, `nbIP` int(11) NOT NULL, `voteDate` TIMESTAMP(12), PRIMARY KEY (`id`) ) ENGINE=MyISAM;

Basic info
REQUEST_URI: /test/
ID: 18
Current Snippet: AnythingRating
Referer: http://○○○.jp/
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; YTB720; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)

Parser timing
MySQL: 0.0899 s (9 Requests)
PHP: 0.2266 s
Total: 0.3165 s

が出てしまいます。
コールを教えていただいたのに一人で解決出来なくてすみません。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: AnythingRatingは使えますか?

投稿記事 by sama55 »

mana さんが書きました:≪ MODx Parse Error ≫
MODx encountered the following error while attempting to parse the requested resource:
≪ Execution of a query to the database failed - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '○○○_atRating_grpName ( `id` int(11) NOT NULL auto_increment, ' at line 1 ≫
SQL: CREATE TABLE ○○○_atRating_grpName ( `id` int(11) NOT NULL auto_increment, `rating_id` VARCHAR(80) NOT NULL, `rating` int(11) NOT NULL, `lastIP` varchar(255) NOT NULL, `nbIP` int(11) NOT NULL, `voteDate` TIMESTAMP(12), PRIMARY KEY (`id`) ) ENGINE=MyISAM;
MySQLのバージョンに依存する問題っぽいですね・・・なんせ古い部品ですから。
自分もあまりMySQLには詳しくありませんが、anythingRating/classes/anythingRating.class.inc.php(L348)の"ENGINE=MyISAM"を"TYPE=MyISAM"に書き換えたらどうなります?
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: AnythingRatingは使えますか?

投稿記事 by mana »

sama55さま、教えていただいた様に"ENGINE=MyISAM"を"TYPE=MyISAM"に書き換えると

≪ MODx Parse Error ≫
MODx encountered the following error while attempting to parse the requested resource:
≪ Execution of a query to the database failed - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '○○○_atRating_grpName WHERE id = '1'' at line 1 ≫
SQL: SELECT rating_id as 'params', rating as 'nbStars', lastIP as 'atrTpl', nbIP, voteDate as 'endDate' FROM ○○○_atRating_grpName WHERE id = '1'

Basic info
REQUEST_URI: /test/
ID: 18
Current Snippet: AnythingRating
Referer: http://○○○.jp/
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; YTB720; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)

Parser timing
MySQL: 0.0600 s (5 Requests)
PHP: 0.0868 s
Total: 0.1468 s

と言ったエラーになりました。
MySQLのバージョンとの事ですが
MySQLのバージョンは5.1.22-rcでCORESERVERを使っております。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: AnythingRatingは使えますか?

投稿記事 by sama55 »

テーブルのCREATEは上記の変更で実行されたようですね。
今回は、恐らくシングルクオート(')が問題になってるような気がするので、ソース内のSQL文のシングルクオート(')をバッククオート(`)に直してみてください。
私の検証環境のMySQLは、5.1.35-communityです。このままではAnythingRatingをデバッグしてるようなものですし、セキュリティ的な不安も覚えます。前向きな判断として、技術的な限界を感じるようでしたら使用を諦めるのも一つの手かもしれません。
最後に編集したユーザー sama55 [ 2011年3月01日(火) 07:25 ], 累計 1 回
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: AnythingRatingは使えますか?  【解決済み】

投稿記事 by mana »

sama55さま、いろいろと相談にのっていただいてありがとうございました。
今回の件は諦めようと思います。
ほんとうにありがとうございました。
返信する