public static function deleteByLanguage($intLanguageId)
 {
     self::$object = "ElementLanguage";
     self::$table = "pcms_element_language";
     $strSql = sprintf("DELETE FROM " . self::$table . " WHERE languageId = %s", self::quote($intLanguageId));
     self::select($strSql);
 }
Example #2
0
 public static function exportElement($objDoc, $intAccountId, $intId, &$arrFiles, $arrTemplateFilters = NULL, $arrElementFilters = NULL, $includeSelf = false)
 {
     global $_CONF;
     $objElements = $objDoc->createElement('elements');
     if ($includeSelf) {
         $objElement = Element::selectByPK($intId);
         $objDbElements = new DBA__Collection();
         $objDbElements->addObject($objElement);
     } else {
         //$objDbTemplates = Templates::getFromParent($intId, false, $intAccountId);
         $objDbElements = Elements::getFromParent($intId, false, "'1', '2', '3', '4', '5'", $intAccountId);
     }
     if ($objDbElements->count() > 0) {
         foreach ($objDbElements as $objDbElement) {
             if (($arrTemplateFilters == NULL || in_array($objDbElement->getTemplateId(), $arrTemplateFilters)) && ($arrElementFilters == NULL || in_array($objDbElement->getId(), $arrElementFilters))) {
                 $objElement = $objDoc->createElement('element');
                 $objElement->setAttribute("id", $objDbElement->getId());
                 $objElement->setAttribute("name", $objDbElement->getName());
                 $objElement->setAttribute("nameCount", $objDbElement->getNameCount());
                 $objElement->setAttribute("apiName", $objDbElement->getApiName());
                 $objElement->setAttribute("description", $objDbElement->getDescription());
                 $objElement->setAttribute("typeId", $objDbElement->getTypeId());
                 $objElement->setAttribute("templateId", $objDbElement->getTemplateId());
                 $objElement->setAttribute("isPage", $objDbElement->getIsPage());
                 $objElement->setAttribute("userId", $objDbElement->getUserId());
                 $objElement->setAttribute("groupId", $objDbElement->getGroupId());
                 $objElement->setAttribute("sort", $objDbElement->getSort());
                 $objElement->setAttribute("active", $objDbElement->getActive());
                 $objElement->setAttribute("username", $objDbElement->getUsername());
                 $objElement->setAttribute("created", $objDbElement->getCreated());
                 $objElement->setAttribute("modified", $objDbElement->getModified());
                 //*** Schedule.
                 $objSchedule = $objDbElement->getSchedule();
                 $objElement->setAttribute("scheduleStartActive", $objSchedule->getStartActive());
                 $objElement->setAttribute("scheduleStartDate", $objSchedule->getStartDate());
                 $objElement->setAttribute("scheduleEndActive", $objSchedule->getEndActive());
                 $objElement->setAttribute("scheduleEndDate", $objSchedule->getEndDate());
                 //*** Fields.
                 $arrActiveLangs = $objDbElement->getLanguageActives();
                 $objContentLangs = ContentLanguage::select();
                 $objFields = $objDoc->createElement('fields');
                 $objDbFields = $objDbElement->getFields();
                 foreach ($objDbFields as $objDbField) {
                     $objField = $objDoc->createElement('field');
                     $objField->setAttribute("templateFieldId", $objDbField->getTemplateFieldId());
                     $objField->setAttribute("sort", $objDbField->getSort());
                     foreach ($objContentLangs as $objContentLanguage) {
                         $objValue = $objDbField->getValueObject($objContentLanguage->getId());
                         if (is_object($objValue)) {
                             $strValue = str_replace("&", "&", $objValue->getValue());
                             $objLanguage = $objDoc->createElement('language', $strValue);
                             $objLanguage->setAttribute("id", $objContentLanguage->getId());
                             $objLanguage->setAttribute("active", in_array($objContentLanguage->getId(), $arrActiveLangs) ? 1 : 0);
                             $objLanguage->setAttribute("cascade", $objValue->getCascade());
                             $objField->appendChild($objLanguage);
                             switch ($objDbField->getTypeId()) {
                                 case FIELD_TYPE_FILE:
                                     $arrFileTemp = explode("\n", $strValue);
                                     foreach ($arrFileTemp as $fileValue) {
                                         if (!empty($fileValue)) {
                                             $arrTemp = explode(":", $fileValue);
                                             $strSrc = count($arrTemp) > 1 ? $arrTemp[1] : $arrTemp[0];
                                             array_push($arrFiles, $strSrc);
                                         }
                                     }
                                     break;
                                 case FIELD_TYPE_IMAGE:
                                     $arrFileTemp = explode("\n", $strValue);
                                     foreach ($arrFileTemp as $fileValue) {
                                         if (!empty($fileValue)) {
                                             $arrTemp = explode(":", $fileValue);
                                             $strSrc = count($arrTemp) > 1 ? $arrTemp[1] : $arrTemp[0];
                                             $objImageField = new ImageField($objDbField->getTemplateFieldId());
                                             $arrSettings = $objImageField->getSettings();
                                             foreach ($arrSettings as $key => $arrSetting) {
                                                 if (!empty($arrSetting['width']) || !empty($arrSetting['height'])) {
                                                     //*** Add file.
                                                     array_push($arrFiles, FileIO::add2Base($strSrc, $arrSetting['key']));
                                                 }
                                             }
                                             array_push($arrFiles, $strSrc);
                                         }
                                     }
                                     break;
                             }
                         }
                     }
                     $objFields->appendChild($objField);
                 }
                 if ($objDbFields->count() > 0) {
                     $objElement->appendChild($objFields);
                 } else {
                     $objDbLanguages = ElementLanguage::selectByElement($objDbElement->getId());
                     $objLanguages = $objDoc->createElement('languages');
                     foreach ($objDbLanguages as $objDbLanguage) {
                         if ($objDbLanguage->getActive()) {
                             $objLanguage = $objDoc->createElement('language');
                             $objLanguage->setAttribute("id", $objDbLanguage->getLanguageId());
                             $objLanguage->setAttribute("active", $objDbLanguage->getActive());
                             $objLanguage->setAttribute("cascade", $objDbLanguage->getCascade());
                             $objLanguages->appendChild($objLanguage);
                         }
                     }
                     if ($objDbLanguages->count() > 0) {
                         $objElement->appendChild($objLanguages);
                     }
                 }
                 //*** Feed fields.
                 $objDbFeed = $objDbElement->getFeed();
                 if (is_object($objDbFeed) && $objDbFeed->getId() > 0) {
                     $objFeed = $objDoc->createElement('feed');
                     $objFeed->setAttribute("feedId", $objDbFeed->getFeedId());
                     $objFeed->setAttribute("feedPath", $objDbFeed->getFeedPath());
                     $objFeed->setAttribute("maxItems", $objDbFeed->getMaxItems());
                     $objFeed->setAttribute("sortBy", $objDbFeed->getSortBy());
                     $objFeed->setAttribute("aliasField", $objDbFeed->getAliasField());
                     $objDbFields = ElementFieldFeed::selectByElement($objDbElement->getId());
                     foreach ($objDbFields as $objDbField) {
                         $objField = $objDoc->createElement('feedfield');
                         $objField->setAttribute("templateFieldId", $objDbField->getTemplateFieldId());
                         $objField->setAttribute("feedPath", $objDbField->getFeedPath());
                         $objField->setAttribute("xpath", $objDbField->getXpath());
                         $objField->setAttribute("languageId", $objDbField->getLanguageId());
                         $objField->setAttribute("cascade", $objDbField->getCascade());
                         $objField->setAttribute("sort", $objDbField->getSort());
                         $objFeed->appendChild($objField);
                     }
                     $objElement->appendChild($objFeed);
                 }
                 //*** Meta values.
                 if ($objDbElement->isPage()) {
                     $blnHasMeta = false;
                     $objMeta = $objDoc->createElement('meta');
                     foreach ($objContentLangs as $objContentLanguage) {
                         $objDbMeta = $objDbElement->getMeta($objContentLanguage->getId());
                         if (is_object($objDbMeta)) {
                             $objLanguage = $objDoc->createElement('language');
                             $objLanguage->setAttribute("id", $objContentLanguage->getId());
                             $strValue = str_replace("&", "&", $objDbMeta->getValueByValue("name", "title"));
                             $objLanguage->setAttribute("title", $strValue);
                             $strValue = str_replace("&", "&", $objDbMeta->getValueByValue("name", "keywords"));
                             $objLanguage->setAttribute("keywords", $strValue);
                             $strValue = str_replace("&", "&", $objDbMeta->getValueByValue("name", "description"));
                             $objLanguage->setAttribute("description", $strValue);
                             $objMeta->appendChild($objLanguage);
                             $blnHasMeta = true;
                         }
                     }
                     if ($blnHasMeta) {
                         $objElement->appendChild($objMeta);
                     }
                 }
                 //*** Permissions.
                 $objPermissions = $objDoc->createElement('permissions');
                 $objDbPermissions = $objDbElement->getPermissions();
                 $objPermissions->setAttribute("users", implode(",", $objDbPermissions->getUserId()));
                 $objPermissions->setAttribute("groups", implode(",", $objDbPermissions->getGroupId()));
                 $objElement->appendChild($objPermissions);
                 //*** Sub elements.
                 $objSubElements = self::exportElement($objDoc, $intAccountId, $objDbElement->getId(), $arrFiles, $arrTemplateFilters, $arrElementFilters);
                 if ($objSubElements) {
                     $objElement->appendChild($objSubElements);
                 }
                 $objElements->appendChild($objElement);
             }
         }
     }
     return $objElements;
 }
Example #3
0
 public function getLanguageActives()
 {
     $arrReturn = array();
     if ($this->id > 0) {
         $objElementLanguages = ElementLanguage::selectByElement($this->id);
         if ($objElementLanguages->count() > 0) {
             foreach ($objElementLanguages as $objElementLanguage) {
                 if ($objElementLanguage->getActive()) {
                     array_push($arrReturn, $objElementLanguage->getLanguageId());
                 }
             }
         } else {
             array_push($arrReturn, ContentLanguage::getDefault()->getId());
         }
     }
     return $arrReturn;
 }
 public function delete()
 {
     global $_CONF;
     self::$__object = "ContentLanguage";
     self::$__table = "pcms_language";
     //*** Remove all field values for this language.
     $objElements = Element::select();
     foreach ($objElements as $objElement) {
         $objFields = $objElement->getFields();
         foreach ($objFields as $objField) {
             $objValue = $objField->getValueObject($this->id);
             $objValue->delete();
         }
     }
     //*** Remove all elements linked to this language.
     ElementLanguage::deleteByLanguage($this->getId());
     if (class_exists("AuditLog")) {
         AuditLog::addLog(AUDIT_TYPE_LANGUAGE, $this->getId(), $this->getName(), "delete");
     }
     return parent::delete();
 }