[ Index ]
 

Code source de b2evolution 2.1.0-beta

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/blogs/plugins/ -> _test.plugin.php (source)

   1  <?php
   2  /**

   3   * This file implements the TEST plugin.

   4   *

   5   * For the most recent and complete Plugin API documentation

   6   * see {@link Plugin} in ../evocore/_plugin.class.php.

   7   *

   8   * This file is part of the evoCore framework - {@link http://evocore.net/}

   9   * See also {@link http://sourceforge.net/projects/evocms/}.

  10   *

  11   * @copyright (c)2003-2007 by Francois PLANQUE - {@link http://fplanque.net/}

  12   * Parts of this file are copyright (c)2004-2006 by Daniel HAHLER - {@link http://thequod.de/contact}.

  13   *

  14   * {@internal License choice

  15   * - If you have received this file as part of a package, please find the license.txt file in

  16   *   the same folder or the closest folder above for complete license terms.

  17   * - If you have received this file individually (e-g: from http://evocms.cvs.sourceforge.net/)

  18   *   then you must choose one of the following licenses before using the file:

  19   *   - GNU General Public License 2 (GPL) - http://www.opensource.org/licenses/gpl-license.php

  20   *   - Mozilla Public License 1.1 (MPL) - http://www.opensource.org/licenses/mozilla1.1.php

  21   * }}

  22   *

  23   * {@internal Open Source relicensing agreement:

  24   * Daniel HAHLER grants Francois PLANQUE the right to license

  25   * Daniel HAHLER's contributions to this file and the b2evolution project

  26   * under any OSI approved OSS license (http://www.opensource.org/licenses/).

  27   * }}

  28   *

  29   * @package plugins

  30   *

  31   * {@internal Below is a list of authors who have contributed to design/coding of this file: }}

  32   * @author fplanque: Francois PLANQUE - {@link http://fplanque.net/}

  33   * @author blueyed: Daniel HAHLER

  34   *

  35   * @version $Id: _test.plugin.php,v 1.71 2007/06/24 17:48:40 personman2 Exp $

  36   */
  37  if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );
  38  
  39  
  40  /**

  41   * TEST Plugin

  42   *

  43   * This plugin responds to virtually all possible plugin events :P

  44   *

  45   * @package plugins

  46   */
  47  class test_plugin extends Plugin
  48  {
  49      /**

  50       * Variables below MUST be overriden by plugin implementations,

  51       * either in the subclass declaration or in the subclass constructor.

  52       */
  53      var $name = 'Test';
  54      var $code = 'evo_TEST';
  55      var $priority = 50;
  56      var $version = '1.9-dev';
  57      var $author = 'The b2evo Group';
  58      var $help_url = '';  // empty URL defaults to manual wiki

  59  
  60      /*

  61       * These variables MAY be overriden.

  62       */
  63      var $apply_rendering = 'opt-out';
  64      var $number_of_installs = 1;
  65      var $group = 'test';
  66  
  67  
  68      /**

  69       * Init

  70       *

  71       * This gets called after a plugin has been registered/instantiated.

  72       */
  73  	function PluginInit( & $params )
  74      {
  75          $this->short_desc = 'Test plugin';
  76          $this->long_desc = 'This plugin responds to virtually all possible plugin events :P';
  77      }
  78  
  79  
  80      /**

  81       * Get the settings that the plugin can use.

  82       *

  83       * Those settings are transfered into a Settings member object of the plugin

  84       * and can be edited in the backoffice (Settings / Plugins).

  85       *

  86       * @see Plugin::GetDefaultSettings()

  87       * @see PluginSettings

  88       * @see Plugin::PluginSettingsValidateSet()

  89       * @return array

  90       */
  91  	function GetDefaultSettings( & $params )
  92      {
  93          $r = array(
  94              'click_me' => array(
  95                  'label' => 'Click me!',
  96                  'defaultvalue' => '1',
  97                  'type' => 'checkbox',
  98              ),
  99              'input_me' => array(
 100                  'label' => 'How are you?',
 101                  'defaultvalue' => '',
 102                  'note' => 'Welcome to b2evolution',
 103              ),
 104              'number' => array(
 105                  'label' => 'Number',
 106                  'defaultvalue' => '8',
 107                  'note' => '1-9',
 108                  'valid_range' => array( 'min'=>1, 'max'=>9 ),
 109              ),
 110              'my_select' => array(
 111                  'label' => 'Selector',
 112                  'id' => $this->classname.'_my_select',
 113                  'onchange' => 'document.getElementById("'.$this->classname.'_a_disabled_one").disabled = ( this.value == "sun" );',
 114                  'defaultvalue' => 'one',
 115                  'type' => 'select',
 116                  'options' => array( 'sun' => 'Sunday', 'mon' => 'Monday' ),
 117              ),
 118              'a_disabled_one' => array(
 119                  'label' => 'This one is disabled',
 120                  'id' => $this->classname.'_a_disabled_one',
 121                  'type' => 'checkbox',
 122                  'defaultvalue' => '1',
 123                  'disabled' => true, // this can be useful if you detect that something cannot be changed. You probably want to add a 'note' then, too.
 124                  'note' => 'Change the above select input to "Monday" to enable it.',
 125              ),
 126              'blog' => array(
 127                  'label' => 'A blog',
 128                  'type' => 'select_blog',  // TODO: does not scale with 500 blogs
 129                  'allow_none' => true,
 130              ),
 131              'blogs' => array(
 132                  'label' => 'A set of blogs',
 133                  'type' => 'select_blog',    // TODO: BROKEN + does not scale with 500 blogs
 134                  'multiple' => true,
 135                  'allow_none' => true,
 136              ),
 137              'sets' => array(
 138                  'type' => 'array',
 139                  'min_count' => 0,
 140                  'max_count' => 3,
 141                  'entries' => array(
 142                      'user' => array(
 143                          'label' => 'A user',
 144                          'type' => 'select_user',        // TODO: does not scale with 500 users
 145                          'allow_none' => true,
 146                      ),
 147                  ),
 148              ),
 149              'maxlen' => array(
 150                  'label' => 'Max',
 151                  'type' => 'textarea',
 152                  'maxlength' => 10,
 153                  'note' => 'Maximum length is 10 here.',
 154              ),
 155          );
 156  
 157          if( $params['for_editing'] )
 158          { // we're asked for the settings for editing:
 159              if( $this->Settings->get('my_select') == 'mon' )
 160              {
 161                  $r['a_disabled_one']['disabled'] = false;
 162              }
 163          }
 164  
 165          return $r;
 166      }
 167  
 168  
 169      /**

 170       * User settings.

 171       *

 172       * @see Plugin::GetDefaultUserSettings()

 173       * @see PluginUserSettings

 174       * @see Plugin::PluginUserSettingsValidateSet()

 175       * @return array

 176       */
 177  	function GetDefaultUserSettings()
 178      {
 179          return array(
 180                  'echo_random' => array(
 181                      'label' => 'Echo a random number in AdminBeginPayload event',
 182                      'type' => 'checkbox',
 183                      'defaultvalue' => '0',
 184                  ),
 185                  'deactivate' => array(
 186                      'label' => 'Deactivate',
 187                      'type' => 'checkbox',
 188                      'defaultvalue' => '0',
 189                  ),
 190              );
 191      }
 192  
 193  
 194      /**

 195       * We trigger an extra event ourself (which we also provide ourselves).

 196       *

 197       * @return array

 198       */
 199  	function GetExtraEvents()
 200      {
 201          return array(
 202                  // Gets "min" and "max" as params and should return a random number in between:

 203                  'test_plugin_get_random' => 'TEST event that returns a random number.',
 204              );
 205      }
 206  
 207  
 208      /**

 209       * Define a test cron job

 210       */
 211  	function GetCronJobs( & $params )
 212      {
 213          return array(
 214                  array(
 215                      'name' => 'TEST plugin - cron job',
 216                      'ctrl' => 'test_job',
 217                      'params' => array( 'param' => 1 ),
 218                  ),
 219              );
 220      }
 221  
 222  
 223      /**

 224       * Execute/Handle a test/sample cronjob.

 225       */
 226  	function ExecCronJob( & $params )
 227      {
 228          if( $params['ctrl'] == 'test_job' )
 229          {
 230              return array( 'code' => 1, 'message' => 'Test successful.' );
 231          }
 232      }
 233  
 234  
 235      /**

 236       * Deactive the plugin for the current request if the user wants it so.

 237       * @see Plugin::AppendLoginRegisteredUser()

 238       */
 239  	function AppendLoginRegisteredUser()
 240      {
 241          if( $this->UserSettings->get('deactivate') )
 242          {
 243              $this->forget_events();
 244          }
 245      }
 246  
 247  
 248      /**

 249       * Define some dependencies.

 250       *

 251       * @see Plugin::GetDependencies()

 252       * @return array

 253       */
 254  	function GetDependencies()
 255      {
 256          return array(
 257                  'recommends' => array(
 258                      'events_by_one' => array( array('Foo', 'Bar'), array('FooBar', 'BarFoo') ), // a plugin that provides "Foo" and "Bar", and one (may be the same) that provides "FooBar" and "BarFoo"
 259                      'events' => array( 'some_event', 'some_other_event' ),
 260                      'plugins' => array( array( 'some_plugin', '1' ) ), // at least version 1 of some_plugin
 261                  ),
 262  
 263                  'requires' => array(
 264                      // Same syntax as with the 'recommends' class above, but would prevent the plugin from being installed.

 265                  ),
 266              );
 267      }
 268  
 269  
 270      /**

 271       * Gets asked for, if user settings get updated.

 272       *

 273       * We just add a note.

 274       *

 275       * @see Plugin::PluginUserSettingsUpdateAction()

 276       */
 277  	function PluginUserSettingsUpdateAction()
 278      {
 279          if( $this->UserSettings->get('echo_random') )
 280          {
 281              $this->msg( 'TEST plugin: Random numbers have been disabled.' );
 282          }
 283          else
 284          {
 285              $this->msg( 'TEST plugin: Random numbers have been enabled.' );
 286          }
 287  
 288          return true;
 289      }
 290  
 291  
 292      /**

 293       * Event handlers:

 294       */
 295  
 296      /**

 297       * Event handler: Called when ending the admin html head section.

 298       *

 299       * @see Plugin::AdminEndHtmlHead()

 300       * @param array Associative array of parameters

 301       * @return boolean did we do something?

 302       */
 303  	function AdminEndHtmlHead( & $params )
 304      {
 305          echo '<!-- This comment was added by the TEST plugin -->';
 306  
 307          return true;
 308      }
 309  
 310  
 311      /**

 312       * Event handler: Called right after displaying the admin page footer.

 313       *

 314       * @see Plugin::AdminAfterPageFooter()

 315       * @param array Associative array of parameters

 316       * @return boolean did we do something?

 317       */
 318  	function AdminAfterPageFooter( & $params )
 319      {
 320          echo '<p class="footer">This is the TEST plugin responding to the AdminAfterPageFooter event!</p>';
 321  
 322          return true;
 323      }
 324  
 325  
 326      /**

 327       * Event handler: Called when displaying editor toolbars.

 328       *

 329       * @see Plugin::AdminDisplayToolbar()

 330       * @param array Associative array of parameters

 331       * @return boolean did we display a toolbar?

 332       */
 333  	function AdminDisplayToolbar( & $params )
 334      {
 335          echo '<div class="edit_toolbar">This is the TEST Toolbar</div>';
 336  
 337          return true;
 338      }
 339  
 340  
 341      /**

 342       * Event handler: Called when displaying editor buttons.

 343       *

 344       * @see Plugin::AdminDisplayEditorButton()

 345       * @param array Associative array of parameters

 346       * @return boolean did we display ?

 347       */
 348  	function AdminDisplayEditorButton( & $params )
 349      {
 350          if( $params['edit_layout'] == 'simple' )
 351          { // this is the "simple" layout, we do nothing
 352              return false;
 353          }
 354          ?>
 355          <input type="button" value="TEST" onclick="alert('Hi! This is the TEST plugin (AdminDisplayEditorButton)!');" />
 356          <?php
 357          return true;
 358      }
 359  
 360  
 361      /**

 362       * @see Plugin::AdminDisplayItemFormFieldset()

 363       */
 364  	function AdminDisplayItemFormFieldset( & $params )
 365      {
 366          $params['Form']->begin_fieldset( 'TEST plugin' );
 367          $params['Form']->info_field( 'TEST plugin', 'This is the TEST plugin responding to the AdminDisplayItemFormFieldset event.' );
 368          $params['Form']->end_fieldset( 'Foo' );
 369      }
 370  
 371      /**

 372       * @see Plugin::SkinBeginHtmlHead()

 373       */
 374  
 375    function SkinBeginHtmlHead()
 376    {
 377      require_js( '#jquery#');
 378    }
 379    
 380      /**

 381       * @see Plugin::AdminBeforeItemEditCreate()

 382       */
 383  	function AdminBeforeItemEditCreate( & $params )
 384      {
 385          $this->msg( 'This is the TEST plugin responding to the AdminBeforeItemEditCreate event.' );
 386      }
 387  
 388  
 389      /**

 390       * @see Plugin::AdminBeforeItemEditUpdate()

 391       */
 392  	function AdminBeforeItemEditUpdate( & $params )
 393      {
 394          $this->msg( 'This is the TEST plugin responding to the AdminBeforeItemEditUpdate event.' );
 395      }
 396  
 397  
 398      /**

 399       * @see Plugin::AdminDisplayCommentFormFieldset()

 400       */
 401  	function AdminDisplayCommentFormFieldset( & $params )
 402      {
 403          $params['Form']->begin_fieldset( 'TEST plugin' );
 404          $params['Form']->info_field( 'TEST plugin', 'This is the TEST plugin responding to the AdminDisplayCommentFormFieldset event.' );
 405          $params['Form']->end_fieldset( 'Foo' );
 406      }
 407  
 408  
 409      /**

 410       * Event handler: Gets invoked in /admin.php for every backoffice page after

 411       *                the menu structure is build. You can use the {@link $AdminUI} object

 412       *                to modify it.

 413       *

 414       * This is the hook to register menu entries. See {@link register_menu_entry()}.

 415       *

 416       * @see Plugin::AdminAfterMenuInit()

 417       */
 418  	function AdminAfterMenuInit()
 419      {
 420          $this->register_menu_entry( 'Test tab' );
 421      }
 422  
 423  
 424      /**

 425       * Event handler: Called when handling actions for the "Tools" menu.

 426       *

 427       * Use {@link $Messages} to add Messages for the user.

 428       *

 429       * @see Plugin::AdminToolAction()

 430       */
 431  	function AdminToolAction( $params )
 432      {
 433          global $Messages;
 434  
 435          $Messages->add( 'Hello, This is the AdminToolAction for the TEST plugin.' );
 436      }
 437  
 438  
 439      /**

 440       * Event handler: Called when displaying the block in the "Tools" menu.

 441       *

 442       * @see Plugin::AdminToolPayload()

 443       */
 444  	function AdminToolPayload( $params )
 445      {
 446          echo 'Hello, This is the AdminToolPayload for the TEST plugin.';
 447      }
 448  
 449  
 450      /**

 451       * Event handler: Method that gets invoked when our tab (?tab=plug_ID_X) is selected.

 452       *

 453       * You should catch params (GET/POST) here and do actions (no output!).

 454       * Use {@link $Messages} to add messages for the user.

 455       *

 456       * @see Plugin::AdminTabAction()

 457       */
 458  	function AdminTabAction()
 459      {
 460          global $Plugins;
 461  
 462          $this->text_from_AdminTabAction = '<p>This is text from AdminTabAction for the TEST plugin.</p>'
 463              .'<p>Here is a random number: '
 464              .$Plugins->get_trigger_event_first_return('test_plugin_get_random', array( 'min'=>-1000, 'max'=>1000 )).'</p>';
 465  
 466          if( $this->param_text = param( $this->get_class_id('text') ) )
 467          {
 468              $this->text_from_AdminTabAction .= '<p>You have said: '.$this->param_text.'</p>';
 469          }
 470      }
 471  
 472  
 473      /**

 474       * Event handler: Gets invoked when our tab is selected and should get displayed.

 475       *

 476       * @see Plugin::AdminTabPayload()

 477       */
 478  	function AdminTabPayload()
 479      {
 480          echo 'Hello, this is the AdminTabPayload for the TEST plugin.';
 481  
 482          echo $this->text_from_AdminTabAction;
 483  
 484          // TODO: this is tedious.. should either be a global function (get_admin_Form()) or a plugin helper..

 485          $Form = & new Form();
 486          $Form->begin_form();
 487          $Form->hidden_ctrl(); // needed to pass the "ctrl=tools" param

 488          $Form->hiddens_by_key( get_memorized() ); // needed to pass all other memorized params, especially "tab"

 489  
 490          $Form->text_input( $this->get_class_id().'_text', $this->param_text, '20', 'Text' );
 491  
 492          $Form->button_input(); // default "submit" button

 493  
 494          $Form->end_form();
 495      }
 496  
 497  
 498      /**

 499       * Event handler: Gets invoked before the main payload in the backoffice.

 500       *

 501       * @see Plugin::AdminBeginPayload()

 502       */
 503  	function AdminBeginPayload()
 504      {
 505          global $Plugins;
 506  
 507          echo '<div class="panelblock center">TEST plugin: AdminBeginPayload event.</div>';
 508  
 509          if( $this->UserSettings->get('echo_random') )
 510          {
 511              echo '<div class="panelblock center">TEST plugin: A random number requested by user setting: '
 512                      .$Plugins->get_trigger_event_first_return('test_plugin_get_random', array( 'min'=>0, 'max'=>1000 ) ).'</div>';
 513          }
 514      }
 515  
 516  
 517      /**

 518       * Event handler: Called when rendering item/post contents as HTML.

 519       *

 520       * Note: return value is ignored. You have to change $params['content'].

 521       *

 522       * @see Plugin::RenderItemAsHtml()

 523       */
 524  	function RenderItemAsHtml( & $params )
 525      {
 526          $params['data'] = 'TEST['.$params['data'].']TEST';
 527      }
 528  
 529  
 530      /**

 531       * Event handler: Called when rendering item/post contents as XML.

 532       *

 533       * Note: return value is ignored. You have to change $params['content'].

 534       *

 535       * @see Plugin::RenderItemAsXml()

 536       */
 537  	function RenderItemAsXml( & $params )
 538      {
 539          // Do the same as with HTML:

 540          $this->RenderItemAsHtml( $params );
 541      }
 542  
 543  
 544      /**

 545       * Event handler: Called when rendering item/post contents as text.

 546       *

 547       * Note: return value is ignored. You have to change $params['content'].

 548       *

 549       * @see Plugin::RenderItemAsText()

 550       */
 551  	function RenderItemAsText( & $params )
 552      {
 553          // Do nothing.

 554      }
 555  
 556  
 557      /**

 558       * Event handler: Called when displaying item/post contents as HTML.

 559       *

 560       * Note: return value is ignored. You have to change $params['content'].

 561       *

 562       * @see Plugin::DisplayItemAsHtml()

 563       */
 564  	function DisplayItemAsHtml( & $params )
 565      {
 566          $params['data'] = $params['data']."\n<br />-- test_plugin::DisplayItemAsHtml()";
 567      }
 568  
 569  
 570      /**

 571       * Event handler: Called when displaying item/post contents as XML.

 572       *

 573       * Note: return value is ignored. You have to change $params['content'].

 574       *

 575       * @see Plugin::DisplayItemAsXml()

 576       */
 577  	function DisplayItemAsXml( & $params )
 578      {
 579          $params['data'] = $params['data']."\n<br />-- test_plugin::DisplayItemAsXml()";
 580      }
 581  
 582  
 583      /**

 584       * Event handler: Called when displaying item/post contents as text.

 585       *

 586       * Note: return value is ignored. You have to change $params['content'].

 587       *

 588       * @see Plugin::DisplayItemAsText()

 589       */
 590  	function DisplayItemAsText( & $params )
 591      {
 592          $params['data'] = $params['data']."\n<br />-- test_plugin::DisplayItemAsText()";
 593      }
 594  
 595  
 596      /**

 597       * Wrap a to be displayed IP address.

 598       * @see Plugin::FilterIpAddress()

 599       */
 600  	function FilterIpAddress( & $params )
 601      {
 602          $params['data'] = '[[IP:'.$params['data'].' (TEST plugin)]]';
 603      }
 604  
 605  
 606      /**

 607       * Event handler: Called before the plugin is installed.

 608       * @see Plugin::BeforeInstall()

 609       */
 610  	function BeforeInstall()
 611      {
 612          global $Plugins;
 613          $this->msg( 'TEST plugin: BeforeInstall event.' );
 614          return true;
 615      }
 616  
 617  
 618      /**

 619       * Event handler: Called when the plugin has been installed.

 620       * @see Plugin::AfterInstall()

 621       */
 622  	function AfterInstall()
 623      {
 624          $this->msg( 'TEST plugin sucessfully installed. All the hard work we did was adding this message in the AfterInstall event.. ;)' );
 625      }
 626  
 627  
 628      /**

 629       * Event handler: Called before the plugin is going to be un-installed.

 630       * @see Plugin::BeforeUninstall()

 631       */
 632  	function BeforeUninstall()
 633      {
 634          $this->msg( 'TEST plugin sucessfully un-installed. All the hard work we did was adding this message.. ;)' );
 635          return true;
 636      }
 637  
 638  
 639      /**

 640       * Event handler: called when a new user has registered.

 641       * @see Plugin::AfterUserRegistration()

 642       */
 643  	function AfterUserRegistration( $params )
 644      {
 645          $this->msg( 'The TEST plugin welcomes the new user '.$params['User']->dget('login').'!' );
 646      }
 647  
 648  
 649      /**

 650       * Event handler: Called at the end of the "Login" form.

 651       * @see Plugin::DisplayLoginFormFieldset()

 652       */
 653  	function DisplayLoginFormFieldset( & $params )
 654      {
 655          $params['Form']->info_field( 'TEST plugin', 'This is the TEST plugin hooking the DisplayLoginFormFieldset event.' );
 656      }
 657  
 658  
 659      /**

 660       * Event handler: Called when a user tries to login.

 661       * @see Plugin::LoginAttempt()

 662       */
 663  	function LoginAttempt()
 664      {
 665          // $this->msg( 'NO LOGIN!', 'login_error' );

 666          $this->msg( 'This the TEST plugin responding to the LoginAttempt event.', 'note' );
 667      }
 668  
 669  
 670      /**

 671       * Event handler: Do we need a raw password in {@link LoginAttempt()}?

 672       * @see Plugin::LoginAttemptNeedsRawPassword()

 673       */
 674  	function LoginAttemptNeedsRawPassword()
 675      {
 676          return false;    // No we don't need raw. (do not implement this method if the answer is no)

 677      }
 678  
 679  
 680      /**

 681       * Automagically login every user as "demouser" who is not logged in and does not

 682       * try to currently.

 683       *

 684       * To enable/test it, change the "if-0" check below to "if( 1 )".

 685       *

 686       * @see Plugin::AlternateAuthentication()

 687       */
 688  	function AlternateAuthentication()
 689      {
 690          if( 0 ) // you should only enable it for test purposes, because it automagically logs every user in as "demouser"!
 691          {
 692              global $Session, $Messages;
 693  
 694              $UserCache = & get_Cache( 'UserCache' );
 695              if( $demo_User = & $UserCache->get_by_login('demouser') )
 696              { // demouser exists:
 697                  $Session->set_User( $demo_User );
 698                  $Messages->add( 'Logged in as demouser.', 'success' );
 699                  return true;
 700              }
 701          }
 702      }
 703  
 704  
 705      /**

 706       * @see Plugin::DisplayValidateAccountFormFieldset()

 707       */
 708  	function DisplayValidateAccountFormFieldset( & $params )
 709      {
 710          $params['Form']->info( 'TEST plugin', 'This is the TEST plugin responding to the ValidateAccountFormSent event.' );
 711      }
 712  
 713  
 714      /**

 715       * Gets provided as plugin event (and gets also used internally for demonstration).

 716       *

 717       * @param array Associative array of parameters

 718       *              'min': mininum number

 719       *              'max': maxinum number

 720       * @return integer

 721       */
 722  	function test_plugin_get_random( & $params )
 723      {
 724          return rand( $params['min'], $params['max'] );
 725      }
 726  
 727  }
 728  
 729  
 730  /*

 731   * $Log: _test.plugin.php,v $

 732   * Revision 1.71  2007/06/24 17:48:40  personman2

 733   * changed jquery alias to #jquery#

 734   *

 735   * Revision 1.70  2007/06/24 15:43:33  personman2

 736   * Reworking the process for a skin or plugin to add js and css files to a blog display.  Removed the custom header for nifty_corners.

 737   *

 738   * Revision 1.69  2007/06/19 20:42:53  fplanque

 739   * basic demo of widget params handled by autoform_*

 740   *

 741   * Revision 1.68  2007/06/19 00:03:26  fplanque

 742   * doc / trying to make sense of automatic settings forms generation.

 743   *

 744   * Revision 1.67  2007/06/16 20:28:04  blueyed

 745   * Added more info in DisplayLoginFormFieldset event

 746   *

 747   * Revision 1.66  2007/04/26 00:11:04  fplanque

 748   * (c) 2007

 749   *

 750   * Revision 1.65  2007/01/24 00:48:58  fplanque

 751   * Refactoring

 752   *

 753   * Revision 1.64  2007/01/20 23:48:10  blueyed

 754   * Changed plugin default URL to manual.b2evolution.net/classname_plugin

 755   *

 756   * Revision 1.63  2006/12/26 00:08:01  fplanque

 757   * reduce strain on translators. plugin devs need to understand english anyway.

 758   *

 759   * Revision 1.62  2006/12/22 22:29:35  blueyed

 760   * Support for "multiple" attribute in SELECT elements, especially for GetDefault(User)Settings plugin callback

 761   *

 762   * Revision 1.61  2006/12/10 12:42:40  blueyed

 763   * "maxlength" handling for textarea fields through javascript

 764   *

 765   * Revision 1.60  2006/12/06 23:32:35  fplanque

 766   * Rollback to Daniel's most reliable password hashing design. (which is not the last one)

 767   * This not only strengthens the login by providing less failure points, it also:

 768   * - Fixes the login in IE7

 769   * - Removes the double "do you want to memorize this password' in FF.

 770   *

 771   * Revision 1.59  2006/12/05 01:57:32  blueyed

 772   * Added more settings

 773   *

 774   * Revision 1.57  2006/12/01 16:26:34  blueyed

 775   * Added AdminDisplayCommentFormFieldset hook

 776   *

 777   * Revision 1.56  2006/11/24 18:27:27  blueyed

 778   * Fixed link to b2evo CVS browsing interface in file docblocks

 779   *

 780   * Revision 1.55  2006/10/30 19:00:37  blueyed

 781   * Lazy-loading of Plugin (User)Settings for PHP5 through overloading

 782   *

 783   * Revision 1.54  2006/10/01 15:11:08  blueyed

 784   * Added DisplayItemAs* equivs to RenderItemAs*; removed DisplayItemAllFormats; clearing of pre-rendered cache, according to plugin event changes

 785   *

 786   * Revision 1.53  2006/09/30 20:53:49  blueyed

 787   * Added hook RenderItemAsText, removed general RenderItem

 788   *

 789   * Revision 1.52  2006/09/11 22:23:05  blueyed

 790   * (Re-)enabled AdminDisplayEditorButton for "simple" edit_layout, after adding appropriate doc.

 791   *

 792   * Revision 1.51  2006/08/29 16:44:47  blueyed

 793   * Logical fix for cron job return value.

 794   *

 795   * Revision 1.50  2006/08/28 20:16:30  blueyed

 796   * Added GetCronJobs/ExecCronJob Plugin hooks.

 797   *

 798   * Revision 1.49  2006/08/19 07:56:32  fplanque

 799   * Moved a lot of stuff out of the automatic instanciation in _main.inc

 800   *

 801   * Revision 1.48  2006/07/10 22:53:38  blueyed

 802   * Grouping of plugins added, based on a patch from balupton

 803   *

 804   * Revision 1.47  2006/07/10 20:19:30  blueyed

 805   * Fixed PluginInit behaviour. It now gets called on both installed and non-installed Plugins, but with the "is_installed" param appropriately set.

 806   *

 807   * Revision 1.46  2006/07/07 21:26:49  blueyed

 808   * Bumped to 1.9-dev

 809   *

 810   * Revision 1.45  2006/07/06 19:56:29  fplanque

 811   * no message

 812   *

 813   * Revision 1.44  2006/06/16 21:30:57  fplanque

 814   * Started clean numbering of plugin versions (feel free do add dots...)

 815   *

 816   * Revision 1.43  2006/06/13 21:33:40  blueyed

 817   * Add note when updating PluginUserSettings

 818   *

 819   * Revision 1.42  2006/06/06 20:35:50  blueyed

 820   * Plugins can define extra events that they trigger themselves.

 821   *

 822   * Revision 1.41  2006/05/30 19:39:55  fplanque

 823   * plugin cleanup

 824   *

 825   * Revision 1.40  2006/05/24 20:43:19  blueyed

 826   * Pass "Item" as param to Render* event methods.

 827   *

 828   * Revision 1.39  2006/05/22 20:35:37  blueyed

 829   * Passthrough some attribute of plugin settings, allowing to use JS handlers. Also fixed submitting of disabled form elements.

 830   *

 831   * Revision 1.38  2006/05/05 19:36:24  blueyed

 832   * New events

 833   *

 834   * Revision 1.37  2006/05/02 01:47:58  blueyed

 835   * Normalization

 836   *

 837   * Revision 1.36  2006/04/24 15:43:37  fplanque

 838   * no message

 839   *

 840   * Revision 1.35  2006/04/22 02:36:39  blueyed

 841   * Validate users on registration through email link (+cleanup around it)

 842   *

 843   * Revision 1.34  2006/04/21 16:53:27  blueyed

 844   * Bumping TODO, please comment.

 845   *

 846   * Revision 1.33  2006/04/20 22:24:08  blueyed

 847   * plugin hooks cleanup

 848   *

 849   * Revision 1.32  2006/04/19 22:26:25  blueyed

 850   * cleanup/polish

 851   *

 852   * Revision 1.31  2006/04/19 20:14:03  fplanque

 853   * do not restrict to :// (does not catch subdomains, not even www.)

 854   *

 855   * Revision 1.30  2006/04/19 18:55:37  blueyed

 856   * Added login handling hook: AlternateAuthentication

 857   *

 858   * Revision 1.29  2006/04/18 17:06:14  blueyed

 859   * Added "disabled" to plugin (user) settings (Thanks to balupton)

 860   *

 861   * Revision 1.28  2006/04/11 21:22:26  fplanque

 862   * partial cleanup

 863   *

 864   */
 865  ?>


Généré le : Thu Nov 29 23:58:50 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics