Multitype Plugins

Developers
katzlbt
2006-08-27
2013-05-02
  • katzlbt
    katzlbt
    2006-08-27

    I will switch to multitype plugins so the function type() will change to isType(parameter) --- returns true if plugin needs a specific funtion or interface.

    function isType($t)
    { return $t=='listMenu' || $t=='addressOutput'; }

     
    • katzlbt
      katzlbt
      2006-08-27

      Ok I have extended and slightly redesigned the Plugin system.

      It could now accomplish at least your relatives code as plugin.

      New plugins can inject output into the address card and inject user interfaces into the edit page and read the values in save.php.

      The changes should materialize in the SVN repository in 1-2 days.

      Watch these:
      http://svn.sourceforge.net/viewvc/tab-2/trunk/plugins/PluginManager.php?revision=95&view=markup
      http://svn.sourceforge.net/viewvc/tab-2/trunk/plugins/AdminCertificateAuthority.plugin.php?revision=95&view=markup

       
    • katzlbt
      katzlbt
      2006-08-28

      Here are the correct links to an example for a plugin that extends TAB-R extensively:

      http://svn.sourceforge.net/viewvc/tab-2/trunk/plugins/AdminCertificateAuthority.plugin.php?view=markup
      http://svn.sourceforge.net/viewvc/tab-2/trunk/plugins/PluginManager.php?view=markup

      New plugins can do the following:
      1. Display custom output on the address card.
      2. Display a custom interface in edit.php
      3. Collect info in save.php
      4. Extend the DB (with separate tables)

      Plugins can modify the DB on install and should remove their modifications on uninstall!!

      Curretly there is no UI to install and uninstall plugins so for now this is a manual process for advanced plugins that require DB changes. This is a separate task.

      Currently the only output location on the address card is after Websites. This can be changed on request.

       
    • ayryq
      ayryq
      2006-08-29

      How should plugins handle language support? Should the various languages be just push-ed onto the $lang array somehow? Or do you plan plugin-support within the language files themselves? Is there a variable name syntax that will guarantee uniquness?

      Eric

       
    • ayryq
      ayryq
      2006-08-31

      The current location of the insert in edit.php is funny - shouldn't it be moved up to before LBL_OTHERINFO? Currently if a new section is added (with a new heading to match everything else), the additional info textarea is separated from LBL_OTHERINFO; it doesn't have a label of its own.

      Eric

       
    • katzlbt
      katzlbt
      2006-08-31

      Plugins are classes so their variables are not visible outside.

      The language is under consideration.
      It is too early to tell how the translation system will work.

      For now, I suggest to use english strings and we will find a solution later.

      Location of interface: yes there will be new locations to place the interfaces other than into 'otherInfo'.

      I will add a beforeOtherInfo location.

      function editContactInterface($id, $location)
      {
      if($location!='beforeOtherInfo')
          return "";

      ...