2 * 表示データ作成用テンプレート(patTemplate)
\r
4 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
\r
6 * @package Magic3 Framework
\r
7 * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
\r
8 * @copyright Copyright 2006-2012 Magic3 Project.
\r
9 * @license http://www.gnu.org/copyleft/gpl.html GPL License
\r
10 * @version SVN: $Id: main_list.tmpl.html 5032 2012-07-12 01:07:50Z fishbone $
\r
11 * @link http://www.magic3.org
\r
13 <patTemplate:tmpl name="_widget">
\r
14 <script type="text/javascript">
\r
16 var photoCount = {PHOTO_COUNT};
\r
17 var photoInfo = new Array();
\r
21 var dialogHtml = '<div id="photo_config" data-role="dialog">';
\r
22 dialogHtml += '<div data-role="content">';
\r
23 dialogHtml += '<p>コンテンツ</p>';
\r
24 dialogHtml += '<p><a href="#" data-role="button" data-rel="back">閉じる</a></p>';
\r
25 dialogHtml += '</div>';
\r
26 dialogHtml += '</div>';
\r
27 $('body').append(dialogHtml);
\r
30 m3_ajax_request('s/photo', '{AJAX_URL}', ajax_success_func, ajax_failure_func);
\r
31 <patTemplate:tmpl name="category_script" visibility="hidden">
\r
33 $("#category_add").click(function(){
\r
34 $("#gallery_category").slideToggle(300);
\r
37 $("#password_submit").click(function(){
\r
38 $("#gallery_category").slideToggle(300);
\r
39 document.main.act.value = 'addcategory';
\r
40 document.main.password.value = hex_md5(document.main.access_password.value);
\r
41 document.main.submit();
\r
45 <patTemplate:tmpl name="search_script" visibility="hidden">
\r
47 $('#{SEARCH_TEXT_ID}').val('{KEYWORD}');
\r
48 $('#{SEARCH_SORT_ID}').val('{SORT}');
\r
49 $('#{SEARCH_BUTTON_ID}').click(function(){
\r
51 $('#{SEARCH_TEXT_ID}').attr('disabled', 'disabled');
\r
52 $('#{SEARCH_BUTTON_ID}').attr('disabled', 'disabled');
\r
54 url = '{SEARCH_URL}';
\r
55 value = $('#{SEARCH_TEXT_ID}').val();
\r
56 if (value && value != '') url += '&keyword=' + encodeURIComponent(value);
\r
57 value = $('#{SEARCH_SORT_ID}').val();
\r
58 if (value && value != '') url += '&sort=' + encodeURIComponent(value);
\r
61 value = $('select.photo_main_category option:selected').map(function(){ return $(this).val() ? $(this).val() : null; }).get();
\r
62 value = jQuery.unique(value).join('+');
\r
63 if (value && value != '') category += value;
\r
65 value = $('input:checked.photo_main_category').map(function(){return $(this).val();}).get();
\r
66 value = jQuery.unique(value).join(',');
\r
67 if (value && value != ''){
\r
68 if (category && category != '') category += '+';
\r
71 if (category && category != '') url += '&category=' + encodeURI(category);
\r
72 value = $('.photo_main_author').map(function(){return $(this).val();}).get();
\r
73 value = jQuery.unique(value);
\r
74 if (value && value != '') url += '&author=' + encodeURI(value);
\r
75 window.location.href = url;
\r
77 $('#{SEARCH_RESET_ID}').click(function(){
\r
78 $('#{SEARCH_FORM_ID} :input').each(function(){
\r
79 var type = this.type;
\r
80 var tag = this.tagName.toLowerCase();
\r
81 if (type == 'text' || type == 'password' || tag == 'textarea'){
\r
83 } else if (type == 'checkbox' || type == 'radio'){
\r
84 this.checked = false;
\r
85 } else if (tag == 'select'){
\r
86 this.selectedIndex = 0;
\r
92 function ajax_success_func(request, retcode, jsondata)
\r
94 if (jsondata.items){
\r
95 photoCount = jsondata.items.length < photoCount ? jsondata.items.length : photoCount;
\r
98 var thumbnail_area = '';
\r
99 thumbnail_area += '<ul id="thumbs_ul">';
\r
100 for (var i = 0; i < photoCount; i++){
\r
101 thumbnail_area += '<li>';
\r
102 thumbnail_area += '<div class="thumb_cont">';
\r
103 thumbnail_area += '<div id="image_wrap' + i + '" class="image_wrap"><img class="thumb_img" src="{LOAD_ICON_URL}" /></div>';
\r
104 thumbnail_area += '<div id="title_wrap' + i + '" class="title_wrap"> </div>';
\r
105 thumbnail_area += '<div id="score_wrap' + i + '" class="score_wrap"></div>';
\r
106 thumbnail_area += '</div>';
\r
107 thumbnail_area += '</li>';
\r
109 thumbnail_area += '</ul>';
\r
110 $('#gallery_cont').html(thumbnail_area);
\r
112 for (var i = 0; i < photoCount; i++){
\r
113 var obj = new Object();
\r
114 obj.id = jsondata.items[i].id;
\r
115 obj.no = jsondata.items[i].no;
\r
116 obj.image_url = jsondata.items[i].image_url;
\r
117 obj.title = jsondata.items[i].title;
\r
118 obj.title_short = jsondata.items[i].title_short;
\r
119 obj.score = jsondata.items[i].score;
\r
120 photoInfo.push(obj);
\r
125 function ajax_failure_func(request)
\r
127 // alert('ajax failure!');
\r
129 function loadPhoto(index)
\r
131 if (index >= photoCount) return;
\r
133 var image = new Image();
\r
134 image.title = photoInfo[index].title;
\r
135 image.alt = photoInfo[index].title;
\r
138 $(image).load(function (){
\r
139 var imageTag = $('<a href="{PHOTO_DETAIL_URL}?photoid=' + photoInfo[index].id + '&no=' + photoInfo[index].no + '{PHOTO_DETAIL_URL_OTHERS}"></a>').html(this);
\r
140 var titleTag = $('<a href="{PHOTO_DETAIL_URL}?photoid=' + photoInfo[index].id + '&no=' + photoInfo[index].no + '{PHOTO_DETAIL_URL_OTHERS}"></a>').text(photoInfo[index].title_short);
\r
141 $('#image_wrap' + index).html(imageTag);
\r
142 $('#title_wrap' + index).html(titleTag);
\r
144 loadPhoto(index +1);
\r
146 $('#score_wrap' + index).raty({
\r
147 path: '{RATY_IMAGE_URL}',
\r
148 start: photoInfo[index].score,
\r
152 }).error(function (){
\r
153 $('#image_wrap' + index).html("Error!");
\r
154 loadPhoto(index +1);
\r
155 }).attr('src', photoInfo[index].image_url);
\r
159 <!-- m3:ErrorMessage -->
\r
160 <div id="photo_gallery">
\r
161 <div data-role="content">
\r
162 <patTemplate:tmpl name="category_area" visibility="hidden">
\r
163 <form method="post" name="main">
\r
164 <input type="hidden" name="act" />
\r
165 <input type="hidden" name="password" />
\r
166 <div class="gallery_category">表示可能なカテゴリー:{AUTH_CATEGORY_LIST} <input id="category_add" type="button" class="button" value="追加" /></div>
\r
167 <div id="gallery_category" style="display:none;">
\r
168 <div class="gallery_message">
\r
169 画像を表示するにはカテゴリーのパスワードを入力する必要があります。<br />
\r
170 目的のカテゴリーを選択し、パスワードを送信して下さい。</div>
\r
171 <label><span class="gallery_title">カテゴリー</span>
\r
172 <select name="access_category">
\r
173 <option value="0">-- 未選択 --</option>
\r
174 <patTemplate:tmpl name="access_category_list">
\r
175 <option value="{VALUE}" {SELECTED}>{NAME}</option>
\r
176 </patTemplate:tmpl>
\r
179 <label><span class="gallery_title">パスワード</span><input type="password" name="access_password" size="10" maxlength="10" /></label>
\r
180 <div class="photo_button"><input id="password_submit" type="button" class="button" value="送信" /></div>
\r
183 </patTemplate:tmpl>
\r
184 <patTemplate:tmpl name="single_category_area" visibility="hidden">
\r
185 <form method="post" name="main">
\r
186 <input type="hidden" name="act" />
\r
187 <input type="hidden" name="password" />
\r
188 <input type="hidden" name="access_category" value="{VALUE}" />
\r
189 <label><span class="gallery_title">パスワード</span><input type="password" name="access_password" size="10" maxlength="10" /></label>
\r
190 <div class="photo_button"><input id="password_submit" type="button" class="button" value="送信" /></div>
\r
192 </patTemplate:tmpl>
\r
193 <patTemplate:tmpl name="search_area" visibility="hidden">
\r
194 <div class="gallery_search"></div>
\r
195 </patTemplate:tmpl>
\r
197 <patTemplate:tmpl name="page_link_top" visibility="hidden"><div class="gallery_nav" data-role="controlgroup" data-type="horizontal">{PAGE_LINK}</div></patTemplate:tmpl>
\r
198 <div id="gallery_cont"></div>
\r
199 <div style="clear:both;"></div>
\r
200 <patTemplate:tmpl name="page_link_bottom" visibility="hidden"><div class="gallery_nav" data-role="controlgroup" data-type="horizontal">{PAGE_LINK}</div></patTemplate:tmpl>
\r
202 </patTemplate:tmpl>
\r