Esempio n. 1
0
 /**
  * {@inheritDoc}
  */
 public function installAction()
 {
     if (empty($this->config)) {
         return;
     }
     $config = $this->canonizeConfig($this->config);
     if (empty($config['sqlfile'])) {
         return;
     }
     $module = $this->event->getParam('module');
     $sqlFile = sprintf('%s/%s/%s', Pi::path('module'), $this->event->getParam('directory'), $config['sqlfile']);
     if (!file_exists($sqlFile)) {
         return array('status' => false, 'message' => sprintf('SQL file "%s" is not found.', $sqlFile));
     }
     try {
         $status = SqlSchema::query($sqlFile, $module);
     } catch (\Exception $e) {
         return array('status' => false, 'message' => 'SQL schema query failed: ' . $e->getMessage());
     }
     if (isset($config['schema'])) {
         $schemaList = $config['schema'];
     } else {
         $schemaList = SqlSchema::fetchSchema($sqlFile);
     }
     $modelSchema = Pi::model('module_schema');
     foreach ($schemaList as $name => $type) {
         $status = $modelSchema->insert(array('name' => $name, 'type' => $type, 'module' => $module));
         if (!$status) {
             return array('status' => false, 'message' => 'Module schema is not saved.');
         }
     }
     return true;
 }
Esempio n. 2
0
 /**
  * Create system module data
  *
  * @param Event $e
  * @return bool
  */
 public function createSystemSchema(Event $e)
 {
     $sqlFile = Pi::path('module') . '/system/sql/mysql.system.sql';
     $status = SqlSchema::query($sqlFile);
     return $status;
 }