private function output($message) { $template = new Gpf_Templates_Template('quick_task.stpl'); $template->assign('message', $message); $template->assign('title', Gpf_Application::getInstance()->getName() . ' - ' . $this->_('Merchant')); echo $template->getHTML(); }
/** * Load role privileges * * @service * @anonym * @param Gpf_Rpc_Params $params * @return Gpf_Data_RecordSet */ public function loadRolePrivileges(Gpf_Rpc_Params $params) { if (!Gpf_Session::getAuthUser()->hasPrivilege(Gpf_Privileges::ROLE, Gpf_Privileges::P_READ) && !Gpf_Session::getAuthUser()->hasPrivilege(Gpf_Privileges::ROLE, Pap_Privileges::P_READ_OWN)) { throw new Gpf_Rpc_PermissionDeniedException('Gpf_Role_RolePrivilegesForm', 'loadRolePrivileges'); } $role = new Gpf_Db_Role(); $role->setId($params->get('roleid')); $role->load(); $defaultPrivileges = Gpf_Application::getInstance()->getDefaultPrivilegesByRoleType($role->getRoleType()); $result = new Gpf_Data_RecordSet(); $result->addColumn('object'); $result->addColumn('objectName'); $result->addColumn('possiblePrivileges'); $result->addColumn('activePrivileges'); $rolePrivileges = Gpf_Privileges::loadPrivileges($role->getId()); foreach ($defaultPrivileges->getDefaultPrivileges() as $object => $privileges) { $record = new Gpf_Data_Record($result->getHeader()); $record->add('object', $object); $record->add('objectName', ucfirst(str_replace('_', ' ', strtolower($object)))); $allTypes = $defaultPrivileges->getObjectToTypeRelation(); $record->add('possiblePrivileges', implode(',', $allTypes[$object])); if (array_key_exists($object, $rolePrivileges)) { $record->add('activePrivileges', implode(',', array_keys($rolePrivileges[$object]))); } else { $record->add('activePrivileges', ''); } $result->addRecord($record); } $result->sort('objectName'); return $result; }
public function isApplicationCodeValid() { if (strlen($this->applicationCode) <= 0) { return true; } return $this->applicationCode == Gpf_Application::getInstance()->getCode(); }
/** * @service report_problem write * * @param Gpf_Rpc_Params $params * @return Gpf_Rpc_Form */ public function report(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); $subject = 'PAP4: '.$form->getFieldValue('subject'); $message = 'License: '.$form->getFieldValue('licenseId').'<br>'. 'Product: <b>'.Gpf_Settings::get(Pap_Settings::BRANDING_TEXT_POST_AFFILIATE_PRO).' '.Gpf_Settings::get(Gpf_Settings_Gpf::VARIATION).'</b><br>'. 'Version: <b>'.Gpf_Application::getInstance()->getVersion().'</b><br>'. 'Url: <a href="'.Gpf_Paths::getInstance()->getFullBaseServerUrl().'">'.Gpf_Paths::getInstance()->getFullBaseServerUrl().'</a><br>'. '-------------------------------------------------------------------------------<br>'. $form->getFieldValue('message'); $mail = new Gpf_Db_Mail(); $mail->setSubject($subject); $mail->setHtmlBody($message); $mail->setFromMail($form->getFieldValue('email')); $mail->setRecipients("*****@*****.**"); try { $mail->insert(); $mail->scheduleNow(true); $form->setInfoMessage($this->_("Email sent")); } catch (Exception $e) { $form->setErrorMessage($this->_("Error while sending mail")); } return $form; }
protected function buildWhere() { parent::buildWhere(); $this->_selectBuilder->where->add(Gpf_Db_Table_Accounts::ID, '=', Gpf_Application::getInstance()->getAccountId()); $this->_selectBuilder->where->add(Gpf_Db_Table_MailTemplates::IS_CUSTOM, '=', Gpf::YES); $this->_selectBuilder->where->add(Gpf_Db_Table_MailTemplates::USERID, '=', Gpf_Session::getAuthUser()->getUserId()); }
/** * * @return Gpf_Rpc_Form */ public function getDescription() { $data = new Gpf_Rpc_Form(); $data->setField(self::VERSION, Gpf_Application::getInstance()->getVersion()); $data->setField(self::SCENARION_NAME, $this->name); return $data; }
function __construct() { parent::__construct(); $this->setApplication(Gpf_Application::getInstance()->getCode()); $date = new Gpf_DateTime(); $this->setDateinserted($date->toDateTime()); }
/** * @anonym * @param Gpf_Rpc_Params $params * @service * @return Gpf_Rpc_Form */ public function load(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); $form->setField(self::LICENSE_AGREE_NAME, ''); $form->setField(self::LICENSE_ID_NAME, ''); $form->setField(self::VERSION_NAME, Gpf_Application::getInstance()->getVersion()); return $form; }
public function __construct() { $this->codeName = 'PapCore'; $this->name = 'Pap Core Plugin'; $this->description = 'Pap Core functionality.'; $this->version = Gpf_Application::getInstance()->getVersion(); $this->pluginType = self::PLUGIN_TYPE_SYSTEM; $this->initDefines(); }
/** * Import selected language into database and * create language cache file in account directory */ protected function importLanguage($code) { $fileName = Gpf_Paths::getInstance()->getLanguageInstallDirectory() . Gpf_Application::getInstance()->getCode() . '_' . $code . '.csv'; if (!Gpf_Io_File::isFileExists($fileName)) { return; } $importer = new Gpf_Lang_ImportLanguageTask($fileName, $code, false); $importer->run(); }
/** * Unset on all languages status default language */ public function unsetDefaultLanguage($defaultLanguageId) { $sql = new Gpf_SqlBuilder_UpdateBuilder(); $sql->from->add(self::getName()); $sql->where->add(Gpf_Db_Table_Accounts::ID, '=', Gpf_Application::getInstance()->getAccountId()); $sql->where->add(Gpf_Db_Table_Languages::ID, '<>', $defaultLanguageId); $sql->set->add(self::IS_DEFAULT, Gpf::NO); $sql->execute(); }
private function getFilename($server = true) { $ext = 's'; if (!$server) { $ext = 'c'; } $application = Gpf_Application::getInstance()->getCode(); return $this->directory . $application . '_' . $this->languageCode . ".{$ext}.php"; }
protected function createAuthUser() { if (!$this->existsVar(self::AUTH_USER)) { $authUser = Gpf::newObj(Gpf_Application::getInstance()->getAuthClass()); $this->authUser = $authUser->createAnonym(); $this->save($this->authUser); } else { $this->authUser = $this->getVar(self::AUTH_USER); } }
/** * Return list of all system mail templates * @service mail_template read */ public function getAllSystemTemplates() { $sql = new Gpf_SqlBuilder_SelectBuilder(); $sql->select->add(Gpf_Db_Table_MailTemplates::ID); $sql->select->add(Gpf_Db_Table_MailTemplates::TEMPLATE_NAME); $sql->from->add(Gpf_Db_Table_MailTemplates::getName()); $sql->where->add(Gpf_Db_Table_Accounts::ID, '=', Gpf_Application::getInstance()->getAccountId()); $sql->where->add(Gpf_Db_Table_MailTemplates::IS_CUSTOM, '=', Gpf::NO); return $sql->getAllRows(); }
protected function initScenario() { if(!Gpf_Application::getInstance()->isInstalled()) { $this->scenario = new Pap_Install_CleanInstallScenario(); return; } $updateFiles = new Gpf_Install_UpdateApplicationFiles(); if(!Gpf_Application::getInstance()->isUpdated() || $updateFiles->isAvailable()) { $this->scenario = new Pap_Install_UpdateScenario(); return; } $this->scenario = new Gpf_Install_DoneScenario(); }
/** * Execute cron manually from UI (request can take max 10 seconds) * * @service tasks execute * @return Gpf_Rpc_Action */ public function manualExecution(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); if (Gpf_Application::getInstance()->isInMaintenanceMode()) { $action->setInfoMessage($this->_('Upgrade in progress')); } else { $this->runExistingTasks(10, null, array()); $this->scheduleNewTasks(null, array()); $action->setInfoMessage($this->_('Cron request finished.')); } $action->addOk(); return $action; }
/** * Compute active languages recordset from install directory language files * * @return Gpf_Data_IndexedRecordSet */ public function getActiveLanguagesNoRpc() { $result = new Gpf_Data_IndexedRecordSet('code'); $result->setHeader(array(Gpf_Db_Table_Languages::CODE, Gpf_Db_Table_Languages::NAME, Gpf_Db_Table_Languages::ENGLISH_NAME, Gpf_Db_Table_Languages::IS_DEFAULT)); $langCacheDirectory = Gpf_Paths::getInstance()->getInstallDirectoryPath() . Gpf_Paths::CACHE_DIRECTORY . Gpf_Lang_Dictionary::LANGUAGE_DIRECTORY; foreach (new Gpf_Io_DirectoryIterator($langCacheDirectory) as $file) { if (preg_match('!^' . Gpf_Application::getInstance()->getCode() . '_(.+)\\.s\\.php$!', $file, $matches)) { $language = $this->loadLanguage($matches[1]); $result->add(array($matches[1], $language->getName(), $language->getEnglishName(), Gpf::NO)); } } return $result; }
/** * Get recordset of active languages in this account * * @return Gpf_Data_IndexedRecordSet */ public function getActiveLanguagesNoRpc() { $sql = new Gpf_SqlBuilder_SelectBuilder(); $sql->select->add(Gpf_Db_Table_Languages::CODE); $sql->select->add(Gpf_Db_Table_Languages::ENGLISH_NAME); $sql->select->add(Gpf_Db_Table_Languages::NAME); $sql->select->add(Gpf_Db_Table_Languages::IS_DEFAULT); $sql->from->add(Gpf_Db_Table_Languages::getName()); $sql->where->add(Gpf_Db_Table_Accounts::ID, '=', Gpf_Application::getInstance()->getAccountId()); $sql->where->add(Gpf_Db_Table_Languages::ACTIVE, '=', Gpf::YES); $sql->orderBy->add(Gpf_Db_Table_Languages::NAME); return $sql->getAllRowsIndexedBy(Gpf_Db_Table_Languages::CODE); }
/** * Get array of role privileges * * @param string $roleId * @return array */ public static function loadPrivileges($roleId) { try { return self::loadPrivilegesFromDefault(Gpf_Application::getInstance()->getRoleDefaultPrivileges($roleId)); } catch (Gpf_Exception $e) { $privilegesValues = array(); $privilegesTable = Gpf_Db_Table_RolePrivileges::getInstance(); $privileges = $privilegesTable->getAllPrivileges($roleId); foreach ($privileges as $privilege) { $privilegesValues[$privilege->get('object')][$privilege->get('privilege')] = true; } return $privilegesValues; } }
protected function loadSetting() { $this->addValue("theme", Gpf_Session::getAuthUser()->getTheme()); $this->addValue("date_time_format", 'MM/d/yyyy HH:mm:ss'); $this->addValue("programVersion", Gpf_Application::getInstance()->getVersion()); $this->addValue(Gpf_Settings_Gpf::NOT_FORCE_EMAIL_USERNAMES, Gpf_Settings::get(Gpf_Settings_Gpf::NOT_FORCE_EMAIL_USERNAMES)); $quickLaunchSettings = new Gpf_Desktop_QuickLaunch(); $this->addValue(Gpf_Desktop_QuickLaunch::SHOW_QUICK_LAUNCH, $quickLaunchSettings->getShowQuickLaunch()); $this->addValue(Gpf_Settings_Gpf::REGIONAL_SETTINGS_THOUSANDS_SEPARATOR, Gpf_Settings_Regional::getInstance()->getThousandsSeparator()); $this->addValue(Gpf_Settings_Gpf::REGIONAL_SETTINGS_DECIMAL_SEPARATOR, Gpf_Settings_Regional::getInstance()->getDecimalSeparator()); $this->addValue(Gpf_Settings_Gpf::REGIONAL_SETTINGS_DATE_FORMAT, Gpf_Settings_Regional::getInstance()->getDateFormat()); $this->addValue(Gpf_Settings_Gpf::REGIONAL_SETTINGS_TIME_FORMAT, Gpf_Settings_Regional::getInstance()->getTimeFormat()); Gpf_Plugins_Engine::extensionPoint('Core.loadSetting', $this); }
/** * * @param Gpf_Rpc_Params $params * @return Gpf_Install_CreateAccountTask */ private function getTask(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); $username = $form->getFieldValue(self::USERNAME); $password = $form->getFieldValue(self::PASSWORD); $firstname = $form->getFieldValue(self::FIRSTNAME); $lastname = $form->getFieldValue(self::LASTNAME); $account = Gpf_Application::getInstance()->createAccount(); $account->setDefaultId(); $account->setEmail($username); $account->setPassword($password); $account->setFirstname($firstname); $account->setLastname($lastname); return $account->getCreateTask(); }
public static function assignTemplateVariables(Gpf_Templates_Template $template) { if (Gpf_Session::getAuthUser()->isLogged()) { $template->assign('isLogged', '1'); } else { $template->assign('isLogged', '0'); } $template->assign('papCopyrightText', Gpf_Settings::get(Pap_Settings::BRANDING_TEXT)); $template->assign('papVersionText', 'version ' . Gpf_Application::getInstance()->getVersion()); $template->assign('postAffiliatePro', Gpf_Settings::get(Pap_Settings::BRANDING_TEXT_POST_AFFILIATE_PRO)); $template->assign('qualityUnitPostaffiliateproLink', Gpf_Settings::get(Pap_Settings::BRANDING_QUALITYUNIT_POSTAFFILIATEPRO_LINK)); $template->assign('postAffiliateProHelp', Gpf_Settings::get(Pap_Settings::BRANDING_POST_AFFILIATE_PRO_HELP_LINK)); $template->assign('qualityUnitChangeLog', Gpf_Settings::get(Pap_Settings::BRANDING_QUALITYUNIT_CHANGELOG_LINK)); $template->assign('knowledgebaseUrl', Gpf_Settings::get(Pap_Settings::BRANDING_KNOWLEDGEBASE_LINK)); $template->assign('PAP', Gpf_Settings::get(Pap_Settings::BRANDING_QUALITYUNIT_PAP)); $template->assign('tutorialVideosBaseLink', Gpf_Settings::get(Pap_Settings::BRANDING_TUTORIAL_VIDEOS_BASE_LINK)); }
private function saveReportsSendTask() { $task = new Gpf_Db_PlannedTask(); $task->setClassName(Pap_Merchants_Config_EmailNotificationsFormBase::REPORTS_SEND_CLASS); $task->setRecurrencePresetId('A'); $task->setParams(serialize(array('lastdate' => Gpf_Common_DateUtils::now()))); $task->setAccountId(Gpf_Application::getInstance()->getAccountId()); try { $task->loadFromData(array( Gpf_Db_Table_PlannedTasks::CLASSNAME, Gpf_Db_Table_PlannedTasks::RECURRENCEPRESETID, Gpf_Db_Table_PlannedTasks::ACCOUNTID)); } catch (Gpf_DbEngine_NoRowException $e) { $task->insert(); } catch (Gpf_DbEngine_TooManyRowsException $e) { } }
/** * * @service * @anonym * * @param Gpf_Rpc_Params $params */ public function getLatestVersion(Gpf_Rpc_Params $params) { $data = new Gpf_Rpc_Data($params); $request = new Gpf_Rpc_DataRequest('Dp_Version_Info', 'getLatestVersion'); $request->setUrl(Gpf_Install_LicenseManager::MEMBERS_URL); $request->setField('id', $data->getParam('id')); try { $request->sendNow(); $versionInfo = $request->getData(); if (version_compare($versionInfo->getValue('version'), Gpf_Application::getInstance()->getVersion()) < 0) { $versionInfo->setValue('version', Gpf_Application::getInstance()->getVersion()); } return $versionInfo; } catch (Exception $e) { } return $data; }
private function getNewDistributionFileName() { $filePreffix = Gpf_Application::getInstance()->getCode() . '_'; $directory = new Gpf_Io_DirectoryIterator(Gpf_Paths::getInstance()->getTopPath() . Gpf_paths::INSTALL_DIR, self::FILE_EXTENSION); $maxVersion = '0'; foreach ($directory as $file) { if (strpos($file, $filePreffix) !== 0) { continue; } $version = substr($file, strlen($filePreffix), strlen($file) - strlen(self::FILE_EXTENSION) - strlen($filePreffix)); if (version_compare($maxVersion, $version) == -1) { $maxVersion = $version; } } if (version_compare($maxVersion, Gpf_Application::getInstance()->getVersion()) <= 0) { return null; } return $filePreffix . $maxVersion . self::FILE_EXTENSION; }
/** * @return Gpf_DbEngine_Row */ protected function createEmptyRow() { $row = new Pap_Db_PayoutOption(); $row->set(Gpf_Db_Table_Accounts::ID, Gpf_Application::getInstance()->getAccountId()); $row->setName($this->_("New payout option")); $row->setStatus(Pap_Db_PayoutOption::DISABLED); $row->setOrder(1); $i = 2; while ($i < 10) { try { $row->check(); break; } catch (Gpf_DbEngine_Row_CheckException $e) { $row->setName($this->_("New payout option %s", $i)); $i++; } } return $row; }
protected function copy(Gpf_Io_File $source, Gpf_Io_File $target) { $this->resourceOverwritten = false; if ($target->isExists() && $this->isFileChanged($source, $target)) { try { Gpf_Io_File::copy($target, new Gpf_Io_File($target->getFileName() . '.v' . str_replace('.', '_', Gpf_Application::getInstance()->getVersion())), $this->mode); $this->resourceOverwritten = true; } catch (Gpf_Exception $e) { $message = $this->_('Could not backup changed theme resource file %s (%s)', $target->getFileName(), $e->getMessage()); Gpf_Log::error($message); throw new Gpf_Exception($message); } } try { Gpf_Io_File::copy($source, $target, $this->mode); } catch (Gpf_Exception $e) { $message = $this->_('Could not install new theme resource (%s) file. Make sure that file is writable by webserver.', $target->getFileName()); Gpf_Log::error($message); throw new Gpf_Exception($message); } }
public function generateManifest() { $file = new Gpf_Io_File(Gpf_Paths::getInstance()->getAccountConfigDirectoryPath() . self::getManifestFileName()); $file->setFileMode('w'); $file->open('w'); if ($file->isOpened()) { $file->write('{"betaManifestVersion":1,"version":"' . Gpf_Application::getInstance()->getCode() . '_' . Gpf_Application::getInstance()->getInstalledVersion() . md5(rand()) . '","entries":[{"url":""}'); //add js libraries $this->addJsLibraries($file); //add images, css and other theme resources $this->addImages($file); $file->write(']}'); $file->close(); } }
/** * Create new language * * @service language add * @return Gpf_Rpc_Form */ public function add(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); $lang = new Gpf_Db_Language(); $lang->setCode($form->getFieldValue(Gpf_Db_Table_Languages::CODE)); $lang->setAccountId(Gpf_Application::getInstance()->getAccountId()); $lang->setId($lang->generateId()); try { //Load should fail, otherwise it is error - language already exists $lang->load(); $form->setErrorMessage($this->_('Language code %s is already used in your installation', $form->getFieldValue(Gpf_Db_Table_Languages::CODE))); return $form; } catch (Exception $e) { } try { //Load language from default csv file $fileNameDefault = Gpf_Paths::getInstance()->getLanguageInstallDirectory() . Gpf_Application::getInstance()->getCode() . '_' . Gpf_Lang_CsvHandler::DEFAULT_LANGUAGE . '.csv'; $file = new Gpf_Io_Csv_Reader($fileNameDefault, ';', '"', array('source', 'translation', 'type', 'module', 'status', 'customer')); $csvLanguage = new Gpf_Lang_CsvLanguage(); $csvLanguage->loadFromCsvFile($file); $form->fill($lang); $lang->setAccountId(Gpf_Application::getInstance()->getAccountId()); $lang->setId($lang->generateId()); $lang->setActive(true); $lang->setTranslatedPercentage(0); $lang->insert(); //update metadata $csvLanguage->copyMetadataFromDbLanguage($lang); foreach ($csvLanguage->getTranslations() as $translation) { $translation->setStatus(Gpf_Lang_Parser_Translation::STATUS_NOT_TRANSLATED); } //export cache $csvLanguage->exportAccountCache(); } catch (Exception $e) { $form->setErrorMessage($this->_('Failed to create new language: %s', $e->getMessage())); return $form; } $form->setInfoMessage($this->_('New language with code %s created', $form->getFieldValue(Gpf_Db_Table_Languages::CODE))); return $form; }
/** * Returns row data for grid * * @service language read * * @param $filters * @param $limit * @param $offset * @param $sort_col * @param $sort_asc * @param Gpf_Data_RecordSet $columns * @return Gpf_Rpc_Serializable */ public function getRows(Gpf_Rpc_Params $params) { $this->_params = $params; $this->_sortColumn = $params->get('sort_col'); $this->_sortAsc = $params->get('sort_asc'); $this->_requiredColumns = new Gpf_Data_IndexedRecordSet('id'); $this->_requiredColumns->loadFromArray($params->get('columns')); $response = new Gpf_Rpc_Object(); $recordHeader = new Gpf_Data_RecordHeader(); $result = new Gpf_Data_RecordSet(); foreach ($this->getAllViewColumns() as $column) { $result->addColumn($column->get('id')); $recordHeader->add($column->get('id')); } $result->addColumn('id'); $recordHeader->add('id'); $languagesIterator = new Gpf_Io_DirectoryIterator(Gpf_Paths::getInstance()->getLanguageInstallDirectory(), 'csv', false); $languagesCount = 0; foreach ($languagesIterator as $fullName => $file) { if (preg_match('/^' . Gpf_Application::getInstance()->getCode() . '_(.+)\\.csv$/', $file, $matches)) { $file = new Gpf_Io_Csv_Reader($fullName, ';', '"', array('source', 'translation', 'type', 'module', 'status', 'customer')); $language = new Gpf_Lang_CsvLanguage(); $language->loadFromCsvFile($file, true); $languagesCount++; $record = new Gpf_Data_Record($recordHeader); $record->set('id', $fullName); $record->set(Gpf_Db_Table_Languages::CODE, $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_CODE)); $record->set(Gpf_Db_Table_Languages::NAME, $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_NAME)); $record->set(Gpf_Db_Table_Languages::ENGLISH_NAME, $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_ENG_NAME)); $record->set(Gpf_Db_Table_Languages::TRANSLATED_PERCENTAGE, $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_TRANSLATION_PERCENTAGE)); $record->set(Gpf_Db_Table_Languages::AUTHOR, $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_AUTHOR)); $record->set(Gpf_Db_Table_Languages::VERSION, $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_VERSION)); $result->addRecord($record); } } $response->rows = $result->toObject(); $response->count = $languagesCount; return $response; }