private function setEntryOnCategory(category $category, $entry = null) { $category->incrementEntriesCount($this->getEntryId()); $category->incrementDirectEntriesCount($this->getEntryId()); //if was pending - decrease pending entries count! if ($this->getColumnsOldValue(categoryEntryPeer::STATUS) == CategoryEntryStatus::PENDING) { $category->decrementPendingEntriesCount(); } $category->save(); //only categories with no context are saved on entry - this is only for Backward compatible if ($entry && !categoryEntryPeer::getSkipSave() && (trim($category->getPrivacyContexts()) == '' || $category->getPrivacyContexts() == null)) { $categories = array(); if (trim($entry->getCategories()) != '') { $categories = explode(entry::ENTRY_CATEGORY_SEPARATOR, $entry->getCategories()); } $categories[] = $category->getFullName(); $categoriesIds = array(); if (trim($entry->getCategoriesIds()) != '') { $categoriesIds = explode(entry::ENTRY_CATEGORY_SEPARATOR, $entry->getCategoriesIds()); } $categoriesIds[] = $category->getId(); $entry->parentSetCategories(implode(entry::ENTRY_CATEGORY_SEPARATOR, $categories)); $entry->parentSetCategoriesIds(implode(entry::ENTRY_CATEGORY_SEPARATOR, $categoriesIds)); $entry->justSave(); } return $entry; }
private function setEntryOnCategory(category $category, $entry = null) { if (is_null($this->entryCategoriesAddedIds)) { $categoriesEntries = categoryEntryPeer::retrieveActiveByEntryId($this->getEntryId()); $categoriesIds = array(); foreach ($categoriesEntries as $categroyEntry) { //cannot get directly the full ids - since it might not be updated. if ($categroyEntry->getCategoryId() != $this->getCategoryId()) { $categoriesIds[] = $categroyEntry->getCategoryId(); } } $categoriesAdded = categoryPeer::retrieveByPKs($categoriesIds); $entryCategoriesAddedIds = array(); foreach ($categoriesAdded as $categoryAdded) { $fullIds = explode(categoryPeer::CATEGORY_SEPARATOR, $categoryAdded->getFullIds()); $entryCategoriesAddedIds = array_merge($entryCategoriesAddedIds, $fullIds); } $this->entryCategoriesAddedIds = $entryCategoriesAddedIds; } $category->incrementEntriesCount(1, $this->entryCategoriesAddedIds); $category->incrementDirectEntriesCount(); //if was pending - decrease pending entries count! if ($this->getColumnsOldValue(categoryEntryPeer::STATUS) == CategoryEntryStatus::PENDING) { $category->decrementPendingEntriesCount(); } $category->save(); //only categories with no context are saved on entry - this is only for Backward compatible if ($entry && !categoryEntryPeer::getSkipSave() && (trim($category->getPrivacyContexts()) == '' || $category->getPrivacyContexts() == null)) { $categories = array(); if (trim($entry->getCategories()) != '') { $categories = explode(entry::ENTRY_CATEGORY_SEPARATOR, $entry->getCategories()); } $categories[] = $category->getFullName(); $categoriesIds = array(); if (trim($entry->getCategoriesIds()) != '') { $categoriesIds = explode(entry::ENTRY_CATEGORY_SEPARATOR, $entry->getCategoriesIds()); } $categoriesIds[] = $category->getId(); $entry->parentSetCategories(implode(entry::ENTRY_CATEGORY_SEPARATOR, $categories)); $entry->parentSetCategoriesIds(implode(entry::ENTRY_CATEGORY_SEPARATOR, $categoriesIds)); $entry->justSave(); } return $entry; }