b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (0.9.x) [ class tree: plugins ] [ index: plugins ] [ all elements ]

Source for file _smilies.toolbar.php

Documentation is available at _smilies.toolbar.php

  1. <?php
  2. /**
  3.  * This file implements the Image Smilies Toolbar plugin for b2evolution
  4.  *
  5.  * b2evolution - {@link http://b2evolution.net/}
  6.  * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
  7.  * @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
  8.  *
  9.  * @package plugins
  10.  */
  11. if!defined('DB_USER') ) die'Please, do not access this page directly.' );
  12.  
  13. /**
  14.  * Includes:
  15.  */
  16. require_once dirname(__FILE__).'/../toolbar.class.php';
  17.  
  18. /**
  19.  * @package plugins
  20.  */
  21. {
  22.     /**
  23.      * Should be toolbar be displayed?
  24.      */
  25.     var $display = false;
  26.  
  27.     var $code = 'b2evSmil';
  28.     var $name = 'Smilies';
  29.     var $priority = 70;
  30.     var $short_desc;
  31.     var $long_desc;
  32.  
  33.     /**
  34.      * Smiley definitions
  35.      *
  36.      * @access private
  37.      */
  38.     var $smilies;
  39.  
  40.     /**
  41.      * Path to images
  42.      *
  43.      * @access private
  44.      */
  45.     var $smilies_path;
  46.  
  47.  
  48.     /**
  49.      * Constructor
  50.      *
  51.      * {@internal smilies_Toolbarplugin::smilies_Toolbarplugin(-)}}
  52.      */
  53.     function smilies_Toolbarplugin()
  54.     {
  55.         $this->short_desc = T_('One click smilies inserting');
  56.         $this->long_desc = T_('No description available');
  57.  
  58.         require dirname(__FILE__)'/../_smilies.conf.php';
  59.     }
  60.  
  61.  
  62.     /**
  63.      * Display the toolbar
  64.      *
  65.      * {@internal smilies_Toolbarplugin::render(-)}}
  66.      */
  67.     function display()
  68.     {    
  69.         if!$this->display )
  70.         {    // We don't want to show this toolbar
  71.             return false;
  72.         }
  73.  
  74.         $grins '';
  75.         $smiled array();
  76.         foreach$this->smilies as $smiley => $grin )
  77.         {
  78.             if (!in_array($grin$smiled))
  79.             {
  80.                 $smiled[$grin;
  81.                 $smiley str_replace(' '''$smiley);
  82.                 $grins .= '<img src="'$this->smilies_path'/'$grin'" alt="'$smiley.
  83.                                     '" class="top" onclick="grin(\''str_replace("'","\'",$smiley)'\');"/> ';
  84.             }
  85.         }
  86.     
  87.         print('<div class="edit_toolbar">'$grins'</div>');
  88.         ob_start();
  89.         ?>
  90.         <script type="text/javascript">
  91.         function grin(tag)
  92.         {
  93.             var myField;
  94.             if (document.getElementById('content') && document.getElementById('content').type == 'textarea') {
  95.                 myField = document.getElementById('content');
  96.             }
  97.             else {
  98.                 return false;
  99.             }
  100.             if (document.selection) {
  101.                 myField.focus();
  102.                 sel = document.selection.createRange();
  103.                 sel.text = tag;
  104.                 myField.focus();
  105.             }
  106.             else if (myField.selectionStart || myField.selectionStart == '0') {
  107.                 var startPos = myField.selectionStart;
  108.                 var endPos = myField.selectionEnd;
  109.                 var cursorPos = endPos;
  110.                 myField.value = myField.value.substring(0, startPos)
  111.                                 + tag
  112.                                 + myField.value.substring(endPos, myField.value.length);
  113.                 cursorPos += tag.length;
  114.                 myField.focus();
  115.                 myField.selectionStart = cursorPos;
  116.                 myField.selectionEnd = cursorPos;
  117.             }
  118.             else {
  119.                 myField.value += tag;
  120.                 myField.focus();
  121.             }
  122.         }
  123.         
  124.         </script>
  125.         <?php
  126.         $grins ob_get_contents();
  127.         ob_end_clean();
  128.         print($grins);
  129.     }
  130. }
  131.  
  132. // Register the plugin:
  133. $this->registernew smilies_Toolbarplugin() );
  134.  
  135. ?>

Documentation generated on Tue, 20 May 2008 01:55:46 +0200 by phpDocumentor 1.4.2