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());
 }
Example #6
0
 /**
  *
  * @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;
 }
Example #7
0
 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();
 }
Example #11
0
 /**
  * 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";
 }
Example #13
0
 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();
 }
Example #15
0
 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();        
 }
Example #16
0
 /**
  * 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;
 }
Example #18
0
 /**
  * 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();
 }
Example #22
0
 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));
 }
Example #23
0
	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;
 }