/** * Устанавливает список тегов для избранного * * @param ModuleFavourite_EntityFavourite $oFavourite Объект избранного * @param bool $bAddNew Добавлять новые теги или нет */ public function SetFavouriteTags($oFavourite, $bAddNew = true) { /** * Удаляем все теги */ $this->oMapper->DeleteTags($oFavourite); /** * Добавляем новые */ if ($bAddNew and $oFavourite->getTags()) { /** * Добавляем теги объекта избранного, если есть */ if ($aTags = $this->GetTagsTarget($oFavourite->getTargetType(), $oFavourite->getTargetId())) { foreach ($aTags as $sTag) { $oTag = Engine::GetEntity('ModuleFavourite_EntityTag', $oFavourite->_getData()); $oTag->setText(htmlspecialchars($sTag)); $oTag->setIsUser(0); $this->oMapper->AddTag($oTag); } } /** * Добавляем пользовательские теги */ foreach ($oFavourite->getTagsArray() as $sTag) { $oTag = Engine::GetEntity('ModuleFavourite_EntityTag', $oFavourite->_getData()); $oTag->setText($sTag); // htmlspecialchars уже используется при установке тегов $oTag->setIsUser(1); $this->oMapper->AddTag($oTag); } } }
/** * Устанавливает список тегов для избранного * * @param ModuleFavourite_EntityFavourite $oFavourite Объект избранного * @param bool $bAddNew Добавлять новые теги или нет */ public function SetFavouriteTags($oFavourite, $bAddNew = true) { /** * Удаляем все теги */ $this->oMapper->DeleteTags($oFavourite); /** * Добавляем новые */ // issue 252, {@link https://github.com/altocms/altocms/issues/252} В избранном не отображаются теги // Свойство $oFavourite->getTags() содержит только пользовательские теги, а не все теги избранного объекта, // соответственно при отсутствии пользовательских тегов в условие не заходили и теги избранного // объекта не добалялись. // if ($bAddNew && $oFavourite->getTags()) { if ($bAddNew) { /** * Добавляем теги объекта избранного, если есть */ if ($aTags = $this->GetTagsTarget($oFavourite->getTargetType(), $oFavourite->getTargetId())) { foreach ($aTags as $sTag) { /** @var ModuleFavourite_EntityTag $oTag */ $oTag = E::GetEntity('ModuleFavourite_EntityTag', $oFavourite->getAllProps()); $oTag->setText(htmlspecialchars($sTag)); $oTag->setIsUser(0); $this->oMapper->AddTag($oTag); } } /** * Добавляем пользовательские теги */ foreach ($oFavourite->getTagsArray() as $sTag) { $oTag = E::GetEntity('ModuleFavourite_EntityTag', $oFavourite->getAllProps()); $oTag->setText($sTag); // htmlspecialchars уже используется при установке тегов $oTag->setIsUser(1); $this->oMapper->AddTag($oTag); } } }