source: extensions/ContestResults/include/cr_menubar.php @ 9745

Revision 9745, 3.3 KB checked in by mistic100, 9 years ago (diff)

[extensions] Contest Results

  • New bloc for PWG Stuffs
  • Use new admin links and javascript implementation
  • Distinguish pending and running contests (both pending before)
Line 
1<?php
2if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
3
4// +-----------------------------------------------------------------------+
5//                              Triggers
6// +-----------------------------------------------------------------------+
7if ($conf['ContestResults']['menubar_mode']['block']) {
8        add_event_handler('blockmanager_register_blocks', 'CR_register_menubar_blocks');
9}
10add_event_handler('blockmanager_apply', 'CR_menubar_apply');
11
12// +-----------------------------------------------------------------------+
13//                              Ajouter un block
14// +-----------------------------------------------------------------------+
15function CR_register_menubar_blocks($menu_ref_arr) {
16        $menu = &$menu_ref_arr[0];
17        if ($menu->get_id() != 'menubar') { return; }
18        $menu->register_block(new RegisteredBlock('mbContestResults', l10n('Contests'), 'ContestResults'));
19}
20
21// +-----------------------------------------------------------------------+
22//                              Remplis les block
23// +-----------------------------------------------------------------------+
24function CR_menubar_apply($menu_ref_arr) {
25        global $template, $conf;
26        //$config = unserialize($conf['ContestResults']);
27        $menu = &$menu_ref_arr[0];
28       
29        // Block Contest - un nouveau bloc dans le menu
30        if (($block = $menu->get_block('mbContestResults')) != null) {
31                $data = array();
32               
33                // on récupère les concours
34                $contests = pwg_query("SELECT
35                                id,
36                                name,
37                                visible,
38                                date_begin,
39                                date_end
40                        FROM " . CR_TABLE_1 . "
41                        ORDER BY date_begin DESC;");
42
43                $m = 0; // compteur pour limiter le nombre de concours affichés
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']) {
48                                array_push($data, array(
49                                        'URL' => CR_PUBLIC . $contest['id'] . '-' . str2url(trigger_event('render_CR_content', $contest['name'])),
50                                        'LABEL' => trigger_event('render_CR_content', $contest['name']),
51                                        'DATE' => format_date($contest['date_begin']) . ' - ' . format_date($contest['date_end']),
52                                        'VISIBLE' => $contest['visible'],
53                                        'STATUS' => $contest['status'],
54                                        'DAYS' => $contest['days'],
55                                ));
56                        }
57                        $m++;
58                }
59
60                // Finalement on rempli le bloc avec les concours
61                if (!empty($data)) {
62                        $template->set_template_dir(CR_PATH . 'template/');
63                        $block->set_title('<a href="' . CR_PUBLIC . '">' . l10n('Contests') . '</a>');
64                        $block->template = 'cr_menubar.tpl';
65                        $block->data = $data;
66                }
67        }
68       
69        // Block Menu - ajout d'un lien dans le bloc Menu
70        if ($conf['ContestResults']['menubar_mode']['link'] AND $conf['ContestResults']['menubar_link']['menu'] AND ($block = $menu->get_block('mbMenu')) != null) {
71                array_push($block->data, array(
72                        'URL' => CR_PUBLIC,
73                        'TITLE' => l10n('Contests'),
74                        'NAME' => l10n('Contests')
75                ));
76        }
77       
78        // Block Specials - ajout d'un lien dans le bloc Specials
79        if($conf['ContestResults']['menubar_mode']['link'] AND $conf['ContestResults']['menubar_link']['specials'] AND ($block = $menu->get_block('mbSpecials')) != null){
80                array_push($block->data, array(
81                        'URL' => CR_PUBLIC,
82                        'TITLE' => l10n('Contests'),
83                        'NAME' => l10n('Contests')
84                ));
85        }
86}
87?>
Note: See TracBrowser for help on using the repository browser.