Forums / National / Russian / Тех. поддержка / переход по ссылке сразу на нужный пост на форуме

Kabak
#1 2024-07-17 11:08

Почему-то не работает автоматический скролинг страницы на нужный пост при переходе по ссылке.  

1) В чём может быть проблема ?

2) Как решить ?

Kort
#2 2024-07-17 19:59
  1. Надо посмотреть как генерится ссылка и есть ли там все необходимые параметры URL'а
  2. В шаблоне forums.posts.tpl проверь наличие анкора
    <a name="bottom"></a>

    после последнего поста

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#3 2024-07-18 10:37

ссылка :  http://93.125.49.123/apcfix/index.php?e=forums&m=posts&id=5109

 

<a name="bottom"></a>

нет.  где его ставить

 

<!-- BEGIN: FORUMS_POSTS_ROW -->
<section class="forum_post">
<div class="fp_header">	
		<div class="forum_date">
			<a name="{FORUMS_POSTS_ROW_ID}" id="{FORUMS_POSTS_ROW_POSTID}" href="{FORUMS_POSTS_ROW_IDURL}" rel="nofollow">{FORUMS_POSTS_ROW_ORDER}</a>
			&nbsp{FORUMS_POSTS_ROW_CREATION}
		</div>
<div class="admin">
	<!-- IF {PHP.usr.isadmin} -->
		<!-- IF {FORUMS_POSTS_ROW_POSTERIP} -->{FORUMS_POSTS_ROW_POSTERIP}<!-- ENDIF -->
		<!-- IF {FORUMS_POSTS_ROW_QUOTE} -->{PHP.cfg.separator}{FORUMS_POSTS_ROW_QUOTE}<!-- ENDIF -->
		<!-- IF {FORUMS_POSTS_ROW_EDIT} -->{PHP.cfg.separator}{FORUMS_POSTS_ROW_EDIT}<!-- ENDIF -->
		<!-- IF {FORUMS_POSTS_ROW_DELETE} -->{PHP.cfg.separator}{FORUMS_POSTS_ROW_DELETE}<!-- ENDIF -->
		{FORUMS_POSTS_ROW_BOTTOM}
	<!-- ENDIF -->					
	<!-- IF ({PHP.usr.id} == {FORUMS_POSTS_ROW_USERID}) OR {PHP.usr.isadmin} -->
	<!-- {PHP|cot_auth('plug', 'attach2', 'W')} -->
	{PHP.cfg.separator}{FORUMS_POSTS_ROW_ID|att_widget('forums',$this,'attach2.link')}
	<!-- ENDIF -->
	<!-- ENDIF -->
</div>
</div>

<div class="about">
	<!-- IF {PHP.rowt.ft_firstpostername}  ==  {PHP.row.user_name} -->
	<div title="{PHP.cfg.menu4}" class="topic_starter"><img src="{PHP.cfg.themes_dir}/{PHP.theme}/img/author.png"></div>
	<!-- ENDIF -->
	<div class="avatar{FORUMS_POSTS_ROW_USERONLINE}">
		<!-- IF {FORUMS_POSTS_ROW_USERAVATAR} -->
			{FORUMS_POSTS_ROW_USERAVATAR}
		<!-- ELSE -->
			{PHP.R.forums_noavatar}
		<!-- ENDIF -->
	</div>
	<br />
	<div>
		<div class="{FORUMS_POSTS_ROW_USERMAINGRPNAME}">{FORUMS_POSTS_ROW_USERNAME}</div>
	<br />
	<!-- IF {FORUMS_POSTS_ROW_USERLOCATION} -->
		<p>{FORUMS_POSTS_ROW_USERLOCATION_TITLE} : {FORUMS_POSTS_ROW_USERLOCATION}</p>
	<!-- ENDIF -->					
		<p>{PHP.L.forums_posts}: {FORUMS_POSTS_ROW_USERPOSTCOUNT}</p>
	<!-- IF {FORUMS_POSTS_ROW_USERTHANKS} != 0 -->
		<p class="thanken_forum"><a href="{FORUMS_POSTS_ROW_USERTHANKS_URL}">{PHP.L.thanks_thanked} {FORUMS_POSTS_ROW_USERTHANKS_TIMES}</a></p>
	<!-- ENDIF -->
	</div>
</div>

<div class="message">
		<div class="message_body">
			{FORUMS_POSTS_ROW_TEXT}

<!-- IF {FORUMS_POSTS_ROW_UPDATEDBY} -->
	<div class="padding_forum_sys font_small">
		{FORUMS_POSTS_ROW_UPDATEDBY}
	</div>
<!-- ENDIF -->
	</div>
<!-- IF {FORUMS_POSTS_ROW_USERTEXT} -->	
<div class="signature_gold"><div class="signature_delimiter"><hr></div>{FORUMS_POSTS_ROW_USERTEXT}</div>
<!-- ENDIF -->	

<!-- IF {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'files')} > 0 OR {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'images')} > 0 -->
<!-- IF {PHP.usr.maingrp} > 1 -->
	<br>
		<div class="signature_delimiter"><hr></div>
	<br>
	<!-- IF {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'images')} > 0 -->
			<p>{FORUMS_POSTS_ROW_ID|att_gallery('forums',$this)}</p>
	<!-- ENDIF -->
	<!-- IF {FORUMS_POSTS_ROW_ID|att_count('forums',$this,'files')} > 0 -->
			<p>{FORUMS_POSTS_ROW_ID|att_downloads('forums',$this)}</p>
	<!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->
</div>	

<div class="div_thanks">
	<!-- IF {FORUMS_POSTS_ROW_THANKS_CAN} -->
		<div class="thanks">
			<a href="{FORUMS_POSTS_ROW_THANKS_URL}">
				<button class="button1 small">{PHP.L.thanks_thanks}</button>
			</a>
		</div>
	<!-- ENDIF -->
	
	<!-- IF  {FORUMS_POSTS_ROW_THANKS_USERS} -->
	<div class="signature_delimiter"><hr></div>
	<div class="thanken_forum_list"><p>{PHP.L.thanks_thanked}:</p>
		</br> 
		<p> {FORUMS_POSTS_ROW_THANKS_USERS} | всего : 
			<a href="{FORUMS_POSTS_ROW_THANKS_LIST_URL}">{FORUMS_POSTS_ROW_THANKS_COUNT}</a>
		</p>
	</div>
	<!-- ENDIF -->
</div>
			
 ????    ЗДЕСЬ    ???????    <a name="bottom"></a>			
</section>
<!-- END: FORUMS_POSTS_ROW -->

 

Kort
#4 2024-07-18 10:54
<a name="bottom"></a>

размещается после регулярного блока FORUMS_POSTS_ROW и необходим для переходов вида

https://www.cotonti.com/forums?m=posts&q=9215&n=last#bottom

т.е. к последнему посту. Но принцип аналогичен. Чтобы твоя ссылка прокрутила страницу до искомого поста, она должна быть оформлена как

http://93.125.49.123/apcfix/index.php?e=forums&m=posts&id=5109#post_5109

А анкор у тебя уже есть:

...
<a name="5109" id="post_5109" href="index.php?e=forums&amp;m=posts&amp;id=5109" rel="nofollow">5109</a>
...

Стилизовать целевой элемент можно псевдоклассом :target

SED.by - создание сайтов, разработка плагинов и тем для Котонти
This post was edited by Kort (2024-07-18 13:10, 4 months ago)
Kabak
#5 2024-07-18 15:56

Я хочу сделать так, чтобы на странице с постами были видны все посты, но страница автоматически проскролилась до нужного ID поста на ней.

Kort
#6 2024-07-18 16:22
<a href="{FORUMS_POSTS_ROW_IDURL}#post_{FORUMS_POSTS_ROW_ID}" rel="nofollow">{FORUMS_POSTS_ROW_ORDER}</a>

 

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kabak
#7 2024-07-21 07:02

Решилось всё заменой тега {FORUMS_POSTS_ROW_IDURL}  на  {FORUMS_POSTS_ROW_URL} в forums.posts.tpl

 

Благодарю, Kort