public function getPackageObject() { return Package::getByID($this->pkgID); }
protected static function install($dir, $pThemeHandle, $pkgID) { $result = null; if (is_dir($dir)) { $pkg = null; if ($pkgID) { $pkg = \Concrete\Core\Package\Package::getByID($pkgID); } $db = Loader::db(); $cnt = $db->getOne('select count(pThemeID) from PageThemes where pThemeHandle = ?', [$pThemeHandle]); if ($cnt > 0) { throw new \Exception(static::E_THEME_INSTALLED); } $loc = Localization::getInstance(); $loc->pushActiveContext('system'); try { $res = static::getThemeNameAndDescription($dir, $pThemeHandle, is_object($pkg) ? $pkg->getPackageHandle() : ''); } catch (\Exception $x) { $loc->popActiveContext(); throw $x; } $loc->popActiveContext(); if (strlen($res->pError) === 0) { $pThemeName = $res->pThemeName; $pThemeDescription = $res->pThemeDescription; $db->query('insert into PageThemes (pThemeHandle, pThemeName, pThemeDescription, pkgID) values (?, ?, ?, ?)', [$pThemeHandle, $pThemeName, $pThemeDescription, $pkgID]); $env = Environment::get(); $env->clearOverrideCache(); $pt = static::getByID($db->Insert_ID()); $pt->updateThemeCustomClass(); $result = $pt; } } return $result; }
/** * @return Package */ public function install() { $cl = \Concrete\Core\Foundation\ClassLoader::getInstance(); $cl->registerPackage($this); PackageList::refreshCache(); $db = Loader::db(); $dh = Loader::helper('date'); $v = array($this->getPackageName(), $this->getPackageDescription(), $this->getPackageVersion(), $this->getPackageHandle(), 1, $dh->getOverridableNow()); $db->query("insert into Packages (pkgName, pkgDescription, pkgVersion, pkgHandle, pkgIsInstalled, pkgDateInstalled) values (?, ?, ?, ?, ?, ?)", $v); $pkg = Package::getByID($db->Insert_ID()); Package::installDB($pkg->getPackagePath() . '/' . FILENAME_PACKAGE_DB); $env = Environment::get(); $env->clearOverrideCache(); return $pkg; }
public static function getByID($wfID) { $db = Loader::db(); $r = $db->GetRow('select WorkflowTypes.wftHandle, WorkflowTypes.pkgID from Workflows inner join WorkflowTypes on Workflows.wftID = WorkflowTypes.wftID where Workflows.wfID = ?', array($wfID)); if ($r['wftHandle']) { $class = '\\Core\\Workflow\\' . Loader::helper('text')->camelcase($r['wftHandle']) . 'Workflow'; if ($r['pkgID']) { $pkg = Package::getByID($r['pkgID']); $prefix = $pkg->getPackageHandle(); } $class = core_class($class, $prefix); $obj = Core::make($class); $obj->load($wfID); if ($obj->getWorkflowID() > 0) { $obj->loadDetails(); return $obj; } } }
/** * Installs the package info row and installs the database. Packages installing additional content should override this method, call the parent method, * and use the resulting package object for further installs. * @return Package */ public function install() { PackageList::refreshCache(); $db = Database::getActiveConnection(); $dh = Core::make('helper/date'); $v = array($this->getPackageName(), $this->getPackageDescription(), $this->getPackageVersion(), $this->getPackageHandle(), 1, $dh->getOverridableNow()); $db->query("INSERT INTO Packages (pkgName, pkgDescription, pkgVersion, pkgHandle, pkgIsInstalled, pkgDateInstalled) VALUES (?, ?, ?, ?, ?, ?)", $v); $pkg = Package::getByID($db->lastInsertId()); ClassLoader::getInstance()->registerPackage($pkg); $pkg->installDatabase(); $env = Environment::get(); $env->clearOverrideCache(); Localization::clearCache(); return $pkg; }