当前位置: 首页>>代码示例>>PHP>>正文


PHP XMLDAO::parse方法代码示例

本文整理汇总了PHP中XMLDAO::parse方法的典型用法代码示例。如果您正苦于以下问题:PHP XMLDAO::parse方法的具体用法?PHP XMLDAO::parse怎么用?PHP XMLDAO::parse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XMLDAO的用法示例。


在下文中一共展示了XMLDAO::parse方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: installEmailTemplateData

    /**
     * Install email template localized data from an XML file.
     * NOTE: Uses qstr instead of ? bindings so that SQL can be fetched
     * rather than executed.
     * @param $templateDataFile string Filename to install
     * @param $returnSql boolean Whether or not to return SQL rather than
     * executing it
     * @param $emailKey string If specified, the key of the single template
     * to install (otherwise all are installed)
     * @return array
     */
    function installEmailTemplateData($templateDataFile, $returnSql = false, $emailKey = null)
    {
        $xmlDao = new XMLDAO();
        $sql = array();
        $data = $xmlDao->parse($templateDataFile, array('email_texts', 'email_text', 'subject', 'body', 'description'));
        if (!$data) {
            return false;
        }
        $locale = $data->getAttribute('locale');
        foreach ($data->getChildren() as $emailNode) {
            if ($emailKey && $emailKey != $emailNode->getAttribute('key')) {
                continue;
            }
            $sql[] = 'DELETE FROM email_templates_default_data WHERE email_key = ' . $this->_dataSource->qstr($emailNode->getAttribute('key')) . ' AND locale = ' . $this->_dataSource->qstr($locale);
            if (!$returnSql) {
                $this->update(array_shift($sql));
            }
            $sql[] = 'INSERT INTO email_templates_default_data
				(email_key, locale, subject, body, description)
				VALUES
				(' . $this->_dataSource->qstr($emailNode->getAttribute('key')) . ', ' . $this->_dataSource->qstr($locale) . ', ' . $this->_dataSource->qstr($emailNode->getChildValue('subject')) . ', ' . $this->_dataSource->qstr($emailNode->getChildValue('body')) . ', ' . $this->_dataSource->qstr($emailNode->getChildValue('description')) . ")";
            if (!$returnSql) {
                $this->update(array_shift($sql));
            }
        }
        if ($returnSql) {
            return $sql;
        }
        return true;
    }
开发者ID:JovanyJeff,项目名称:hrp,代码行数:41,代码来源:PKPEmailTemplateDAO.inc.php

示例2: foreach

 /**
  * Update or install review objects
  * @param $journal Journal
  * @param $reviewObjects array of review object types keys or ids
  * @param $locales array of locales
  * @param $action string (install or update)
  */
 function _updateOrInstallReviewObjectTypes($journal, $reviewObjects, $locales, $action)
 {
     $plugin =& $this->_getObjectsForReviewPlugin();
     if (!isset($journal) || !isset($reviewObjects) || !isset($locales) || !isset($action)) {
         return false;
     }
     $journalId = $journal->getId();
     $plugin->import('classes.ReviewObjectType');
     $plugin->import('classes.ReviewObjectMetadata');
     $reviewObjectTypeDao =& DAORegistry::getDAO('ReviewObjectTypeDAO');
     $reviewObjectMetadataDao =& DAORegistry::getDAO('ReviewObjectMetadataDAO');
     $onlyCommonMetadata = false;
     foreach ($reviewObjects as $keyOrId) {
         if ($action == 'install') {
             // Create a new review object type
             $reviewObjectType = $reviewObjectTypeDao->newDataObject();
             $reviewObjectType->setContextId($journalId);
             $reviewObjectType->setActive(0);
             $reviewObjectType->setKey($keyOrId);
         } elseif ($action == 'update') {
             // Get the review object type
             $reviewObjectType =& $reviewObjectTypeDao->getById($keyOrId, $journalId);
             if (!isset($reviewObjectType)) {
                 return false;
             }
             // If the type was created by the user, update only the common metadata
             if ($reviewObjectType->getKey() == NULL) {
                 $onlyCommonMetadata = true;
             }
         }
         // Callect the metadata in the array
         $reviewObjectMetadataArray = array();
         // For all languages
         foreach ($locales as $locale) {
             // Register the locale/translation file
             $localePath = $plugin->getPluginPath() . '/locale/' . $locale . '/locale.xml';
             AppLocale::registerLocaleFile($locale, $localePath, true);
             $xmlDao = new XMLDAO();
             // Get common metadata
             $commonDataPath = $plugin->getPluginPath() . '/xml/commonMetadata.xml';
             $commonData = $xmlDao->parse($commonDataPath);
             $commonMetadata = $commonData->getChildByName('objectMetadata');
             $allMetadataChildren = $commonMetadata->getChildren();
             // Get the object metadata
             if (!$onlyCommonMetadata) {
                 // Parse the review object XML file
                 $itemPath = $plugin->getPluginPath() . '/xml/reviewObjects/' . $reviewObjectType->getKey() . '.xml';
                 $data = $xmlDao->parse($itemPath);
                 if (!$data) {
                     return false;
                 }
                 // Set the review object name
                 $itemTypeName = __($data->getChildValue('objectType'), array(), $locale);
                 $reviewObjectType->setName($itemTypeName, $locale);
                 // $reviewObjectType->setDescription($itemTypeNameDescription, $locale);
                 // Get the review object role selection options
                 $roleSelectionOptions = $data->getChildByName('roleSelectionOptions');
                 // Handle Metadata
                 // Get multiple options metadata types
                 $multipleOptionsTypes = ReviewObjectMetadata::getMultipleOptionsTypes();
                 // Get metadata types defined in DTD
                 $dtdTypes = ReviewObjectMetadata::getMetadataDTDTypes();
                 // Get the review object metadata
                 $itemMetadata = $data->getChildByName('objectMetadata');
                 // Merge all (common + review objec) metadata
                 $allMetadataChildren = array_merge($commonMetadata->getChildren(), $itemMetadata->getChildren());
             }
             // Go through the metadata
             foreach ($allMetadataChildren as $metadataNode) {
                 $key = $metadataNode->getAttribute('key');
                 // If we have already went througt, collected/considered the metadata
                 if (array_key_exists($key, $reviewObjectMetadataArray)) {
                     $reviewObjectMetadata = $reviewObjectMetadataArray[$key];
                 } else {
                     if ($action == 'update') {
                         // Get the metadata
                         $reviewObjectMetadata = $reviewObjectMetadataDao->getByKey($key, $reviewObjectType->getId());
                     }
                     if ($action == 'install' || !isset($reviewObjectMetadata)) {
                         // Create a new metadata
                         $reviewObjectMetadata = $reviewObjectMetadataDao->newDataObject();
                         $reviewObjectMetadata->setSequence(REALLY_BIG_NUMBER);
                         $metadataType = $dtdTypes[$metadataNode->getAttribute('type')];
                         $reviewObjectMetadata->setMetadataType($metadataType);
                         $required = $metadataNode->getAttribute('required');
                         $reviewObjectMetadata->setRequired($required == 'true' ? 1 : 0);
                         $display = $metadataNode->getAttribute('display');
                         $reviewObjectMetadata->setDisplay($display == 'true' ? 1 : 0);
                     }
                 }
                 // Set metadata name
                 $name = __($metadataNode->getChildValue('name'), array(), $locale);
                 $reviewObjectMetadata->setName($name, $locale);
//.........这里部分代码省略.........
开发者ID:farhanabbas1983,项目名称:ojs-1,代码行数:101,代码来源:ReviewObjectTypesEditorHandler.inc.php

示例3: execute

 /**
  * @see Form::execute()
  */
 function execute()
 {
     $ofrPlugin =& PluginRegistry::getPlugin('generic', $this->parentPluginName);
     $journal =& Request::getJournal();
     $journalId = $journal->getId();
     $ofrPlugin->import('classes.ReviewObjectType');
     $reviewObjectTypeDao =& DAORegistry::getDAO('ReviewObjectTypeDAO');
     if ($this->reviewObjectType == null) {
         $reviewObjectType = $reviewObjectTypeDao->newDataObject();
         $reviewObjectType->setContextId($journalId);
         $reviewObjectType->setActive(0);
     } else {
         $reviewObjectType =& $this->reviewObjectType;
     }
     $reviewObjectType->setName($this->getData('name'), null);
     // Localized
     $reviewObjectType->setDescription($this->getData('description'), null);
     // Localized
     if ($reviewObjectType->getId() != null) {
         $reviewObjectTypeDao->updateObject($reviewObjectType);
     } else {
         //install common metadata
         $ofrPlugin->import('classes.ReviewObjectMetadata');
         $multipleOptionsTypes = ReviewObjectMetadata::getMultipleOptionsTypes();
         $dtdTypes = ReviewObjectMetadata::getMetadataDTDTypes();
         $reviewObjectMetadataDao =& DAORegistry::getDAO('ReviewObjectMetadataDAO');
         $reviewObjectMetadataArray = array();
         $availableLocales = $journal->getSupportedLocaleNames();
         foreach ($availableLocales as $locale => $localeName) {
             $xmlDao = new XMLDAO();
             $commonDataPath = $ofrPlugin->getPluginPath() . DIRECTORY_SEPARATOR . 'xml' . DIRECTORY_SEPARATOR . 'commonMetadata.xml';
             $commonData = $xmlDao->parse($commonDataPath);
             $commonMetadata = $commonData->getChildByName('objectMetadata');
             foreach ($commonMetadata->getChildren() as $metadataNode) {
                 $key = $metadataNode->getAttribute('key');
                 if (array_key_exists($key, $reviewObjectMetadataArray)) {
                     $reviewObjectMetadata = $reviewObjectMetadataArray[$key];
                 } else {
                     $reviewObjectMetadata = $reviewObjectMetadataDao->newDataObject();
                     $reviewObjectMetadata->setSequence(REALLY_BIG_NUMBER);
                     $metadataType = $dtdTypes[$metadataNode->getAttribute('type')];
                     $reviewObjectMetadata->setMetadataType($metadataType);
                     $required = $metadataNode->getAttribute('required');
                     $reviewObjectMetadata->setRequired($required == 'true' ? 1 : 0);
                     $display = $metadataNode->getAttribute('display');
                     $reviewObjectMetadata->setDisplay($display == 'true' ? 1 : 0);
                 }
                 $name = __($metadataNode->getChildValue('name'), array(), $locale);
                 $reviewObjectMetadata->setName($name, $locale);
                 if ($key == 'role') {
                     $reviewObjectMetadata->setPossibleOptions($this->getData('possibleOptions'), null);
                     // Localized
                 } else {
                     if (in_array($reviewObjectMetadata->getMetadataType(), $multipleOptionsTypes)) {
                         $selectionOptions = $metadataNode->getChildByName('selectionOptions');
                         $possibleOptions = array();
                         $index = 1;
                         foreach ($selectionOptions->getChildren() as $selectionOptionNode) {
                             $possibleOptions[] = array('order' => $index, 'content' => __($selectionOptionNode->getValue(), array(), $locale));
                             $index++;
                         }
                         $reviewObjectMetadata->setPossibleOptions($possibleOptions, $locale);
                     } else {
                         $reviewObjectMetadata->setPossibleOptions(null, null);
                     }
                 }
                 $reviewObjectMetadataArray[$key] = $reviewObjectMetadata;
             }
         }
         $reviewObjectTypeId = $reviewObjectTypeDao->insertObject($reviewObjectType);
         // insert review object metadata
         foreach ($reviewObjectMetadataArray as $key => $reviewObjectMetadata) {
             $reviewObjectMetadata->setReviewObjectTypeId($reviewObjectTypeId);
             $reviewObjectMetadata->setKey($key);
             $reviewObjectMetadataDao->insertObject($reviewObjectMetadata);
             $reviewObjectMetadataDao->resequence($reviewObjectTypeId);
         }
     }
 }
开发者ID:EreminDm,项目名称:water-cao,代码行数:82,代码来源:ReviewObjectTypeForm.inc.php

示例4: installDefaultBaseData

    /**
     * Install setting type localized data from an XML file.
     * @param $locale string
     * @param $pressId int
     * @param $skipLoad bool
     * @param $localInstall bool
     * @return boolean
     */
    function installDefaultBaseData($locale, $pressId, $skipLoad = true, $localeInstall = false)
    {
        $xmlDao = new XMLDAO();
        $data = $xmlDao->parse($this->getDefaultBaseFilename());
        if (!$data) {
            return false;
        }
        $defaultIds = $this->getDefaultSettingIds($pressId);
        Locale::requireComponents(array(LOCALE_COMPONENT_OMP_DEFAULT_SETTINGS), $locale);
        foreach ($data->getChildren() as $formatNode) {
            $settings =& $this->getSettingAttributes($formatNode, $locale);
            if (empty($defaultIds[$formatNode->getAttribute('key')])) {
                // ignore keys not associated with this press
                continue;
            } else {
                // prepare a list of attributes not defined in the current settings xml file
                unset($defaultIds[$formatNode->getAttribute('key')]);
            }
            foreach ($settings as $settingName => $settingValue) {
                $this->update('INSERT INTO press_defaults
					(press_id, assoc_type, entry_key, locale, setting_name, setting_value, setting_type)
					VALUES
					(?, ?, ?, ?, ?, ?, ?)', array($pressId, $this->getDefaultType(), $formatNode->getAttribute('key'), $locale, $settingName, $settingValue, 'string'));
            }
        }
        $attributeNames =& $this->getSettingAttributes();
        // install defaults for keys not defined in the xml
        foreach ($defaultIds as $key => $id) {
            foreach ($attributeNames as $setting) {
                $this->update('INSERT INTO press_defaults
					(press_id, assoc_type, entry_key, locale, setting_name, setting_value, setting_type)
					VALUES
					(?, ?, ?, ?, ?, ?, ?)', array($pressId, $this->getDefaultType(), $key, $locale, $setting, '##', 'string'));
            }
        }
        if ($skipLoad) {
            return true;
        }
        if ($localeInstall) {
            $this->restoreByPressId($pressId, $locale);
        } else {
            $this->restoreByPressId($pressId);
        }
        return true;
    }
开发者ID:jerico-dev,项目名称:omp,代码行数:53,代码来源:DefaultSettingDAO.inc.php


注:本文中的XMLDAO::parse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。