1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Возможность не заполнять теги у топика

This commit is contained in:
Mzhelskiy Maxim 2012-04-14 16:57:07 +04:00
parent 3e3af2df3b
commit 988ca25ff5
7 changed files with 396 additions and 381 deletions

View file

@ -170,7 +170,7 @@ class ModuleTopic extends Module {
public function AddTopic(ModuleTopic_EntityTopic $oTopic) {
if ($sId=$this->oMapperTopic->AddTopic($oTopic)) {
$oTopic->setId($sId);
if ($oTopic->getPublish()) {
if ($oTopic->getPublish() and $oTopic->getTags()) {
$aTags=explode(',',$oTopic->getTags());
foreach ($aTags as $sTag) {
$oTag=Engine::GetEntity('Topic_TopicTag');
@ -293,10 +293,9 @@ class ModuleTopic extends Module {
/**
* Обновляем теги
*/
$aTags=explode(',',$oTopic->getTags());
$this->DeleteTopicTagsByTopicId($oTopic->getId());
if ($oTopic->getPublish()) {
if ($oTopic->getPublish() and $oTopic->getTags()) {
$aTags=explode(',',$oTopic->getTags());
foreach ($aTags as $sTag) {
$oTag=Engine::GetEntity('Topic_TopicTag');
$oTag->setTopicId($oTopic->getId());

View file

@ -27,7 +27,7 @@ class ModuleTopic_EntityTopic extends Entity {
$this->aValidateRules[]=array('topic_text_source','string','max'=>Config::Get('module.topic.max_length'),'min'=>2,'allowEmpty'=>false,'label'=>$this->Lang_Get('topic_create_text'),'on'=>array('topic','photoset'));
$this->aValidateRules[]=array('topic_text_source','string','max'=>500,'min'=>10,'allowEmpty'=>false,'label'=>$this->Lang_Get('topic_create_text'),'on'=>array('link'));
$this->aValidateRules[]=array('topic_text_source','string','max'=>500,'allowEmpty'=>true,'label'=>$this->Lang_Get('topic_create_text'),'on'=>array('question'));
$this->aValidateRules[]=array('topic_tags','tags','count'=>15,'label'=>$this->Lang_Get('topic_create_tags'),'on'=>array('topic','link','question','photoset'));
$this->aValidateRules[]=array('topic_tags','tags','count'=>15,'label'=>$this->Lang_Get('topic_create_tags'),'allowEmpty'=>Config::Get('module.topic.allow_empty_tags'),'on'=>array('topic','link','question','photoset'));
$this->aValidateRules[]=array('blog_id','blog_id','on'=>array('topic','link','question','photoset'));
$this->aValidateRules[]=array('topic_text_source','topic_unique','on'=>array('topic','link','question','photoset'));
$this->aValidateRules[]=array('topic_type','topic_type','on'=>array('topic','link','question','photoset'));
@ -88,64 +88,64 @@ class ModuleTopic_EntityTopic extends Entity {
return $this->Lang_Get('topic_create_blog_error_unknown');
}
public function getId() {
return $this->_aData['topic_id'];
}
public function getBlogId() {
return $this->_aData['blog_id'];
}
public function getUserId() {
return $this->_aData['user_id'];
}
public function getType() {
return $this->_aData['topic_type'];
}
public function getTitle() {
return $this->_aData['topic_title'];
}
public function getText() {
return $this->_aData['topic_text'];
}
public function getTextShort() {
return $this->_aData['topic_text_short'];
}
public function getTextSource() {
return $this->_aData['topic_text_source'];
}
public function getExtra() {
if (isset($this->_aData['topic_extra'])) {
return $this->_aData['topic_extra'];
}
return serialize('');
}
public function getTags() {
return $this->_aData['topic_tags'];
}
public function getDateAdd() {
return $this->_aData['topic_date_add'];
}
public function getDateEdit() {
return $this->_aData['topic_date_edit'];
}
public function getUserIp() {
return $this->_aData['topic_user_ip'];
}
public function getPublish() {
return $this->_aData['topic_publish'];
}
public function getPublishDraft() {
return $this->_aData['topic_publish_draft'];
}
public function getPublishIndex() {
return $this->_aData['topic_publish_index'];
}
public function getRating() {
return number_format(round($this->_aData['topic_rating'],2), 0, '.', '');
}
public function getCountVote() {
return $this->_aData['topic_count_vote'];
}
public function getId() {
return $this->_aData['topic_id'];
}
public function getBlogId() {
return $this->_aData['blog_id'];
}
public function getUserId() {
return $this->_aData['user_id'];
}
public function getType() {
return $this->_aData['topic_type'];
}
public function getTitle() {
return $this->_aData['topic_title'];
}
public function getText() {
return $this->_aData['topic_text'];
}
public function getTextShort() {
return $this->_aData['topic_text_short'];
}
public function getTextSource() {
return $this->_aData['topic_text_source'];
}
public function getExtra() {
if (isset($this->_aData['topic_extra'])) {
return $this->_aData['topic_extra'];
}
return serialize('');
}
public function getTags() {
return $this->_aData['topic_tags'];
}
public function getDateAdd() {
return $this->_aData['topic_date_add'];
}
public function getDateEdit() {
return $this->_aData['topic_date_edit'];
}
public function getUserIp() {
return $this->_aData['topic_user_ip'];
}
public function getPublish() {
return $this->_aData['topic_publish'];
}
public function getPublishDraft() {
return $this->_aData['topic_publish_draft'];
}
public function getPublishIndex() {
return $this->_aData['topic_publish_index'];
}
public function getRating() {
return number_format(round($this->_aData['topic_rating'],2), 0, '.', '');
}
public function getCountVote() {
return $this->_aData['topic_count_vote'];
}
public function getCountVoteUp() {
return $this->_aData['topic_count_vote_up'];
}
@ -155,301 +155,304 @@ class ModuleTopic_EntityTopic extends Entity {
public function getCountVoteAbstain() {
return $this->_aData['topic_count_vote_abstain'];
}
public function getCountRead() {
return $this->_aData['topic_count_read'];
}
public function getCountComment() {
return $this->_aData['topic_count_comment'];
}
public function getCutText() {
return $this->_aData['topic_cut_text'];
}
public function getForbidComment() {
return $this->_aData['topic_forbid_comment'];
}
public function getTextHash() {
return $this->_aData['topic_text_hash'];
}
public function getTagsArray() {
return explode(',',$this->getTags());
}
public function getCountCommentNew() {
return $this->_aData['count_comment_new'];
}
public function getDateRead() {
return $this->_aData['date_read'];
}
public function getUser() {
public function getCountRead() {
return $this->_aData['topic_count_read'];
}
public function getCountComment() {
return $this->_aData['topic_count_comment'];
}
public function getCutText() {
return $this->_aData['topic_cut_text'];
}
public function getForbidComment() {
return $this->_aData['topic_forbid_comment'];
}
public function getTextHash() {
return $this->_aData['topic_text_hash'];
}
public function getTagsArray() {
if ($this->getTags()) {
return explode(',',$this->getTags());
}
return array();
}
public function getCountCommentNew() {
return $this->_aData['count_comment_new'];
}
public function getDateRead() {
return $this->_aData['date_read'];
}
public function getUser() {
if (!isset($this->_aData['user'])) {
$this->_aData['user']=$this->User_GetUserById($this->getUserId());
}
return $this->_aData['user'];
}
public function getBlog() {
return $this->_aData['blog'];
}
public function getUrl() {
if ($this->getBlog()->getType()=='personal') {
return Router::GetPath('blog').$this->getId().'.html';
} else {
return Router::GetPath('blog').$this->getBlog()->getUrl().'/'.$this->getId().'.html';
}
}
public function getVote() {
return $this->_aData['vote'];
}
public function getUserQuestionIsVote() {
return $this->_aData['user_question_is_vote'];
}
public function getIsFavourite() {
return $this->_aData['user'];
}
public function getBlog() {
return $this->_aData['blog'];
}
public function getUrl() {
if ($this->getBlog()->getType()=='personal') {
return Router::GetPath('blog').$this->getId().'.html';
} else {
return Router::GetPath('blog').$this->getBlog()->getUrl().'/'.$this->getId().'.html';
}
}
public function getVote() {
return $this->_aData['vote'];
}
public function getUserQuestionIsVote() {
return $this->_aData['user_question_is_vote'];
}
public function getIsFavourite() {
if ($this->getFavourite()) {
return true;
}
return false;
}
public function getCountFavourite() {
return $this->_aData['topic_count_favourite'];
}
}
public function getCountFavourite() {
return $this->_aData['topic_count_favourite'];
}
public function getSubscribeNewComment() {
if (!($oUserCurrent=$this->User_GetUserCurrent())) {
return null;
}
return $this->Subscribe_GetSubscribeByTargetAndMail('topic_new_comment',$this->getId(),$oUserCurrent->getMail());
}
/***************************************************************************************************************************************************
* методы расширения типов топика
***************************************************************************************************************************************************
*/
protected function extractExtra() {
if (is_null($this->aExtra)) {
$this->aExtra=unserialize($this->getExtra());
}
}
protected function setExtraValue($sName,$data) {
$this->extractExtra();
$this->aExtra[$sName]=$data;
$this->setExtra($this->aExtra);
}
protected function getExtraValue($sName) {
$this->extractExtra();
if (isset($this->aExtra[$sName])) {
return $this->aExtra[$sName];
}
return null;
}
// методы для топика-ссылки
public function getLinkUrl($bShort=false) {
if ($this->getType()!='link') {
return null;
}
if ($this->getExtraValue('url')) {
if ($bShort) {
$sUrl=htmlspecialchars($this->getExtraValue('url'));
if (preg_match("/^https?:\/\/(.*)$/i",$sUrl,$aMatch)) {
$sUrl=$aMatch[1];
}
$sUrlShort=substr($sUrl,0,30);
if (strlen($sUrlShort)!=strlen($sUrl)) {
return $sUrlShort.'...';
}
return $sUrl;
}
$sUrl=$this->getExtraValue('url');
if (!preg_match("/^https?:\/\/(.*)$/i",$sUrl,$aMatch)) {
$sUrl='http://'.$sUrl;
}
return $sUrl;
}
return null;
}
public function setLinkUrl($data) {
if ($this->getType()!='link') {
return;
}
$this->setExtraValue('url',$data);
}
public function getLinkCountJump() {
if ($this->getType()!='link') {
return null;
}
return (int)$this->getExtraValue('count_jump');
}
public function setLinkCountJump($data) {
if ($this->getType()!='link') {
return;
}
$this->setExtraValue('count_jump',$data);
}
//методы для топика-вопроса
public function addQuestionAnswer($data) {
if ($this->getType()!='question') {
return;
}
$this->extractExtra();
$this->aExtra['answers'][]=array('text'=>$data,'count'=>0);
$this->setExtra($this->aExtra);
}
public function clearQuestionAnswer() {
if ($this->getType()!='question') {
return;
}
$this->setExtraValue('answers',array());
}
public function getQuestionAnswers($bSortVote=false) {
if ($this->getType()!='question') {
return null;
}
if ($this->getExtraValue('answers')) {
$aAnswers=$this->getExtraValue('answers');
/***************************************************************************************************************************************************
* методы расширения типов топика
***************************************************************************************************************************************************
*/
protected function extractExtra() {
if (is_null($this->aExtra)) {
$this->aExtra=unserialize($this->getExtra());
}
}
protected function setExtraValue($sName,$data) {
$this->extractExtra();
$this->aExtra[$sName]=$data;
$this->setExtra($this->aExtra);
}
protected function getExtraValue($sName) {
$this->extractExtra();
if (isset($this->aExtra[$sName])) {
return $this->aExtra[$sName];
}
return null;
}
// методы для топика-ссылки
public function getLinkUrl($bShort=false) {
if ($this->getType()!='link') {
return null;
}
if ($this->getExtraValue('url')) {
if ($bShort) {
$sUrl=htmlspecialchars($this->getExtraValue('url'));
if (preg_match("/^https?:\/\/(.*)$/i",$sUrl,$aMatch)) {
$sUrl=$aMatch[1];
}
$sUrlShort=substr($sUrl,0,30);
if (strlen($sUrlShort)!=strlen($sUrl)) {
return $sUrlShort.'...';
}
return $sUrl;
}
$sUrl=$this->getExtraValue('url');
if (!preg_match("/^https?:\/\/(.*)$/i",$sUrl,$aMatch)) {
$sUrl='http://'.$sUrl;
}
return $sUrl;
}
return null;
}
public function setLinkUrl($data) {
if ($this->getType()!='link') {
return;
}
$this->setExtraValue('url',$data);
}
public function getLinkCountJump() {
if ($this->getType()!='link') {
return null;
}
return (int)$this->getExtraValue('count_jump');
}
public function setLinkCountJump($data) {
if ($this->getType()!='link') {
return;
}
$this->setExtraValue('count_jump',$data);
}
//методы для топика-вопроса
public function addQuestionAnswer($data) {
if ($this->getType()!='question') {
return;
}
$this->extractExtra();
$this->aExtra['answers'][]=array('text'=>$data,'count'=>0);
$this->setExtra($this->aExtra);
}
public function clearQuestionAnswer() {
if ($this->getType()!='question') {
return;
}
$this->setExtraValue('answers',array());
}
public function getQuestionAnswers($bSortVote=false) {
if ($this->getType()!='question') {
return null;
}
if ($this->getExtraValue('answers')) {
$aAnswers=$this->getExtraValue('answers');
if ($bSortVote) {
uasort($aAnswers, create_function('$a,$b',"if (\$a['count'] == \$b['count']) { return 0; } return (\$a['count'] < \$b['count']) ? 1 : -1;"));
}
return $aAnswers;
}
return array();
}
public function increaseQuestionAnswerVote($sIdAnswer) {
if ($aAnswers=$this->getQuestionAnswers()) {
if (isset($aAnswers[$sIdAnswer])) {
$aAnswers[$sIdAnswer]['count']++;
$this->aExtra['answers']=$aAnswers;
$this->setExtra($this->aExtra);
}
}
}
public function getQuestionAnswerMax() {
$aAnswers=$this->getQuestionAnswers();
$iMax=0;
foreach ($aAnswers as $aAns) {
if ($aAns['count']>$iMax) {
$iMax=$aAns['count'];
}
}
return $iMax;
}
public function getQuestionAnswerPercent($sIdAnswer) {
if ($aAnswers=$this->getQuestionAnswers()) {
if (isset($aAnswers[$sIdAnswer])) {
$iCountAll=$this->getQuestionCountVote()-$this->getQuestionCountVoteAbstain();
if ($iCountAll==0) {
return 0;
} else {
return number_format(round($aAnswers[$sIdAnswer]['count']*100/$iCountAll,1), 1, '.', '');
}
}
}
}
public function getQuestionCountVote() {
if ($this->getType()!='question') {
return null;
}
return (int)$this->getExtraValue('count_vote');
}
public function setQuestionCountVote($data) {
if ($this->getType()!='question') {
return;
}
$this->setExtraValue('count_vote',$data);
}
public function getQuestionCountVoteAbstain() {
if ($this->getType()!='question') {
return null;
}
return (int)$this->getExtraValue('count_vote_abstain');
}
public function setQuestionCountVoteAbstain($data) {
if ($this->getType()!='question') {
return;
}
$this->setExtraValue('count_vote_abstain',$data);
}
}
return array();
}
public function increaseQuestionAnswerVote($sIdAnswer) {
if ($aAnswers=$this->getQuestionAnswers()) {
if (isset($aAnswers[$sIdAnswer])) {
$aAnswers[$sIdAnswer]['count']++;
$this->aExtra['answers']=$aAnswers;
$this->setExtra($this->aExtra);
}
}
}
public function getQuestionAnswerMax() {
$aAnswers=$this->getQuestionAnswers();
$iMax=0;
foreach ($aAnswers as $aAns) {
if ($aAns['count']>$iMax) {
$iMax=$aAns['count'];
}
}
return $iMax;
}
public function getQuestionAnswerPercent($sIdAnswer) {
if ($aAnswers=$this->getQuestionAnswers()) {
if (isset($aAnswers[$sIdAnswer])) {
$iCountAll=$this->getQuestionCountVote()-$this->getQuestionCountVoteAbstain();
if ($iCountAll==0) {
return 0;
} else {
return number_format(round($aAnswers[$sIdAnswer]['count']*100/$iCountAll,1), 1, '.', '');
}
}
}
}
public function getQuestionCountVote() {
if ($this->getType()!='question') {
return null;
}
// Методы для фото-топика
return (int)$this->getExtraValue('count_vote');
}
public function setQuestionCountVote($data) {
if ($this->getType()!='question') {
return;
}
$this->setExtraValue('count_vote',$data);
}
public function getQuestionCountVoteAbstain() {
if ($this->getType()!='question') {
return null;
}
public function getPhotosetPhotos($iFromId = null, $iCount = null) {
return $this->Topic_getPhotosByTopicId($this->getId(), $iFromId, $iCount);
}
public function getPhotosetCount() {
return $this->getExtraValue('count_photo');
}
public function getPhotosetMainPhotoId() {
return $this->getExtraValue('main_photo_id');
}
public function setPhotosetMainPhotoId($data) {
$this->setExtraValue('main_photo_id',$data);
}
public function setPhotosetCount($data) {
$this->setExtraValue('count_photo',$data);
}
return (int)$this->getExtraValue('count_vote_abstain');
}
public function setQuestionCountVoteAbstain($data) {
if ($this->getType()!='question') {
return;
}
$this->setExtraValue('count_vote_abstain',$data);
}
//*************************************************************************************************************************************************
// Методы для фото-топика
public function getPhotosetPhotos($iFromId = null, $iCount = null) {
return $this->Topic_getPhotosByTopicId($this->getId(), $iFromId, $iCount);
}
public function getPhotosetCount() {
return $this->getExtraValue('count_photo');
}
public function getPhotosetMainPhotoId() {
return $this->getExtraValue('main_photo_id');
}
public function setPhotosetMainPhotoId($data) {
$this->setExtraValue('main_photo_id',$data);
}
public function setPhotosetCount($data) {
$this->setExtraValue('count_photo',$data);
}
//*************************************************************************************************************************************************
public function setId($data) {
$this->_aData['topic_id']=$data;
}
public function setBlogId($data) {
$this->_aData['blog_id']=$data;
}
public function setUserId($data) {
$this->_aData['user_id']=$data;
}
public function setType($data) {
$this->_aData['topic_type']=$data;
}
public function setTitle($data) {
$this->_aData['topic_title']=$data;
}
public function setText($data) {
$this->_aData['topic_text']=$data;
}
public function setExtra($data) {
$this->_aData['topic_extra']=serialize($data);
}
public function setTextShort($data) {
$this->_aData['topic_text_short']=$data;
}
public function setTextSource($data) {
$this->_aData['topic_text_source']=$data;
}
public function setTags($data) {
$this->_aData['topic_tags']=$data;
}
public function setDateAdd($data) {
$this->_aData['topic_date_add']=$data;
}
public function setDateEdit($data) {
$this->_aData['topic_date_edit']=$data;
}
public function setUserIp($data) {
$this->_aData['topic_user_ip']=$data;
}
public function setPublish($data) {
$this->_aData['topic_publish']=$data;
}
public function setPublishDraft($data) {
$this->_aData['topic_publish_draft']=$data;
}
public function setPublishIndex($data) {
$this->_aData['topic_publish_index']=$data;
}
public function setRating($data) {
$this->_aData['topic_rating']=$data;
}
public function setCountVote($data) {
$this->_aData['topic_count_vote']=$data;
}
$this->_aData['topic_id']=$data;
}
public function setBlogId($data) {
$this->_aData['blog_id']=$data;
}
public function setUserId($data) {
$this->_aData['user_id']=$data;
}
public function setType($data) {
$this->_aData['topic_type']=$data;
}
public function setTitle($data) {
$this->_aData['topic_title']=$data;
}
public function setText($data) {
$this->_aData['topic_text']=$data;
}
public function setExtra($data) {
$this->_aData['topic_extra']=serialize($data);
}
public function setTextShort($data) {
$this->_aData['topic_text_short']=$data;
}
public function setTextSource($data) {
$this->_aData['topic_text_source']=$data;
}
public function setTags($data) {
$this->_aData['topic_tags']=$data;
}
public function setDateAdd($data) {
$this->_aData['topic_date_add']=$data;
}
public function setDateEdit($data) {
$this->_aData['topic_date_edit']=$data;
}
public function setUserIp($data) {
$this->_aData['topic_user_ip']=$data;
}
public function setPublish($data) {
$this->_aData['topic_publish']=$data;
}
public function setPublishDraft($data) {
$this->_aData['topic_publish_draft']=$data;
}
public function setPublishIndex($data) {
$this->_aData['topic_publish_index']=$data;
}
public function setRating($data) {
$this->_aData['topic_rating']=$data;
}
public function setCountVote($data) {
$this->_aData['topic_count_vote']=$data;
}
public function setCountVoteUp($data) {
$this->_aData['topic_count_vote_up']=$data;
}
@ -459,42 +462,42 @@ class ModuleTopic_EntityTopic extends Entity {
public function setCountVoteAbstain($data) {
$this->_aData['topic_count_vote_abstain']=$data;
}
public function setCountRead($data) {
$this->_aData['topic_count_read']=$data;
}
public function setCountComment($data) {
$this->_aData['topic_count_comment']=$data;
}
public function setCutText($data) {
$this->_aData['topic_cut_text']=$data;
}
public function setForbidComment($data) {
$this->_aData['topic_forbid_comment']=$data;
}
public function setTextHash($data) {
$this->_aData['topic_text_hash']=$data;
}
public function setUser($data) {
$this->_aData['user']=$data;
}
public function setBlog($data) {
$this->_aData['blog']=$data;
}
public function setUserQuestionIsVote($data) {
$this->_aData['user_question_is_vote']=$data;
}
public function setVote($data) {
$this->_aData['vote']=$data;
}
public function setCountCommentNew($data) {
$this->_aData['count_comment_new']=$data;
}
public function setDateRead($data) {
$this->_aData['date_read']=$data;
}
public function setCountFavourite($data) {
$this->_aData['topic_count_favourite']=$data;
}
public function setCountRead($data) {
$this->_aData['topic_count_read']=$data;
}
public function setCountComment($data) {
$this->_aData['topic_count_comment']=$data;
}
public function setCutText($data) {
$this->_aData['topic_cut_text']=$data;
}
public function setForbidComment($data) {
$this->_aData['topic_forbid_comment']=$data;
}
public function setTextHash($data) {
$this->_aData['topic_text_hash']=$data;
}
public function setUser($data) {
$this->_aData['user']=$data;
}
public function setBlog($data) {
$this->_aData['blog']=$data;
}
public function setUserQuestionIsVote($data) {
$this->_aData['user_question_is_vote']=$data;
}
public function setVote($data) {
$this->_aData['vote']=$data;
}
public function setCountCommentNew($data) {
$this->_aData['count_comment_new']=$data;
}
public function setDateRead($data) {
$this->_aData['date_read']=$data;
}
public function setCountFavourite($data) {
$this->_aData['topic_count_favourite']=$data;
}
}
?>

View file

@ -176,6 +176,7 @@ $config['module']['blog']['avatar_size'] = array(48,24,0); // Список ра
$config['module']['topic']['new_time'] = 60*60*24*1; // Время в секундах в течении которого топик считается новым
$config['module']['topic']['per_page'] = 10; // Число топиков на одну страницу
$config['module']['topic']['max_length'] = 15000; // Максимальное количество символов в одном топике
$config['module']['topic']['allow_empty_tags'] = false; // Разрешать или нет не заполнять теги
// Модуль User
$config['module']['user']['per_page'] = 15; // Число юзеров на страницу на странице статистики и в профиле пользователя
$config['module']['user']['friend_on_profile'] = 15; // Ограничение на вывод числа друзей пользователя на странице его профиля

View file

@ -179,6 +179,8 @@ return array(
'topic_title' => 'Topics',
'topic_read_more' => 'Read more',
'topic_date' => 'Date',
'topic_tags' => 'Tags',
'topic_tags_empty' => 'empty',
'topic_user' => "Author's text",
'topic_time_limit' => "Can't create topics in such a frequent rate",
'topic_comment_read' => 'Read comments',

View file

@ -179,6 +179,8 @@ return array(
'topic_title' => 'Топики',
'topic_read_more' => 'Читать дальше',
'topic_date' => 'дата',
'topic_tags' => 'Теги',
'topic_tags_empty' => 'нет',
'topic_user' => 'авторский текст',
'topic_time_limit' => 'Вам нельзя создавать топики слишком часто',
'topic_comment_read' => 'читать комментарии',

View file

@ -17,12 +17,16 @@
<ul class="topic-tags js-favourite-insert-after-form js-favourite-tags-topic-{$oTopic->getId()}">
<li>{$aLang.block_tags}:</li>
<li>{$aLang.topic_tags}:</li>
{strip}
{foreach from=$oTopic->getTagsArray() item=sTag name=tags_list}
<li>{if !$smarty.foreach.tags_list.first}, {/if}<a rel="tag" href="{router page='tag'}{$sTag|escape:'url'}/">{$sTag|escape:'html'}</a></li>
{/foreach}
{if $oTopic->getTagsArray()}
{foreach from=$oTopic->getTagsArray() item=sTag name=tags_list}
<li>{if !$smarty.foreach.tags_list.first}, {/if}<a rel="tag" href="{router page='tag'}{$sTag|escape:'url'}/">{$sTag|escape:'html'}</a></li>
{/foreach}
{else}
<li>{$aLang.topic_tags_empty}</li>
{/if}
{if $oUserCurrent}
{if $oFavourite}

View file

@ -25,9 +25,13 @@
<ul class="topic-tags">
<li>{$aLang.block_tags}:</li>
{strip}
{foreach from=$oTopic->getTagsArray() item=sTag name=tags_list}
<li>{if !$smarty.foreach.tags_list.first}, {/if}<a rel="tag" href="{router page='tag'}{$sTag|escape:'url'}/">{$sTag|escape:'html'}</a></li>
{/foreach}
{if $oTopic->getTagsArray()}
{foreach from=$oTopic->getTagsArray() item=sTag name=tags_list}
<li>{if !$smarty.foreach.tags_list.first}, {/if}<a rel="tag" href="{router page='tag'}{$sTag|escape:'url'}/">{$sTag|escape:'html'}</a></li>
{/foreach}
{else}
<li>{$aLang.topic_tags_empty}</li>
{/if}
{/strip}
</ul>