/** * Updates composer dependencies. */ public function updateDependencies() { $container = InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer'); // Keep track of the current directory $previousDirectory = getcwd(); // Retrieve the Innomatic Platform root directory $platformHome = RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getPlatformHome(); // Switch current directory to the Innomatic Platform root chdir($platformHome); // Call composer install command $input = new ArrayInput(array('command' => 'update')); if ($container->getInterface() == InnomaticContainer::INTERFACE_CONSOLE) { $output = new ConsoleOutput(); } else { $output = new BufferedOutput(); } $application = new ComposerApplication(); // Prevent application run method from exiting the script $application->setAutoExit(false); $application->run($input, $output); // Switch back to the previous current directory chdir($previousDirectory); // Switch back to the standard Innomatic PHP error handler set_error_handler(array($container, 'errorHandler')); }
/** * Class constructor. * * @param string $tenantName Internal name of the tenant. * @access public * @return void */ public function ___construct($tenantName = '') { if (!strlen($tenantName)) { $tenantName = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentTenant()->getDomainId(); } $this->home = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . $tenantName . '/'; if (!$this->modulesClassPathsAdded) { $this->addModulesClassPaths(); } }
public function ___construct() { $root_home = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome(); $this->home = $root_home; $this->config = array(); if (file_exists($root_home . 'innomatic/core/conf/webapp.ini')) { $this->useDefaults = false; $this->config = @parse_ini_file($root_home . 'innomatic/core/conf/webapp.ini'); } else { $this->useDefaults = true; } $this->processor = new WebAppProcessor(); }
/** * Reports errors */ public function report(WebAppRequest $req, WebAppResponse $res) { $statusReportsTree = simplexml_load_file(\Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'innomatic/core/conf/webapp/statusreports.xml'); $statusReports = array(); foreach ($statusReportsTree->status as $status) { $statusReports[sprintf('%s', $status->statuscode)] = sprintf('%s', $status->statusreport); } $tpl = new \Innomatic\Php\PHPTemplate(\Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'innomatic/core/conf/webapp/report.tpl.php'); $tpl->set('status_code', $res->getStatus()); $tpl->set('message', htmlspecialchars($res->getMessage())); $tpl->set('report', str_replace('{0}', $res->getMessage(), isset($statusReports[$res->getStatus()]) ? $statusReports[$res->getStatus()] : '')); $tpl->set('title', $req->getServerName()); $tpl->set('server_info', $req->getServerName()); $tpl->set('e', $res->getException()); $res->startBuffer(); echo $tpl->parse(); $res->flushBuffer(); }
public function doGet(\Innomatic\Webapp\WebAppRequest $req, \Innomatic\Webapp\WebAppResponse $res) { // Start Innomatic $innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer'); $innomatic->setInterface(\Innomatic\Core\InnomaticContainer::INTERFACE_EXTERNAL); $root = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer'); $innomatic_home = $root->getHome() . 'innomatic/'; $innomatic->bootstrap($innomatic_home, $innomatic_home . 'core/conf/innomatic.ini'); // Start Innomatic domain \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->startDomain(\Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getCurrentWebApp()->getName()); // Innomedia page $scope_page = 'frontend'; // Check if the page exists in the page tree $pageSearch = PageTree::findPageByPath(substr($req->getPathInfo(), 1)); if ($pageSearch === false) { // This is a static page (excluding the home page). $location = explode('/', $req->getPathInfo()); $module_name = isset($location[1]) ? $location[1] : ''; $page_name = isset($location[2]) ? $location[2] : ''; $pageId = isset($location[3]) ? $location[3] : 0; } else { // This is the home page or a content page. $module_name = $pageSearch['module']; $page_name = $pageSearch['page']; $pageId = $pageSearch['page_id']; } // Define Innomatic context $home = \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getCurrentWebApp()->getHome(); $context = Context::instance('\\Innomedia\\Context'); $context->setRequest($req)->setResponse($res)->process(); // Build Innomedia page $page = new Page($module_name, $page_name, $pageId, $scope_page); $page->parsePage(); // Check if the page is valid if (!$page->isValid()) { $res->sendError(\Innomatic\Webapp\WebAppResponse::SC_NOT_FOUND, $req->getRequestURI()); } else { $page->build(); } }
public function doGet(WebAppRequest $req, WebAppResponse $res) { // Start Innomatic and Tenant $innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer'); $innomatic->setInterface(\Innomatic\Core\InnomaticContainer::INTERFACE_EXTERNAL); $root = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer'); $innomatic_home = $root->getHome() . 'innomatic/'; $innomatic->bootstrap($innomatic_home, $innomatic_home . 'core/conf/innomatic.ini'); $innomatic->startDomain(\Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getCurrentWebApp()->getName()); $request_uri = \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getProcessor()->getRequest()->getUrlPath(true) . '/_xajax/call.xajax'; $xajax = Xajax::instance('Xajax', $request_uri); // Set debug mode if ($innomatic->getState() == \Innomatic\Core\InnomaticContainer::STATE_DEBUG) { $xajax->debugOn(); } $xajax->setLogFile($innomatic->getHome() . 'core/log/ajax.log'); $cfg = XajaxConfig::getInstance(\Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getCurrentWebApp(), \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getCurrentWebApp()->getHome() . 'core/conf/ajax.xml'); if (isset($cfg->functions)) { foreach ($cfg->functions as $name => $functionData) { $xajax->registerExternalFunction(array($name, $functionData['classname'], $functionData['method']), $functionData['classfile']); } } $xajax->processRequests(); }
public function __construct($home) { $this->home = $home; $this->name = basename($home); // If the webapp contains classes, adds them to the include path. // The webapp classes take precedence over Innomatic ones. if (file_exists($this->home . 'core/classes/')) { set_include_path($this->home . 'core/classes/' . PATH_SEPARATOR . get_include_path()); } // Sets var directory $container = \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer'); if ($container->useDefaults() or !$container->isKey('webapps.var_dir') or $container->getKey('webapps.var_dir') == 'shared') { $this->varDir = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'innomatic/core/domains/' . $this->getName() . '/var/'; } else { $this->varDir = $this->getHome() . 'core/var/'; } // Make var directories if (!is_dir($this->varDir)) { @mkdir($this->varDir, 0777, true); } // Init configuration // Must be called only after the cache directory has been set $this->parseConfig($home . 'core/web.xml'); }
public function testGetHomeIsCorrect() { $this->assertEquals($this->context->getHome(), \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'innomatic/'); }
/** * Used only when the component is a domain override. * * @param unknown_type $domainid * @param unknown_type $params * @return bool */ public function doDisableDomainAction($domainid, $params) { if (!strlen($params['name'])) { return false; } if (!isset($params['override']) and $params['override'] = self::OVERRIDE_DOMAIN) { return true; } $domain_query = $this->rootda->execute('SELECT domainid FROM domains WHERE id=' . $domainid); if ($domain_query == false or $domain_query->getNumberRows() == 0) { return false; } $domain_id = $domain_query->getFields('domainid'); if (file_exists($this->container->getHome() . 'core/domains/' . $domain_id . '/overrides/classes/' . $params['name'])) { \Innomatic\Core\RootContainer::clearClassesCache(); return unlink($this->container->getHome() . 'core/domains/' . $domain_id . '/overrides/classes/' . $params['name']); // TODO add removal of empty class directory } return false; }
/** * Prepares the environment before running a test. */ protected function setUp() { parent::setUp(); $this->InnomaticSettings = new \Innomatic\Core\InnomaticSettings(\Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . '/innomatic/core/classes/innomatic/core/tests/innomatic.ini'); }
<?php /** * Innomatic * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE. * * @copyright 1999-2014 Innomatic Company * @license http://www.innomatic.io/license/ New BSD License * @link http://www.innomatic.io */ // Saves webapp home. $webAppHome = getcwd() . '/'; // Checks if this receiver script has been called directly. if ($webAppHome == dirname(__FILE__) . '/') { // Redirects to innomatic webapp. header('Location: innomatic/'); exit; } // Starts the Root Container. require_once dirname(__FILE__) . '/innomatic/core/classes/innomatic/core/RootContainer.php'; $rootContainer = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer'); // Starts the WebAppContainer. $container = \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer'); // Starts the WebApp. This is where all the real stuff is done. $container->startWebApp($webAppHome); // Stops the Root Container so that the instance is marked as cleanly exited. $rootContainer->stop();
protected function getUploadedFilesTempPath() { list($pageModule, $pageName) = explode('/', $this->pageName); // Handle case of site wide block parameters if (!strlen($pageModule) && !strlen($pageName)) { $pageModule = 'site'; $pageName = 'global'; } list($blockModule, $blockName) = explode('/', $this->blockName); $pageId = strlen($this->pageId) ? $this->pageId : 0; $blockCounter = strlen($this->blockCounter) ? $this->blockCounter : 1; $root = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer'); $innomatic_home = $root->getHome() . 'innomatic/'; $domainName = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDomainId(); return $innomatic_home . 'core/temp/dropzone/' . $domainName . '/' . $pageModule . '/' . $pageName . '/' . $pageId . '/' . $blockModule . '/' . $blockName . '/' . $blockCounter; }
* Innomatic * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE. * * @copyright 1999-2014 Innoteam Srl * @license http://www.innomatic.io/license/ New BSD License * @link http://www.innomatic.io */ // Copy the phpunit distribution file @copy($tmpdir . '/phpunit.xml', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'phpunit.xml'); // Updates the front receiver file. @copy($tmpdir . '/../index.php', \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'index.php'); @chmod(\Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'index.php', 0644); /* @copy($tmpdir . '/core/web.xml', \Innomatic\Core\InnomaticContainer::instance('\Innomatic\Core\InnomaticContainer')->getHome() . 'core/web.xml'); @chmod(\Innomatic\Core\InnomaticContainer::instance('\Innomatic\Core\InnomaticContainer')->getHome() . 'core/web.xml', 0644); */ @copy($tmpdir . '/index.php', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'index.php'); @chmod(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'index.php', 0644); @copy($tmpdir . '/favicon.png', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'favicon.png'); @chmod(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'favicon.png', 0644); // Innomatic dependencies fix // $appQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT id
public function run($webApp = '') { // Change current directory to the legacy stack. $platformHome = getcwd(); // @todo Must get innomatic_legacy path from configuration. chdir($platformHome . '/../innomatic_legacy/innomatic'); // Saves webapp home. $webAppHome = getcwd() . (strlen($webApp) ? '/../' . $webApp . '/' : '/'); // Start the legacy Root Container and the legacy autoloader. require_once getcwd() . '/core/classes/innomatic/core/RootContainer.php'; $rootContainer = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer'); // Add the Symfony service container $rootContainer->setServiceContainer($this->container); // Starts the WebAppContainer. $container = \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer'); ob_start(); // Starts the WebApp. This is where all the real stuff is done. $container->startWebApp($webAppHome); $result = ob_get_contents(); ob_end_clean(); // Stops the Root Container so that the instance is marked as cleanly exited. $rootContainer->stop(); chdir($platformHome); return $result; }