rate数による表示
rating: +17+x

そのページを開いた時点でのRate数に応じて表示内容を変更する。ページを開いた後にUVもしくはDVをしても即座に反映される訳ではない(ページをリロードする必要あり)。

構文

本来htmlブロックにListPagesモジュールの内容を組み込む事はできないが%%content{0}%%によってその規制を回避する(これはWikidot構文からhtml構文に変化される際の順序を利用したバグであるが、詳細は割愛)。

ListPagesの設定にseparate="yes"の設定は必須(このバグの仕組みに関係するが割愛)。

ListPagesの設定を変更すると自分の著作したページに対してhal_aki氏の実績を自動付与構文も作成可能。

ListPagesは検索でヒットしたページに応じて構文で設定したフォーマットに則った文章を生成するが、この場合検索したページ数分のhtmlブロックを生成する。つまり、この構文においては、複数ページがヒットした時、その全てのページの情報を1つのhtmlブロックに集約する事は不可能。集約する場合はiframe通信等の技術が必須。

[[module ListPages range="." separate="yes"]]
[[%%content{0}%%html]]
<style type="text/css">
@import url(http://scp-jp.wdfiles.com/local--files/japanese-syntax/scp-WikidotCss.css);
 
#ratingarea{
height:300px;
width:100%;
}
</style>
<script type="text/javascript">
//ここでRate数を変数に格納する
var thisrate = %%rating%%;
//ページ読み込み後の動作
document.addEventListener("DOMContentLoaded",function(){
//Rate数によって変化するエリアの背景色と文字色
var backgroundC = "#FFF";
var fontC = "#000";
//表示する文字
var innerMessage = "今何のVoteがない";
//Rate数による表示変化
if(thisrate > 0){
//Rate数によって変化するエリアの背景色と文字色
backgroundC = "#AAF";
fontC = "#000";
//表示する文字
innerMessage = "+やで";
 
}else if(thisrate < 0){
//Rate数によって変化するエリアの背景色と文字色
backgroundC = "#000";
fontC = "#FFF";
//表示する文字
innerMessage = "-やで";
}
 
//Rate数により変化する要素を取得
var displayA = document.getElementById("ratingarea");
 
//上記の設定を反映
displayA.style.backgroundColor = backgroundC;
displayA.style.color = fontC;
displayA.innerHTML = innerMessage;
 
});
 
</script>
<!- rate数によって変化するエリア -->
<div id="ratingarea">
</div> 
[[/html]]
[[/module]]
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License