Changeset 9745


Ignore:
Timestamp:
Mar 17, 2011, 8:25:13 PM (10 years ago)
Author:
mistic100
Message:

[extensions] Contest Results

  • New bloc for PWG Stuffs
  • Use new admin links and javascript implementation
  • Distinguish pending and running contests (both pending before)
Location:
extensions/ContestResults
Files:
8 added
1 deleted
25 edited

Legend:

Unmodified
Added
Removed
  • extensions/ContestResults/admin/config.php

    r9419 r9745  
    66// +-----------------------------------------------------------------------+
    77if (isset($_POST['config_submit'])) {
    8         $user_config = array(
     8        $conf['ContestResults'] = array(
    99                'menubar_mode' => array(
    1010                        'link' => (isset($_POST['menubar_mode_link'])) ? 1 : 0,
     
    1818                        'number' => $_POST['menubar_block_number'],
    1919                ),
     20                'truncate_summary' => $_POST['truncate_summary'],
    2021        );
    2122       
    22         pwg_query("UPDATE " . CONFIG_TABLE . " SET `value` = '" . serialize($user_config) . "' WHERE `param` = 'ContestResults';");
    23         redirect(CR_ADMIN . '&tab=config&msg=saved');
     23        pwg_query("UPDATE " . CONFIG_TABLE . " SET `value` = '" . serialize($conf['ContestResults']) . "' WHERE `param` = 'ContestResults';");
     24        $page['infos'][] = l10n('Information data registered in database');
    2425}       
    2526
     
    2728//                              Définition des variables template
    2829// +-----------------------------------------------------------------------+
    29 if (isset($_GET['msg']) AND $_GET['msg'] == 'saved')
    30         array_push($page['infos'], l10n('Information data registered in database'));
    31        
    32 
    3330$template->assign(array(
    3431        'MODE_LINK' => ($conf['ContestResults']['menubar_mode']['link']) ? 'checked="checked"' : '',
     
    3734        'LINK_SPECIALS' => ($conf['ContestResults']['menubar_link']['specials']) ? 'checked="checked"' : '',
    3835        'BLOCK_NUMBER' => $conf['ContestResults']['menubar_block']['number'],
     36        'TRUNCATE_SUMMARY' => $conf['ContestResults']['truncate_summary'],
    3937));
    4038
     
    4442$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__).'/template/config.tpl'));
    4543$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
     44
    4645?>
  • extensions/ContestResults/admin/get_tn.php

    r9572 r9745  
    99
    1010if (!pwg_db_num_rows($image)) {
    11         $themeconf = $template->get_template_vars('themeconf');
     11        //$themeconf = $template->get_template_vars('themeconf');
    1212        //$data['TN_SRC'] = $themeconf['admin_icon_dir'] . '/errors.png';
    1313        $data['TN_SRC'] = 'admin/themes/default/icon/errors.png';
  • extensions/ContestResults/admin/manage.php

    r9572 r9745  
    88        pwg_query('DELETE FROM ' . CR_TABLE_1 . ' WHERE id = ' . $_GET['delete_contest'] . ';');
    99        pwg_query('DELETE FROM ' . CR_TABLE_2 . ' WHERE contest_id = ' . $_GET['delete_contest'] . ';');
    10         redirect(CR_ADMIN .'&tab=manage&msg=deleted');
     10        $page['infos'][] = l10n('CR_contest_deleted');
    1111}
    1212
    1313if (isset($_GET['msg'])){
    14         array_push($page['infos'], l10n('CR_contest_'. $_GET['msg']));
     14        $_GET['msg'] = explode('.', $_GET['msg']);
     15        $page[$_GET['msg'][0]][] = l10n('CR_'. $_GET['msg'][1]);
    1516}
    1617
     
    2930
    3031while ($contest = pwg_db_fetch_assoc($contests)) {
    31         if (is_date_passed($contest['date_end'])) {
    32                 $contest['status'] = 'finished';
    33         } else {
    34                 $contest['status'] = 'pending';
    35         }
     32        $contest = array_merge($contest, get_contest_status($contest['date_begin'],$contest['date_end']));
     33
    3634        $template->append('contests_'.$contest['status'], array(
    37                 'NAME' => trigger_event('render_CR_content', $contest['name']),
    38                 'VISIBLE' => $contest['visible'],
     35                'NAME' =>               trigger_event('render_CR_content', $contest['name']),
     36                'VISIBLE' =>    $contest['visible'],
    3937                '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')),
     38                'DATE_END' =>   format_date($contest['date_end']),
     39                'LOGO' =>               $contest['logo'],
     40                'U_RESULTS' =>  CR_ADMIN . '-results&contest_id=' . $contest['id'],
     41                'U_EDIT' =>     CR_ADMIN . '-edit&contest_id=' . $contest['id'],
     42                'U_DELETE' =>   CR_ADMIN . '-manage&delete_contest=' . $contest['id'],
     43                'URL' =>                CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])),
     44                'DAYS' =>               $contest['days'],
    4745        ));
    4846}
     
    5351$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__).'/template/manage.tpl'));
    5452$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
     53
    5554?>
  • extensions/ContestResults/admin/new.php

    r9572 r9745  
    88        if ($_POST['name'] != null) {
    99                // 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                                 );
     10                if (isset($_POST['description'])) {                             
     11                        for ($i=0; $i<=count($_POST['description']); $i++) {
     12                                unset($_POST['description'][$i]['rank']);
    1713                        }
    1814                        // 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));
     15                        $_POST['description'] = base64_encode(serialize($_POST['description']));
     16                } else {
     17                        $_POST['description'] = null;
    2018                }
    2119                       
    2220                // Modification d'un concours
    23                 if (isset($_GET['contest_id'])) {       
     21                if (isset($_GET['contest_id']) AND get_contest_name($_GET['contest_id'])) {     
    2422                        pwg_query("UPDATE " . CR_TABLE_1 . " SET
    2523                                `name` = '" . $_POST['name'] ."',
     
    3735                                redirect(CR_PUBLIC . $_GET['contest_id'] . '-' . str2url(trigger_event('render_CR_content', $_POST['name'])));
    3836                        } else {
    39                                 redirect(CR_ADMIN .'&amp;tab=manage&amp;msg=saved');
     37                                redirect(CR_ADMIN .'-manage&amp;msg=infos.contest_saved');
    4038                        }
    4139                       
     
    6361                                        '" . $_POST['description'] ."'
    6462                                );");
    65                         redirect(CR_ADMIN .'&amp;tab=manage&amp;msg=added');
     63                       
     64                        redirect(CR_ADMIN .'-manage&amp;msg=infos.contest_added');
    6665                }
    6766               
    6867        } else {
    69                 array_push($page['errors'], l10n('CR_name_empty'));
     68                $page['errors'][] = l10n('CR_name_empty');
    7069        }
    7170}
     
    7574//                              Définition des variables template
    7675// +-----------------------------------------------------------------------+   
    77 // Formulaire incomplet ##############################################################################################################################################################
     76// Formulaire incomplet
    7877if ($page['errors']) {
    7978        $template->assign(array(
     
    10099
    101100// Edition d'un concours
    102 } else if (isset($_GET['contest_id'])) {
     101} else if (isset($_GET['contest_id']) AND get_contest_name($_GET['contest_id'])) {
    103102        $query = "SELECT * FROM " . CR_TABLE_1 . " WHERE id = " . $_GET['contest_id'] . ";";
    104103        $contest = pwg_db_fetch_assoc(pwg_query($query));
     
    115114        ));
    116115       
    117         if ($contest['description'] != null) {
     116        if (!empty($contest['description'])) {
    118117                $contest['description'] = unserialize(base64_decode($contest['description']));
    119118                $i=0;
     
    146145$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__).'/template/new.tpl'));
    147146$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
     147
    148148?>
  • extensions/ContestResults/admin/results.php

    r9419 r9745  
    88        pwg_query("DELETE FROM " . CR_TABLE_2 . " WHERE `contest_id` = " . $_GET['contest_id'] .";");
    99       
     10        $registered_ids = array();
     11        $_DUPLICATE = array();
     12       
    1013        foreach ($_POST['results'] AS $i => $data) {
    11                 pwg_query("INSERT INTO " . CR_TABLE_2 . "
    12                         (
    13                                 image_id,
    14                                 contest_id,
    15                                 rank,
    16                                 comment,
    17                                 author
    18                         )
    19                         VALUES(
    20                                 '" . $data['image_id'] ."',
    21                                 '" . $_GET['contest_id'] ."',
    22                                 '" . $data['rank'] ."',
    23                                 '" . $data['comment'] ."',
    24                                 '" . $data['author'] . "'
    25                         );");
     14                if (!in_array($data['image_id'], $registered_ids)) {
     15                        $registered_ids[] = $data['image_id'];
     16                       
     17                        pwg_query("INSERT INTO " . CR_TABLE_2 . "
     18                                (
     19                                        image_id,
     20                                        contest_id,
     21                                        rank,
     22                                        comment,
     23                                        author
     24                                )
     25                                VALUES(
     26                                        '" . $data['image_id'] ."',
     27                                        '" . $_GET['contest_id'] ."',
     28                                        '" . $data['rank'] ."',
     29                                        '" . $data['comment'] ."',
     30                                        '" . $data['author'] . "'
     31                                );");
     32               
     33                } else {
     34                        $_DUPLICATE[] = $data;
     35                }
    2636        }
    2737       
    28         redirect(CR_ADMIN . '&amp;tab=results&amp;msg=saved&amp;contest_id=' . $_GET['contest_id']);
     38        if (isset($_GET['redirect']) AND $_GET['redirect'] == 'page') {
     39                redirect(CR_PUBLIC . $_GET['contest_id'] . '-' . str2url(trigger_event('render_CR_content', get_contest_name($_GET['contest_id']))) . '#results');
     40        } else if (!isset($_DUPLICATE)) {
     41                $page['infos'][] = l10n('CR_results_saved');
     42        }
    2943}
    3044
     
    3246//                              Affichage des résultats
    3347// +-----------------------------------------------------------------------+
    34 if (isset($_GET['msg']) AND $_GET['msg'] == 'saved')
    35         array_push($page['infos'], l10n('CR_results_saved'));
     48
     49if (!get_contest_name($_GET['contest_id'])) {
     50        redirect(CR_ADMIN .'-manage&amp;msg=errors.notavailable');
    3651       
    37        
    38 // Nom du concours
    39 $query = "SELECT name FROM " . CR_TABLE_1 . " WHERE id = " . $_GET['contest_id'] . ";";
    40 $contest = pwg_db_fetch_assoc(pwg_query($query));
     52} else {
     53        // Nom du concours
     54        $query = "SELECT name FROM " . CR_TABLE_1 . " WHERE id = " . $_GET['contest_id'] . ";";
     55        $contest = pwg_db_fetch_assoc(pwg_query($query));
    4156
    42 $template->assign(array(
    43         'NAME' => trigger_event('render_CR_content', $contest['name']),
    44         'CONTEST_ID' => $_GET['contest_id']
    45 ));
     57        $template->assign(array(
     58                'NAME' => trigger_event('render_CR_content', $contest['name']),
     59                'CONTEST_ID' => $_GET['contest_id']
     60        ));
    4661
    47 // Résultats
    48 $results = pwg_query("SELECT * FROM " . CR_TABLE_2 . " WHERE contest_id = " . $_GET['contest_id'] . " ORDER BY rank;");
     62        // Résultats en double
     63        if (isset($_DUPLICATE)) {
     64                foreach ($_DUPLICATE AS $result) {
     65                        $data = array(
     66                                'RANK' => 0,
     67                                'IMAGE_ID' => $result['image_id'],
     68                                'AUTHOR' => $result['author'],
     69                                'COMMENT' => $result['comment'],
     70                                'ERROR' => true,
     71                        );
     72                       
     73                        // Infos de l'image
     74                        $image = pwg_query("SELECT id, name, file, path, tn_ext
     75                                FROM " . IMAGES_TABLE . "
     76                                WHERE id = " . $result['image_id'] . ";");
     77                       
     78                        if (!pwg_db_num_rows($image)) {
     79                                $themeconf = $template->get_template_vars('themeconf');
     80                                $data['TN_SRC'] = $themeconf['admin_icon_dir'] . '/errors.png';
     81                                $data['IMAGE_NAME'] = 'N/A';           
     82                        } else {
     83                                $image = pwg_db_fetch_assoc($image);
     84                                $data['TN_SRC'] = get_thumbnail_url($image);
     85                                $data['IMAGE_NAME'] = (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'];
     86                        }
     87                       
     88                        $page['errors'][] = l10n_dec('CR_duplicate_result %d', 'CR_duplicate_result %d', $result['image_id']);
     89                        $template->append('results', $data);
     90                }
     91        }
    4992
    50 while ($result = pwg_db_fetch_assoc($results)) {
    51         $data = array(
    52                 'RANK' => $result['rank'],
    53                 'IMAGE_ID' => $result['image_id'],
    54                 'AUTHOR' => $result['author'],
    55                 'COMMENT' => $result['comment'],
    56         );
    57        
    58         // Infos de l'image
    59         $image = pwg_query("SELECT id, name, file, path, tn_ext
    60                 FROM " . IMAGES_TABLE . "
    61                 WHERE id = " . $result['image_id'] . ";");
    62        
    63         if (!pwg_db_num_rows($image)) {
    64                 $themeconf = $template->get_template_vars('themeconf');
    65                 $data['TN_SRC'] = $themeconf['admin_icon_dir'] . '/errors.png';
    66                 $data['IMAGE_NAME'] = 'N/A';
    67                 $page['errors'][] = l10n_dec('CR_id_unknown %d', 'CR_id_unknown %d', $result['image_id']);
     93        // Résultats enregistrés
     94        $results = pwg_query("SELECT * FROM " . CR_TABLE_2 . " WHERE contest_id = " . $_GET['contest_id'] . " ORDER BY rank;");
     95
     96        while ($result = pwg_db_fetch_assoc($results)) {
     97                $data = array(
     98                        'RANK' => $result['rank'],
     99                        'IMAGE_ID' => $result['image_id'],
     100                        'AUTHOR' => $result['author'],
     101                        'COMMENT' => $result['comment'],
     102                );
    68103               
    69         } else {
    70                 $image = pwg_db_fetch_assoc($image);
    71                 $data['TN_SRC'] = get_thumbnail_url($image);
    72                 $data['IMAGE_NAME'] = (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'];
     104                // Infos de l'image
     105                $image = pwg_query("SELECT id, name, file, path, tn_ext
     106                        FROM " . IMAGES_TABLE . "
     107                        WHERE id = " . $result['image_id'] . ";");
     108               
     109                if (!pwg_db_num_rows($image)) {
     110                        $themeconf = $template->get_template_vars('themeconf');
     111                        $data['TN_SRC'] = $themeconf['admin_icon_dir'] . '/errors.png';
     112                        $data['IMAGE_NAME'] = 'N/A';
     113                        $data['ERROR'] = true;
     114                        $page['errors'][] = l10n_dec('CR_id_unknown %d', 'CR_id_unknown %d', $result['image_id']);
     115                } else {
     116                        $image = pwg_db_fetch_assoc($image);
     117                        $data['TN_SRC'] = get_thumbnail_url($image);
     118                        $data['IMAGE_NAME'] = (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'];
     119                }
     120               
     121                $template->append('results', $data);
    73122        }
    74        
    75         $template->append('results', $data);
     123
     124        // +-----------------------------------------------------------------------+
     125        //                              Template
     126        // +-----------------------------------------------------------------------+
     127        $template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/results.tpl'));
     128        $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
    76129}
    77130
    78 // +-----------------------------------------------------------------------+
    79 //                              Template
    80 // +-----------------------------------------------------------------------+
    81 $template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/results.tpl'));
    82 $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
    83131?>
  • extensions/ContestResults/admin/template/config.tpl

    r9572 r9745  
    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'}
     1{combine_css path=$CR_PATH|@cat:'admin/template/style.css'}
    32
    4 {html_head}
    5         <style type="text/css">
    6                 tr td:first-child {ldelim}
    7                         max-width:300px;
    8                         min-width:300px;
     3{footer_script require='jquery'}
     4{literal}
     5        function ToggleConfig(sel, section) {
     6                var obj = jQuery('#config_'+section);
     7                if (sel.checked) {
     8                        obj.show();
     9                } else {
     10                        obj.hide();
    911                }
    10         </style>
     12        }
    1113       
    12         <script type="text/javascript">
    13                 function ToggleConfig(sel, section){ldelim}
    14                         var obj = jQuery('#config_'+section);
    15                         if(sel.checked){ldelim}
    16                                 obj.show();
    17                         }else{ldelim}
    18                                 obj.hide();
    19                         }
    20                 }
    21         </script>
    22 {/html_head}
     14        ToggleConfig(document.forms['CR_config'].elements['menubar_mode_link'], 'link');
     15        ToggleConfig(document.forms['CR_config'].elements['menubar_mode_block'], 'block');
     16{/literal}
     17{/footer_script}
    2318
    24 <h2 style="float:right;top:-24px;position:relative;font-style:italic;margin-bottom:-20px;font-size:12px;font-weight:normal;">{$CR_VERSION}</h2>
     19<h2 class="version_title">{$CR_VERSION}</h2>
    2520
    2621<div class="titrePage">
     
    2823</div>
    2924
    30 <form method="post" action="" class="properties">
     25<form method="post" action="" class="properties" id="CR_config">
     26        <fieldset>
     27                <legend>{'Preferences'|@translate}</legend>
     28               
     29                <table>
     30                        <tr>
     31                                <td><span class="title">{'CR_truncate_summary'|@translate}</span></td>
     32                                <td><input type="text" size="3" name="truncate_summary" value="{$TRUNCATE_SUMMARY}"/></td>
     33                        </tr>
     34                </table>
     35        </fieldset>
     36       
    3137        <fieldset>
    3238                <legend>{'Menu'|@translate}</legend>
     
    5662                        <tr>
    5763                                <td><span class="title">{'CR_menubar_block_number'|@translate}</span></td>
    58                                 <td><input type="text" size="2" maxlength="2" name="menubar_block_number" value="{$BLOCK_NUMBER}"/></td>
     64                                <td><input type="text" size="2" name="menubar_block_number" value="{$BLOCK_NUMBER}"/></td>
    5965                        </tr>
    6066                </table>
     
    6369        <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="config_submit"/></p>
    6470</form>
    65 
    66 <script type="text/javascript">
    67         ToggleConfig(document.forms[0].elements['menubar_mode_link'], 'link');
    68         ToggleConfig(document.forms[0].elements['menubar_mode_block'], 'block');
    69 </script>
  • extensions/ContestResults/admin/template/manage.tpl

    r9572 r9745  
    1 {combine_css id='cr_admin_style' path=$CR_PATH|@cat:'admin/template/style.css'}
     1{combine_css path=$CR_PATH|@cat:'admin/template/style.css'}
    22
    3 <h2 style="float:right;top:-24px;position:relative;font-style:italic;margin-bottom:-20px;font-size:12px;font-weight:normal;">{$CR_VERSION}</h2>
     3<h2 class="version_title">{$CR_VERSION}</h2>
    44
    55<div class="titrePage">
     
    77</div>
    88
    9 {if !isset($contests_pending) and !isset($contests_finished)}
     9{if !isset($contests_pending) and !isset($contests_running) and !isset($contests_finished)}
    1010        {'CR_no_contest'|@translate}<br>
    11         <a href="admin.php?page=plugin&section=ContestResults/admin/admin.php&tab=new">{'CR_new_tab'|@translate}</a>
     11        <a href="{$CR_ADMIN}&tab=new">{'CR_new_tab'|@translate}</a>
    1212{/if}
    1313
    1414{if isset($contests_pending)}
    15         <fieldset>
    16                 <legend>{'CR_pending_title'|@translate}</legend>
    17                 <form id="categoryOrdering">
    18                         <ul class="categoryUl">
    19                                 {foreach from=$contests_pending item=contest name=pending_loop}
    20                                         <li class="categoryLi {if $smarty.foreach.pending_loop.index is odd}virtual_cat{/if} {if $contest.VISIBLE == 0}novisible{/if}">
    21                                                 <ul class="categoryActions">
    22                                                         <li>
    23                                                                 <a href="{$contest.U_EDIT}" title="{'CR_edit_tab'|@translate}">
    24                                                                         <img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'CR_edit_tab'|@translate}"/>
    25                                                                 </a>
    26                                                         </li>
    27                                                         <li>
    28                                                                 <a href="{$contest.U_RESULTS}" title="{'CR_results_tab'|@translate}">
    29                                                                         <img src="{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'CR_results_tab'|@translate}"/>
    30                                                                 </a>
    31                                                         </li>
    32                                                         <li>
    33                                                                 <a href="{$contest.U_DELETE}" title="{'CR_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');">
    34                                                                         <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete'|@translate}" />
    35                                                                 </a>
    36                                                         </li>
    37                                                 </ul>
    38                                                 <p>
    39                                                         {if !empty($contest.LOGO)}<img src="{$contest.LOGO}" width="13px" class="button"/>{/if}
    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>
    42                                                 </p>
     15<fieldset>
     16        <legend>{'CR_pending_title'|@translate}</legend>
     17        <form id="categoryOrdering">
     18                <ul class="categoryUl">
     19                        {foreach from=$contests_pending item=contest name=pending_loop}
     20                        <li class="categoryLi {if $smarty.foreach.pending_loop.index is odd}virtual_cat{/if} {if $contest.VISIBLE == 0}novisible{/if}">
     21                                <ul class="categoryActions">
     22                                        <li>
     23                                                <a href="{$contest.U_EDIT}" title="{'CR_edit_tab'|@translate}">
     24                                                        <img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'CR_edit_tab'|@translate}"/>
     25                                                </a>
    4326                                        </li>
    44                                 {/foreach}
    45                         </ul>
    46                 </form>
    47         </fieldset>
     27                                        <li>
     28                                                <a href="{$contest.U_DELETE}" title="{'CR_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');">
     29                                                        <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete'|@translate}" />
     30                                                </a>
     31                                        </li>
     32                                </ul>
     33                                <p>
     34                                        {if !empty($contest.LOGO)}<img src="{$contest.LOGO}" width="13px" class="button"/>{/if}
     35                                        <strong><a href="{$contest.URL}" title="{'CR_go'|@translate}">{$contest.NAME}</a></strong> - {$contest.DATE_BEGIN} | {$contest.DATE_END}
     36                                        <span class="CR_finished">{$contest.DAYS}</span>
     37                                </p>
     38                        </li>
     39                        {/foreach}
     40                </ul>
     41        </form>
     42</fieldset>
     43{/if}
     44
     45{if isset($contests_running)}
     46<fieldset>
     47        <legend>{'CR_running_title'|@translate}</legend>
     48        <form id="categoryOrdering">
     49                <ul class="categoryUl">
     50                        {foreach from=$contests_running item=contest name=running_loop}
     51                        <li class="categoryLi {if $smarty.foreach.running_loop.index is odd}virtual_cat{/if} {if $contest.VISIBLE == 0}novisible{/if}">
     52                                <ul class="categoryActions">
     53                                        <li>
     54                                                <a href="{$contest.U_EDIT}" title="{'CR_edit_tab'|@translate}">
     55                                                        <img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'CR_edit_tab'|@translate}"/>
     56                                                </a>
     57                                        </li>
     58                                        <li>
     59                                                <a href="{$contest.U_RESULTS}" title="{'CR_results_tab'|@translate}">
     60                                                        <img src="{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'CR_results_tab'|@translate}"/>
     61                                                </a>
     62                                        </li>
     63                                        <li>
     64                                                <a href="{$contest.U_DELETE}" title="{'CR_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');">
     65                                                        <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete'|@translate}" />
     66                                                </a>
     67                                        </li>
     68                                </ul>
     69                                <p>
     70                                        {if !empty($contest.LOGO)}<img src="{$contest.LOGO}" width="13px" class="button"/>{/if}
     71                                        <strong><a href="{$contest.URL}" title="{'CR_go'|@translate}">{$contest.NAME}</a></strong> - {$contest.DATE_BEGIN} | {$contest.DATE_END}
     72                                        <span class="CR_finished">{$contest.DAYS}</span>
     73                                </p>
     74                        </li>
     75                        {/foreach}
     76                </ul>
     77        </form>
     78</fieldset>
    4879{/if}
    4980
    5081{if isset($contests_finished)}
    51         <fieldset>
    52                 <legend>{'CR_finished_title'|@translate}</legend>
    53                 <form id="categoryOrdering">
    54                         <ul class="categoryUl">
    55                                 {foreach from=$contests_finished item=contest name=finished_loop}
    56                                         <li class="categoryLi {if $smarty.foreach.finished_loop.index is odd}virtual_cat{/if} {if $contest.VISIBLE == 0}novisible{/if}">
    57                                                 <ul class="categoryActions">
    58                                                         <li>
    59                                                                 <a href="{$contest.U_EDIT}" title="{'CR_edit_tab'|@translate}">
    60                                                                         <img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'CR_edit_tab'|@translate}"/>
    61                                                                 </a>
    62                                                         </li>
    63                                                         <li>
    64                                                                 <a href="{$contest.U_RESULTS}" title="{'CR_results_tab'|@translate}">
    65                                                                         <img src="{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'CR_results_tab'|@translate}"/>
    66                                                                 </a>
    67                                                         </li>
    68                                                         <li>
    69                                                                 <a href="{$contest.U_DELETE}" title="{'CR_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');">
    70                                                                         <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete'|@translate}" />
    71                                                                 </a>
    72                                                         </li>
    73                                                 </ul>
    74                                                 <p>
    75                                                         {if !empty($contest.LOGO)}<img src="{$contest.LOGO}" width="13px" class="button"/>{/if}
    76                                                         <strong><a href="{$contest.URL}" title="{'CR_go'|@translate}">{$contest.NAME}</a></strong> - {$contest.DATE_BEGIN} | {$contest.DATE_END}
    77                                                 </p>
     82<fieldset>
     83        <legend>{'CR_finished_title'|@translate}</legend>
     84        <form id="categoryOrdering">
     85                <ul class="categoryUl">
     86                        {foreach from=$contests_finished item=contest name=finished_loop}
     87                        <li class="categoryLi {if $smarty.foreach.finished_loop.index is odd}virtual_cat{/if} {if $contest.VISIBLE == 0}novisible{/if}">
     88                                <ul class="categoryActions">
     89                                        <li>
     90                                                <a href="{$contest.U_EDIT}" title="{'CR_edit_tab'|@translate}">
     91                                                        <img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'CR_edit_tab'|@translate}"/>
     92                                                </a>
    7893                                        </li>
    79                                 {/foreach}
    80                         </ul>
    81                 </form>
    82         </fieldset>
     94                                        <li>
     95                                                <a href="{$contest.U_RESULTS}" title="{'CR_results_tab'|@translate}">
     96                                                        <img src="{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'CR_results_tab'|@translate}"/>
     97                                                </a>
     98                                        </li>
     99                                        <li>
     100                                                <a href="{$contest.U_DELETE}" title="{'CR_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');">
     101                                                        <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete'|@translate}" />
     102                                                </a>
     103                                        </li>
     104                                </ul>
     105                                <p>
     106                                        {if !empty($contest.LOGO)}<img src="{$contest.LOGO}" width="13px" class="button"/>{/if}
     107                                        <strong><a href="{$contest.URL}" title="{'CR_go'|@translate}">{$contest.NAME}</a></strong> - {$contest.DATE_BEGIN} | {$contest.DATE_END}
     108                                        <span class="CR_finished">{$contest.DAYS}</span>
     109                                </p>
     110                        </li>
     111                        {/foreach}
     112                </ul>
     113        </form>
     114</fieldset>
    83115{/if}
  • extensions/ContestResults/admin/template/new.tpl

    r9572 r9745  
    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'}
     1{combine_script id='jquery.ui'                  require='jquery' path='themes/default/js/ui/minified/jquery.ui.core.min.js'}
     2{combine_script id='jquery.ui.sortable' require='jquery' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'}
     3{combine_script id='jquery.cluetip'     require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'}
     4
     5{combine_css path=$CR_PATH|@cat:'admin/template/style.css'}
    66{include file='include/autosize.inc.tpl'}
    77{include file='include/datepicker.inc.tpl'}
    88
     9{footer_script require='jquery'}
     10        // AJOUTE UN CHAMP DE RESULTAT
     11        function CreateDescField(j, new_desc){ldelim}
     12                // Si il n'y a aucun résultats on efface le message
     13                if(new_desc) jQuery('#categoryUl').html('');
     14               
     15                // Ajoute à la fin de la liste une nouvelle ligne de résultat vide
     16                jQuery('<li id="desc_'+ j +'" class="categoryLi virtual_cat"></li>').appendTo('#categoryUl');
     17               
     18                // Contenu de la ligne
     19                jQuery('#desc_'+ j).html('<ul class="categoryActions"> '+
     20                                '<li> '+
     21                                        '<a href="#" title="{'CR_delete_desc'|@translate}" onclick="jQuery(\'#desc_'+ j +'\').remove();return false;"> '+
     22                                                '<img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> '+
     23                                        '</a> '+
     24                                '</li> '+
     25                        '</ul> '+
     26                        '<p> '+
     27                                '<img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> '+
     28                                '<input type="text" size="65" name="description['+ j +'][name]" value=""/> '+
     29                                '<textarea class="result_comment" name="description['+ j +'][content]"></textarea> '+
     30                        '</p> '+
     31                        '<p class="catPos">{'CR_rank'|@translate} : <input type="text" name="description['+ j +'][rank]" value=""/></p>');
     32               
     33                // Remplace le lien de création
     34                jQuery('#AddLink').html('<input class="submit" type="reset" onclick="CreateDescField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>');
     35               
     36                // Réinitiliase les fonctions jQuery
     37                jQuery('.catPos').hide();
     38                jQuery('.drag_button').show();
     39                jQuery('.categoryLi').css('cursor', 'move');
     40                jQuery('textarea').autogrow();
     41                jQuery('textarea').css('overflow-y', 'hidden');
     42        }
     43
     44{literal}
     45        jQuery().ready(function(){
     46                //  Drag-and-Drop
     47                jQuery('.catPos').hide();
     48                jQuery('.drag_button').show();
     49                jQuery('.categoryLi').css('cursor', 'move');
     50                jQuery('.categoryUl').sortable({
     51                        axis: 'y',
     52                        opacity: 0.8
     53                });
     54                jQuery('#categoryOrdering').submit(function(){
     55                        ar = jQuery('.categoryUl').sortable('toArray');
     56                        for(i=0; i<ar.length; i++) {
     57                                cat = ar[i].split('desc_');
     58                                document.getElementsByName('description[' + cat[1] + '][rank]')[0].value = i+1;
     59                        }
     60                });
     61                // Cluetip
     62                jQuery('.cluetip').cluetip({
     63                        width: 550,
     64                        splitTitle: '|'
     65                });
     66        });
     67
     68        $(function() {
     69                $('#DateBegin').datepicker({dateFormat:'yy-mm-dd', firstDay:1});
     70                $('#DateEnd').datepicker({dateFormat:'yy-mm-dd', firstDay:1});
     71        });
     72{/literal}
     73{/footer_script}
     74
    975{html_head}
    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 
    85         <style type="text/css">
    86                 .cluetip:after {ldelim}
    87                         content:url('{$themeconf.admin_icon_dir}/help.png');
    88                 }
    89         </style>
     76<style type="text/css">
     77        .cluetip:after {ldelim}
     78                content:url('{$themeconf.admin_icon_dir}/help.png');
     79        }
     80</style>
    9081{/html_head}
    9182
    92 <h2 style="float:right;top:-24px;position:relative;font-style:italic;margin-bottom:-20px;font-size:12px;font-weight:normal;">{$CR_VERSION}</h2>
     83<h2 class="version_title">{$CR_VERSION}</h2>
    9384
    9485<div class="titrePage">
     
    159150                                        <ul class="categoryActions">
    160151                                                <li>
    161                                                         <a href="#" title="{'CR_delete_desc'|@translate}" onclick="DeleteDescField({$i});return false;">
     152                                                        <a href="#" title="{'CR_delete_desc'|@translate}" onclick="jQuery('#desc_{$i}').remove();return false;">
    162153                                                                <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/>
    163154                                                        </a>
  • extensions/ContestResults/admin/template/results.tpl

    r9572 r9745  
    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{combine_script id='jquery.ui'                  require='jquery' path='themes/default/js/ui/minified/jquery.ui.core.min.js'}
     2{combine_script id='jquery.ui.sortable' require='jquery' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'}
     3{combine_script id='jquery.cluetip'     require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'}
     4{combine_script id='jquery.vtip'                require='jquery' path=$CR_PATH|@cat:'admin/template/vtip.js'}
     5
     6{combine_css path=$CR_PATH|@cat:'admin/template/style.css'}
    77{include file='include/autosize.inc.tpl'}
    88
     9{footer_script require='jquery'}
     10        // AJOUTE UN CHAMP DE RESULTAT
     11        function CreateResultField(j, new_contest){ldelim}
     12                // Si il n'y a aucun résultats on efface le message
     13                if(new_contest) jQuery('#categoryUl').html('');
     14               
     15                // Ajoute à la fin de la liste une nouvelle ligne de résultat vide
     16                jQuery('<li id="result_'+ j +'" class="categoryLi virtual_cat"></li>').appendTo('#categoryUl');
     17               
     18                // Contenu de la ligne
     19                jQuery('#result_'+ j).html('<ul class="categoryActions"> '+
     20                                '<li> '+
     21                                        '<a href="#" title="{'CR_delete_result'|@translate}" onclick="jQuery(\'#result_'+ j +'\').remove();return false;"> '+
     22                                                '<img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> '+
     23                                        '</a> '+
     24                                '</li> '+
     25                        '</ul> '+
     26                        '<p> '+
     27                                '<img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> '+
     28                                '{'CR_image_no'|@translate} <input type="text" size="6" name="results['+ j +'][image_id]" value="" onkeyup="UpdatePreview('+ j +', this);"/> '+
     29                                '<span id="preview-'+ j +'"> '+
     30                                        '<span class="vtip" title="<img src=\'admin/themes/default/icon/errors.png\'/><br>N/A"> '+
     31                                                '<img src="{$CR_PATH}admin/template/image/images.png"/> '+
     32                                        '</span> '+
     33                                '</span> '+
     34                                '{'CR_author'|@translate} : <input type="text" name="results['+ j +'][author]" value=""/> '+
     35                                '<textarea class="result_comment" name="results['+ j +'][comment]"></textarea> '+
     36                        '</p> '+
     37                        '<p class="catPos">{'CR_rank'|@translate} : <input type="text" name="results['+ j +'][rank]" value=""/></p>');
     38               
     39                // Remplace le lien de création
     40                jQuery('#AddLink').html('<input class="submit" type="reset" onclick="CreateResultField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>');
     41               
     42                // Réinitiliase les fonctions jQuery
     43                jQuery('.catPos').hide();
     44                jQuery('.drag_button').show();
     45                jQuery('.categoryLi').css('cursor', 'move');
     46                jQuery('textarea').autogrow();
     47                jQuery('textarea').css('overflow-y', 'hidden');
     48                vtip();
     49        }
     50       
     51        // MET A JOUR LA PREVISUALISATION DE L'IMAGE
     52        function UpdatePreview(image_id, input){ldelim}
     53                $.get("{$CR_PATH}admin/get_tn.php", {ldelim}image_id: input.value},
     54                        function success(data){ldelim}
     55                                document.getElementById('preview-'+image_id).innerHTML = '<span class="vtip" title="'+ data + '">'+
     56                                                '<img src="{$CR_PATH}admin/template/image/images.png"/>'+
     57                                        '</span>';
     58                                vtip();
     59                        }
     60                );
     61        }
     62               
     63{literal}
     64        jQuery().ready(function(){
     65                //  Drag-and-Drop
     66                jQuery('.catPos').hide();
     67                jQuery('.drag_button').show();
     68                jQuery('.categoryLi').css('cursor', 'move');
     69                jQuery('.categoryUl').sortable({
     70                        axis: 'y',
     71                        opacity: 0.8
     72                });
     73                jQuery('#categoryOrdering').submit(function(){
     74                        ar = jQuery('.categoryUl').sortable('toArray');
     75                        for(i=0; i<ar.length; i++) {
     76                                cat = ar[i].split('result_');
     77                                document.getElementsByName('results[' + cat[1] + '][rank]')[0].value = i+1;
     78                        }
     79                });
     80                // Cluetip
     81                jQuery('.cluetip').cluetip({
     82                        width: 550,
     83                        splitTitle: '|'
     84                });
     85        });
     86{/literal}
     87{/footer_script}
     88
    989{html_head}
    10         <script type="text/javascript">
    11                 // AJOUTE UN CHAMP DE RESULTAT
    12                 function CreateResultField(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', 'result_'+(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_result'|@translate}" onclick="DeleteResultField('+ 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                                         '{'CR_image_no'|@translate} <input type="text" size="6" name="results['+ j +'][image_id]" value="" onkeyup="UpdatePreview('+ j +', this);"/> '+
    33                                         '<span id="preview-'+ j +'"> '+
    34                                                 '<span class="vtip" title="<img src=\'admin/themes/default/icon/errors.png\'/><br>N/A"> '+
    35                                                         '<img src="{$CR_PATH}admin/template/image/images.png"/> '+
    36                                                 '</span> '+
    37                                         '</span> '+
    38                                         '{'CR_author'|@translate} : <input type="text" name="results['+ j +'][author]" value=""/> '+
    39                                         '<textarea class="result_comment" name="results['+ j +'][comment]"></textarea> '+
    40                                 '</p> '+
    41                                 '<p class="catPos">{'CR_rank'|@translate} : <input type="text" name="results['+ j +'][rank]" value=""/></p>';
    42                        
    43                         // Remplace le lien de création
    44                         document.getElementById('AddLink').innerHTML = '<input class="submit" type="reset" onclick="CreateResultField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>';
    45                        
    46                         // Réinitiliase les fonctions jQuery
    47                         jQuery('.catPos').hide();
    48                         jQuery('.drag_button').show();
    49                         jQuery('.categoryLi').css('cursor', 'move');
    50                         jQuery('textarea').autogrow();
    51                         jQuery('textarea').css('overflow-y', 'hidden');
    52                         vtip();
    53                 }
    54                
    55                 // SUPPRIME UN CHAMP DE RESULTAT
    56                 function DeleteResultField(k){ldelim}
    57                         var result = document.getElementById('result_'+k);
    58                         var parent = result.parentNode;
    59                         parent.removeChild(result);
    60                 }
    61 
    62                 jQuery().ready(function(){ldelim}
    63                         //  Drag-and-Drop
    64                         jQuery('.catPos').hide();
    65                         jQuery('.drag_button').show();
    66                         jQuery('.categoryLi').css('cursor', 'move');
    67                         jQuery('.categoryUl').sortable({ldelim}
    68                                 axis: 'y',
    69                                 opacity: 0.8
    70                         });
    71                         jQuery('#categoryOrdering').submit(function(){ldelim}
    72                                 ar = jQuery('.categoryUl').sortable('toArray');
    73                                 for(i=0; i<ar.length; i++) {ldelim}
    74                                         cat = ar[i].split('result_');
    75                                         document.getElementsByName('results[' + cat[1] + '][rank]')[0].value = i+1;
    76                                 }
    77                         });
    78                         // Cluetip
    79                         jQuery('.cluetip').cluetip({ldelim}
    80                                 width: 550,
    81                                 splitTitle: '|'
    82                         });
    83                 });
    84                
    85                 // MET A JOUR LA PREVISUALISATION DE L'IMAGE
    86                 function UpdatePreview(image_id, input){ldelim}
    87                         $.get("{$CR_PATH}admin/get_tn.php", {ldelim}image_id: input.value},
    88                                 function success(data){ldelim}
    89                                         document.getElementById('preview-'+image_id).innerHTML = '<span class="vtip" title="'+ data + '">'+
    90                                                         '<img src="{$CR_PATH}admin/template/image/images.png"/>'+
    91                                                 '</span>';
    92                                         vtip();
    93                                 }
    94                         );
    95                 }
    96         </script>
    97        
    98         <style type="text/css">
    99                 .cluetip:after {ldelim}
    100                         content:url('{$themeconf.admin_icon_dir}/help.png');
    101                 }
    102         </style>
     90<style type="text/css">
     91        .cluetip:after {ldelim}
     92                content:url('{$themeconf.admin_icon_dir}/help.png');
     93        }
     94</style>
    10395{/html_head}
    10496
    105 <h2 style="float:right;top:-24px;position:relative;font-style:italic;margin-bottom:-20px;font-size:12px;font-weight:normal;">{$CR_VERSION}</h2>
     97<h2 class="version_title">{$CR_VERSION}</h2>
    10698
    10799<div class="titrePage">
     
    114106        {if isset($results)}
    115107                {foreach from=$results item=result}
    116                         <li class="categoryLi {if $result.IMAGE_NAME == 'N/A'}error_cat{/if}" id="result_{$i}">
     108                        <li class="categoryLi {if isset($result.ERROR)}error_cat{/if}" id="result_{$i}">
    117109                                <ul class="categoryActions">
    118110                                        <li>
    119                                                 <a href="#" title="{'CR_delete_result'|@translate}" onclick="DeleteResultField({$i});return false;">
     111                                                <a href="#" title="{'CR_delete_result'|@translate}" onclick="jQuery('#result_{$i}').remove();return false;">
    120112                                                        <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/>
    121113                                                </a>
  • extensions/ContestResults/admin/template/style.css

    r9572 r9745  
    1 .titrePage {
    2         clear:right;
    3 }
    4 .titrePage h2 {
    5         text-align:center;
    6 }
    7 
    81.result_comment {
    92        width:95%;
     
    7164        color:#a00;
    7265}
     66
     67#CR_config tr td:first-child {
     68        max-width:300px;
     69        min-width:300px;
     70}
     71
     72.version_title {
     73        float:right;
     74        position:relative;
     75        top:-24px;
     76        margin-bottom:-20px !important;
     77        font-size:12px !important;
     78        font-style:italic;
     79        font-weight:normal;
     80}
  • extensions/ContestResults/changelog.txt

    r9572 r9745  
    1 1.3
     11.3.b
     2- Use new admin links and javascript implementation
     3- Distinguish pending and running contests (both pending before)
     4- Tables are created in utf8
     5- New bloc for PWG Stuffs
     6
     71.3.a
    28- Add error and success messages on admin page
    39- Add Spain (es_ES) thanks to jpr928
  • extensions/ContestResults/include/cr_main.php

    r9572 r9745  
    1717
    1818while ($contest = pwg_db_fetch_assoc($contests)) {
     19        $contest = array_merge($contest, get_contest_status($contest['date_begin'],$contest['date_end']));
     20               
    1921        if ($contest['visible'] OR is_admin()) {
    20                 $contest['finished'] = is_date_passed($contest['date_end']);
    21                
    2222                // infos sur le concours
    2323                $item =  array(
     
    2525                        'NAME' => trigger_event('render_CR_content', $contest['name']),
    2626                        'VISIBLE' => $contest['visible'],
    27                         'FINISHED' => $contest['finished'],
     27                        'STATUS' => $contest['status'],
    2828                        'DATE_END' => format_date($contest['date_end']),
    2929                        'DATE_BEGIN' => format_date($contest['date_begin']),
    3030                        'LOGO' => $contest['logo'],
    31                         'SUMMARY' => CR_cut_string(trigger_event('render_CR_content', $contest['summary']), 350),
     31                        'SUMMARY' => CR_cut_string(trigger_event('render_CR_content', $contest['summary']), $conf['ContestResults']['truncate_summary']),
    3232                        'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])),
    33                         'DAYS' => DateDiff($contest['date_end'], date('Y-m-d')),
     33                        'DAYS' => $contest['days'],
    3434                );
    3535               
    3636                // podium si terminé
    37                 if ($contest['finished'] == true) {
     37                if ($contest['status'] == 'finished') {
    3838                        $results = pwg_query("SELECT
    3939                                        i.id,
  • extensions/ContestResults/include/cr_menubar.php

    r9572 r9745  
    55//                              Triggers
    66// +-----------------------------------------------------------------------+
    7 $config = unserialize($conf['ContestResults']);
    8 if ($config['menubar_mode']['block']) {
     7if ($conf['ContestResults']['menubar_mode']['block']) {
    98        add_event_handler('blockmanager_register_blocks', 'CR_register_menubar_blocks');
    109}
     
    2524function CR_menubar_apply($menu_ref_arr) {
    2625        global $template, $conf;
    27         $config = unserialize($conf['ContestResults']);
     26        //$config = unserialize($conf['ContestResults']);
    2827        $menu = &$menu_ref_arr[0];
    2928       
     
    4342
    4443                $m = 0; // compteur pour limiter le nombre de concours affichés
    45                 while($contest = pwg_db_fetch_assoc($contests)){
    46                         if (($contest['visible'] OR is_admin()) AND $m < $config['menubar_block']['number']) {
     44                while ($contest = pwg_db_fetch_assoc($contests)) {
     45                        $contest = array_merge($contest, get_contest_status($contest['date_begin'],$contest['date_end']));
     46                       
     47                        if (($contest['visible'] OR is_admin()) AND $m < $conf['ContestResults']['menubar_block']['number']) {
    4748                                array_push($data, array(
    4849                                        'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])),
     
    5051                                        'DATE' => format_date($contest['date_begin']) . ' - ' . format_date($contest['date_end']),
    5152                                        'VISIBLE' => $contest['visible'],
    52                                         'FINISHED' => is_date_passed($contest['date_end']),
    53                                         'DAYS' => DateDiff($contest['date_end'],date('Y-m-d')),
     53                                        'STATUS' => $contest['status'],
     54                                        'DAYS' => $contest['days'],
    5455                                ));
    5556                        }
     
    6768       
    6869        // Block Menu - ajout d'un lien dans le bloc Menu
    69         if ($config['menubar_mode']['link'] AND $config['menubar_link']['menu'] AND ($block = $menu->get_block('mbMenu')) != null) {
     70        if ($conf['ContestResults']['menubar_mode']['link'] AND $conf['ContestResults']['menubar_link']['menu'] AND ($block = $menu->get_block('mbMenu')) != null) {
    7071                array_push($block->data, array(
    7172                        'URL' => CR_PUBLIC,
     
    7677       
    7778        // Block Specials - ajout d'un lien dans le bloc Specials
    78         if($config['menubar_mode']['link'] AND $config['menubar_link']['specials'] AND ($block = $menu->get_block('mbSpecials')) != null){
     79        if($conf['ContestResults']['menubar_mode']['link'] AND $conf['ContestResults']['menubar_link']['specials'] AND ($block = $menu->get_block('mbSpecials')) != null){
    7980                array_push($block->data, array(
    8081                        'URL' => CR_PUBLIC,
  • extensions/ContestResults/include/cr_page.php

    r9572 r9745  
    66// +-----------------------------------------------------------------------+
    77if (is_admin()) {
    8         $template->assign('U_EDIT', CR_ADMIN . '&amp;tab=edit&amp;contest_id=' . $page['contest'] . '&amp;redirect=page');
    9         $template->assign('U_RESULTS', CR_ADMIN . '&amp;tab=results&amp;contest_id=' . $page['contest']);
     8        $template->assign('U_EDIT', CR_ADMIN . '-edit&amp;contest_id=' . $page['contest'] . '&amp;redirect=page');
     9        $template->assign('U_RESULTS', CR_ADMIN . '-results&amp;contest_id=' . $page['contest'] . '&amp;redirect=page');
    1010}
    1111
    1212// Infos du concours
    13 $contest = pwg_query("SELECT * FROM " . CR_TABLE_1 . " WHERE id=" . $page['contest'] . ";");
     13$contest = pwg_db_fetch_assoc(pwg_query("SELECT * FROM " . CR_TABLE_1 . " WHERE id=" . $page['contest'] . ";"));
     14$contest = array_merge($contest, get_contest_status($contest['date_begin'],$contest['date_end']));
    1415
    15 if (pwg_db_num_rows($contest)) {
    16         $contest = pwg_db_fetch_assoc($contest);
    17         $contest['finished'] = is_date_passed($contest['date_end']);
    18        
    19         // Concours non-publique
    20         if (!$contest['visible']) {
    21                 check_status(ACCESS_ADMINISTRATOR);
    22         }
    23        
    24         // Paramètres généraux
    25         $template->assign(array(
    26                 'ID' => $contest['id'],
    27                 'NAME' => trigger_event('render_CR_content', $contest['name']),
    28                 'VISIBLE' => $contest['visible'],
    29                 'FINISHED' => $contest['finished'],
    30                 'DATE_BEGIN' => format_date($contest['date_begin']),
    31                 'DATE_END' => format_date($contest['date_end']),
    32                 'LOGO' => $contest['logo'],
    33                 'BANNER' => $contest['banner'],
    34                 'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])),
    35                 'DAYS' => DateDiff($contest['date_end'], date('Y-m-d')),
    36         ));
    37        
    38         // Les quatre zones texte
    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                 }
    47         }
    48        
    49         // Affichage des résultats
    50         if ($contest['finished'] == true) {
    51                 // Infos des résultats
    52                 $results = pwg_query("SELECT * FROM " . CR_TABLE_2 . " WHERE contest_id=" . $contest['id'] . " ORDER BY rank ASC;");
    53                
    54                 while ($result = pwg_db_fetch_assoc($results)) {
    55                         // Infos de l'image
    56                         $query = "SELECT
    57                                         i.id,
    58                                         i.name,
    59                                         i.file,
    60                                         i.path,
    61                                         i.tn_ext,
    62                                         ic.category_id
    63                                 FROM " . IMAGES_TABLE . " AS i
    64                                 INNER JOIN " . IMAGE_CATEGORY_TABLE . " AS ic
    65                                 ON ic.image_id = i.id
    66                                 WHERE i.id = " . $result['image_id'] . ";";
    67                         $image = pwg_db_fetch_assoc(pwg_query($query));
    68 
    69                         // retrieving category informations
    70                         $query = "SELECT
    71                                         id,
    72                                         name,
    73                                         permalink,
    74                                         uppercats
    75                                 FROM " . CATEGORIES_TABLE."
    76                                 WHERE id = " . $image['category_id'] . ";";
    77                         $image['cat'] = pwg_db_fetch_assoc(pwg_query($query));
    78        
    79                         // link to the full size picture
    80                         $image['url'] = make_picture_url(array(
    81                                 'category' => $image['cat'],
    82                                 'image_id' => $image['id'],
    83                                 'image_file' => $image['file'],
    84                         ));                     
    85                        
    86                         // Template
    87                         if (in_array($result['rank'], array(1,2,3))) {
    88                                 $data = array(
    89                                         'RANK' => $result ['rank'],
    90                                         'AUTHOR' => $result['author'],
    91                                         'IMAGE_SRC' => str_replace('thumbnail/'.$conf['prefix_thumbnail'], null, get_thumbnail_url($image)),
    92                                         'IMAGE_URL' => $image['url'],
    93                                         'IMAGE_NAME' => (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'],
    94                                         'COMMENT' => CR_cut_string(trigger_event('render_CR_content', $result['comment']), 450),
    95                                 );
    96                         }else{
    97                                 $data = array(
    98                                         'RANK' => $result ['rank'],
    99                                         'AUTHOR' => $result['author'],
    100                                         'TN_SRC' => get_thumbnail_url($image),
    101                                         'IMAGE_URL' => $image['url'],
    102                                         'IMAGE_NAME' => (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'],
    103                                 );
    104                         }
    105                         $template->append('RESULTS', $data);
    106                 }
    107         }
    108        
    109         $template->set_filenames(array('index'=> dirname(__FILE__).'/../template/cr_page.tpl'));
    110        
    111 } else {
    112         page_not_found(l10n('CR_notavailable'));
     16// Concours non-publique
     17if (!$contest['visible']) {
     18        check_status(ACCESS_ADMINISTRATOR);
    11319}
    11420
     21// Paramètres généraux
     22$template->assign(array(
     23        'ID' => $contest['id'],
     24        'NAME' => trigger_event('render_CR_content', $contest['name']),
     25        'VISIBLE' => $contest['visible'],
     26        'STATUS' => $contest['status'],
     27        'DATE_BEGIN' => format_date($contest['date_begin']),
     28        'DATE_END' => format_date($contest['date_end']),
     29        'LOGO' => $contest['logo'],
     30        'BANNER' => $contest['banner'],
     31        'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])),
     32        'DAYS' => $contest['days'],
     33));
     34
     35// Les quatre zones texte
     36if (!empty($contest['description'])) {
     37        $contest['description'] = unserialize(base64_decode($contest['description']));
     38        foreach ($contest['description'] as $desc) {
     39                $template->append('description', array(
     40                        'NAME' => trigger_event('render_CR_content', stripslashes($desc['name'])),
     41                        'CONTENT' => trigger_event('render_CR_content', stripslashes($desc['content'])),
     42                ));
     43        }
     44}
     45
     46// Affichage des résultats
     47if ($contest['status'] == 'finished') {
     48        // Infos des résultats
     49        $results = pwg_query("SELECT * FROM " . CR_TABLE_2 . " WHERE contest_id=" . $contest['id'] . " ORDER BY rank ASC;");
     50        $i=0;
     51        while ($result = pwg_db_fetch_assoc($results)) {
     52                $i++;
     53                // Infos de l'image
     54                $query = "SELECT
     55                                i.id,
     56                                i.name,
     57                                i.file,
     58                                i.path,
     59                                i.tn_ext,
     60                                ic.category_id
     61                        FROM " . IMAGES_TABLE . " AS i
     62                        INNER JOIN " . IMAGE_CATEGORY_TABLE . " AS ic
     63                        ON ic.image_id = i.id
     64                        WHERE i.id = " . $result['image_id'] . ";";
     65                $image = pwg_db_fetch_assoc(pwg_query($query));
     66
     67                // retrieving category informations
     68                $query = "SELECT
     69                                id,
     70                                name,
     71                                permalink,
     72                                uppercats
     73                        FROM " . CATEGORIES_TABLE."
     74                        WHERE id = " . $image['category_id'] . ";";
     75                $image['cat'] = pwg_db_fetch_assoc(pwg_query($query));
     76
     77                // link to the full size picture
     78                $image['url'] = make_picture_url(array(
     79                        'category' => $image['cat'],
     80                        'image_id' => $image['id'],
     81                        'image_file' => $image['file'],
     82                ));                     
     83               
     84                // Template
     85                if (in_array($result['rank'], array(1,2,3))) {
     86                        $data = array(
     87                                'RANK' => $result ['rank'],
     88                                'AUTHOR' => $result['author'],
     89                                'IMAGE_SRC' => str_replace('thumbnail/'.$conf['prefix_thumbnail'], null, get_thumbnail_url($image)),
     90                                'IMAGE_URL' => $image['url'],
     91                                'IMAGE_NAME' => (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'],
     92                                'COMMENT' => CR_cut_string(trigger_event('render_CR_content', $result['comment']), 450),
     93                        );
     94                }else{
     95                        $data = array(
     96                                'RANK' => $result ['rank'],
     97                                'AUTHOR' => $result['author'],
     98                                'TN_SRC' => get_thumbnail_url($image),
     99                                'IMAGE_URL' => $image['url'],
     100                                'IMAGE_NAME' => (empty($image['name'])) ? get_name_from_file($image['file']) : $image['name'],
     101                        );
     102                }
     103                $template->append('RESULTS', $data);
     104        }
     105        $template->assign('NB_RESULTS', $i);
     106}
     107
     108$template->set_filenames(array('index'=> dirname(__FILE__).'/../template/cr_page.tpl'));
     109       
    115110
    116111// +-----------------------------------------------------------------------+
  • extensions/ContestResults/include/functions.php

    r9572 r9745  
    2020                return $contest['name'];
    2121        } else {
    22                 return null;
     22                return false;
    2323        }
    2424}
    2525
    2626// Nombre de jours entre deux dates
    27 function DateDiff($date2, $date1) {
     27function date_diff($date2, $date1) {
    2828        return ceil((strtotime($date2)-strtotime($date1))/(3600*24));
    2929}
     
    3737        }
    3838}
     39
     40// Calcul le status d'un concours
     41function get_contest_status($date_begin, $date_end) {
     42        if (!is_date_passed($date_begin)) {
     43                $contest['status'] = 'pending';
     44                $contest['days'] = l10n_dec('CR_%d_days_to_begin', 'CR_%d_days_to_begin', date_diff($date_begin,date('Y-m-d')));
     45        } else if (is_date_passed($date_end)) {
     46                $contest['status'] = 'finished';
     47                $contest['days'] = l10n('CR_finished');
     48        } else {
     49                $contest['status'] = 'running';
     50                $contest['days'] = l10n_dec('CR_%d_days_to_end', 'CR_%d_days_to_end', date_diff($date_end,date('Y-m-d')));
     51        }
     52       
     53        return $contest;
     54}
    3955?>
  • extensions/ContestResults/language/en_UK/plugin.lang.php

    r9572 r9745  
    11<?php
    22
     3/* général */
    34$lang['Contests'] = 'Contests';
     5$lang['CR_finished'] = 'Finished';
     6$lang['CR_results'] = 'Results';
     7$lang['CR_place'] = 'place';
     8$lang['CR_nopublic'] = 'This page is not available for the public !';
     9$lang['CR_notavailable'] = 'This contest is not available';
     10$lang['CR_%d_days_to_begin'] = "Begins in %d days";
     11$lang['CR_%d_days_to_end'] = "%d days remaining";
     12$lang['CR_order_1'] = '1<sup>st</sup>';
     13$lang['CR_order_2'] = '2<sup>nd</sup>';
     14$lang['CR_order_3'] = '3<sup>rd</sup>';
     15$lang['CR_order_sup'] = '<sup>th</sup>';
     16
     17/* admin */
    418$lang['CR_edit_tab'] = 'Edit contest';
    519$lang['CR_delete'] = 'Delete contest';
     
    822$lang['CR_new_tab'] = 'Add a new contest';
    923$lang['CR_results_tab'] = 'Contest results';
    10 $lang['CR_pending_title'] = 'Pending contests';
    11 $lang['CR_finished_title'] = 'Finished contest';
    12 $lang['CR_results'] = 'Results';
    1324$lang['CR_go'] = 'Go to the contest page';
    1425$lang['CR_title'] = 'Title';
     
    1829$lang['CR_logo'] = 'Logo';
    1930$lang['CR_banner'] = 'Banner';
    20 $lang['CR_pending'] = 'Pending';
    21 $lang['CR_finished'] = 'Finished';
    2231$lang['CR_summary'] = 'Summary';
    2332$lang['CR_textareas'] = 'Contest description';
     
    3039$lang['CR_comment'] = 'Comment';
    3140$lang['CR_rank'] = 'Rank';
    32 $lang['CR_place'] = 'place';
    33 $lang['CR_period'] = 'Period';
    3441$lang['CR_visible'] = 'Public';
    35 $lang['CR_nopublic'] = 'This page is not available for the public !';
    36 $lang['CR_notavailable'] = 'This contest is not available';
    3742$lang['CR_id_unknown %d'] = "The picture n°%d doesn't exist";
     43$lang['CR_duplicate_result %d'] = "The picture n°%d appears twice";
    3844$lang['CR_contest_saved'] = "Contest settings saved";
    3945$lang['CR_contest_added'] = "Contest added";
     
    4147$lang['CR_results_saved'] = "Results saved";
    4248$lang['CR_name_empty'] = "The name of the contest can't be empty";
    43 $lang['CR_days'] = "days remaining";
     49$lang['CR_pending_title'] = 'Pending contests';
     50$lang['CR_running_title'] = 'Contests running';
     51$lang['CR_finished_title'] = 'Finished contest';
    4452
    45 $lang['CR_order_1'] = '1<sup>st</sup>';
    46 $lang['CR_order_2'] = '2<sup>nd</sup>';
    47 $lang['CR_order_3'] = '3<sup>rd</sup>';
    48 $lang['CR_order_sup'] = '<sup>th</sup>';
    49 
    50 $lang['CR_menubar_mode'] = 'Add ContestResults to the menu';
     53/* config */
     54$lang['CR_menubar_mode'] = 'Add Contest Results to the menu';
    5155$lang['CR_menubar_link'] = 'Add a link to a existing menu-block';
    5256$lang['CR_menubar_link_display'] = 'Display the link in the following blocks';
    5357$lang['CR_menubar_block'] = 'New menu block';
    5458$lang['CR_menubar_block_number'] = 'Quantity of contests to display in the block';
     59$lang['CR_truncate_summary'] = "Truncate the summary of the contest after x characters";
    5560
     61/* stuffs */
     62$lang['CR_select_contest'] = "Select one or more contests";
     63$lang['CR_stuffs_desc'] = "Display one or more contests";
     64
     65/* cluetip */
    5666$lang['CR_help_lang'] = (CR_ED_STATE == 'active') ? "<b>You can use HTML and multilanguage descriptions.</b>" : "<b>You can use HTML.</b>";
    5767$lang['CR_help_title'] = "" . $lang['CR_help_lang'];
  • extensions/ContestResults/language/es_ES/plugin.lang.php

    r9572 r9745  
    11<?php
    22
     3/* général */
    34$lang['Contests'] = 'Concurso';
     5$lang['CR_finished'] = 'Terminado';
     6$lang['CR_results'] = 'Resultados';
     7$lang['CR_place'] = 'sitio';
     8$lang['CR_nopublic'] = "Esta página no es accesible al público !";
     9$lang['CR_notavailable'] = "Este concurso no está disponible";
     10$lang['CR_%d_days_to_begin'] = "Begins in %d days";
     11$lang['CR_%d_days_to_end'] = "%d days remaining";
     12$lang['CR_order_1'] = '1<sup>a</sup>';
     13$lang['CR_order_2'] = '2<sup>0</sup>';
     14$lang['CR_order_3'] = '3<sup>0</sup>';
     15$lang['CR_order_sup'] = '<sup>0</sup>';
     16
     17/* admin */
    418$lang['CR_edit_tab'] = 'Edición del Concurso';
    519$lang['CR_delete'] = 'Suprimir el concurso';
     
    822$lang['CR_new_tab'] = 'Añadir un nuevo concurso';
    923$lang['CR_results_tab'] = 'Resultados del Concurso';
    10 $lang['CR_pending_title'] = 'Concursos en curso';
    11 $lang['CR_finished_title'] = 'Concurso terminado';
    12 $lang['CR_results'] = 'Resultados';
    1324$lang['CR_go'] = 'Ir a la página del concurso';
    1425$lang['CR_title'] = 'Titulo';
     
    1829$lang['CR_logo'] = 'Logo';
    1930$lang['CR_banner'] = 'Bandera';
    20 $lang['CR_pending'] = 'En curso';
    21 $lang['CR_finished'] = 'Terminado';
    2231$lang['CR_summary'] = 'Resumen';
    2332$lang['CR_textareas'] = 'Descripcion del concurso';
     
    3039$lang['CR_comment'] = 'Comentario';
    3140$lang['CR_rank'] = 'Rango';
    32 $lang['CR_place'] = 'sitio';
    33 $lang['CR_period'] = 'Periodo';
    3441$lang['CR_visible'] = 'Publico';
    35 $lang['CR_nopublic'] = "Esta página no es accesible al público !";
    36 $lang['CR_notavailable'] = "Este concurso no está disponible";
    3742$lang['CR_id_unknown %d'] = "Imagen #% d no existe";
     43$lang['CR_duplicate_result %d'] = "The picture n°%d appears twice";
    3844$lang['CR_contest_saved'] = "Configuración del concurso guardada";
    3945$lang['CR_contest_added'] = "Concurso añadido";
     
    4147$lang['CR_results_saved'] = "Resultados guardado ";
    4248$lang['CR_name_empty'] = "El nombre del concurso no puede estar vacío";
    43 $lang['CR_days'] = "días restantes";
     49$lang['CR_pending_title'] = 'Concursos en curso';
     50$lang['CR_running_title'] = 'Contests running';
     51$lang['CR_finished_title'] = 'Concurso terminado';
    4452
    45 $lang['CR_order_1'] = '1<sup>a</sup>';
    46 $lang['CR_order_2'] = '2<sup>0</sup>';
    47 $lang['CR_order_3'] = '3<sup>0</sup>';
    48 $lang['CR_order_sup'] = '<sup>0</sup>';
    49 
     53/* config */
    5054$lang['CR_menubar_mode'] = 'Insertar ContestResults al menú';
    5155$lang['CR_menubar_link'] = 'Vínculo en un bloque menú existente';
     
    5357$lang['CR_menubar_block'] = 'Nuevo bloque menú';
    5458$lang['CR_menubar_block_number'] = 'Número de Concursos para mostrar en el bloque';
     59$lang['CR_truncate_summary'] = "Truncate the summary of the contest after x characters";
    5560
     61/* stuffs */
     62$lang['CR_select_contest'] = "Select one or more contests";
     63$lang['CR_stuffs_desc'] = "Display one or more contests";
     64
     65/* cluetip */
    5666$lang['CR_help_lang'] = (CR_ED_STATE == 'active') ? "<b>Puede usar HTML y descripciones multilingüe.</b>" : "<b>Puede usar HTML.</b>";
    5767$lang['CR_help_title'] = "" .$lang['CR_help_lang'];
     
    6777        - Pase el ratón sobre el icono <img src='".CR_PATH."admin/template/image/images.png'/> para ver la imagen correspondiente al identificador de entrada.<br/>
    6878        <br/>" .$lang['CR_help_lang'];
    69        
     79
    7080?>
  • extensions/ContestResults/language/fr_FR/plugin.lang.php

    r9572 r9745  
    11<?php
    22
     3/* général */
    34$lang['Contests'] = 'Concours';
     5$lang['CR_finished'] = 'Terminé';
     6$lang['CR_results'] = 'Résultats';
     7$lang['CR_place'] = 'place';
     8$lang['CR_nopublic'] = "Cette page n'est pas accessible au public !";
     9$lang['CR_notavailable'] = "Ce concours n'est pas disponible";
     10$lang['CR_%d_days_to_begin'] = "Commence dans %d jours";
     11$lang['CR_%d_days_to_end'] = "%d jours restants";
     12$lang['CR_order_1'] = '1<sup>ère</sup>';
     13$lang['CR_order_2'] = '2<sup>ème</sup>';
     14$lang['CR_order_3'] = '3<sup>ème</sup>';
     15$lang['CR_order_sup'] = '<sup>ème</sup>';
     16
     17/* admin */
    418$lang['CR_edit_tab'] = 'Editer le concours';
    519$lang['CR_delete'] = 'Supprimer le concours';
     
    822$lang['CR_new_tab'] = 'Ajouter un nouveau concours';
    923$lang['CR_results_tab'] = 'Résultats du concours';
    10 $lang['CR_pending_title'] = 'Concours en cours';
    11 $lang['CR_finished_title'] = 'Concours terminés';
    12 $lang['CR_results'] = 'Résultats';
    1324$lang['CR_go'] = 'Aller sur la page du concours';
    1425$lang['CR_title'] = 'Titre';
     
    1829$lang['CR_logo'] = 'Logo';
    1930$lang['CR_banner'] = 'Bannière';
    20 $lang['CR_pending'] = 'En cours';
    21 $lang['CR_finished'] = 'Terminé';
    2231$lang['CR_summary'] = 'Résumé';
    2332$lang['CR_textareas'] = 'Description du concours';
     
    3039$lang['CR_comment'] = 'Commentaire';
    3140$lang['CR_rank'] = 'Rang';
    32 $lang['CR_place'] = 'place';
    33 $lang['CR_period'] = 'Période';
    3441$lang['CR_visible'] = 'Publique';
    35 $lang['CR_nopublic'] = "Cette page n'est pas accessible au public !";
    36 $lang['CR_notavailable'] = "Ce concours n'est pas disponible";
    3742$lang['CR_id_unknown %d'] = "L'image n°%d n'existe pas";
     43$lang['CR_duplicate_result %d'] = "L'image n°%d est en double";
    3844$lang['CR_contest_saved'] = "Paramètres du concours sauvegardés";
    3945$lang['CR_contest_added'] = "Concours ajouté";
     
    4147$lang['CR_results_saved'] = "Résultats sauvegardés";
    4248$lang['CR_name_empty'] = "Le nom du concours ne peut être vide";
    43 $lang['CR_days'] = "jours restants";
     49$lang['CR_pending_title'] = 'Concours en attente';
     50$lang['CR_running_title'] = 'Concours en cours';
     51$lang['CR_finished_title'] = 'Concours terminés';
    4452
    45 $lang['CR_order_1'] = '1<sup>ère</sup>';
    46 $lang['CR_order_2'] = '2<sup>ème</sup>';
    47 $lang['CR_order_3'] = '3<sup>ème</sup>';
    48 $lang['CR_order_sup'] = '<sup>ème</sup>';
    49 
    50 $lang['CR_menubar_mode'] = 'Intégrer ContestResults au menu';
     53/* config */
     54$lang['CR_menubar_mode'] = 'Intégrer Contest Results au menu';
    5155$lang['CR_menubar_link'] = 'Lien dans un bloc menu existant';
    5256$lang['CR_menubar_link_display'] = 'Afficher le lien dans les blocs';
    5357$lang['CR_menubar_block'] = 'Nouveau bloc menu';
    5458$lang['CR_menubar_block_number'] = 'Nombre de concours à afficher dans le bloc';
     59$lang['CR_truncate_summary'] = "Tronquer le résumé du concours après x caractères";
    5560
     61/* stuffs */
     62$lang['CR_select_contest'] = "Sélectionnez un ou plusieurs concours";
     63$lang['CR_stuffs_desc'] = "Afficher un ou plusieurs concours";
     64
     65/* cluetip */
    5666$lang['CR_help_lang'] = (CR_ED_STATE == 'active') ? "<b>Vous pouvez utiliser du HTML et les descriptions multilingues.</b>" : "<b>Vous pouvez utiliser du HTML.</b>";
    5767$lang['CR_help_title'] = "" . $lang['CR_help_lang'];
  • extensions/ContestResults/language/lv_LV/plugin.lang.php

    r9572 r9745  
    11<?php
    22
     3/* général */
    34$lang['Contests'] = 'Konkursi';
     5$lang['CR_finished'] = 'Pabeigts';
     6$lang['CR_results'] = 'Rezultāti';
     7$lang['CR_place'] = 'vietu';
     8$lang['CR_nopublic'] = 'Šī lapa nav publiski pieejama !';
     9$lang['CR_notavailable'] = 'Šis konkurss nav pieejams';
     10$lang['CR_%d_days_to_begin'] = "Begins in %d days";
     11$lang['CR_%d_days_to_end'] = "%d days remaining";
     12$lang['CR_order_1'] = '1.';
     13$lang['CR_order_2'] = '2.';
     14$lang['CR_order_3'] = '3.';
     15$lang['CR_order_sup'] = '.';
     16
     17/* admin */
    418$lang['CR_edit_tab'] = 'Rediģēt konkursu';
    519$lang['CR_delete'] = 'Dzēst konkursu';
     
    822$lang['CR_new_tab'] = 'Pievienot jaunu konkursu';
    923$lang['CR_results_tab'] = 'Konkursa rezultāti';
    10 $lang['CR_pending_title'] = 'Vēl nepabeigtie konkursi';
    11 $lang['CR_finished_title'] = 'Pabeigtie konkursi';
    12 $lang['CR_results'] = 'Rezultāti';
    1324$lang['CR_go'] = 'Iet uz konkursa lapu';
    1425$lang['CR_title'] = 'Nosaukums';
     
    1829$lang['CR_logo'] = 'Logo';
    1930$lang['CR_banner'] = 'Baneris';
    20 $lang['CR_pending'] = 'Vēl nepabeigts';
    21 $lang['CR_finished'] = 'Pabeigts';
    2231$lang['CR_summary'] = 'Kopā';
    2332$lang['CR_textareas'] = 'Konkursa apraksts';
     
    3039$lang['CR_comment'] = 'Komentārs';
    3140$lang['CR_rank'] = 'Novērtējums';
    32 $lang['CR_place'] = 'vietu';
    33 $lang['CR_period'] = 'Periods';
    3441$lang['CR_visible'] = 'Redzams';
    35 $lang['CR_nopublic'] = 'Šī lapa nav publiski pieejama !';
    36 $lang['CR_notavailable'] = 'Šis konkurss nav pieejams';
    3742$lang['CR_id_unknown %d'] = "Attēls n°%d neeksistē";
     43$lang['CR_duplicate_result %d'] = "The picture n°%d appears twice";
    3844$lang['CR_contest_saved'] = "Konkursa iestatījumi saglabāti";
    3945$lang['CR_contest_added'] = "Konkurss pievienots";
     
    4147$lang['CR_results_saved'] = "Rezultāti saglabāti";
    4248$lang['CR_name_empty'] = "Konkursa nosaukums nevar būt tukšs";
    43 $lang['CR_days'] = "atlikušo dienu";
     49$lang['CR_pending_title'] = 'Vēl nepabeigtie konkursi';
     50$lang['CR_running_title'] = 'Contests running';
     51$lang['CR_finished_title'] = 'Pabeigtie konkursi';
    4452
    45 $lang['CR_order_1'] = '1.';
    46 $lang['CR_order_2'] = '2.';
    47 $lang['CR_order_3'] = '3.';
    48 $lang['CR_order_sup'] = '.';
    49 
     53/* config */
    5054$lang['CR_menubar_mode'] = 'Pievienot Konkursa Rezultātus izvēlnei';
    5155$lang['CR_menubar_link'] = 'Pievienot saiti uz esošu izvēlnes bloku';
     
    5357$lang['CR_menubar_block'] = 'Jauns izvēlnes bloks';
    5458$lang['CR_menubar_block_number'] = 'Blokā attēlojamo konkursu skaits';
     59$lang['CR_truncate_summary'] = "Truncate the summary of the contest after x characters";
    5560
     61/* stuffs */
     62$lang['CR_select_contest'] = "Select one or more contests";
     63$lang['CR_stuffs_desc'] = "Display one or more contests";
     64
     65/* cluetip */
    5666$lang['CR_help_lang'] = (CR_ED_STATE == 'active') ? "<b>Iespējasm lietot HTML un multivalodu aprakstus.</b>" : "<b>Varat lietot HTML.</b>";
    5767$lang['CR_help_title'] = "" . $lang['CR_help_lang'];
  • extensions/ContestResults/main.inc.php

    r9572 r9745  
    22/*
    33Plugin Name: ContestResults
    4 Version: 1.3
     4Version: 1.3.b
    55Description: Add contests management pages
    66Plugin URI: http://piwigo.org/ext/extension_view.php?eid=439
     
    1111if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    1212
    13 global $prefixeTable, $conf;
     13global $prefixeTable, $conf, $pwg_loaded_plugins;
    1414
    1515// +-----------------------------------------------------------------------+
     
    1717// +-----------------------------------------------------------------------+
    1818define('CR_NAME' , 'Contest Results');
    19 define('CR_VERSION', '1.3');
     19define('CR_VERSION', '1.3.b');
    2020define('CR_DIR' , basename(dirname(__FILE__)));
    2121define('CR_PATH' , PHPWG_PLUGINS_PATH . CR_DIR . '/');
    2222define('CR_TABLE_1' , $prefixeTable . 'contests');
    2323define('CR_TABLE_2' , $prefixeTable . 'contests_results');
    24 define('CR_ADMIN', PHPWG_ROOT_PATH . 'admin.php?page=plugin&amp;section=' . CR_DIR . '/admin/admin.php');
     24define('CR_ADMIN', get_root_url().'admin.php?page=plugin-' . CR_DIR);
    2525define('CR_PUBLIC', make_index_url(array('section' => 'contests')) . '/');
    26 
    27 $ED = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'ExtendedDescription';"));
    28 define('CR_ED_STATE', $ED['state']);
     26define('CR_ED_STATE', isset($pwg_loaded_plugins['ExtendedDescription']) ? 'active' : 'unactive');
    2927
    3028
     
    3230//                                      Triggers
    3331// +-----------------------------------------------------------------------+
    34 add_event_handler('get_admin_plugin_menu_links', 'CR_admin_menu');      // Lien d'administration
    35 add_event_handler('loc_end_section_init', 'CR_section_init');           // Paramètre URL
    36 add_event_handler('loc_end_index', 'CR_index');                                         // Contenu du la page
    37 add_event_handler('loc_end_picture', 'CR_comment_picture', 10);         // Commentaire sur la page image
     32add_event_handler('loading_lang', 'CR_load_lang');                                              // Chargement des fichiers de langue
     33add_event_handler('get_admin_plugin_menu_links', 'CR_admin_menu');              // Lien d'administration
     34add_event_handler('loc_end_section_init', 'CR_section_init');                   // Paramètre URL
     35add_event_handler('loc_end_index', 'CR_index');                                                 // Contenu du la page
     36add_event_handler('loc_end_picture', 'CR_comment_picture', 10);                 // Commentaire sur la page image
     37add_event_handler('get_stuffs_modules', 'CR_register_stuffs_module');   // Ajoute un module pour PWG Stuffs
    3838if(CR_ED_STATE == 'active') add_event_handler('render_CR_content', 'get_user_language_desc');   // Textes multilangues
    3939
     
    4343// +-----------------------------------------------------------------------+
    4444include(CR_PATH . 'include/functions.php');
     45$conf['ContestResults'] = unserialize($conf['ContestResults']);
     46
    4547// Gestion du menu
    4648include(CR_PATH . 'include/cr_menubar.php');
     49
     50// Chargement des fichiers de langue et de la config
     51function CR_load_lang() {
     52        load_language('plugin.lang', CR_PATH);
     53}
    4754
    4855// Lien d'administration
     
    5966    global $tokens, $page, $conf;
    6067       
    61         load_language('plugin.lang', CR_PATH);
    62        
    6368    if ($tokens[0] == 'contests') { // on est dans la section concours
    6469                $page['section'] = 'contests';
     
    6772                if (isset($tokens[1]) AND !empty($tokens[1])) { // on est sur la page d'un concours
    6873                        $tokens[1] = explode('-', $tokens[1]);
     74                       
    6975                        if (preg_match('#^([0-9]*)$#', $tokens[1][0])) { // is_int ne marche pas parce que le chiffre est stocké en (string)
    7076                                $page['contest'] = $tokens[1][0];
    71                                 $page['title'] .= $conf['level_separator'] . trigger_event('render_CR_content', get_contest_name($page['contest']));
     77                               
     78                                if ($contest_name = get_contest_name($page['contest'])) { // vérifie si le concours existe
     79                                        $page['title'] .= $conf['level_separator'] . trigger_event('render_CR_content', $contest_name);
     80                                } else {
     81                                        page_not_found(l10n('CR_notavailable'));
     82                                }
    7283                        }
    7384                }
     
    8899}
    89100
     101// Ajoute un module pour PWG Stuffs
     102function CR_register_stuffs_module($modules) {
     103        array_push($modules, array(
     104                'path' => CR_PATH . '/stuffs_module',
     105                'name' => CR_NAME,
     106                'description' => l10n('CR_stuffs_desc'),
     107        ));
     108
     109        return $modules;
     110}
     111
    90112// Ajoute le commentaire sur la page image
    91113function CR_comment_picture() {
  • extensions/ContestResults/maintain.inc.php

    r9572 r9745  
    1414        'menubar_block' => array(
    1515                'number' => 5
    16         )
     16        ),
     17        'truncate_summary' => 350,
    1718)));
    1819
    19 // Installtion
     20// Installation
    2021function plugin_install() {
    2122        global $prefixeTable;
     
    2930                `logo` VARCHAR( 255 ) NULL ,
    3031                `banner` VARCHAR( 255 ) NULL ,
     32                `summary` TEXT NULL ,
    3133                `description` TEXT NULL ,
    3234                PRIMARY KEY ( `id` )
    33         );");
     35        ) DEFAULT CHARSET=utf8;");
    3436       
    3537        pwg_query("CREATE TABLE `" . $prefixeTable . "contests_results` (
     
    4042                `comment` TEXT NULL,
    4143                UNIQUE ( `image_id` , `contest_id` )
    42         );");
     44        ) DEFAULT CHARSET=utf8;");
    4345       
    4446        pwg_query("INSERT INTO " . CONFIG_TABLE . "(param,value,comment) VALUES('ContestResults', '" . default_config . "', 'Parametres du plugin ContestResults');");
     
    4951        global $conf, $prefixeTable;
    5052
    51         // compatibilité avec les versions < 1.1 (ajout d'une entrée de configuration)
    52         if (!isset($conf['ContestResults'])) {
    53                 pwg_query("INSERT INTO " . CONFIG_TABLE . "(param,value,comment) VALUES('ContestResults', '" . default_config . "', 'Parametres du plugin ContestResults');");
    54         }
    55        
    56         // compatibilité avec les versions < 1.2 (suppression option d'affichage)
    57         $field = pwg_query("SHOW COLUMNS FROM `" . $prefixeTable . "contests` LIKE 'presentation_display'");
    58         if (pwg_db_num_rows($field)) {
    59                 pwg_query("ALTER TABLE `" . $prefixeTable . "contests`
    60                         DROP `presentation_display`,
    61                         DROP `rules_display`,
    62                         DROP `prices_display`,
    63                         DROP `final_display`;"
    64                 );
    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        
     53        include('include/compatibility.inc.php');
    11654}
    11755
  • extensions/ContestResults/template/cr_main.tpl

    r9572 r9745  
    1 {combine_css id='cr_style' path=$CR_PATH|@cat:'template/style.css'}
     1{combine_css path=$CR_PATH|@cat:'template/style.css'}
    22
    33{$MENUBAR}
     
    2626{else}
    2727        <ul class="thumbnailCategories">
    28         {foreach from=$contests item=contest}
    29                 <li>
    30                         <div class="thumbnailCategory {if $contest.VISIBLE == 0}novisible{/if}">
     28                {foreach from=$contests item=contest}
     29                <li {if !$contest.VISIBLE}class="novisible"{/if}>
     30                        <div class="thumbnailCategory">
    3131                                <div class="illustration">
    32                                 {if !$contest.FINISHED == 'pending'}
    3332                                        <a href="{$contest.URL}">
    34                                         {if !empty($contest.LOGO)}
     33                                        {if $contest.STATUS != 'finished' AND !empty($contest.LOGO)}
    3534                                                <img src="{$contest.LOGO}" alt="{$contest.NAME}" style="max-height:120px;max-width:120px;">
     35                                        {elseif !empty($contest.RESULTS.1.TN_SRC)}
     36                                                <img src="{$contest.RESULTS.1.TN_SRC}" alt="{$contest.NAME|@replace:'"':' '}">
    3637                                        {/if}
    3738                                        </a>
    38                                 {else}
    39                                         <a href="{$contest.URL}">
    40                                                 <img src="{$contest.RESULTS.1.TN_SRC}" alt="{$contest.NAME|@replace:'"':' '}">
    41                                         </a>
    42                                 {/if}
    4339                                </div>
    4440                                <div class="description">
    45                                         <h3>
    46                                                 <a href="{$contest.URL}">{$contest.NAME}</a>
    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}
    52                                         </h3>
     41                                        <h3><a href="{$contest.URL}">{$contest.NAME}</a></h3>
    5342                                        <div class="text">
    5443                                                <p class="Nb_images">{$contest.DATE_BEGIN} - {$contest.DATE_END}</p>
     44                                                <span class="CR_finished">({$contest.DAYS})</span>
    5545                                                <p>
    56                                                 {if !$contest.FINISHED}
    57                                                         {if !empty($contest.SUMMARY)}
    58                                                                 {$contest.SUMMARY}
    59                                                         {/if}
     46                                                {if $contest.STATUS != 'finished' AND !empty($contest.SUMMARY)}
     47                                                        {$contest.SUMMARY}
    6048                                                {else}
    6149                                                        {foreach from=$contest.RESULTS item=result}
     
    6856                        </div>
    6957                </li>
    70         {/foreach}
     58                {/foreach}
    7159        </ul>
    7260{/if}
  • extensions/ContestResults/template/cr_menubar.tpl

    r9572 r9745  
    11{html_head}
    2         <style type="text/css">
    3                 .CR_finished_menu {ldelim}
    4                         font-size:0.8em;
    5                         color:#a00;
    6                         letter-spacing:0px;
    7                 }
    8         </style>
     2{literal}
     3<style type="text/css">
     4        .CR_finished_menu {
     5                font-size:0.8em;
     6                color:#a00;
     7                letter-spacing:0px;
     8        }
     9</style>
     10{/literal}
    911{/html_head}
    1012
     
    1315        <ul>
    1416                {foreach from=$block->data item=data}
    15                         <li>
    16                                 <a href="{$data.URL}" title="{$data.DATE}">
    17                                         {$data.LABEL}
    18                                         {if $data.FINISHED}
    19                                                 <span class="CR_finished_menu">&times;</span>
    20                                         {else}
    21                                                 <span class="CR_finished_menu">{$data.DAYS}</span>
    22                                         {/if}
    23                                 </a>
    24                         </li>
     17                <li>
     18                        <a href="{$data.URL}" title="{$data.DATE}">
     19                                {$data.LABEL}
     20                                <span class="CR_finished_menu">{$data.DAYS}</span>
     21                        </a>
     22                </li>
    2523                {/foreach}
    2624        </ul>
  • extensions/ContestResults/template/cr_page.tpl

    r9572 r9745  
    1 {combine_css id='cr_style' path=$CR_PATH|@cat:'template/style.css'}
     1{combine_css path=$CR_PATH|@cat:'template/style.css'}
    22
    33{$MENUBAR}
    44
    55{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if}
     6
    67<div class="content">
    78        <div class="titrePage">
     
    1617                <h2>
    1718                        <a href="index.php?/contests" name="top">{'Contests'|@translate}</a>{$SEPARATOR}<a href="{$URL}">{$NAME}</a>
    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                        <span class="CR_finished">({$DAYS})</span>
    2320                </h2>
    2421        </div> <!-- titrePage -->
    2522
    2623        {if !$VISIBLE}
    27                 <div class="nopublic">
    28                         {'CR_nopublic'|@translate}
    29                 </div>
     24        <div class="nopublic">
     25                {'CR_nopublic'|@translate}
     26        </div>
    3027        {/if}
    3128       
     
    4340       
    4441        {foreach from=$description item=desc name=desc_loop}
    45                 <div class="CR_text">
    46                         <h3>{$desc.NAME} :</h3>
    47                         {$desc.CONTENT}
    48                 </div>
     42        <div class="CR_text">
     43                <h3>{$desc.NAME} :</h3>
     44                {$desc.CONTENT}
     45        </div>
    4946        {/foreach}
    5047</div> <!-- content_contest -->
    5148
    5249{if !empty($RESULTS)}
    53         <div class="content">
    54                 <div class="titrePage">
    55                         <ul class="categoryActions"> 
    56                                 {if isset($U_RESULTS) }
    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>
    60                                 {/if}
    61                         </ul>
    62                         <h2><a href="{$URL}">{$NAME}</a>{$SEPARATOR}<a href="#results" name="results">{'CR_results'|@translate}</a></h2>
     50<div class="content">
     51        <div class="titrePage">
     52                <ul class="categoryActions"> 
     53                        {if isset($U_RESULTS) }
     54                        <li><a href="{$U_RESULTS}" title="{'CR_results'|@translate}" class="pwg-state-default pwg-button">
     55                                <span class="pwg-icon pwg-icon-category-edit"> </span><span class="pwg-button-text">{'CR_edit_tab'|@translate}</span>
     56                        </a></li>
     57                        {/if}
     58                </ul>
     59                <h2><a href="#top">{$NAME}</a>{$SEPARATOR}<a href="#results" name="results">{'CR_results'|@translate}</a></h2>
     60        </div>
     61       
     62        <div id="CR_podium">
     63        {foreach from=$RESULTS item=result}
     64                {if $result.RANK <= 3}
     65                {if $result.RANK == 2}<div class="podium_23">{/if}
     66                <div class="podium_{$result.RANK}">
     67                        <div class="illustration">
     68                                <div class="title">{'CR_order_'|cat:$result.RANK|@translate} {'CR_place'|@translate} - <u>{$result.AUTHOR}</u></div>
     69                                <a href="{$result.IMAGE_URL}" title="{$result.IMAGE_NAME}">
     70                                        <img src="{$result.IMAGE_SRC}" alt="{$result.IMAGE_NAME}"/>
     71                                </a>
     72                        </div>
     73                        <p>
     74                                {$result.COMMENT}
     75                        </p>
    6376                </div>
    64                
    65                 <div id="CR_podium">
    66                         {foreach from=$RESULTS item=result}
    67                                 {if $result.RANK <= 3}
    68                                         {if $result.RANK == 2}<div class="podium_23">{/if}
    69                                         <div class="podium_{$result.RANK}">
    70                                                 <div class="illustration">
    71                                                         <div class="title">{'CR_order_'|cat:$result.RANK|@translate} {'CR_place'|@translate} - <u>{$result.AUTHOR}</u></div>
    72                                                         <a href="{$result.IMAGE_URL}" title="{$result.IMAGE_NAME}">
    73                                                                 <img src="{$result.IMAGE_SRC}" alt="{$result.IMAGE_NAME}"/>
    74                                                         </a>
    75                                                 </div>
    76                                                 <p>
    77                                                         {$result.COMMENT}
    78                                                 </p>
    79                                         </div>
    80                                         {if $result.RANK == 3}</div>{/if}
    81                                 {/if}
    82                         {/foreach}
    83                 </div>
    84                
    85                 <ul class="thumbnails">
    86                         {foreach from=$RESULTS item=result}
    87                                 {if $result.RANK > 3}
    88                                         <li>
    89                                                 <span class="wrap1">
    90                                                         <span class="wrap2">
    91                                                                 <a href="{$result.IMAGE_URL}" title="{$result.IMAGE_NAME}">
    92                                                                         <img class="thumbnail" src="{$result.TN_SRC}" alt="{$result.IMAGE_NAME}"/>
    93                                                                 </a>
    94                                                         </span>                                                 
    95                                                         <span class="thumbLegend">
    96                                                                 <span class="thumbnail-name">
    97                                                                         {$result.AUTHOR}
    98                                                                 </span>
    99                                                                 <span class="nb-hits">
    100                                                                         <br>{$result.RANK}{'CR_order_sup'|@translate} {'CR_place'|@translate}
    101                                                                 </span>
    102                                                         </span>
    103                                                 </span>
    104                                         </li>
    105                                 {/if}
    106                         {/foreach}
    107                 </ul>
    108                
    109                 {if !empty($LOGO)}
    110                         <div class="CR_banner">
    111                                 <h1><a href="#top"><img src="{$LOGO}" alt="{$NAME}"/></a></h1>
    112                         </div>
     77                {if $result.RANK == 3 OR ($result.RANK == 2 AND $NB_RESULTS == 2)}</div>{/if} <!-- au cas ou il n'y a que deux résultats -->
    11378                {/if}
    114         </div> <!-- content_results -->
     79        {/foreach}
     80        </div>
     81       
     82        <ul class="thumbnails">
     83        {foreach from=$RESULTS item=result}
     84                {if $result.RANK > 3}
     85                <li>
     86                        <span class="wrap1">
     87                                <span class="wrap2">
     88                                        <a href="{$result.IMAGE_URL}" title="{$result.IMAGE_NAME}">
     89                                                <img class="thumbnail" src="{$result.TN_SRC}" alt="{$result.IMAGE_NAME}"/>
     90                                        </a>
     91                                </span>                                                 
     92                                <span class="thumbLegend">
     93                                        <span class="thumbnail-name">
     94                                                {$result.AUTHOR}
     95                                        </span>
     96                                        <span class="nb-hits">
     97                                                <br>{$result.RANK}{'CR_order_sup'|@translate} {'CR_place'|@translate}
     98                                        </span>
     99                                </span>
     100                        </span>
     101                </li>
     102                {/if}
     103        {/foreach}
     104        </ul>
     105       
     106        {if !empty($LOGO)}
     107        <div class="CR_banner">
     108                <h1><a href="#top"><img src="{$LOGO}" alt="{$NAME}"/></a></h1>
     109        </div>
     110        {/if}
     111</div> <!-- content_results -->
    115112{/if}
    116113
  • extensions/ContestResults/template/style.css

    r9572 r9745  
    33        font-size:0.8em;
    44        letter-spacing:0.2em;
    5         padding-left:10px;
     5       
    66        color:#a00;
    77}
    88
    9 div.thumbnailCategory.novisible {
     9.novisible {
    1010        opacity:0.4;
    1111}
    1212
    13 div.nopublic {
     13.nopublic {
    1414        background:#aaa;
    1515        border:1px dotted #555;
     
    3939                font-size:1.3em;
    4040                border-bottom:1px dotted #999;
    41                 color:#ddd;
    4241        }
    4342       
     
    4847        font-style:italic;
    4948        font-family:"Consolas";
    50         color:#ddd;
    5149        border-top:1px dotted #999;
    5250}
Note: See TracChangeset for help on using the changeset viewer.