/**
  * @inheritDoc IElementType::getEditorHtml()
  *
  * @param BaseElementModel $element
  *
  * @return string
  */
 public function getEditorHtml(BaseElementModel $element)
 {
     $html = '';
     $fieldLayout = $element->getFieldLayout();
     if ($fieldLayout) {
         $originalNamespace = craft()->templates->getNamespace();
         $namespace = craft()->templates->namespaceInputName('fields', $originalNamespace);
         craft()->templates->setNamespace($namespace);
         foreach ($fieldLayout->getFields() as $fieldLayoutField) {
             $fieldHtml = craft()->templates->render('_includes/field', array('element' => $element, 'field' => $fieldLayoutField->getField(), 'required' => $fieldLayoutField->required));
             $html .= craft()->templates->namespaceInputs($fieldHtml, 'fields');
         }
         craft()->templates->setNamespace($originalNamespace);
     }
     return $html;
 }
Exemple #2
0
 /**
  * Validates some content with a given field layout.
  *
  * @param BaseElementModel $element The element whose content should be validated.
  *
  * @return bool Whether the element's content validates.
  */
 public function validateContent(BaseElementModel $element)
 {
     $elementType = craft()->elements->getElementType($element->getElementType());
     $fieldLayout = $element->getFieldLayout();
     $content = $element->getContent();
     // Set the required fields from the layout
     $attributesToValidate = array('id', 'elementId', 'locale');
     $requiredFields = array();
     if ($elementType->hasTitles()) {
         $requiredFields[] = 'title';
         $attributesToValidate[] = 'title';
     }
     if ($fieldLayout) {
         foreach ($fieldLayout->getFields() as $fieldLayoutField) {
             $field = $fieldLayoutField->getField();
             if ($field) {
                 $attributesToValidate[] = $field->handle;
                 if ($fieldLayoutField->required) {
                     $requiredFields[] = $field->id;
                 }
             }
         }
     }
     if ($requiredFields) {
         $content->setRequiredFields($requiredFields);
     }
     return $content->validate($attributesToValidate);
 }