source: extensions/ExtendedDescription/main.inc.php @ 25738

Last change on this file since 25738 was 25203, checked in by mistic100, 10 years ago

don't redirect on album page if photo comment contains redirect tag

File size: 23.0 KB
Line 
1<?php
2/*
3Plugin Name: Extended Description
4Version: auto
5Description: Add multilinguale descriptions, banner, NMB, category name, etc...
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=175
7Author: P@t & Grum
8*/
9
10if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
11define('EXTENDED_DESC_PATH' , PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/');
12load_language('plugin.lang', EXTENDED_DESC_PATH);
13
14global $conf;
15
16$extdesc_conf = array(
17  'more'           => '<!--more-->',
18  'complete'       => '<!--complete-->',
19  'up-down'        => '<!--up-down-->',
20  'not_visible'    => '<!--hidden-->',
21  'mb_not_visible' => '<!--mb-hidden-->'
22);
23
24$conf['ExtendedDescription'] = isset($conf['ExtendedDescription']) ?
25  array_merge($extdesc_conf, $conf['ExtendedDescription']) :
26  $extdesc_conf;
27
28
29// Traite les balises [lang=xx]
30function get_user_language_desc($desc, $user_lang=null)
31{
32  global $user;
33 
34  if (is_null($user_lang))
35  {
36    $user_lang = $user['language'];
37  }
38
39  $small_user_lang = substr($user_lang, 0, 2);
40
41  if (!preg_match('#\[lang=('.$user_lang.'|'.$small_user_lang.')\]#i', $desc))
42  {
43    $user_lang = 'default';
44    $small_user_lang = 'default';
45  }
46
47  if (preg_match('#\[lang=('.$user_lang.'|'.$small_user_lang.')\]#i', $desc))
48  {
49    // la balise avec la langue de l'utilisateur a été trouvée
50    $patterns[] = '#(^|\[/lang\])(.*?)(\[lang=(' . $user_lang . '|' . $small_user_lang . '|all)\]|$)#is';
51    $replacements[] = '';
52    $patterns[] = '#\[lang=(' . $user_lang . '|' . $small_user_lang . '|all)\](.*?)\[/lang\]#is';
53    $replacements[] = '\\1';
54  }
55  else
56  {
57    // la balise avec la langue de l'utilisateur n'a pas été trouvée
58    // On prend tout ce qui est hors balise
59    $patterns[] = '#\[lang=all\](.*?)\[/lang\]#is';
60    $replacements[] = '\\1';
61    $patterns[] = '#\[lang=.*\].*\[/lang\]#is';
62    $replacements[] = '';
63  }
64  return preg_replace($patterns, $replacements, $desc);
65}
66
67function get_user_language_tag_url($tag)
68{
69  return get_user_language_desc($tag, get_default_language());
70}
71
72function ed_get_all_alt_names($arr, $name)
73{
74  if (preg_match_all('#\[lang=(.*?)\](.*?)\[/lang\]#is', $name, $matches, PREG_SET_ORDER))
75  {
76    foreach ($matches as $match)
77    {
78      @$arr[$match[1]] .= $match[2];
79    }
80  }
81  return $arr;
82}
83
84// Traite les autres balises
85function get_extended_desc($desc, $param='')
86{
87  global $conf, $page;
88 
89  if (
90    $param != 'subcatify_category_description'
91    and $param != 'main_page_element_description'
92    and ( script_basename() != 'picture' or $param != 'main_page_category_description' )
93    and preg_match('#\[redirect (.*?)\]#i', $desc, $m1)
94  )
95  {
96    if (preg_match('#^(img|cat|search)=(\d*)\.?(\d*|)$#i', $m1[1], $m2))
97    {
98      switch ($m2[1])
99      {
100        case 'img':
101        $url_params = array('image_id' => $m2[2]);
102        if (!empty($m2[3]))
103        {
104          $url_params['category'] = array('id' => $m2[3], 'name' => '', 'permalink' => '');
105        }
106        $url = rtrim(make_picture_url($url_params), '-');
107        break;
108
109        case 'cat':
110        $url_params = array('category' => array('id' => $m2[2], 'name' => '', 'permalink' => ''));
111        $url = rtrim(make_index_url($url_params), '-');
112        break;
113
114        case 'search':
115        $url = make_index_url(array('section' => 'search', 'search' => $m2[2]));
116      }
117    }
118    else
119    {
120      $url = $m1[1];
121    }
122    if (is_admin())
123    {
124      global $header_notes;
125      $header_notes[] = sprintf(l10n('This category is redirected to %s'), '<a href="'.$url.'">'.$url.'</a>');
126    }
127    else
128    {
129      redirect($url);
130    }
131  }
132
133  $desc = get_user_language_desc($desc);
134
135  // Remove redirect tags for subcatify_category_description
136  $patterns[] = '#\[redirect .*?\]#i';
137  $replacements[] = ''; 
138
139  // Balises [cat=xx]
140  $patterns[] = '#\[cat=(\d*)\]#ie';
141  $replacements[] = ($param == 'subcatify_category_description') ? '' : 'get_cat_thumb("$1")';
142
143  // Balises [img=xx.yy,xx.yy,xx.yy;left|right|;name|titleName|]
144  $patterns[] = '#\[img=([\d\s\.,]*);?(left|right|);?(name|titleName|)\]#ie';
145  $replacements[] = ($param == 'subcatify_category_description') ? '' : 'get_img_thumb("$1", "$2", "$3")';
146 
147  // Balises [photo id=xx album=yy size=SQ|TH|XXS|XS|S|M|L|XL|XXL html=yes|no link=yes|no]
148  $patterns[] = '#\[photo ([^\]]+)\]#ie';
149  $replacements[] = ($param == 'subcatify_category_description') ? '' : 'get_photo_sized("$1")';
150
151  // Balises [random album=xx size=SQ|TH|XXS|XS|S|M|L|XL|XXL html=yes|no link=yes|no]
152  $patterns[] = '#\[random([^\]]*)\]#ie';
153  $replacements[] = ($param == 'subcatify_category_description') ? '' : 'extdesc_get_random_photo("$1")';
154 
155  // Balises [slider album=xx nb_images=yy random=yes|no list=aa,bb,cc size=SQ|TH|XXS|XS|S|M|L|XL|XXL speed=z title=yes|no effect=... arrows=yes|no control=yes|no elastic=yes|no]
156  $patterns[] = '#\[slider ([^\]]+)\]#ie';
157  $replacements[] = ($param == 'subcatify_category_description') ? '' : 'get_slider("$1")';
158
159  // Balises <!--complete-->, <!--more--> et <!--up-down-->
160  switch ($param)
161  {
162    case 'subcatify_category_description' :
163      $patterns[] = '#^(.*?)('. preg_quote($conf['ExtendedDescription']['complete']) . '|' . preg_quote($conf['ExtendedDescription']['more']) . '|' . preg_quote($conf['ExtendedDescription']['up-down']) . ').*$#is';
164      $replacements[] = '$1';
165      $desc = preg_replace($patterns, $replacements, $desc);
166      break;
167
168    case 'main_page_category_description' :
169      $patterns[] = '#^.*' . preg_quote($conf['ExtendedDescription']['complete']) . '|' . preg_quote($conf['ExtendedDescription']['more']) . '#is';
170      $replacements[] = '';
171      $desc = preg_replace($patterns, $replacements, $desc);
172      if (substr_count($desc, $conf['ExtendedDescription']['up-down']))
173      {
174        list($desc, $conf['ExtendedDescription']['bottom_comment']) = explode($conf['ExtendedDescription']['up-down'], $desc);
175        add_event_handler('loc_end_index', 'add_bottom_description');
176      }
177      break;
178
179    default:
180      $desc = preg_replace($patterns, $replacements, $desc);
181  }
182
183  return $desc;
184}
185
186function extended_desc_mail_group_assign_vars($assign_vars)
187{
188  if (isset($assign_vars['CPL_CONTENT']))
189  {
190    $assign_vars['CPL_CONTENT'] = get_extended_desc($assign_vars['CPL_CONTENT']);
191  }
192  return $assign_vars;
193}
194
195// Add bottom description
196function add_bottom_description()
197{
198  global $template, $conf;
199  $template->concat('PLUGIN_INDEX_CONTENT_END', '
200    <div class="additional_info">
201    ' . $conf['ExtendedDescription']['bottom_comment'] . '
202    </div>');
203}
204
205// Remove a category
206function ext_remove_cat($tpl_var)
207{
208  global $conf;
209
210  $i=0;
211  while($i<count($tpl_var))
212  {
213    if (substr_count($tpl_var[$i]['NAME'], $conf['ExtendedDescription']['not_visible']))
214    {
215      array_splice($tpl_var, $i, 1);
216    }
217    else
218    {
219      $i++;
220    }
221  }
222
223  return $tpl_var;
224}
225
226// Remove a category from menubar
227function ext_remove_menubar_cats($where)
228{
229  global $conf;
230
231  $query = 'SELECT id, uppercats
232    FROM '.CATEGORIES_TABLE.'
233    WHERE name LIKE "%'.$conf['ExtendedDescription']['mb_not_visible'].'%"';
234
235  $result = pwg_query($query);
236  while ($row = pwg_db_fetch_assoc($result))
237  {
238    $ids[] = $row['id'];
239    $where .= '
240      AND uppercats NOT LIKE "'.$row['uppercats'].',%"';
241  }
242  if (!empty($ids))
243  {
244    $where .= '
245      AND id NOT IN ('.implode(',', $ids).')';
246  }
247  return $where;
248}
249
250// Remove an image
251function ext_remove_image($tpl_var, $pictures)
252{
253  global $conf;
254
255  $i=0;
256  while($i<count($tpl_var))
257  {
258    if (substr_count($pictures[$i]['name'], $conf['ExtendedDescription']['not_visible']))
259    {
260      array_splice($tpl_var, $i, 1);
261      array_splice($pictures, $i, 1);
262    }
263    else
264    {
265      $i++;
266    }
267  }
268
269  return $tpl_var;
270}
271
272// Return html code for  caterogy thumb
273function get_cat_thumb($elem_id)
274{
275  global $template, $user;
276
277  $query = '
278SELECT
279  cat.id,
280  cat.name,
281  cat.comment,
282  cat.representative_picture_id,
283  cat.permalink,
284  uc.nb_images,
285  uc.count_images,
286  uc.count_categories,
287  img.path
288FROM ' . CATEGORIES_TABLE . ' AS cat
289  INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.' as uc
290    ON cat.id = uc.cat_id AND uc.user_id = '.$user['id'].'
291  INNER JOIN ' . IMAGES_TABLE . ' AS img
292    ON img.id = uc.user_representative_picture_id
293WHERE cat.id = ' . $elem_id . ';';
294  $result = pwg_query($query);
295
296  if($result and $category = pwg_db_fetch_assoc($result))
297  {
298    $template->set_filename('extended_description_content', dirname(__FILE__) . '/template/cat.tpl');
299
300    $template->assign(
301      array(
302        'ID'    => $category['id'],
303        'TN_SRC'   => DerivativeImage::thumb_url(array(
304                                  'id' => $category['representative_picture_id'],
305                                  'path' => $category['path'],
306                                )),
307        'TN_ALT'   => strip_tags($category['name']),
308        'URL'   => make_index_url(array('category' => $category)),
309        'CAPTION_NB_IMAGES' => get_display_images_count
310                                (
311                                  $category['nb_images'],
312                                  $category['count_images'],
313                                  $category['count_categories'],
314                                  true,
315                                  '<br />'
316                                ),
317        'DESCRIPTION' =>
318          trigger_event('render_category_literal_description',
319            trigger_event('render_category_description',
320              @$category['comment'],
321              'subcatify_category_description')),
322        'NAME'  => trigger_event(
323                     'render_category_name',
324                     $category['name'],
325                     'subcatify_category_name'
326                   ),
327      )
328    );
329
330    return $template->parse('extended_description_content', true);
331  }
332  return '';
333}
334
335// Return html code for img thumb
336//function get_img_thumb($elem_id, $cat_id='', $align='', $name='')
337function get_img_thumb($elem_ids, $align='', $name='')
338{
339  global $template;
340
341  $ids=explode(" ",$elem_ids);
342  $assoc = array();
343  foreach($ids as $key=>$val)
344  {
345    list($a,$b)=array_pad(explode(".",$val),2,"");
346    $assoc[$a] = $b;
347  }
348
349  $query = 'SELECT * FROM ' . IMAGES_TABLE . ' WHERE id in (' . implode(',', array_keys($assoc)) . ');';
350  $result = pwg_query($query);
351
352  if($result)
353  {
354    $template->set_filename('extended_description_content', dirname(__FILE__) . '/template/img.tpl');
355
356    $imglist=array();
357    while ($picture = pwg_db_fetch_assoc($result))
358    {
359      $imglist[$picture["id"]]=$picture;
360    }
361
362    $img=array();
363    foreach ($imglist as $id => $picture)
364    {
365      if (!empty($assoc[$id]))
366      {
367        $url = make_picture_url(array(
368          'image_id' => $picture['id'],
369          'category' => array(
370            'id' => $assoc[$id],
371            'name' => '',
372            'permalink' => '')));
373      }
374      else
375      {
376        $url = make_picture_url(array('image_id' => $picture['id']));
377      }
378     
379      $img[]=array(
380          'ID'          => $picture['id'],
381          'IMAGE'       => DerivativeImage::thumb_url($picture),
382          'IMAGE_ALT'   => $picture['file'],
383          'IMG_TITLE'   => ($name=="titleName")?htmlspecialchars($picture['name'], ENT_QUOTES):get_thumbnail_title($picture, $picture['name'], null),
384          'U_IMG_LINK'  => $url,
385          'LEGEND'      => ($name=="name")?$picture['name']:"",
386          'COMMENT'     => $picture['file'],
387          );
388    }
389   
390    $template->assign('img', $img);
391    $template->assign('FLOAT', !empty($align) ? 'float: ' . $align . ';' : '');
392    return $template->parse('extended_description_content', true);
393  }
394  return '';
395}
396
397/**
398 * Return html code for a photo
399 *
400 * @int    id:    picture id
401 * @int    album: album to display picture in    (default: null)
402 * @string size:  picture size                   (default: M)
403 * @string html:  return complete html structure (default: yes)
404 * @string link:  add a link to the picture      (default: yes)
405 */
406function get_photo_sized($param)
407{
408  global $template;
409 
410  $default_params = array(
411    'id' =>    array('\d+', null),
412    'album' => array('\d+', null),
413    'size' =>  array('SQ|TH|XXS|XS|S|M|L|XL|XXL', 'M'),
414    'html' =>  array('yes|no', 'yes'),
415    'link' =>  array('yes|no', 'yes'),
416    );
417   
418  $params = parse_parameters($param, $default_params);
419 
420  // check picture id
421  if (empty($params['id'])) return 'missing picture id';
422 
423  // parameters
424  $params['link'] = $params['link']=='no' ? false : true;
425  $params['html'] = $params['html']=='no' ? false : true;
426  $deriv_type = get_deriv_type($params['size']);
427
428  // get picture
429  $query = 'SELECT * FROM ' . IMAGES_TABLE . ' WHERE id = '.$params['id'].';';
430  $result = pwg_query($query); 
431
432  if (pwg_db_num_rows($result))
433  {
434    $picture = pwg_db_fetch_assoc($result);
435   
436    // url
437    if ($params['link'])
438    {
439      if (!empty($params['album']))
440      {
441        $query = '
442SELECT id, name, permalink
443  FROM '.CATEGORIES_TABLE.'
444  WHERE id = '.$params['album'].'
445;';
446        $category = pwg_db_fetch_assoc(pwg_query($query));
447       
448        $url = make_picture_url(array(
449          'image_id' => $picture['id'],
450          'category' => array(
451            'id' => $category['id'],
452            'name' => $category['name'],
453            'permalink' => $category['permalink'],
454            )));
455      }
456      else
457      {
458        $url = make_picture_url(array('image_id' => $picture['id']));
459      }
460    }
461   
462    // image
463    $src_image = new SrcImage($picture);
464    $derivatives = DerivativeImage::get_all($src_image);
465    $selected_derivative = $derivatives[$deriv_type];
466
467    $template->assign(array(
468      'ed_image' => array(
469        'selected_derivative' => $selected_derivative,
470        'ALT_IMG' => $picture['file'],
471      )));
472
473    // output
474    if ($params['html']) 
475    {
476      $template->set_filename('extended_description_content', dirname(__FILE__).'/template/picture_content.tpl');
477      $content = $template->parse('extended_description_content', true);
478      if ($params['link']) return '<a href="'.$url.'">'.$content.'</a>';
479      else                 return $content;
480    }
481    else
482    {
483      return $selected_derivative->get_url();
484    }
485  }
486 
487  return 'invalid picture id';
488}
489
490/**
491 * Return html code for a random photo
492 *
493 * @int    album: select picture from this album (default: all)
494 * @string size:  picture size                   (default: M)
495 * @string html:  return complete html structure (default: yes)
496 * @string link:  add a link to the picture      (default: no)
497 */
498function extdesc_get_random_photo($param)
499{
500  $default_params = array(
501    'album' => array('\d+', null),
502    'cat' =>   array('\d+', null), // historical
503    'size' =>  array('SQ|TH|XXS|XS|S|M|L|XL|XXL', 'M'),
504    'html' =>  array('yes|no', 'yes'),
505    'link' =>  array('yes|no', 'no'),
506    );
507   
508  $params = parse_parameters($param, $default_params);
509 
510  // check album id
511  if ( empty($params['album']) and !empty($params['cat']) )
512  {
513    $params['album'] = $params['cat'];
514  }
515 
516  // get picture id
517  $query = '
518SELECT id, category_id
519  FROM '.IMAGES_TABLE.'
520    JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id';
521  if (empty($params['album']))
522  {
523    $query = '
524  WHERE 1=1 '
525      .get_sql_condition_FandF(array(
526        'forbidden_categories' => 'category_id',
527        'visible_categories' => 'category_id',
528        'visible_images' => 'id'
529        ),
530      'AND'
531      );
532  }
533  else
534  {
535    $query.= '
536  WHERE category_id = '.$params['album'];
537  }
538 
539  $query.= '
540  ORDER BY '.DB_RANDOM_FUNCTION.'()
541  LIMIT 1
542;';
543  $result = pwg_query($query);
544 
545  if (pwg_db_num_rows($result))
546  {
547    list($params['id'], $params['album']) = pwg_db_fetch_row($result);
548    return get_photo_sized($params);
549  }
550
551  return '';
552}
553
554/**
555 * Return html code for a nivo slider (album or list is mandatory)
556 *
557 * @int    album:     select pictures from this album
558 * @int    nb_images: display only x pictures           (default: 10)
559 * @string random:    random sort order                 (default: no)
560 *
561 * @string list:      pictures id separated by a comma
562 *
563 * @string size:      picture size                      (default: M)
564 * @int    speed:     slideshow duration                (default: 3)
565 * @string title:     display picture name              (default: no)
566 * @string effect:    transition effect                 (default: fade)
567 * @string arrows:    display navigation arrows         (default: yes)
568 * @string control:   display navigation bar            (default: yes)
569 * @string elastic:   adapt slider size to each picture (default: yes)
570 */
571function get_slider($param)
572{
573  global $template, $conf;
574 
575  $default_params = array(
576    'album' =>     array('\d+', null),
577    'nb_images' => array('\d+', 10),
578    'random' =>    array('yes|no', 'no'),
579    'list' =>      array('[\d,]+', null),
580    'size' =>      array('SQ|TH|XXS|XS|S|M|L|XL|XXL', 'M'),
581    'speed' =>     array('\d+', 3),
582    'title' =>     array('yes|no', 'no'),
583    'effect' =>    array('[a-zA-Z]+', 'fade'),
584    'arrows' =>    array('yes|no', 'yes'),
585    'control' =>   array('yes|no', 'yes'),
586    'elastic' =>   array('yes|no', 'yes'),
587    );
588   
589  $params = parse_parameters($param, $default_params);
590 
591  // check size
592  $deriv_type = get_deriv_type($params['size']);
593  $enabled = ImageStdParams::get_defined_type_map();
594  if (empty($enabled[ $deriv_type ])) return 'size disabled';
595 
596  // parameters
597  $params['arrows'] = $params['arrows']==='yes' ? 'true' : 'false';
598  $params['control'] = $params['control']==='yes' ? 'true' : 'false';
599  $params['elastic'] = $params['elastic']==='yes' ? true : false;
600  $params['title'] = $params['title']==='yes' ? true : false;
601  $params['random'] = $params['random']==='yes' ? true : false;
602 
603  // pictures from album...
604  if (!empty($params['album']))
605  {
606    // get image order inside category
607    if ($params['random'])
608    {
609      $order_by = DB_RANDOM_FUNCTION.'()';
610    }
611    else
612    {
613      $query = '
614SELECT image_order
615  FROM '.CATEGORIES_TABLE.'
616  WHERE id = '.$params['album'].'
617;';
618      list($order_by) = pwg_db_fetch_row(pwg_query($query));
619      if (empty($order_by))
620      {
621        $order_by = str_replace('ORDER BY ', null, $conf['order_by_inside_category']);
622      }
623    }
624   
625    // get pictures ids
626    $query = '
627SELECT image_id
628  FROM '.IMAGE_CATEGORY_TABLE.' as ic
629    INNER JOIN '.IMAGES_TABLE.' as i
630    ON i.id = ic.image_id
631  WHERE category_id = '.$params['album'].'
632  ORDER BY '.$order_by.'
633  LIMIT '.$params['nb_images'].'
634;';
635    $ids = array_from_query($query, 'image_id');
636    if (empty($ids))
637    {
638      return '(nivoSlider) no photos in album #'.$params['album'];
639    }
640    $ids = implode(',', $ids);
641  }
642  // ...or pictures list
643  else if (empty($params['list']))
644  {
645    return '(nivoSlider) missing album id or photos list';
646  }
647  else
648  {
649    $ids = $params['list'];
650  }
651 
652  // get pictures
653  $query = '
654SELECT *
655  FROM '.IMAGES_TABLE.'
656  WHERE id IN ('.$ids.')
657  ORDER BY FIND_IN_SET(id, "'.$ids.'")
658;';
659  $pictures = hash_from_query($query, 'id');
660 
661  foreach ($pictures as $row)
662  {
663    // url
664    if (!empty($params['album']))
665    {
666      $url = make_picture_url(array(
667        'image_id' => $row['id'],
668        'category' => array(
669          'id' => $params['album'],
670          'name' => '',
671          'permalink' => '',
672          )));
673    }
674    else
675    {
676      $url = make_picture_url(array('image_id' => $row['id']));
677    }
678
679    $name = render_element_name($row);
680   
681    $tpl_vars[] = array_merge($row, array(
682      'TN_ALT' => htmlspecialchars(strip_tags($name)),
683      'NAME' => $name,
684      'URL' => $url,
685      'src_image' => new SrcImage($row),
686      ));
687  }
688 
689  list($img_size['w'], $img_size['h']) = $enabled[ $deriv_type ]->sizing->ideal_size;
690 
691  $template->assign(array(
692    'EXTENDED_DESC_PATH' => EXTENDED_DESC_PATH,
693    'slider_id' => crc32(uniqid($params['list'])), // need a unique id if we have multiple sliders
694    'slider_content' => $tpl_vars,
695    'derivative_params' => ImageStdParams::get_by_type( $deriv_type ),
696    'img_size' => $img_size,
697    'pauseTime' => $params['speed']*1000,
698    'controlNav' => $params['control'],
699    'effect' => $params['effect'],
700    'directionNav' => $params['arrows'],
701    'elastic_size' => $params['elastic'],
702    'show_title' => $params['title'],
703    ));
704 
705  $template->set_filename('extended_description_content', dirname(__FILE__).'/template/slider.tpl');
706  return $template->parse('extended_description_content', true);
707}
708
709
710function parse_parameters($param, $default_params)
711{
712  if (is_array($param))
713  {
714    return $param;
715  }
716 
717  $params = array();
718 
719  foreach ($default_params as $name => $value)
720  {
721    if (preg_match('#'.$name.'=('.$value[0].')#', $param, $matches))
722    {
723      $params[$name] = $matches[1];
724    }
725    else
726    {
727      $params[$name] = $value[1];
728    }
729  }
730 
731  return $params;
732}
733
734function get_deriv_type($size)
735{
736  $size = strtoupper($size);
737 
738  $size_map = array(
739    'SQ' => IMG_SQUARE,
740    'TH' => IMG_THUMB,
741    'XXS' => IMG_XXSMALL,
742    'XS' => IMG_XSMALL,
743    'S' => IMG_SMALL,
744    'M' => IMG_MEDIUM,
745    'L' => IMG_LARGE,
746    'XL' => IMG_XLARGE,
747    'XXL' => IMG_XXLARGE,
748    );
749   
750  if (!array_key_exists($size, $size_map)) $size = 'M';
751 
752  return $size_map[$size];
753}
754
755
756if (script_basename() == 'admin' or script_basename() == 'popuphelp')
757{
758  include(EXTENDED_DESC_PATH . 'admin.inc.php');
759}
760
761// main
762add_event_handler ('get_extended_desc',  'get_extended_desc');
763add_event_handler ('render_page_banner', 'get_extended_desc');
764// categories
765add_event_handler ('render_category_name',        'get_user_language_desc');
766add_event_handler ('render_category_description', 'get_extended_desc', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
767// tags
768add_event_handler ('render_tag_name',   'get_user_language_desc');
769add_event_handler ('render_tag_url',    'get_user_language_tag_url', 40);
770add_event_handler ('get_tag_alt_names', 'ed_get_all_alt_names', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
771// element
772add_event_handler ('render_element_name',        'get_user_language_desc');
773add_event_handler ('render_element_description', 'get_extended_desc', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
774// mail/nbm
775add_event_handler ('nbm_render_user_customize_mail_content', 'get_extended_desc');
776add_event_handler ('mail_group_assign_vars',                 'extended_desc_mail_group_assign_vars');
777// removals
778add_event_handler ('loc_end_index_category_thumbnails', 'ext_remove_cat', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
779add_event_handler ('loc_end_index_thumbnails',          'ext_remove_image', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
780add_event_handler ('get_categories_menu_sql_where',     'ext_remove_menubar_cats');
781
782?>
Note: See TracBrowser for help on using the repository browser.