Changeset 9572
- Timestamp:
- Mar 8, 2011, 1:19:06 PM (13 years ago)
- Location:
- extensions/ContestResults
- Files:
-
- 4 added
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/ContestResults/admin/get_tn.php
r9200 r9572 10 10 if (!pwg_db_num_rows($image)) { 11 11 $themeconf = $template->get_template_vars('themeconf'); 12 $data['TN_SRC'] = $themeconf['admin_icon_dir'] . '/errors.png'; 12 //$data['TN_SRC'] = $themeconf['admin_icon_dir'] . '/errors.png'; 13 $data['TN_SRC'] = 'admin/themes/default/icon/errors.png'; 13 14 $data['IMAGE_NAME'] = 'N/A'; 14 15 -
extensions/ContestResults/admin/manage.php
r9419 r9572 18 18 // Affichage des concours 19 19 // +-----------------------------------------------------------------------+ 20 foreach (array('pending','finished') AS $status) { 21 $result = pwg_query("SELECT id, name, visible, date_begin, date_end, logo 22 FROM " . CR_TABLE_1 . " 23 WHERE status = '" . $status . "' 24 ORDER BY date_begin DESC;"); 20 $contests = pwg_query("SELECT 21 id, 22 name, 23 visible, 24 date_begin, 25 date_end, 26 logo 27 FROM " . CR_TABLE_1 . " 28 ORDER BY date_begin DESC;"); 25 29 26 while ($contest = pwg_db_fetch_assoc($result)) { 27 $template->append('contests_'.$status, array( 28 'NAME' => trigger_event('render_CR_content', $contest['name']), 29 'VISIBLE' => $contest['visible'], 30 'DATE_BEGIN' => format_date($contest['date_begin']), 31 'DATE_END' => format_date($contest['date_end']), 32 'LOGO' => $contest['logo'], 33 'U_RESULTS' => CR_ADMIN . '&tab=results&contest_id=' . $contest['id'], 34 'U_EDIT' => CR_ADMIN . '&tab=edit&contest_id=' . $contest['id'], 35 'U_DELETE' => CR_ADMIN . '&delete_contest=' . $contest['id'], 36 'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])), 37 )); 30 while ($contest = pwg_db_fetch_assoc($contests)) { 31 if (is_date_passed($contest['date_end'])) { 32 $contest['status'] = 'finished'; 33 } else { 34 $contest['status'] = 'pending'; 38 35 } 36 $template->append('contests_'.$contest['status'], array( 37 'NAME' => trigger_event('render_CR_content', $contest['name']), 38 'VISIBLE' => $contest['visible'], 39 'DATE_BEGIN' => format_date($contest['date_begin']), 40 'DATE_END' => format_date($contest['date_end']), 41 'LOGO' => $contest['logo'], 42 'U_RESULTS' => CR_ADMIN . '&tab=results&contest_id=' . $contest['id'], 43 'U_EDIT' => CR_ADMIN . '&tab=edit&contest_id=' . $contest['id'], 44 'U_DELETE' => CR_ADMIN . '&delete_contest=' . $contest['id'], 45 'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])), 46 'DAYS' => DateDiff($contest['date_end'],date('Y-m-d')), 47 )); 39 48 } 40 49 -
extensions/ContestResults/admin/new.php
r9419 r9572 1 1 <?php 2 2 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 3 4 // Les quatre zones de texte principales5 $textareas = array('presentation','rules','prices','final');6 3 7 4 // +-----------------------------------------------------------------------+ … … 10 7 if (isset($_POST['new_submit'])) { 11 8 if ($_POST['name'] != null) { 9 // Mise en forme des descriptions 10 if (isset($_POST['description'])) { 11 $new_description = array(); 12 foreach ($_POST['description'] as $data) { 13 $new_description[] = array( 14 'name' => $data['name'], 15 'content' => $data['content'] 16 ); 17 } 18 // encoder le tableau sérialisé est le seul moyen que j'ai trouvé pour pas perdre les caractères spéciaux et planter unserialize 19 $_POST['description'] = base64_encode(serialize($new_description)); 20 } 21 12 22 // Modification d'un concours 13 if (isset($_GET['contest_id'])) { 23 if (isset($_GET['contest_id'])) { 14 24 pwg_query("UPDATE " . CR_TABLE_1 . " SET 15 25 `name` = '" . $_POST['name'] ."', 16 `status` = '" . $_POST['status'] ."',17 26 `visible` = '" . $_POST['visible'] ."', 18 27 `date_begin` = '" . $_POST['date_begin'] ."', … … 21 30 `banner` = '" . $_POST['banner'] ."', 22 31 `summary` = '" . $_POST['summary'] ."', 23 `presentation` = '" . $_POST['presentation'] ."', 24 `rules` = '" . $_POST['rules'] ."', 25 `prices` = '" . $_POST['prices'] ."', 26 `final` = '" . $_POST['final'] ."' 32 `description` = '" . $_POST['description'] ."' 27 33 WHERE `id` = " . $_GET['contest_id'] .";"); 28 34 … … 41 47 date_begin, 42 48 date_end, 43 status,44 49 visible, 45 50 logo, 46 51 banner, 47 52 summary, 48 presentation, 49 rules, 50 prices, 51 final 53 description 52 54 ) 53 55 VALUES( … … 55 57 '" . $_POST['date_begin'] ."', 56 58 '" . $_POST['date_end'] ."', 57 '" . $_POST['status'] ."',58 59 '" . $_POST['visible'] ."', 59 60 '" . $_POST['logo'] ."', 60 61 '" . $_POST['banner'] ."', 61 62 '" . $_POST['summary'] ."', 62 '" . $_POST['presentation'] ."', 63 '" . $_POST['rules'] ."', 64 '" . $_POST['prices'] ."', 65 '" . $_POST['final'] ."' 63 '" . $_POST['description'] ."' 66 64 );"); 67 65 redirect(CR_ADMIN .'&tab=manage&msg=added'); … … 77 75 // Définition des variables template 78 76 // +-----------------------------------------------------------------------+ 79 // Formulaire incomplet 77 // Formulaire incomplet ############################################################################################################################################################## 80 78 if ($page['errors']) { 81 79 $template->assign(array( 82 80 'NAME' => $_POST['name'], 83 'STATUS' => $_POST['status'],84 81 'VISIBLE' => $_POST['visible'], 85 82 'DATE_BEGIN' => $_POST['date_begin'], … … 90 87 )); 91 88 92 foreach ($textareas AS $key) { 93 $template->assign(strtoupper($key), $_POST[$key]); 89 if (isset($_POST['description'])) { 90 $i=0; 91 foreach ($_POST['description'] as $data) { 92 $template->append('description', array( 93 'NAME' => $data['name'], 94 'CONTENT' => $data['content'], 95 'RANK' => $i, 96 )); 97 $i++; 98 } 94 99 } 95 100 … … 102 107 'ID' => $contest['id'], 103 108 'NAME' => $contest['name'], 104 'STATUS' => $contest['status'],105 109 'VISIBLE' => $contest['visible'], 106 110 'DATE_BEGIN' => $contest['date_begin'], … … 111 115 )); 112 116 113 foreach ($textareas AS $key) { 114 $template->assign(strtoupper($key), $contest[$key]); 117 if ($contest['description'] != null) { 118 $contest['description'] = unserialize(base64_decode($contest['description'])); 119 $i=0; 120 foreach ($contest['description'] AS $desc) { 121 $template->append('description', array( 122 'NAME' => stripslashes($desc['name']), 123 'CONTENT' => stripslashes($desc['content']), 124 'RANK' => $i, 125 )); 126 $i++; 127 } 115 128 } 116 129 … … 119 132 $template->assign(array( 120 133 'NAME' => null, 121 'STATUS' => 'pending',122 134 'VISIBLE' => 1, 123 135 'DATE_BEGIN' => date('Y-m-d'), … … 127 139 'SUMMARY' => null, 128 140 )); 129 130 foreach ($textareas AS $key) {131 $template->assign(strtoupper($key), null);132 }133 141 } 134 142 -
extensions/ContestResults/admin/template/config.tpl
r9419 r9572 1 {known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"} 1 {combine_script id='jquery' path='themes/default/js/jquery.min.js'} 2 {combine_css id='cr_admin_style' path=$CR_PATH|@cat:'admin/template/style.css'} 2 3 3 4 {html_head} 4 <link rel="stylesheet" type="text/css" href="{$CR_PATH}admin/template/style.css">5 5 <style type="text/css"> 6 6 tr td:first-child {ldelim} … … 9 9 } 10 10 </style> 11 11 12 <script type="text/javascript"> 12 function ToggleConfig(sel, section , fast){ldelim}13 var obj = $('#config_'+section);13 function ToggleConfig(sel, section){ldelim} 14 var obj = jQuery('#config_'+section); 14 15 if(sel.checked){ldelim} 15 if(fast) obj.show(); 16 else obj.slideDown("slow"); 16 obj.show(); 17 17 }else{ldelim} 18 if(fast) obj.hide(); 19 else obj.slideUp("slow"); 18 obj.hide(); 20 19 } 21 20 } … … 66 65 67 66 <script type="text/javascript"> 68 ToggleConfig(document.forms[0].elements['menubar_mode_link'], 'link' , 1);69 ToggleConfig(document.forms[0].elements['menubar_mode_block'], 'block' , 1);67 ToggleConfig(document.forms[0].elements['menubar_mode_link'], 'link'); 68 ToggleConfig(document.forms[0].elements['menubar_mode_block'], 'block'); 70 69 </script> -
extensions/ContestResults/admin/template/manage.tpl
r6782 r9572 1 {html_head} 2 <link rel="stylesheet" type="text/css" href="{$CR_PATH}admin/template/style.css"> 3 {/html_head} 1 {combine_css id='cr_admin_style' path=$CR_PATH|@cat:'admin/template/style.css'} 4 2 5 3 <h2 style="float:right;top:-24px;position:relative;font-style:italic;margin-bottom:-20px;font-size:12px;font-weight:normal;">{$CR_VERSION}</h2> … … 41 39 {if !empty($contest.LOGO)}<img src="{$contest.LOGO}" width="13px" class="button"/>{/if} 42 40 <strong><a href="{$contest.URL}" title="{'CR_go'|@translate}">{$contest.NAME}</a></strong> - {$contest.DATE_BEGIN} | {$contest.DATE_END} 41 <span class="CR_finished">{$contest.DAYS} {'CR_days'|@translate}</span> 43 42 </p> 44 43 </li> -
extensions/ContestResults/admin/template/new.tpl
r9419 r9572 1 {known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"} 2 {known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"} 3 1 {combine_script id='jquery' path='themes/default/js/jquery.min.js'} 2 {combine_script id='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.core.min.js'} 3 {combine_script id='jquery.ui.sortable' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'} 4 {combine_script id='jquery.cluetip' path='themes/default/js/plugins/jquery.cluetip.packed.js'} 5 {combine_css id='cr_admin_style' path=$CR_PATH|@cat:'admin/template/style.css'} 4 6 {include file='include/autosize.inc.tpl'} 5 7 {include file='include/datepicker.inc.tpl'} 6 8 7 9 {html_head} 8 <link rel="stylesheet" type="text/css" href="{$CR_PATH}admin/template/style.css"> 10 <script type="text/javascript"> 11 // AJOUTE UN CHAMP DE RESULTAT 12 function CreateDescField(j, new_contest){ldelim} 13 // Si il n'y a aucun résultats on efface le message 14 if(new_contest) document.getElementById('categoryUl').innerHTML = ''; 15 16 // Ajoute à la fin de la liste une nouvelle ligne de résultat vide 17 var new_result = document.createElement('li'); 18 new_result.setAttribute('id', 'desc_'+(j)); 19 new_result.setAttribute('class', 'categoryLi virtual_cat'); 20 document.getElementById('categoryUl').appendChild(new_result); 21 22 // Contenu de la ligne 23 new_result.innerHTML = '<ul class="categoryActions"> '+ 24 '<li> '+ 25 '<a href="#" title="{'CR_delete_desc'|@translate}" onclick="DeleteDescField('+ j +');return false;"> '+ 26 '<img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> '+ 27 '</a> '+ 28 '</li> '+ 29 '</ul> '+ 30 '<p> '+ 31 '<img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> '+ 32 '<input type="text" size="65" name="description['+ j +'][name]" value=""/> '+ 33 '<textarea class="result_comment" name="description['+ j +'][content]"></textarea> '+ 34 '</p> '+ 35 '<p class="catPos">{'CR_rank'|@translate} : <input type="text" name="description['+ j +'][rank]" value=""/></p>'; 36 37 // Remplace le lien de création 38 document.getElementById('AddLink').innerHTML = '<input class="submit" type="reset" onclick="CreateDescField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>'; 39 40 // Réinitiliase les fonctions jQuery 41 jQuery('.catPos').hide(); 42 jQuery('.drag_button').show(); 43 jQuery('.categoryLi').css('cursor', 'move'); 44 jQuery('textarea').autogrow(); 45 jQuery('textarea').css('overflow-y', 'hidden'); 46 vtip(); 47 } 48 49 // SUPPRIME UN CHAMP DE RESULTAT 50 function DeleteDescField(k){ldelim} 51 var result = document.getElementById('desc_'+k); 52 var parent = result.parentNode; 53 parent.removeChild(result); 54 } 55 56 jQuery().ready(function(){ldelim} 57 // Drag-and-Drop 58 jQuery('.catPos').hide(); 59 jQuery('.drag_button').show(); 60 jQuery('.categoryLi').css('cursor', 'move'); 61 jQuery('.categoryUl').sortable({ldelim} 62 axis: 'y', 63 opacity: 0.8 64 }); 65 jQuery('#categoryOrdering').submit(function(){ldelim} 66 ar = jQuery('.categoryUl').sortable('toArray'); 67 for(i=0; i<ar.length; i++) {ldelim} 68 cat = ar[i].split('desc_'); 69 document.getElementsByName('description[' + cat[1] + '][rank]')[0].value = i+1; 70 } 71 }); 72 // Cluetip 73 jQuery('.cluetip').cluetip({ldelim} 74 width: 550, 75 splitTitle: '|' 76 }); 77 }); 78 79 $(function() {ldelim} 80 $('#DateBegin').datepicker({ldelim}dateFormat:'yy-mm-dd', firstDay:1}); 81 $('#DateEnd').datepicker({ldelim}dateFormat:'yy-mm-dd', firstDay:1}); 82 }); 83 </script> 84 9 85 <style type="text/css"> 10 86 .cluetip:after {ldelim} … … 12 88 } 13 89 </style> 14 <script type="text/javascript">15 $(function() {ldelim}16 $('#DateBegin').datepicker({ldelim}dateFormat:'yy-mm-dd', firstDay:1});17 $('#DateEnd').datepicker({ldelim}dateFormat:'yy-mm-dd', firstDay:1});18 });19 20 jQuery().ready(function(){ldelim}21 jQuery('.cluetip').cluetip({ldelim}22 width: 550,23 splitTitle: '|'24 });25 });26 </script>27 90 {/html_head} 28 91 … … 39 102 </div> 40 103 41 <form method="post" action="" class="properties" >104 <form method="post" action="" class="properties" id="categoryOrdering"> 42 105 <fieldset> 43 106 <legend>{'Configuration'|@translate}</legend> … … 52 115 53 116 <tr> 54 <td><span class="title cluetip" title="{'CR_status'|@translate}|{'CR_help_status'|@translate}">{'CR_status'|@translate}</span></td>55 <td>56 <label><input type="radio" name="status" value="pending" {if $STATUS == 'pending'}checked="checked"{/if}> {'CR_pending'|@translate}</label>57 <label><input type="radio" name="status" value="finished" {if $STATUS == 'finished'}checked="checked"{/if}> {'CR_finished'|@translate}</label>58 </td>59 117 <td><span class="title cluetip" title="{'CR_visible'|@translate}|{'CR_help_visible'|@translate}">{'CR_visible'|@translate}</span></td> 60 118 <td> … … 62 120 <label><input type="radio" name="visible" value="0" {if $VISIBLE == 0}checked="checked"{/if}> {'No'|@translate}</label> 63 121 </td> 122 <td colspan="2"></td> 64 123 </tr> 65 124 <tr> … … 85 144 <tr> 86 145 <td><span class="title cluetip" title="{'CR_summary'|@translate}|{'CR_help_summary'|@translate}">{'CR_summary'|@translate}</span></td> 87 <td colspan="3"><textarea name="summary" id ="textarea"rows="4" style="width:100%;">{$SUMMARY}</textarea></td>146 <td colspan="3"><textarea name="summary" rows="4" style="width:100%;">{$SUMMARY}</textarea></td> 88 147 </tr> 89 148 </table> … … 93 152 <legend><span class="title cluetip" title="{'CR_textareas'|@translate}|{'CR_help_textareas'|@translate}">{'CR_textareas'|@translate}</span></legend> 94 153 95 <table> 96 <tr> 97 <td><span class="title">{'CR_presentation'|@translate}</span></td> 98 <td style="width:75%;"><textarea name="presentation" id ="textarea" rows="4" style="width:100%;">{$PRESENTATION}</textarea></td> 99 </tr> 100 101 <tr><td colspan="2"><br/></td></tr> 102 103 <tr> 104 <td><span class="title">{'CR_rules'|@translate}</span></td> 105 <td><textarea name="rules" id ="textarea" rows="4" style="width:100%;">{$RULES}</textarea></td> 106 </tr> 107 108 <tr><td colspan="2"><br/></td></tr> 109 110 <tr> 111 <td><span class="title">{'CR_prices'|@translate}</span></td> 112 <td><textarea name="prices" id ="textarea" rows="4" style="width:100%;">{$PRICES}</textarea></td> 113 </tr> 114 115 <tr><td colspan="2"><br/></td></tr> 116 117 <tr> 118 <td><span class="title">{'CR_final'|@translate}</span></td> 119 <td><textarea name="final" id ="textarea" rows="4" style="width:100%;">{$FINAL}</textarea></td> 120 </tr> 121 </table> 154 <ul class="categoryUl" id="categoryUl"> 155 {counter start=0 assign=i} 156 {if isset($description)} 157 {foreach from=$description item=desc} 158 <li class="categoryLi" id="desc_{$i}"> 159 <ul class="categoryActions"> 160 <li> 161 <a href="#" title="{'CR_delete_desc'|@translate}" onclick="DeleteDescField({$i});return false;"> 162 <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> 163 </a> 164 </li> 165 </ul> 166 167 <p> 168 <img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> 169 <input type="text" size="65" name="description[{$i}][name]" value="{$desc.NAME}"/> 170 <textarea class="result_comment" name="description[{$i}][content]">{$desc.CONTENT}</textarea> 171 </p> 172 <p class="catPos">{'CR_rank'|@translate} : <input type="text" name="description[{$i}][rank]" value="{$desc.RANK}"/></p> 173 </li> 174 {counter} 175 {/foreach} 176 {else} 177 {'CR_no_result'|@translate} 178 {/if} 179 </ul> 180 181 <span id="AddLink"><input class="submit" type="reset" onclick="CreateDescField({$i}{if !isset($description)}, true{/if});return false;" value="{'CR_addfield'|@translate}"/></span> 122 182 </fieldset> 123 183 -
extensions/ContestResults/admin/template/results.tpl
r9200 r9572 1 {combine_script id='jquery' path='themes/default/js/jquery.min.js'} 2 {combine_script id='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.core.min.js'} 3 {combine_script id='jquery.ui.sortable' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'} 4 {combine_script id='jquery.cluetip' path='themes/default/js/plugins/jquery.cluetip.packed.js'} 5 {combine_script id='jquery.vtip' path=$CR_PATH|@cat:'admin/template/vtip.js'} 6 {combine_css id='cr_admin_style' path=$CR_PATH|@cat:'admin/template/style.css'} 1 7 {include file='include/autosize.inc.tpl'} 2 8 3 {known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}4 {known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }5 {known_script id="jquery.ui.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }6 {known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}7 8 9 {html_head} 9 <link rel="stylesheet" type="text/css" href="{$CR_PATH}admin/template/style.css">10 <script type="text/javascript" src="{$CR_PATH}admin/template/vtip.js"></script>11 12 10 <script type="text/javascript"> 13 11 // AJOUTE UN CHAMP DE RESULTAT … … 34 32 '{'CR_image_no'|@translate} <input type="text" size="6" name="results['+ j +'][image_id]" value="" onkeyup="UpdatePreview('+ j +', this);"/> '+ 35 33 '<span id="preview-'+ j +'"> '+ 36 '<span class="vtip" title="<img src=\' {$themeconf.admin_icon_dir}/errors.png\'/><br>N/A"> '+34 '<span class="vtip" title="<img src=\'admin/themes/default/icon/errors.png\'/><br>N/A"> '+ 37 35 '<img src="{$CR_PATH}admin/template/image/images.png"/> '+ 38 36 '</span> '+ … … 44 42 45 43 // Remplace le lien de création 46 document.getElementById('AddLink').innerHTML = '<input class="submit" type=" submit" onclick="CreateResultField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>';44 document.getElementById('AddLink').innerHTML = '<input class="submit" type="reset" onclick="CreateResultField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>'; 47 45 48 46 // Réinitiliase les fonctions jQuery … … 97 95 } 98 96 </script> 97 99 98 <style type="text/css"> 100 99 .cluetip:after {ldelim} … … 112 111 <form method="post" id="categoryOrdering" action=""> 113 112 <ul class="categoryUl" id="categoryUl"> 114 {counter start=0 assign=i} 115 {if isset($results)} 116 {foreach from=$results item=result name=result_loop} 117 <li class="categoryLi {if $result.IMAGE_NAME == 'N/A'}error_cat{/if}" id="result_{$i}"> 118 <ul class="categoryActions"> 119 <li> 120 <a href="#" title="{'CR_delete_result'|@translate}" onclick="DeleteResultField({$i});return false;"> 121 <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> 122 </a> 123 </li> 124 </ul> 113 {counter start=0 assign=i} 114 {if isset($results)} 115 {foreach from=$results item=result} 116 <li class="categoryLi {if $result.IMAGE_NAME == 'N/A'}error_cat{/if}" id="result_{$i}"> 117 <ul class="categoryActions"> 118 <li> 119 <a href="#" title="{'CR_delete_result'|@translate}" onclick="DeleteResultField({$i});return false;"> 120 <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> 121 </a> 122 </li> 123 </ul> 124 125 <p> 126 <img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> 127 {'CR_image_no'|@translate} <input type="text" size="6" name="results[{$i}][image_id]" value="{$result.IMAGE_ID}" onkeyup="UpdatePreview({$i}, this);"/> 125 128 126 <p> 127 <img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> 128 {'CR_image_no'|@translate} <input type="text" size="6" name="results[{$i}][image_id]" value="{$result.IMAGE_ID}" onkeyup="UpdatePreview({$i}, this);"/> 129 130 <span id="preview-{$i}"> 131 <span class="vtip" title="<img src='{$result.TN_SRC}'/><br>{$result.IMAGE_NAME}"> 132 <img src="{$CR_PATH}admin/template/image/images.png"/> 133 </span> 129 <span id="preview-{$i}"> 130 <span class="vtip" title="<img src='{$result.TN_SRC}'/><br>{$result.IMAGE_NAME}"> 131 <img src="{$CR_PATH}admin/template/image/images.png"/> 134 132 </span> 135 136 {'CR_author'|@translate} : <input type="text" name="results[{$i}][author]" value="{$result.AUTHOR}"/> 137 <textarea class="result_comment" name="results[{$i}][comment]">{$result.COMMENT}</textarea> 138 </p> 139 <p class="catPos">{'CR_rank'|@translate} : <input type="text" name="results[{$i}][rank]" value="{$result.RANK}"/></p> 140 </li> 141 {counter} 142 {/foreach} 143 {else} 144 {'CR_no_result'|@translate} 145 {/if} 133 </span> 134 135 {'CR_author'|@translate} : <input type="text" name="results[{$i}][author]" value="{$result.AUTHOR}"/> 136 <textarea class="result_comment" name="results[{$i}][comment]">{$result.COMMENT}</textarea> 137 </p> 138 <p class="catPos">{'CR_rank'|@translate} : <input type="text" name="results[{$i}][rank]" value="{$result.RANK}"/></p> 139 </li> 140 {counter} 141 {/foreach} 142 {else} 143 {'CR_no_result'|@translate} 144 {/if} 146 145 </ul> 147 146 148 147 <p> 148 <span id="AddLink"><input class="submit" type="reset" onclick="CreateResultField({$i}{if !isset($results)}, true{/if});return false;" value="{'CR_addfield'|@translate}"/></span> 149 149 <input class="submit" type="submit" value="{'Submit'|@translate}" name="results_modify"/> 150 <span id="AddLink"><input class="submit" type="submit" onclick="CreateResultField({$i}{if !isset($results)}, true{/if});return false;" value="{'CR_addfield'|@translate}"/></a>151 150 </p> 152 151 </form> -
extensions/ContestResults/admin/template/style.css
r6782 r9572 9 9 width:95%; 10 10 min-height:40px; 11 margin -left:5%;11 margin:0 30px; 12 12 } 13 13 … … 63 63 z-index: 9999; 64 64 } 65 66 .CR_finished { 67 font-weight:normal; 68 font-size:0.8em; 69 letter-spacing:0.2em; 70 padding-left:10px; 71 color:#a00; 72 } -
extensions/ContestResults/changelog.txt
r9419 r9572 1 1. 2.b1 1.3 2 2 - Add error and success messages on admin page 3 - ... 3 - Add Spain (es_ES) thanks to jpr928 4 - Contest status is automatic and shows remaining days 5 - More flexibility for description fields 6 - Compatibility with Piwigo 2.2.0 4 7 5 8 1.2.a -
extensions/ContestResults/include/cr_comment_picture.php
r9200 r9572 1 1 <?php 2 2 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 3 4 // +-----------------------------------------------------------------------+ 5 // Affichage du commentaire sur la page d'une image participante 6 // +-----------------------------------------------------------------------+ 3 7 4 8 // Requète simple pour savoir si l'image a participé à des concours … … 6 10 7 11 if(pwg_db_num_rows($participation)){ 12 // requète complète 8 13 $results = pwg_query("SELECT 9 14 i.rank, … … 46 51 </style>'; 47 52 53 // +-----------------------------------------------------------------------+ 54 // Template 55 // +-----------------------------------------------------------------------+ 48 56 $template->assign('COMMENT_IMG', $template->get_template_vars('COMMENT_IMG') . $comment); 49 $template->a ssign('PLUGIN_PICTURE_BEFORE', $template->get_template_vars('PLUGIN_PICTURE_BEFORE') .$css);57 $template->append('footer_elements', $css); 50 58 } 51 59 ?> -
extensions/ContestResults/include/cr_main.php
r9200 r9572 11 11 date_begin, 12 12 date_end, 13 status,14 13 logo, 15 14 summary … … 19 18 while ($contest = pwg_db_fetch_assoc($contests)) { 20 19 if ($contest['visible'] OR is_admin()) { 20 $contest['finished'] = is_date_passed($contest['date_end']); 21 21 22 // infos sur le concours 22 23 $item = array( … … 24 25 'NAME' => trigger_event('render_CR_content', $contest['name']), 25 26 'VISIBLE' => $contest['visible'], 26 ' STATUS' => $contest['status'],27 'FINISHED' => $contest['finished'], 27 28 'DATE_END' => format_date($contest['date_end']), 28 29 'DATE_BEGIN' => format_date($contest['date_begin']), … … 30 31 'SUMMARY' => CR_cut_string(trigger_event('render_CR_content', $contest['summary']), 350), 31 32 'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])), 33 'DAYS' => DateDiff($contest['date_end'], date('Y-m-d')), 32 34 ); 33 35 34 36 // podium si terminé 35 if ($contest[' status'] == 'finished') {37 if ($contest['finished'] == true) { 36 38 $results = pwg_query("SELECT 37 39 i.id, … … 67 69 // Template 68 70 // +-----------------------------------------------------------------------+ 71 if (is_admin()) { 72 $template->assign('U_EDIT', CR_ADMIN); 73 } 69 74 $template->assign('CR_PATH', CR_PATH); 70 75 $template->assign('SEPARATOR', $conf['level_separator']); -
extensions/ContestResults/include/cr_menubar.php
r9200 r9572 37 37 name, 38 38 visible, 39 status,40 39 date_begin, 41 40 date_end … … 43 42 ORDER BY date_begin DESC;"); 44 43 45 $m = 0; // co pteur pour limiter le nombre de concours affichés44 $m = 0; // compteur pour limiter le nombre de concours affichés 46 45 while($contest = pwg_db_fetch_assoc($contests)){ 47 46 if (($contest['visible'] OR is_admin()) AND $m < $config['menubar_block']['number']) { … … 50 49 'LABEL' => trigger_event('render_CR_content', $contest['name']), 51 50 'DATE' => format_date($contest['date_begin']) . ' - ' . format_date($contest['date_end']), 52 'STATUS' => $contest['status'], 53 'VISIBLE' => $contest['visible'] 51 'VISIBLE' => $contest['visible'], 52 'FINISHED' => is_date_passed($contest['date_end']), 53 'DAYS' => DateDiff($contest['date_end'],date('Y-m-d')), 54 54 )); 55 55 } -
extensions/ContestResults/include/cr_page.php
r9200 r9572 15 15 if (pwg_db_num_rows($contest)) { 16 16 $contest = pwg_db_fetch_assoc($contest); 17 $contest['finished'] = is_date_passed($contest['date_end']); 17 18 18 19 // Concours non-publique … … 25 26 'ID' => $contest['id'], 26 27 'NAME' => trigger_event('render_CR_content', $contest['name']), 27 'STATUS' => $contest['status'],28 28 'VISIBLE' => $contest['visible'], 29 'FINISHED' => $contest['finished'], 29 30 'DATE_BEGIN' => format_date($contest['date_begin']), 30 31 'DATE_END' => format_date($contest['date_end']), … … 32 33 'BANNER' => $contest['banner'], 33 34 'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])), 35 'DAYS' => DateDiff($contest['date_end'], date('Y-m-d')), 34 36 )); 35 37 36 38 // Les quatre zones texte 37 foreach (array('presentation','rules','prices','final') AS $key) { 38 $template->assign(strtoupper($key), trigger_event('render_CR_content', $contest[$key])); 39 if (!empty($contest['description'])) { 40 $contest['description'] = unserialize(base64_decode($contest['description'])); 41 foreach ($contest['description'] as $desc) { 42 $template->append('description', array( 43 'NAME' => trigger_event('render_CR_content', stripslashes($desc['name'])), 44 'CONTENT' => trigger_event('render_CR_content', stripslashes($desc['content'])), 45 )); 46 } 39 47 } 40 48 41 49 // Affichage des résultats 42 if ($contest[' status'] == 'finished') {50 if ($contest['finished'] == true) { 43 51 // Infos des résultats 44 52 $results = pwg_query("SELECT * FROM " . CR_TABLE_2 . " WHERE contest_id=" . $contest['id'] . " ORDER BY rank ASC;"); -
extensions/ContestResults/include/cutstring.class.php
r6782 r9572 6 6 7 7 class HtmlCutString{ 8 function __construct($string, $limit){ 9 // create dom element using the html string 10 $this->tempDiv = new DomDocument; 11 $this->tempDiv->loadXML('<div>'.$string.'</div>'); 12 // keep the characters count till now 13 $this->charCount = 0; 14 $this->encoding = 'UTF-8'; 15 // character limit need to check 16 $this->limit = $limit; 17 } 18 function cut(){ 19 // create empty document to store new html 20 $this->newDiv = new DomDocument; 21 // cut the string by parsing through each element 22 $this->searchEnd($this->tempDiv->documentElement,$this->newDiv); 23 $newhtml = $this->newDiv->saveHTML(); 24 return $newhtml; 25 } 26 27 function deleteChildren($node) { 28 while (isset($node->firstChild)) { 29 $this->deleteChildren($node->firstChild); 30 $node->removeChild($node->firstChild); 31 } 32 } 33 function searchEnd($parseDiv, $newParent){ 34 foreach($parseDiv->childNodes as $ele){ 35 // not text node 36 if($ele->nodeType != 3){ 37 $newEle = $this->newDiv->importNode($ele,true); 38 if(count($ele->childNodes) === 0){ 39 $newParent->appendChild($newEle); 40 continue; 41 } 42 $this->deleteChildren($newEle); 43 $newParent->appendChild($newEle); 44 $res = $this->searchEnd($ele,$newEle); 45 if($res) 46 return $res; 47 else 48 continue; 8 function __construct($string, $limit){ 9 // create dom element using the html string 10 $this->tempDiv = new DomDocument; 11 $this->tempDiv->loadXML('<div>'.$string.'</div>'); 12 // keep the characters count till now 13 $this->charCount = 0; 14 $this->encoding = 'UTF-8'; 15 // character limit need to check 16 $this->limit = $limit; 49 17 } 50 51 // the limit of the char count reached52 if(mb_strlen($ele->nodeValue,$this->encoding) + $this->charCount >= $this->limit){53 $newEle = $this->newDiv->importNode($ele);54 $newEle->nodeValue = substr($newEle->nodeValue,0, $this->limit - $this->charCount);55 $newParent->appendChild($newEle);56 return true;18 function cut(){ 19 // create empty document to store new html 20 $this->newDiv = new DomDocument; 21 // cut the string by parsing through each element 22 $this->searchEnd($this->tempDiv->documentElement,$this->newDiv); 23 $newhtml = $this->newDiv->saveHTML(); 24 return $newhtml; 57 25 } 58 $newEle = $this->newDiv->importNode($ele); 59 $newParent->appendChild($newEle); 60 $this->charCount += mb_strlen($newEle->nodeValue,$this->encoding); 61 } 62 return false; 63 } 26 function deleteChildren($node) { 27 while (isset($node->firstChild)) { 28 $this->deleteChildren($node->firstChild); 29 $node->removeChild($node->firstChild); 30 } 31 } 32 function searchEnd($parseDiv, $newParent){ 33 foreach($parseDiv->childNodes as $ele){ 34 // not text node 35 if($ele->nodeType != 3){ 36 $newEle = $this->newDiv->importNode($ele,true); 37 if(count($ele->childNodes) === 0){ 38 $newParent->appendChild($newEle); 39 continue; 40 } 41 $this->deleteChildren($newEle); 42 $newParent->appendChild($newEle); 43 $res = $this->searchEnd($ele,$newEle); 44 if($res) 45 return $res; 46 else 47 continue; 48 } 49 // the limit of the char count reached 50 if(mb_strlen($ele->nodeValue,$this->encoding) + $this->charCount >= $this->limit){ 51 $newEle = $this->newDiv->importNode($ele); 52 $newEle->nodeValue = substr($newEle->nodeValue,0, $this->limit - $this->charCount); 53 $newParent->appendChild($newEle); 54 return true; 55 } 56 $newEle = $this->newDiv->importNode($ele); 57 $newParent->appendChild($newEle); 58 $this->charCount += mb_strlen($newEle->nodeValue,$this->encoding); 59 } 60 return false; 61 } 64 62 } 65 63 ?> -
extensions/ContestResults/include/functions.php
r9200 r9572 23 23 } 24 24 } 25 26 // Nombre de jours entre deux dates 27 function DateDiff($date2, $date1) { 28 return ceil((strtotime($date2)-strtotime($date1))/(3600*24)); 29 } 30 31 // Date passée 32 function is_date_passed($date) { 33 if (time() > strtotime($date)) { 34 return true; 35 } else { 36 return false; 37 } 38 } 25 39 ?> -
extensions/ContestResults/language/en_UK/plugin.lang.php
r9419 r9572 20 20 $lang['CR_pending'] = 'Pending'; 21 21 $lang['CR_finished'] = 'Finished'; 22 $lang['CR_presentation'] = 'Presentation';23 $lang['CR_rules'] = 'Rules';24 $lang['CR_prices'] = 'Prices';25 $lang['CR_final'] = 'Ending';26 22 $lang['CR_summary'] = 'Summary'; 27 23 $lang['CR_textareas'] = 'Contest description'; … … 45 41 $lang['CR_results_saved'] = "Results saved"; 46 42 $lang['CR_name_empty'] = "The name of the contest can't be empty"; 43 $lang['CR_days'] = "days remaining"; 47 44 48 45 $lang['CR_order_1'] = '1<sup>st</sup>'; … … 64 61 $lang['CR_help_summary'] = "The summary is only displayed in the general contest page.<br/> 65 62 <br/>" . $lang['CR_help_lang']; 66 $lang['CR_help_textareas'] = " These four areas allow you to describe thecontest.<br/>63 $lang['CR_help_textareas'] = "Add here some text boxes to describe your contest.<br/> 67 64 <br/>" . $lang['CR_help_lang']; 68 65 $lang['CR_help_results'] = "- Descriptions are displayed on each pictures pages and on the contest page for the first three.<br/> -
extensions/ContestResults/language/fr_FR/plugin.lang.php
r9419 r9572 20 20 $lang['CR_pending'] = 'En cours'; 21 21 $lang['CR_finished'] = 'Terminé'; 22 $lang['CR_presentation'] = 'Présentation';23 $lang['CR_rules'] = 'Contraintes';24 $lang['CR_prices'] = 'Prix';25 $lang['CR_final'] = 'Conclusion';26 22 $lang['CR_summary'] = 'Résumé'; 27 23 $lang['CR_textareas'] = 'Description du concours'; … … 45 41 $lang['CR_results_saved'] = "Résultats sauvegardés"; 46 42 $lang['CR_name_empty'] = "Le nom du concours ne peut être vide"; 43 $lang['CR_days'] = "jours restants"; 47 44 48 45 $lang['CR_order_1'] = '1<sup>ère</sup>'; … … 64 61 $lang['CR_help_summary'] = "Le résumé n'est affiché que sur la page regroupant tous les concours.<br/> 65 62 <br/>" . $lang['CR_help_lang']; 66 $lang['CR_help_textareas'] = " Ces quatres zones de texte vous permettent de décrire le concours.<br/>63 $lang['CR_help_textareas'] = "Ajoutez ici des zones de texte pour décrire votre concours.<br/> 67 64 <br/>" . $lang['CR_help_lang']; 68 65 $lang['CR_help_results'] = "- Les descriptions seront affichées sur les pages de chaque images et sur la page du concours pour les trois premiers.<br/> -
extensions/ContestResults/language/lv_LV/plugin.lang.php
r9419 r9572 20 20 $lang['CR_pending'] = 'Vēl nepabeigts'; 21 21 $lang['CR_finished'] = 'Pabeigts'; 22 $lang['CR_presentation'] = 'Prezentācija';23 $lang['CR_rules'] = 'Noteikumi';24 $lang['CR_prices'] = 'Cenas';25 $lang['CR_final'] = 'Beigšana';26 22 $lang['CR_summary'] = 'Kopā'; 27 23 $lang['CR_textareas'] = 'Konkursa apraksts'; … … 45 41 $lang['CR_results_saved'] = "Rezultāti saglabāti"; 46 42 $lang['CR_name_empty'] = "Konkursa nosaukums nevar būt tukšs"; 43 $lang['CR_days'] = "atlikušo dienu"; 47 44 48 45 $lang['CR_order_1'] = '1.'; … … 64 61 $lang['CR_help_summary'] = "Kopsavilkums tiek attēlots tikai konkursa galvenajā lapā.<br/> 65 62 <br/>" . $lang['CR_help_lang']; 66 $lang['CR_help_textareas'] = " Šie četri apgabali dod jums iespēju aprakstīt konkursu.<br/>63 $lang['CR_help_textareas'] = "Lūdzu, pievienojiet tekstlodziņus, lai aprakstītu jūsu konkurentiem.<br/> 67 64 <br/>" . $lang['CR_help_lang']; 68 65 $lang['CR_help_results'] = "- Apraksti tiek rādīti uz katras attēla lapas un uz konkursa lapas - pirmajiem trim.<br/> -
extensions/ContestResults/main.inc.php
r9333 r9572 2 2 /* 3 3 Plugin Name: ContestResults 4 Version: 1. 2.a4 Version: 1.3 5 5 Description: Add contests management pages 6 6 Plugin URI: http://piwigo.org/ext/extension_view.php?eid=439 … … 16 16 // Variables globales CR 17 17 // +-----------------------------------------------------------------------+ 18 define('CR_NAME' , 'Contest Results'); 19 define('CR_VERSION', '1.3'); 18 20 define('CR_DIR' , basename(dirname(__FILE__))); 19 21 define('CR_PATH' , PHPWG_PLUGINS_PATH . CR_DIR . '/'); 20 22 define('CR_TABLE_1' , $prefixeTable . 'contests'); 21 23 define('CR_TABLE_2' , $prefixeTable . 'contests_results'); 22 define('CR_NAME' , 'ContestResults');23 define('CR_VERSION', '1.2.a');24 24 define('CR_ADMIN', PHPWG_ROOT_PATH . 'admin.php?page=plugin&section=' . CR_DIR . '/admin/admin.php'); 25 25 define('CR_PUBLIC', make_index_url(array('section' => 'contests')) . '/'); … … 42 42 // Fonctions 43 43 // +-----------------------------------------------------------------------+ 44 include(CR_PATH . 'include/functions.php'); 44 45 // Gestion du menu 45 46 include(CR_PATH . 'include/cr_menubar.php'); … … 59 60 60 61 load_language('plugin.lang', CR_PATH); 61 include(CR_PATH . 'include/functions.php');62 62 63 63 if ($tokens[0] == 'contests') { // on est dans la section concours … … 65 65 $page['title'] = l10n('Contests'); 66 66 67 if (isset($tokens[1]) AND $tokens[1]) { // on est sur la page d'un concours 68 $page['contest'] = explode('-', $tokens[1]); 69 $page['contest'] = $page['contest'][0]; 70 $page['title'] .= $conf['level_separator'] . trigger_event('render_CR_content', get_contest_name($page['contest'])); 67 if (isset($tokens[1]) AND !empty($tokens[1])) { // on est sur la page d'un concours 68 $tokens[1] = explode('-', $tokens[1]); 69 if (preg_match('#^([0-9]*)$#', $tokens[1][0])) { // is_int ne marche pas parce que le chiffre est stocké en (string) 70 $page['contest'] = $tokens[1][0]; 71 $page['title'] .= $conf['level_separator'] . trigger_event('render_CR_content', get_contest_name($page['contest'])); 72 } 71 73 } 72 74 } -
extensions/ContestResults/maintain.inc.php
r9333 r9572 3 3 4 4 // Configuration par défaut 5 define('default_config' 5 define('default_config', serialize(array( 6 6 'menubar_mode' => array( 7 7 'link' => 0, … … 26 26 `date_begin` DATE NOT NULL , 27 27 `date_end` DATE NOT NULL , 28 `status` VARCHAR( 255 ) NOT NULL ,29 28 `visible` TINYINT(1) NOT NULL , 30 29 `logo` VARCHAR( 255 ) NULL , 31 30 `banner` VARCHAR( 255 ) NULL , 32 `summary` TEXT NULL , 33 `presentation` TEXT NULL , 34 `rules` TEXT NULL , 35 `prices` TEXT NULL , 36 `final` TEXT NULL , 31 `description` TEXT NULL , 37 32 PRIMARY KEY ( `id` ) 38 33 );"); … … 62 57 $field = pwg_query("SHOW COLUMNS FROM `" . $prefixeTable . "contests` LIKE 'presentation_display'"); 63 58 if (pwg_db_num_rows($field)) { 64 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` DROP `presentation_display`"); 65 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` DROP `rules_display`"); 66 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` DROP `prices_display`"); 67 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` DROP `final_display`"); 59 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` 60 DROP `presentation_display`, 61 DROP `rules_display`, 62 DROP `prices_display`, 63 DROP `final_display`;" 64 ); 68 65 } 66 67 // compatibilité avec les versions < 1.3 (suppression option status, regroupement des champs de description) 68 $field = pwg_query("SHOW COLUMNS FROM `" . $prefixeTable . "contests` LIKE 'status'"); 69 if (pwg_db_num_rows($field)) { 70 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` DROP `status`"); 71 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` ADD `description` TEXT NULL"); 72 73 $contests = pwg_query("SELECT * FROM `" . $prefixeTable . "contests`"); 74 while ($contest = pwg_db_fetch_assoc($contests)) { 75 $new_description = array(); 76 if (!empty($contest['presentation'])) { 77 $new_description[] = array( 78 'name' => 'Presentation[lang=fr]Présentation[/lang][lang=es]Presentación[/lang][lang=lv]Prezentacija[/lang]', 79 'content' => $contest['presentation'], 80 ); 81 } 82 if (!empty($contest['rules'])) { 83 $new_description[] = array( 84 'name' => 'Rules[lang=fr]Règles[/lang][lang=es]Restricciones[/lang][lang=lv]Noteikumi[/lang]', 85 'content' => $contest['rules'], 86 ); 87 } 88 if (!empty($contest['prices'])) { 89 $new_description[] = array( 90 'name' => 'Prices[lang=fr]Prix[/lang][lang=es]Precios[/lang][lang=lv]Cenas[/lang]', 91 'content' => $contest['prices'], 92 ); 93 } 94 if (!empty($contest['final'])) { 95 $new_description[] = array( 96 'name' => 'Conclusion[lang=fr]Conclusion[/lang][lang=es]Conclusión[/lang][lang=lv]Beigsana[/lang]', 97 'content' => $contest['final'], 98 ); 99 } 100 101 $new_description = base64_encode(serialize($new_description)); 102 pwg_query("UPDATE `" . $prefixeTable . "contests` 103 SET description = '". $new_description ."' 104 WHERE id = ". $contest['id'] .";" 105 ); 106 } 107 108 pwg_query("ALTER TABLE `" . $prefixeTable . "contests` 109 DROP `presentation`, 110 DROP `rules`, 111 DROP `prices`, 112 DROP `final`;" 113 ); 114 } 115 69 116 } 70 117 -
extensions/ContestResults/template/cr_main.tpl
r9419 r9572 1 {html_head} 2 <link rel="stylesheet" type="text/css" href="{$CR_PATH}template/style.css"> 3 {/html_head} 1 {combine_css id='cr_style' path=$CR_PATH|@cat:'template/style.css'} 4 2 5 3 {$MENUBAR} … … 10 8 <div class="titrePage"> 11 9 <ul class="categoryActions"> 10 {if isset($U_EDIT)} 11 <li><a href="{$U_EDIT}" title="{'edit'|@translate}" class="pwg-state-default pwg-button"> 12 <span class="pwg-icon pwg-icon-category-edit"> </span><span class="pwg-button-text">{'edit'|@translate}</span> 13 </a></li> 14 {/if} 12 15 {if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if} 16 </ul> 13 17 </ul> 14 18 <h2>{'Contests'|@translate}</h2> … … 26 30 <div class="thumbnailCategory {if $contest.VISIBLE == 0}novisible{/if}"> 27 31 <div class="illustration"> 28 {if $contest.STATUS == 'pending'} 32 {if !$contest.FINISHED == 'pending'} 33 <a href="{$contest.URL}"> 29 34 {if !empty($contest.LOGO)} 30 <a href="{$contest.URL}"> 31 <img src="{$contest.LOGO}" alt="{$contest.NAME}" style="max-height:120px;max-width:120px;"> 32 </a> 35 <img src="{$contest.LOGO}" alt="{$contest.NAME}" style="max-height:120px;max-width:120px;"> 33 36 {/if} 37 </a> 34 38 {else} 35 39 <a href="{$contest.URL}"> … … 41 45 <h3> 42 46 <a href="{$contest.URL}">{$contest.NAME}</a> 43 {if $contest.STATUS == 'finished'}<span class="CR_finished">({'CR_finished'|@translate})</span>{/if} 47 {if $contest.FINISHED} 48 <span class="CR_finished">({'CR_finished'|@translate})</span> 49 {else} 50 <span class="CR_finished">({$contest.DAYS} {'CR_days'|@translate})</span> 51 {/if} 44 52 </h3> 45 53 <div class="text"> 46 54 <p class="Nb_images">{$contest.DATE_BEGIN} - {$contest.DATE_END}</p> 47 55 <p> 48 {if $contest.STATUS == 'pending'}56 {if !$contest.FINISHED} 49 57 {if !empty($contest.SUMMARY)} 50 58 {$contest.SUMMARY} -
extensions/ContestResults/template/cr_menubar.tpl
r9200 r9572 1 1 {html_head} 2 2 <style type="text/css"> 3 .CR_finished {ldelim}3 .CR_finished_menu {ldelim} 4 4 font-size:0.8em; 5 5 color:#a00; 6 letter-spacing:0px; 6 7 } 7 8 </style> … … 15 16 <a href="{$data.URL}" title="{$data.DATE}"> 16 17 {$data.LABEL} 17 {if $data.STATUS == 'finished'}<span class="CR_finished">×</span>{/if} 18 {if $data.FINISHED} 19 <span class="CR_finished_menu">×</span> 20 {else} 21 <span class="CR_finished_menu">{$data.DAYS}</span> 22 {/if} 18 23 </a> 19 24 </li> -
extensions/ContestResults/template/cr_page.tpl
r9200 r9572 1 {html_head} 2 <link rel="stylesheet" type="text/css" href="{$CR_PATH}template/style.css"> 3 {/html_head} 1 {combine_css id='cr_style' path=$CR_PATH|@cat:'template/style.css'} 4 2 5 3 {$MENUBAR} … … 10 8 <ul class="categoryActions"> 11 9 {if isset($U_EDIT) } 12 <li><a href="{$U_EDIT}" title="{'CR_edit_tab'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'CR_edit_tab'|@translate}"></a></li> 10 <li><a href="{$U_EDIT}" title="{'CR_edit_tab'|@translate}" class="pwg-state-default pwg-button"> 11 <span class="pwg-icon pwg-icon-category-edit"> </span><span class="pwg-button-text">{'CR_edit_tab'|@translate}</span> 12 </a></li> 13 13 {/if} 14 14 {if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if} … … 16 16 <h2> 17 17 <a href="index.php?/contests" name="top">{'Contests'|@translate}</a>{$SEPARATOR}<a href="{$URL}">{$NAME}</a> 18 {if $STATUS=='finished'}<span class="CR_finished">({'CR_finished'|@translate})</span>{/if} 18 {if $FINISHED} 19 <span class="CR_finished">({'CR_finished'|@translate})</span> 20 {else} 21 <span class="CR_finished">({$DAYS} {'CR_days'|@translate})</span> 22 {/if} 19 23 </h2> 20 24 </div> <!-- titrePage --> … … 38 42 </div> 39 43 40 { if !empty($PRESENTATION)}44 {foreach from=$description item=desc name=desc_loop} 41 45 <div class="CR_text"> 42 <h3>{ 'CR_presentation'|@translate} :</h3>43 {$ PRESENTATION}46 <h3>{$desc.NAME} :</h3> 47 {$desc.CONTENT} 44 48 </div> 45 {/if} 46 47 {if !empty($RULES)} 48 <div class="CR_text"> 49 <h3>{'CR_rules'|@translate} :</h3> 50 {$RULES} 51 </div> 52 {/if} 53 54 {if !empty($PRICES)} 55 <div class="CR_text"> 56 <h3>{'CR_prices'|@translate} :</h3> 57 {$PRICES} 58 </div> 59 {/if} 60 61 {if !empty($FINAL)} 62 <div class="CR_text"> 63 <h3>{'CR_final'|@translate} :</h3> 64 {$FINAL} 65 </div> 66 {/if} 49 {/foreach} 67 50 </div> <!-- content_contest --> 68 51 … … 72 55 <ul class="categoryActions"> 73 56 {if isset($U_RESULTS) } 74 <li><a href="{$U_RESULTS}" title="{'CR_results'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'CR_results'|@translate}"></a></li> 57 <li><a href="{$U_RESULTS}" title="{'CR_results'|@translate}" class="pwg-state-default pwg-button"> 58 <span class="pwg-icon pwg-icon-category-edit"> </span><span class="pwg-button-text">{'CR_edit_tab'|@translate}</span> 59 </a></li> 75 60 {/if} 76 61 </ul> -
extensions/ContestResults/template/style.css
r9200 r9572 2 2 font-weight:normal; 3 3 font-size:0.8em; 4 letter-spacing:0. 3em;4 letter-spacing:0.2em; 5 5 padding-left:10px; 6 6 color:#a00;
Note: See TracChangeset
for help on using the changeset viewer.