Server IP : 184.154.167.98 / Your IP : 3.138.122.24 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/puertode/public_html/mesa/include/cli/modules/ |
Upload File : |
<?php class OrganizationManager extends Module { var $prologue = 'CLI organization manager'; var $arguments = array( 'action' => array( 'help' => 'Action to be performed', 'options' => array( 'import' => 'Import organizations to the system', 'export' => 'Export organizations from the system', ), ), ); var $options = array( 'file' => array('-f', '--file', 'metavar'=>'path', 'help' => 'File or stream to process'), ); var $stream; function run($args, $options) { Bootstrap::connect(); switch ($args['action']) { case 'import': if (!$options['file']) $this->fail('Import CSV file required!'); elseif (!($this->stream = fopen($options['file'], 'rb'))) $this->fail("Unable to open input file [{$options['file']}]"); //Read the header (if any) if (($data = fgetcsv($this->stream, 1000, ","))) { if (strcasecmp($data[0], 'name')) fseek($this->stream, 0); // We don't have an header! else; // TODO: process the header here to figure out the columns // for now we're assuming one column of Name } while (($data = fgetcsv($this->stream, 1000, ",")) !== FALSE) { if (!$data[0]) $this->stderr->write('Invalid data format: Name required'); elseif (!Organization::fromVars(array('name' => $data[0], 'email'))) $this->stderr->write('Unable to import record: '.print_r($data, true)); } break; case 'export': $stream = $options['file'] ?: 'php://stdout'; if (!($this->stream = fopen($stream, 'c'))) $this->fail("Unable to open output file [{$options['file']}]"); fputcsv($this->stream, array('Name')); foreach (Organization::objects() as $org) fputcsv($this->stream, array((string) $org->getName())); break; default: $this->stderr->write('Unknown action!'); } @fclose($this->stream); } } Module::register('org', 'OrganizationManager'); ?>