當前位置: 首頁>>代碼示例>>PHP>>正文


PHP XMLElement::setattribute方法代碼示例

本文整理匯總了PHP中XMLElement::setattribute方法的典型用法代碼示例。如果您正苦於以下問題:PHP XMLElement::setattribute方法的具體用法?PHP XMLElement::setattribute怎麽用?PHP XMLElement::setattribute使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在XMLElement的用法示例。


在下文中一共展示了XMLElement::setattribute方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getSectionSchema

 public function getSectionSchema(&$result, $section_id)
 {
     $entryManager = new EntryManager($this->_Parent);
     $sm = new SectionManager($this->_Parent);
     // retrieve this section
     $section = $sm->fetch($section_id);
     $result->setAttribute('id', $section_id);
     $result->setAttribute('handle', $section->_data['handle']);
     $entry_count = intval($this->_Parent->Database->fetchVar('count', 0, "SELECT count(*) AS `count` FROM `tbl_entries` WHERE `section_id` = '" . $section_id . "' "));
     $result->setAttribute('total-entries', $entry_count);
     // instantiate a dummy entry to instantiate fields and default values
     $entry =& $entryManager->create();
     $entry->set('section_id', $section_id);
     $section_fields = $section->fetchFields();
     // for each field in the section
     foreach ($section_fields as $section_field) {
         $field = $section_field->get();
         $f = new XMLElement($field['element_name']);
         $f->setAttribute('required', $field['required']);
         foreach ($field as $key => $value) {
             // Core attributes, these are common to all fields
             if (in_array($key, array('id', 'type', 'required', 'label', 'location', 'sortorder'))) {
                 $f->setattribute($key, $value);
             }
             /*
             	Other properties are output as element nodes. Here we filter those we
             	definitely don't want. Fields can have any number of properties, so it 
             	makes sense to filter out those we don't want rather than explicitly 
             	choose the ones we do.
             */
             if (!in_array($key, array('id', 'type', 'required', 'label', 'show_column', 'sortorder', 'element_name', 'parent_section', 'location', 'field_id', 'related_field_id', 'static_options', 'dynamic_options', 'pre_populate_source', 'limit', 'allow_author_change'))) {
                 if (strlen($value) > 0) {
                     $f->appendChild(new XMLElement(Lang::createHandle($key), $value));
                 }
             }
         }
         // grab the HTML used in the Publish entry form
         $html = new XMLElement('html');
         $section_field->displayPublishPanel($html);
         $dom = new DomDocument();
         $dom->loadXML($html->generate());
         $xpath = new DomXPath($dom);
         $options = new XMLElement('options');
         // find optgroup elements (primarily in Selectbox Link fields)
         foreach ($xpath->query("//*[name()='optgroup']") as $optgroup) {
             $optgroup_element = new XMLElement('optgroup');
             $optgroup_element->setAttribute('label', $optgroup->getAttribute('label'));
             $options_xpath = new DomXPath($optgroup);
             // append child options of this group
             foreach ($optgroup->getElementsByTagName('option') as $option) {
                 $this->__appendOption($option, $optgroup_element, $field);
             }
             $options->appendChild($optgroup_element);
         }
         // find options that aren't children of groups, and list items (primarily for Taglists)
         foreach ($xpath->query("//*[name()='option' and not(parent::optgroup)] | //*[name()='li']") as $option) {
             $this->__appendOption($option, $options, $field);
         }
         if ($options->getNumberOfChildren() > 0) {
             $f->appendChild($options);
         }
         /*
         	When an input has a value and is a direct child of the label, we presume we may need
         	its value (e.g. a pre-populated Date, Order Entries etc.)
         */
         $single_input_value = $xpath->query("//label/input[@value!='']")->item(0);
         if ($single_input_value) {
             $f->appendChild(new XMLElement('initial-value', $single_input_value->getAttribute('value')));
         }
         $result->appendChild($f);
     }
     return $result;
 }
開發者ID:bauhouse,項目名稱:sym-extensions,代碼行數:73,代碼來源:extension.driver.php

示例2: grab

 public function grab(array &$param_pool = NULL)
 {
     $result = new XMLElement($this->dsParamROOTELEMENT);
     $result->setAttribute('type', 'section-schema');
     // retrieve this section
     $section_id = SectionManager::fetchIDFromHandle($this->dsParamSECTION);
     $section = SectionManager::fetch($section_id);
     $result->setAttribute('id', $section_id);
     $result->setAttribute('handle', $section->get('handle'));
     $entry_count = EntryManager::fetchCount($section_id);
     $result->setAttribute('total-entries', $entry_count);
     // instantiate a dummy entry to instantiate fields and default values
     $entry = EntryManager::create();
     $entry->set('section_id', $section_id);
     $section_fields = $section->fetchFields();
     // for each field in the section
     foreach ($section_fields as $section_field) {
         $field = $section_field->get();
         // Skip fields that have not been selected:
         if (!in_array($field['element_name'], $this->dsParamFIELDS)) {
             continue;
         }
         $f = new XMLElement($field['element_name']);
         $f->setAttribute('required', $field['required']);
         foreach ($field as $key => $value) {
             // Core attributes, these are common to all fields
             if (in_array($key, array('id', 'type', 'required', 'label', 'location', 'show_column', 'sortorder'))) {
                 $f->setattribute(Lang::createHandle($key), General::sanitize($value));
             }
             /*
             	Other properties are output as element nodes. Here we filter those we
             	definitely don't want. Fields can have any number of properties, so it
             	makes sense to filter out those we don't want rather than explicitly
             	choose the ones we do.
             */
             if (!in_array($key, array('id', 'type', 'required', 'label', 'show_column', 'sortorder', 'element_name', 'parent_section', 'location', 'field_id', 'related_field_id', 'static_options', 'dynamic_options', 'pre_populate_source', 'limit', 'allow_author_change'))) {
                 if (strlen($value) > 0) {
                     $f->appendChild(new XMLElement(Lang::createHandle($key), General::sanitize($value)));
                 }
             }
         }
         // Allow a field to define its own schema XML:
         if (method_exists($section_field, 'appendFieldSchema')) {
             $section_field->appendFieldSchema($f);
             $result->appendChild($f);
             continue;
         }
         // check that we can safely inspect output of displayPublishPanel (some custom fields do not work)
         if (in_array($field['type'], self::$_incompatible_publishpanel)) {
             continue;
         }
         // grab the HTML used in the Publish entry form
         $html = new XMLElement('html');
         $section_field->displayPublishPanel($html);
         $dom = new DomDocument();
         $dom->loadXML($html->generate());
         $xpath = new DomXPath($dom);
         $options = new XMLElement('options');
         // find optgroup elements (primarily in Selectbox Link fields)
         foreach ($xpath->query("//*[name()='optgroup']") as $optgroup) {
             $optgroup_element = new XMLElement('optgroup');
             $optgroup_element->setAttribute('label', $optgroup->getAttribute('label'));
             // append child options of this group
             foreach ($optgroup->getElementsByTagName('option') as $option) {
                 $this->__appendOption($option, $optgroup_element, $field);
             }
             $options->appendChild($optgroup_element);
         }
         // find options that aren't children of groups, and list items (primarily for Taglists)
         foreach ($xpath->query("//*[name()='option' and not(parent::optgroup)] | //*[name()='li']") as $option) {
             $this->__appendOption($option, $options, $field);
         }
         if ($options->getNumberOfChildren() > 0) {
             $f->appendChild($options);
         }
         /*
         	When an input has a value and is a direct child of the label, we presume we may need
         	its value (e.g. a pre-populated Date, Order Entries etc.)
         */
         $single_input_value = $xpath->query("//label/input[@value!='']")->item(0);
         if ($single_input_value) {
             $f->appendChild(new XMLElement('initial-value', $single_input_value->getAttribute('value')));
         }
         $result->appendChild($f);
     }
     return $result;
 }
開發者ID:symphonists,項目名稱:section_schemas,代碼行數:87,代碼來源:datasource.section_schema.php


注:本文中的XMLElement::setattribute方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。