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

Журнал - Дневник


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

Хм, я не знаю, что было бы более предпочтительно для наших пользователей - облако тэгов или категории. Мне просто почему-то видится, что использование тэгов большей части пользователей будет непонятно, т.е. это будет для них более сложнее и неудобнее, чем категоризация сообщений. Разумеется, если речь идет о начинающих блоггерах, скажем так. Тем не менее, хотелось бы ориентироваться в создании дневника на его максимальную простоту и понятность любому пользователю форума, и с этой точки зрения создание категорий выглядит, на мой взгляд, предпочтительнее, чем тэги.

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

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

И обязательно при этом должен быть добавлен новый блок информации в дневнике, в котором отображаются существующие у хозяина дневника категории записей (также в виде ссылок, по нажатию на которые будут выводиться записи, относящиеся к данной категории).

При этом было бы неплохо, чтобы можно было вводить описания категорий, которые бы выводились мелким шрифтом в данном блоке под их названиями.

Примерная структура дополнительного блока информации со списком существующих категорий:

"Название категории" "Количество записей"

"описание категории"

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

  • Ответы 1k
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

if ($r['in_topic'] != "")

{

$tid_array[] = $r['in_topic'];

}

 

Вот этот код может быть другим? Нет у меня такого почему-то в файле online php может он может быть другим и поэтому я не могу его найти? Из-за того, что его, в он-лайн кто что читает, просто отражается: такой-то Енот читает журнал: и дальше пусто. Как найти этот кусок, каким он может быть. У меня его точно нет, я и так и по частям искала. Фраза in_topic полностью и целиком отсутствует.

 

 

Я вот про это.

 

Найти:

-------------------

Код

if ($r['in_topic'] != "")

{

$tid_array[] = $r['in_topic'];

}

 

-------------------

Добавить ниже:

-------------------

Код

if (isset($r['location']))

{

list($act, $pid) = explode( ",", $r['location'] );

if (($act == 'Journal') and (intval($pid) > 0))

{

$j_array[] = $pid;

}

}

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

StRiANON

Ну можно и теги и категории сделать т.е. сделать гибрид

 

Также есть вопрос - как сделать на форуме блок вывода последних n сообщений из дневника? Чтобы выводились не полностью сообщения, а в формате shoutbox'a, например:

"17:00 сегодня "название дневника" "название автора" "название записи"

"первые несколько слов записи"

"16:45 сегодня "название дневника" "название автора" "название записи"

"первые несколько слов записи"

и т.п.

Может это подойдет? (см. ниже)

 

Инфо-Блок с последними изменениями в Дненвниках для форума на примере IPB 2.0.x

Добавляем в файле /sources/lib/boardstats_functions.php функцию
function top_x_journal_stats()

{

global $DB, $ibforums, $std;

 

$DB->simple_construct(array('select' => 't.*', 'from' => "jmembers t", 'order' => 'j_last_comment DESC, j_last_post DESC', 'limit' => array(0, 5)));

$DB->simple_exec();

 

while ( $row = $DB->fetch_row() )

{

if ($row['j_last_post'] > $row['j_last_comment'])

{

$data['top_posters'] .= "<tr><td width='14%'><small><a href='journal.php?user={$row['id']}'>{$row['name']}</a></small></td><td width='56%'><small>{$row['j_title']}</small></td><td width='6%'><span style='color:gray'><small>[зап]</small></span></td><td width='30%'><small>".$std->get_date($row['j_last_post'], 'LONG')."</small></td></tr>";

}

else

{

$data['top_posters'] .= "<tr><td width='14%'><small><a href='journal.php?user={$row['id']}'>{$row['name']}</a></small></td><td width='56%'><small>{$row['j_title']}</small></td><td width='6%'><span style='color:gray'><small>[ком]</small></span></td><td width='30%'><small>".$std->get_date($row['j_last_comment'], 'LONG')."</small></td></tr>";

}

}

return $data;

}

в файле /sources/boards.php находим в функции auto_run

		$this->output .= $this->html->PageTop( $std->get_date( $ibforums->input['last_visit'], 'LONG' ) );


	//-----------------------------------------
	// What are we doing?
	//-----------------------------------------

и добавляем ниже

$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($this->statfunc->top_x_journal_stats(), $t5bs), $this->output);

 

В скинах в boards->PageTop в конце дописываем

<!--TOPXJSTATS-->

 

Добавляем в boards top_x_j_stats

входные переменные $data="",$show=""

и содержимое:

<table align='center' width='100%' cellspacing='1' cellpadding='0'>
 <tr>
<th width='50%' align='center'>Последние события в Дневниках</th>
 </tr>
 <tr>
<td class='row2' width='1000%' valign='top'>
  <table align='left' width='100%' cellspacing='0' cellpadding='0'>
  {$data['top_posters']}
  </table>
</td>
 </tr>
</table>

 

 

После установки даст Вам на индексной странице форума отображение блока с последними (в даном случаем 5-ю событиями) событиями в Дневниках. В расчет берутся и записи и коменты.

 

--

жирным выделено то что изначально забыл добавить, каюсь

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

Фикс к и моему и к Arhar'а Кеширование CSS

 

открываем

/journal/dosetup.php

 

найди

$css_data = "<style type='text/css'>\n\n".$css_data."</style>";

 

и перед этим вот это добавить

	$journal->skin->load_skin();
$img_dir = $ibforums->vars['journal_url'].'/journal/style_images/'.$journal->skin->skin_info['img_dir'];
$css_data = str_replace( "<#IMG_DIR#>", $img_dir, $css_data );

фиксит непарсинг макроса <#IMG_DIR#> в случае использования хака кеширования CSS

тестируйте :D

 

Да и еще если кто подскажет более прсотой способ получить skin_info['img_dir'] вместо этой "портянки"

$journal->skin->clear_skin_list();
$journal->skin->add_to_list(array('prints','posts'));
$journal->skin->load_template();

буду только рад

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

Lera

Помогите под 2.1 сделать так, что бы "кто в он-лайне" отображали и дневники. Спасибо.

Для стандартного форумовского "кто онлайн" инструкция есть в архиве с дистрибутивом (блин, круто звучит "дистрибутив" :D ) дневников. Инструкции для 2.0.х и 2.1.х входят в комплект. Смотрите внимательнее...

 

 

xRay

Да и еще если кто подскажет более прсотой способ получить skin_info['img_dir'] вместо этой "портянки"

Помоему достаточно только выполнить $journal->skin->load_skin();

Или нет ?

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

В стандартном дистрибутиве нет "компонентов метонахождения", т.е. в профиле пользователя, например, не отображается, если юзер в дневнике.

 

Про категории - это действительно очень полезно и удобно. На примере своего же дневника видно, было бы полезно иногда при необх. откопать фотки сделать выборку по категории фотки, а не тупо искать по всем страницам и записям.

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

urisoft

Помоему достаточно только выполнить $journal->skin->load_skin();

Или нет ?

да ты прав, спасибо :D

 

свою инструкцию подкоректировал

 

wrm

для 2.0.х я еще вот это добавлял (к основоной иснтрукции которая в дистрибутиве идет)

 

/sources/online.php

находим

				$act = strtolower($act);

			if (isset($act))
			{
				$line = isset($this->where[ $act ]) ? $this->where[ $act ] : $ibforums->lang['board_index'];
				}

перед этим добавляем

if (eregi($sess['location'],"Journal"))
{ 
 $act = "Journal";
}

 

находим

				if ($fid != "" and ($act == 'sf' or $act == 'st' or $act == 'post'))

 

заменяем на это

				if ($fid != "" and ($act == 'sf' or $act == 'st' or $act == 'post' or $act=='journal'))

 

Это для просмотра по тех кто в онлайн (по последним действиям), а для профиля я не стал делать.

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

Это для просмотра по тех кто в онлайн (по последним действиям), а для профиля я не стал делать

А это и так наличиствует в инструкции по установке и даже больше...

 

а вот инструкция, для показа соответствующей инфы в профиле (для 2.0.х):

lang_profile.php

после

$lang = array (

добавить

// JOURNAL MOD
'wol_journal'	=>	"Просмотр журнала",
'journal_main'	=>	"Главная страница дневников",
// END JOURNAL MOD

 

profile.php

найти

			if ( $member['in_topic'] )
		{
			$topic = $DB->simple_exec_query( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid='.$member['in_topic'] ) );

выше

			// JOURNAL MOD
		if (isset($member['sesslocation'])) {
			list($_act, $_j_pid) = explode( ",", $member['sesslocation'] );
			if ($_act == 'Journal') {
				$member['in_journal'] = intval($_j_pid);
			}
		}
		if (isset($member['in_journal'])) {
			if ($member['in_journal']>0) {
				$j_mem = $DB->simple_exec_query( array( 'select' => 'id, name', 'from' => 'members', 'where' => 'id='.$member['in_journal'] ) );
				$where = $ibforums->lang['wol_journal'].': '."<a href='{$ibforums->vars['board_url']}/journal.php?user={$j_mem['id']}'>{$j_mem['name']}</a>";
			}else{
				$where = " <a href='{$ibforums->vars['board_url']}/journal.php'>{$ibforums->lang['journal_main']}</a>";
			}
		} else
		// END JOURNAL MOD

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

StRiANON

Ну можно и теги и категории сделать т.е. сделать гибрид

 

Также есть вопрос - как сделать на форуме блок вывода последних n сообщений из дневника? Чтобы выводились не полностью сообщения, а в формате shoutbox'a, например:

Может это подойдет? (см. ниже)

 

в файле /sources/boards.php находим в функции auto_run

		$this->output .= $this->html->PageTop( $std->get_date( $ibforums->input['last_visit'], 'LONG' ) );


	//-----------------------------------------
	// What are we doing?
	//-----------------------------------------

и добавляем ниже

$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($this->statfunc->top_x_journal_stats(), $t5bs), $this->output);

 

Загвоздка с добавлением

$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($this->statfunc->top_x_journal_stats(), $t5bs), $this->output);

 

на выходе чистый белый экран получается, видимо что-то не проходит (версия 2.0.4)

 

стоит закомментировать эту строку и все отрисовывается как надо

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

Это для просмотра по тех кто в онлайн (по последним действиям), а для профиля я не стал делать

А это и так наличиствует в инструкции по установке и даже больше...

 

а вот инструкция, для показа соответствующей инфы в профиле (для 2.0.х):

 

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

 

потомучто копипасте

top_x_journal_stats -> top_x_j_stats

 

Пробовал и так и сяк, все равно белый лист... в boardstats_function.php именно top_x_journal_stats , а в скинах top_x_j_stats

 

или ты предлагаешь

$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($this->statfunc->top_x_journal_stats->top_x_j_stats(), $t5bs), $this->output);

 

??? но это что-то не то ...

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

эээ

жаль нет 20х

надо знаешь как, везде вообще заменить имена на top_x_j_stats в исходном варианте

 

function top_x_j_stats()

$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($this->statfunc->top_x_j_stats(), $t5bs), $this->output);

 

 

или такой код

$j_stats = $this->statfunc->top_x_j_stats();
$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($j_stats , $t5bs), $this->output);

тогда можно будет понять, какая именно функция глючит

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

2 Arhar, это то же самое только вид сбоку, пробовал различные варианты и этот в том числе ... что-то не так с отрисовкой ... есть несколько мыслей на эту тему ... попробую может получится ...
Ссылка на комментарий
Поделиться на других сайтах

Для стандартного форумовского "кто онлайн" инструкция есть в архиве с дистрибутивом (блин, круто звучит "дистрибутив" smile.gif ) дневников. Инструкции для 2.0.х и 2.1.х входят в комплект. Смотрите внимательнее...

Спасибо, поняла, а то пыталась использовать 2.0 и не пошло.

 

 

 

ну так что, мне выкладывать для 2.1.х для списка онлайн инструкцию?

У тебя уже есть? Выложи, пожалуйста.

 

Ребят, а для 2.1 версий есть вывод дневников на панель 5 топ? Или подождать надо?

 

Всем спасибо, дневники преображаются прям))) Лучше форума)))

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

По поводу загвоздки с Инфо-блоком дневников для форума

чтобы запахал он на 2.1.х нужно учесть что есть разница в основных классах между IPB 2.0.х и IPB 2.1.х сори, но сам я раньше вечера до кода не смогу добратся чтобы на 2.1.х переписать.

 

Lera

погляди в архив дистрибутивный там етсь же файл online.txt для 2.0.х и для 2.1.х

если нет то вот он для 2.1.х http://webfile.ru/1432426

 

Это для просмотра по тех кто в онлайн (по последним действиям), а для профиля я не стал делать

А это и так наличиствует в инструкции по установке и даже больше...

нет те строчки что я привел их нет в инструкции

только что еще раз перепроверил

 

за профиль спасибо :D

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

Поставила кто он в лайн, проверила несколько раз, дневники стали отображаться, то есть я вижу, кто какой дневник читает, но если пользователь на главной странице дневников, то это отображается вот так: Просмотр журнала: (дальше пусто), вместо надписи Главная страница, как указано в моде.

 

// JOURNAL MOD

WHERE_journal => "Просмотр журнала:",

'journal_main' => "Главная страница",

// END JOURNAL MOD

 

Как можно поправить? И где искать ошибку?

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

Lera

погляди мой код на пердидущей страничке который я специально выложил он как раз это и фиксит

 

Arhar и replicant

top_x_journal_stats - она у нас используется для заполнения данных в скине

top_x_j_stats

 

вы скин не забыли создать-то?

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

Arhar и replicant

top_x_journal_stats - она у нас используется для заполнения данных в скине

top_x_j_stats

 

вы скин не забыли создать-то?

 

Погоди погоди, создать новый скин-файл или добавить функцию в существующий skin_boards.php ? Добавить в skin_boards труда не составит, с этим сложно ошибиться.

 

//===========================================================================
// top_x_j_stats
//===========================================================================
function top_x_j_stats ($data="", $show="") {
global $ibforums;
$IPBHTML = "";
//--starthtml--//


$IPBHTML .= <<<EOF
<table align='center' width='100%' cellspacing='1' cellpadding='0'>
 <tr>
<th width='50%' align='center'>Последние события в Дневниках</th>
 </tr>
 <tr>
<td class='row2' width='1000%' valign='top'>
  <table align='left' width='100%' cellspacing='0' cellpadding='0'>
  {$data['top_posters']}
  </table>
</td>
 </tr>
</table>
EOF;

//--endhtml--//
return $IPBHTML;
}

 

Но проблема у меня где-то тут ...

 

				$this->output .= $this->html->member_board_panel($bpdata);
	}
else
{
$this->output .= $this->html->PageTop( $std->get_date( $ibforums->input['last_visit'], 'LONG' ) ); // это вывод самой панельки добро пожаловать ваш последний визит, искать и т.д. к ее скин-функции и пришивается кусок, который мы потом реплейсим чуть ниже <!--TOPXJSTATS-->
}
	//-----------------------------------------
	// What are we doing?
	//-----------------------------------------

$this->output = str_replace("<!--TOPXJSTATS-->", $this->html->top_x_j_stats($this->statfunc->top_x_journal_stats(), $t5bs), $this->output); // эту строку мы должны вставить, в ней получение данных от top_x_journal_stats и замена куска PageTop отрисованным top_x_j_stats, разместить его можно даже в самом низу в статистике форума, сути дела это не должно менять

	$this->process_all_cats(); // это вывод всех форумов, если его отключить то будет только шапка и статистика

 

Сама метка <!--TOPXJSTATS--> может быть какой угодно ... и стоять в скин-файле где угодно ... главное чтобы это был skin_boards.php

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

replicant

просто добавить новый новый скин top_x_j_stats в группу boards

 

про это не позабыли?

 

В скинах в boards->PageTop в конце дописываем

 

<!--TOPXJSTATS-->

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

2 xRay, кусок из skin_boards.php я привел, есс-но что в конце PageTop <!--TOPXJSTATS--> добавлено ...

 

Даже если бы у меня не было скина, то были бы ошибки из-за обращения к несуществующему top_x_j_stats ... стоило только выполниться /sources/boards.php, но когда я комментирую добавляемую строку в boards.php то все снова становится как было ... а с ней просто белая страница ... даже без ошибок ... вот в чем странность-то ... обычно если что-то не так, то у меня ошибки падают на экран.

 

Если бы возникли ошибки то было бы проще, а так их просто нет ... есть пустота и все.

 

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

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

Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...

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

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