public function updateModelBaseFile($objName, $structure)
 {
     $dependency = new Dependency();
     $dependencies = $dependency->getDependencies($objName);
     $this->_createComponents($objName, $structure, $dependencies);
     $this->_createModelBaseFileStr($objName, $structure);
     $modelBaseFileName = NamingConvention::camelCaseToSnakeCase($objName) . '_base.php';
     $modelBasePath = ROOT . '/app/model/base/' . $modelBaseFileName;
     Debug::out('update: ' . $modelBasePath);
     file_put_contents($modelBasePath, $this->_modelBaseFileStr);
 }
 /** Retreives the admin interface of this object.
  * @return The HTML fragment for this interface, or null.
  * If it returns null, this object does not support new object creation */
 public static function getAdminUIStatic($userData = null)
 {
     $html = '';
     /* PHP version check */
     $okMsg = '<td ALIGN="CENTER" STYLE="background:lime;">OK</td>';
     $errorMsg = '<td ALIGN="CENTER" STYLE="background:red;">ERROR</td>';
     $warningMsg = '<td ALIGN="CENTER" STYLE="background:yellow;">Warning</td>';
     $html .= "<table BORDER=\"1\">";
     /* PHP version check */
     $requiredPHPVersion = '5.0';
     $phpVersion = phpversion();
     $html .= "<tr><td>PHP</td>";
     if (version_compare($phpVersion, $requiredPHPVersion, ">=")) {
         $html .= "{$okMsg}<td>{$phpVersion}</td>";
         // Version 5.0.0 or later
     } else {
         $html .= "{$errorMsg}<td>" . sprintf(_("Version %s needed"), $requiredPHPVersion) . "</td>";
         // Version < 5.0.0
         $userData['error'] = 1;
     }
     $html .= "</tr>";
     if (function_exists('pg_version')) {
         //Be carefull, postgres version check will also fail if there wasn't a db connexion yet.
         $pgVersionArray = @pg_version();
         $pgVersionArray ? $pgVersion = $pgVersionArray['server'] : ($pgVersion = null);
         if ($pgVersion) {
             $postgresRecommendedVersion = '8.0';
             $postgresRequiredVersion = '7.4';
             $html .= "<tr><td>PostgreSQL</td>";
             if (version_compare($pgVersion, $postgresRecommendedVersion, ">=")) {
                 $html .= "{$okMsg}<td>{$pgVersion}</td>";
                 // Version 5.0.0 or later
             } else {
                 if (version_compare($pgVersion, $postgresRequiredVersion, ">=")) {
                     $html .= "{$warningMsg}<td>" . sprintf(_("%s may work, but version %s is recommended"), $pgVersion, $postgresRecommendedVersion) . "</td>";
                     // Version < 5.0.0
                 } else {
                     $html .= "{$errorMsg}<td>" . sprintf(_("%s is too old, version %s needed"), $pgVersion, $postgresRecommendedVersion) . "</td>";
                     // Version < 5.0.0
                     $userData['error'] = 1;
                 }
             }
             $html .= "</tr>";
         }
     }
     $html .= "</table>";
     $components = Dependency::getDependencies();
     $html .= "<table BORDER=\"1\">\n";
     $html .= "<tr><th>" . _("Component") . '<br/>' . _("Click for the component's website") . "</th>\n";
     $html .= "<th>" . _("Type") . "</th>\n";
     $html .= "<th>" . _("Status") . "</th>\n";
     $html .= "<th>" . _("Information") . "</th>\n";
     $html .= "</tr>\n";
     $even_odd = "odd";
     foreach ($components as $dependency) {
         $even_odd = 'odd' != $even_odd ? 'odd' : 'even';
         $html .= "<tr class=" . $even_odd . ">\n";
         $websiteUrl = $dependency->getWebsiteURL();
         $component_key = $dependency->getId();
         $description = $dependency->getDescription();
         $mandatory = $dependency->isMandatory();
         $type = $dependency->getType();
         if ($websiteUrl) {
             $html .= "<td><A HREF=\"{$websiteUrl}\">{$component_key}</A></td>\n";
         } else {
             $html .= "<td>{$component_key}</td>\n";
         }
         $html .= "<td>{$type}</td>\n";
         $instalMessage = null;
         $dependency->processInstallUI($instalMessage);
         $message = null;
         $available = Dependency::check($component_key, $message);
         if ($available) {
             $html .= "{$okMsg}\n";
         } else {
             if ($mandatory) {
                 $html .= "{$errorMsg}\n";
                 $error = 1;
             } else {
                 $html .= "{$warningMsg}\n";
             }
         }
         $html .= "<td>\n";
         $html .= "<em>" . _("Description") . ":</em> {$description}<br/>\n";
         if ($instalMessage) {
             $html .= "<em>" . _("Install message") . ":</em> {$instalMessage}<br/>\n";
         }
         if ($message) {
             $html .= "<em>" . _("Detection message") . ":</em> {$message}<br/>\n";
         }
         if (!$available) {
             $html .= "<em>" . _("To install") . ":</em> " . $dependency->getInstallUI() . "<br/>\n";
         }
         $html .= "</td></tr>\n";
     }
     $html .= "</table>\n";
     return $html;
 }