123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- This directory holds import plugins for phpMyAdmin. Any new plugin should
- basically follow the structure presented here. Official plugins need to
- have str* messages with their definition in language files, but if you build
- some plugins for your use, you can directly use texts in plugin.
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * [Name] import plugin for phpMyAdmin
- *
- * @package PhpMyAdmin-Import
- * @subpackage [Name]
- */
- if (! defined('PHPMYADMIN')) {
- exit;
- }
- /* Get the import interface */
- require_once 'libraries/plugins/ImportPlugin.class.php';
- /**
- * Handles the import for the [Name] format
- *
- * @package PhpMyAdmin-Import
- */
- class Import[Name] extends ImportPlugin
- {
- /**
- * optional - declare variables and descriptions
- *
- * @var type
- */
- private $_myOptionalVariable;
- /**
- * Constructor
- */
- public function __construct()
- {
- $this->setProperties();
- }
- /**
- * Sets the import plugin properties.
- * Called in the constructor.
- *
- * @return void
- */
- protected function setProperties()
- {
- // set properties
- $props = 'libraries/properties/';
- // include the main class for properties for the import plug-ins
- include_once "$props/plugins/ImportPluginProperties.class.php";
- // include the group properties classes
- include_once "$props/options/groups/OptionsPropertyRootGroup.class.php";
- include_once "$props/options/groups/OptionsPropertyMainGroup.class.php";
- // include the needed single property items
- include_once "$props/options/items/RadioPropertyItem.class.php";
- $importPluginProperties = new ImportPluginProperties();
- $importPluginProperties->setText('[name]'); // the name of your plug-in
- $importPluginProperties->setExtension('[ext]'); // extension this plug-in can handle
- $importPluginProperties->setOptionsText(__('Options'));
- // create the root group that will be the options field for
- // $importPluginProperties
- // this will be shown as "Format specific options"
- $importSpecificOptions = new OptionsPropertyRootGroup();
- $importSpecificOptions->setName("Format Specific Options");
- // general options main group
- $generalOptions = new OptionsPropertyMainGroup();
- $generalOptions->setName("general_opts");
- // optional :
- // create primary items and add them to the group
- // type - one of the classes listed in libraries/properties/options/items/
- // name - form element name
- // text - description in GUI
- // size - size of text element
- // len - maximal size of input
- // values - possible values of the item
- $leaf = new RadioPropertyItem();
- $leaf->setName("structure_or_data");
- $leaf->setValues(
- array(
- 'structure' => __('structure'),
- 'data' => __('data'),
- 'structure_and_data' => __('structure and data')
- )
- );
- $generalOptions->addProperty($leaf);
- // add the main group to the root group
- $importSpecificOptions->addProperty($generalOptions);
- // set the options for the import plugin property item
- $importPluginProperties->setOptions($importSpecificOptions);
- $this->properties = $importPluginProperties;
- }
- /**
- * This method is called when any PluginManager to which the observer
- * is attached calls PluginManager::notify()
- *
- * @param SplSubject $subject The PluginManager notifying the observer
- * of an update.
- *
- * @return void
- */
- public function update (SplSubject $subject)
- {
- }
- /**
- * Handles the whole import logic
- *
- * @return void
- */
- public function doImport()
- {
- // get globals (others are optional)
- global $error, $timeout_passed, $finished;
- $buffer = '';
- while (! ($finished && $i >= $len) && ! $error && ! $timeout_passed) {
- $data = PMA_importGetNextChunk();
- if ($data === false) {
- // subtract data we didn't handle yet and stop processing
- $offset -= strlen($buffer);
- break;
- } elseif ($data === true) {
- // Handle rest of buffer
- } else {
- // Append new data to buffer
- $buffer .= $data;
- }
- // PARSE $buffer here, post sql queries using:
- PMA_importRunQuery($sql, $verbose_sql_with_comments);
- } // End of import loop
- // Commit any possible data in buffers
- PMA_importRunQuery();
- }
- // optional:
- /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
- /**
- * Getter description
- *
- * @return type
- */
- private function _getMyOptionalVariable()
- {
- return $this->_myOptionalVariable;
- }
- /**
- * Setter description
- *
- * @param type $my_optional_variable description
- *
- * @return void
- */
- private function _setMyOptionalVariable($my_optional_variable)
- {
- $this->_myOptionalVariable = $my_optional_variable;
- }
- }
- ?>
|