Home > MODx > [MODx]CSS Star Ratingで記事評価機能

[MODx]CSS Star Ratingで記事評価機能

よく技術情報のページなんかに

この記事は役に立ちましたか?

なんていって5段階評価の投票ができるようなページがあります。 Amazonの書評みたいなものですね。 あれを実現するスニペット。

参考サイトはこちら

導入手順は上記サイトを参考にしてもらえばわかるので、簡単に。

  1. 環境: MODx 0.9.6 / CSS Star Rating 1.0
  2. 本家サイトから必要なファイルをダウンロード&解凍&適切な場所に設置
  3. star_rating.snippet.tpl の内容で新しいスニペットを作成(スニペット名:star_rating
  4. star_ratingという名前のテンプレート変数を作成し、投票機能をつけたいテンプレートへのアクセスを追加
  5. 先ほどのテンプレートにCSS Star Ratingのスタイルシートへのリンク追加
  6. テンプレートや記事の好きな場所に[!star_rating!]と追加

以上。(ホンマにテキトーやな)

でもここで問題。僕のサイトでは「フレンドリーURL:ON」、「エイリアスパス:使用」の環境で使用しているのですが、投票時にアクセスするURLにエイリアスパスが反映されないという不具合が。 要するに親フォルダ(エイリアス名:parent)の下に子ドキュメント(エイリアス名:child)があり、接尾詞が.htmlの場合は以下のURLになる。

http://(site_url)/parent/child.html

そのドキュメントを評価するときに接続するURLは、以下のようになるべきである。

http://(site_url)/parent/child.html?starvote=5&pid=xx
(starvoteは5段階評価の数値、pidはドキュメントID)

だが、そこがうまく動作せず、以下のように親のパスがなくなったURLになってしまっている。

http://(site_url)/child.html?starvote=5&pid=xx

そしてページが見つからないというエラーになる。 こちらのフォーラムを参照したところ、どうやらこれはバグだ。

Support/Comments for CSS Star Rating

次のバージョンで修正されると思われるが、次バージョンがリリースされるまでは以下の修正で対応できる。

star_ratingスニペットを修正する

star_rating.snippet.tplファイルの内容でstar_ratingスニペットを作成したが、その内容を修正する。 star_rating.snippet.tplでいうところの157行目から161行目までの5行でURLを作成している。 (最低評価から最高評価まで5段階分のURL) そこを修正する。

修正前

 $modx->makeUrl($modx->documentObject['id'], $modx->documentObject['alias'], 'starvote=1&pid=' . $docID)
                               ・・・
 $modx->makeUrl($modx->documentObject['id'], $modx->documentObject['alias'], 'starvote=5&pid=' . $docID)

修正後

$modx->makeUrl($modx->documentObject['id'], '', 'starvote=1&pid=' . $docID)
                               ・・・
$modx->makeUrl($modx->documentObject['id'], '', 'starvote=5&pid=' . $docID)

つまり以下の部分を空文字列に置き換える。

$modx->documentObject['alias'] → ''

これで正常に動作しました。 同じユーザが何度も投票しないようにするためのセッション管理などで、ややこしい部分はまだありそうだけど、それはおいおい調査します。

追記

検索エンジンのクローラーのせいで、勝手に投票されて少し困っています。 対処法はまだわかりません。

関連するエントリー [MODx] CSS Star





プレビュー

トラックバック:No Trackbacks

トラックバック URL
http://blog.garden-place.jp/action.php?action=plugin&name=TrackBack&tb_id=126
Listed below are links to weblogs that reference
[MODx]CSS Star Ratingで記事評価機能 from Web 酒 肴
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

Home > MODx > [MODx]CSS Star Ratingで記事評価機能

Search
Feeds

Page Top