source: extensions/PWG_Stuffs/include/functions.inc.php @ 7402

Revision 7402, 3.5 KB checked in by plg, 9 years ago (diff)

modification: home page is not the same as the root category. This way you can
hide the root category main block on homepage without forbidding access to the
root category.

Line 
1<?php
2
3add_event_handler('render_stuffs_name', 'get_user_language_desc');
4
5if (!function_exists('get_user_language_desc'))
6{
7  function get_user_language_desc($desc)
8  {
9        global $user;
10   
11        $user_lang = substr($user['language'], 0, 2);
12
13        if (!substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
14        {
15                $user_lang = 'default';
16    }
17   
18    if (substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
19        {
20      // la balise avec la langue de l'utilisateur a été trouvée
21      $patterns[] = '#(^|\[/lang\])(.*?)(\[lang=(' . $user_lang . '|all)\]|$)#is';
22      $replacements[] = '';
23      $patterns[] = '#\[lang=(' . $user_lang . '|all)\](.*?)\[/lang\]#is';
24      $replacements[] = '\\1';
25    }
26    else
27    {
28      // la balise avec la langue de l'utilisateur n'a pas été trouvée
29      // On prend tout ce qui est hors balise
30      $patterns[] = '#\[lang=all\](.*?)\[/lang\]#is';
31      $replacements[] = '\\1';
32      $patterns[] = '#\[lang=.*\].*\[/lang\]#is';
33      $replacements[] = '';
34    }
35    return preg_replace($patterns, $replacements, $desc);
36  }
37}
38
39function pwgs_picture_special_sections()
40{
41  global $page, $conf;
42
43  if (preg_match('#&(pwgs_..)=#', $_SERVER['REQUEST_URI'], $matches))
44  {
45    if (isset($_GET['action']))
46    {
47      if (isset($page['category']))
48      {
49        $page['section'] = 'category/'.$page['category']['id'];
50        unset($page['category']);
51      }
52      $page['section'] .= $matches[0] . $_GET[$matches[1]];
53    }
54    else
55    {
56      unset($page['flat']);
57      $page['PWG_Stuffs_section'] = $matches[1];
58      $page['items'] = explode(',', $_GET[$matches[1]]);
59      $page['rank_of'] = array_flip($page['items']);
60      switch ($matches[1])
61      {
62        case 'pwgs_mv': $title = l10n('Most visited'); break;
63        case 'pwgs_br': $title = l10n('Best rated');   break;
64        case 'pwgs_re': $title = l10n('Recent pictures');  break;
65        case 'pwgs_ra': $title = l10n('Random pictures');       break;
66      }
67      $page['title'] .= $conf['level_separator'] . $title;
68      add_event_handler('loc_end_page_header', 'add_pwgs_url_params');
69    }
70  }
71}
72
73function add_pwgs_url_params()
74{
75  global $page, $template;
76
77  $param = $page['PWG_Stuffs_section'];
78
79  $urls = array(
80    'first.U_IMG',
81    'previous.U_IMG',
82    'next.U_IMG',
83    'last.U_IMG',
84    'slideshow.U_START_PLAY',
85    'slideshow.U_STOP_PLAY',
86    'slideshow.U_START_REPEAT',
87    'slideshow.U_STOP_REPEAT',
88    'slideshow.U_DEC_PERIOD',
89    'slideshow.U_INC_PERIOD',
90    'U_SLIDESHOW_START',
91    'U_SLIDESHOW_STOP',
92    'U_METADATA',
93    'favorite.U_FAVORITE',
94    'U_SET_AS_REPRESENTATIVE',
95    'U_CADDIE',
96    'rating.F_ACTION',
97    'comment_add.F_ACTION',
98    'page_refresh.U_REFRESH',
99  );
100
101  foreach ($urls as $url)
102  {
103    $k = explode('.', $url);
104    if (isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]][$k[1]]))
105    {
106      $template->smarty->_tpl_vars[$k[0]][$k[1]] = add_url_params($template->smarty->_tpl_vars[$k[0]][$k[1]], array($param => $_GET[$param]));
107    }
108    elseif (!isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]]))
109    {
110      $template->smarty->_tpl_vars[$k[0]] = add_url_params($template->smarty->_tpl_vars[$k[0]], array($param => $_GET[$param]));
111    }
112  }
113}
114
115function hide_main_block()
116{
117  global $page, $template;
118
119  if ($page['is_homepage'])
120  {
121    $template->set_prefilter('index', 'hide_main_block_prefilter');
122  }
123}
124
125function hide_main_block_prefilter($content, $smarty)
126{
127  return preg_replace('#<div id="content" class="content">.*</div> <!-- content -->#s', '', $content);
128}
129
130?>
Note: See TracBrowser for help on using the repository browser.