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

Last change on this file since 20063 was 20063, checked in by mistic100, 11 years ago

[random] only filter forbidden categories/images when we don't specify album id

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