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

Ссылка на журнал пользователя в 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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