Название следующего топика при a:hover

Всем привет! Как реализовать такую штуку:
Есть у меня кнопка «Читать следующий топик», надо чтобы при наведении курсора появлялось название этого следующего топика.

Помогите, пожалуйста.

11 комментариев

avatar
Если вопрос в оформлении, то атрибут title и его оформление с помощью CSS.
avatar
вот title топика {$oTopic->getTitle()|escape:'html'}
но тут наверное вопрос как получить title следующего топика?
да и следующий может быть разным в зависимости от фильтра…
avatar
Именно, надо получить тайтл следующего топика, я не знаю как это сделать.: с
avatar
А покажите как выводится Вана кнопка «Читать следующий топик».
avatar
*Ваша
avatar
<a href="{$aPaging.sBaseUrl}/blog/{$oBlog->getUrl()}/{$oTopic->getId()-1}.html"></a>
avatar
По-моему, из этого тайтл не вытянешь, может кто из программеров подскажет решение…
avatar
А если топик удален? Или в черновиках?
Как-то смело вы единицы вычитаете.

Нужно в контроллере получать «следующий» и сеттить его в переменную шаблона.
avatar
Так на коленке состряпал. Можно хук использовать:

public function RegisterHook() {
    $this->AddHook('template_topic_next', 'GetNextTopicTitle', __CLASS__);
}
public function GetNextTopicTitle($aParams) {
    $oID=$aParams['oTopicId'];
    $oTopicNext=$this->Topic_GetTopicById($oID)
    $this->Viewer_Assign('$aTopicNext', $oTopicNext);
}


а в шаблоне так:
{$oId=$oTopic->getId()-1}
{hook run='topic_next' oTopicId=$oId}			
<a href="{$aTopicNext->getUrl()}">{$aTopicNext->getTitle()|escape:'html'}</a>


Но конечно гораздо проще есть решение, но нужно код смотреть
avatar
Выгрузите в шаблон следующий топик, например, как $oBlogNext.
avatar
Основная проблема, что штатными методами не сделать выборку по blog_id и topic_id одновременно.
1-й вариант, простой, но прожорливый из-за массива: получить весь список по blog_id, найти в цикле текущий topic_id и выгрузить в шаблон следующий топик.
2-й вариант: реализовать mapper->module с запросом
SELECT t.topic_id, t.topic_title
FROM prefix_topic AS t
WHERE t.topic_id > ?d
AND t.blog_id = ?d
AND t.topic_publish = 1
LIMIT 1

Соответственно, в качестве параметров blog_id и текущий topic_id.
Тогда в шаблоне можно сразу дергать title следующего топика, например:
{$LS->Topic_GetNextTopicTitle($oTopic->getBlogId(), $oTopic->getId())}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.