Перейти к контенту

Ссылка на журнал пользователя в RenderRow


Kallstrem

Рекомендуемые сообщения

  • 2 недели спустя...
наверное чтобы на форуме(не в блогах) в менюшке (ну где Админцентр · Личные данные · Новые сообщения...) была ссылка на Мой Дневник...
Ссылка на комментарий
Поделиться на других сайтах

наверное чтобы на форуме(не в блогах) в менюшке (ну где Админцентр · Личные данные · Новые сообщения...) была ссылка на Мой Дневник...
Если так, то можно в адмнике, в шаблоне форума "Изменить HTML фрагменты" ->skin_global->member_bar найти:

& nbsp; & middot; & nbsp;<b><a href="{ipb.script_url}act=UserCP&CODE=00" title="{ipb.lang['cp_tool_tip']}">{ipb.lang['your_cp']}</a></b>

добавить после (или перед - как вам будет удобнее):

& nbsp; & middot; & nbsp;<b><a href="/forum/journal.php?user={ipb.member['id']}&CODE=00" title="Мой Дневник">{$ibforums->lang['your_journal']}</a></b>

где forum - папка, в которой находится папка journal, если у вас она другая, значит

& nbsp; & middot; & nbsp;<b><a href="/ваша папка форума/journal.php?user={ipb.member['id']}&CODE=00" title="Мой Дневник">{$ibforums->lang['your_journal']}</a></b>

& nbsp ; & middot ; & nbsp ; - без пробелов.

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

Ссылка на журнал пользователя в RenderRow

А по точней, в каком таком RenderRow?

В котором аватарка, статус, дата регистрации и прочая атрибутика. В сообщениях в топике.

На 1.3 я это сделал, можно посмотреть на vesvalo.net в любом топике; не думаю, чтобы на "двушках" было принципиально труднее.

 

Сложнее, если нужны линки только на существующие журналы - тогда нужен дополнительный запрос к БД, чтобы проверить, создал ли пользователь журнал; этого я не делал.

Ссылка на комментарий
Поделиться на других сайтах

У меня 2.0.4.

 

Но можно же просто посмотреть в вышеозначенном шаблоне, как выглядит линк на "Личные данные" и линк на "Мой дневник" в таком же шаблоне дневника и "собрать" из них нужную ссылочку. :D

У меня, к сожалению, нет ни 2.2.х ни 2.3.х...

 

Упс! Прошу прощения, шаблон-то я упустила... skin_global это.

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

мбар дневника

<a href="{journal.script_url}user={ipb.member['id']}">{ipb.lang['j_my_journal']}</a>

 

мбар форума

<a href="{$this->ipsclass->base_url}act=UserCP&CODE=00" title="{$this->ipsclass->lang['cp_tool_tip']}">{$this->ipsclass->lang['your_cp']}</a>

 

собрал

<a href="/forum/journal.php?user={ipb.member['id']}&CODE=00" title="Мой дневник">{$this->ipsclass->lang['j_my_journal']}</a>

 

<a href="/forum/journal.php?user={ipb.member['id']}" title="Мой дневник">{ipb.lang['j_my_journal']}</a>

 

не работает :D ни ссылка, ни строчка j_my_journal

ссылка не генирируется, остается той же и на главную дневников ведет

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 6 месяцев спустя...
Сложнее, если нужны линки только на существующие журналы - тогда нужен дополнительный запрос к БД, чтобы проверить, создал ли пользователь журнал; этого я не делал.

Подскажите как сделать такой запрос?

Ссылка на комментарий
Поделиться на других сайтах

Там нюанс есть - закрытые дневники, заблокированные, только_для_друзей...

Тоже хотела так сделать, но не стала. Слишком много заморочек.

Ссылка на комментарий
Поделиться на других сайтах

Allure А какая разница закрыт дневник или нет? Кнопка должна быть у тех кто создал дневник, независимо закрыт он или нет. А вот уже при переходе в дневник, если он закрыт для данного пользователя, то будет выдавать ошибку и предложение обратиться к автору дневника...

Т.е запрос будет только на проверку созданных дневников

 

Или что-то не так понимаю? :D

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Ну, на мой взгляд, если уж делать ссылку выборочно, то прям всерьез - чтоб она была только у тех, кто ведет _открытый_ дневник. Но это ИМХО - на истину в последней инстанции никак не претендую. :D

 

Я тут сегодня ковырялась по своим делам в базе, наткнулась там в таблице ibf_members на поле has_blog, оно не при делах (ну, у меня, во всяком случае), так вот, если сделать вот такой запрос:

UPDATE ibf_members a SET has_blog='1' WHERE id = (SELECT b.id FROM ibf_jmembers b WHERE a.id=b.id AND j_posts>'0')

то потом по этому полю можно добавить условие if ($member['has_blog']) - показывать ссылку на дневник. Я, правда не посмотрела, куда его добавлять... :) Но, наверное, profile.php, topics.php и скины. Воть. ;)

НО. Сей способ действует ТОЛЬКО на УЖЕ СУЩЕСТВУЮЩИЕ дневники, на те, что будут созданы впоследствии - никак.

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

Тэк-с. Порылась немножко в файлах, все оказалось сильно проще: после вышеозначенного запроса, в mysql_queries.php найти в функции function topics_get_posts_with_join( $a ) в запросе вот это:

m.hide_email,

добавить тут же:

m.has_blog,

Затем в админке во ВСЕХ скинах - Редактировать HTML фрагменты->skin_topic->RenderRow - где-то пониже (на ваше усмотрение)

				{$author['avatar']}<br />

добавить:

<if="author['has_blog']">
<a href="/journal.php?user={$author['id']}">Дневник</a><br />
</if>

 

 

На всякий случай уточню, что у меня 2.0.4 - делала и пробовала я именно на нем, на 2.3.х, все то же самое, но там поле has_blog лучше не трогать, оно задействовано местами - мало ли, пригодится когда. :D Лучше сделать отдельный столбец:

ALTER TABLE ibf_members ADD has_journal tinyint(1) default 0 AFTER has_blog

заполняем так же:

UPDATE ibf_members a SET has_journal='1' WHERE id = (SELECT b.id FROM ibf_jmembers b WHERE a.id=b.id AND j_posts>'0')

 

в mysql_queries.php, добавить НЕ m.has_blog, А m.has_journal, и в скинах чуть иначе:

<if="$author['has_journal'] ">
<a href="/journal.php?user={$author['id']}">Дневник</a><br />
</if>

 

Собственно вот. Но это, опять же, на уже существующие дневники.

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

Тогда тебе еще надо добавить автоматическое обновление поля has_journal. Добавь в post_new.php и в post_misc.php, туда, где после добавления (удаления) записи пересчитывается общее кол-во записей в ibf_jmembers, еще один запрос, который будет обновлять поле has_journal в ibf_members.
Ссылка на комментарий
Поделиться на других сайтах

В принципе, да, конечно, надо. Но я это просто по ходу своей проблемы делала, поэтому не вдавалась. :D Пороюсь еще, наверное...
Ссылка на комментарий
Поделиться на других сайтах

Порылась. ;) *уж коли взялась...*

В post_new.php после:

			$DB->query("UPDATE ibf_jmembers SET j_last_post='".$row['post_date']."', j_posts='".$row['count']."', j_access='".$access."' WHERE id='".$journal->users['id']."'");

добавить:

			//Update member info
		if ($row['count'] == 1)
		{
			$DB->query("UPDATE ibf_members SET has_journal='1' WHERE id='".$journal->users['id']."'");
		}

В post_misc.php после:

		$DB->query("UPDATE ibf_jmembers SET j_last_post='".$posts['post_date']."', j_last_comment='".$comment['post_date']."', j_posts='".$posts['count']."', j_comments='".$comment['count']."', j_access='".$access."' WHERE id='".$journal->users['id']."'");

добавить:

		//Update member info
	if ($posts['count'] == 0)
	{
		$DB->query("UPDATE ibf_members SET has_journal='0' WHERE id='".$journal->users['id']."'");
	}

Версия дневников - любая. :) Если используете поле has_blog, соответственно вместо has_journal впишите его. :D

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.