Перейти к публикации

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

Сразу скажу, что не знаю, насколько удачным получился, но всё же поделюсь..

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

ВАЖНО: Ставите на свой страх и риск, претензий в мой адрес не надо..

1. Выполняем MySQL запрос:

ALTER TABLE `dle_post` ADD `p_moderation` VARCHAR( 40 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL , ADD `p_lasteditor` VARCHAR( 40 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
2. Открываем engine/inc/massactions.php Ищем
		$db->query("UPDATE " . PREFIX . "_post SET {$field}='{$value}' WHERE id='{$id}'");
Заменяем на
		if ($field=="approve") $db->query("UPDATE " . PREFIX . "_post SET {$field}='{$value}', p_moderation='$member_db[2]' WHERE id='{$id}'");

		else $db->query("UPDATE " . PREFIX . "_post SET {$field}='{$value}' WHERE id='{$id}'");
3. Открываем engine/inc/editnews.php 3.1. Ищем все
approve, fixed FROM
Заменяем на
approve, fixed, p_moderation, p_lasteditor FROM
3.2. Ищем
$entries .= $erlaub;
На сл. строке вставляем
		if ($row['p_moderation']!="") $tpmod="$lang[edit_pmod]<br /><a class=list href=\"?mod=editusers&action=list&search=yes&search_name=".$row['p_moderation']."\">".$row['p_moderation']."</a><br />"; else $tpmod="";

		if ($row['p_lasteditor']!="") $tpled="$lang[edit_pled]<br /><a class=list href=\"?mod=editusers&action=list&search=yes&search_name=".$row['p_lasteditor']."\">".$row['p_lasteditor']."</a>"; else $tpled="";


		$entries .= "<td class=\"list\">$tpmod$tpled";
3.3. Ищем
<td width=80 align="center">{$lang['edit_approve']}
На сл. строке вставляем
	<td width=70 align="center">{$lang['edit_who']}
3.4. Ищем все
<td colspan="6"><div
Заменяем на
<td colspan="7"><div
3.5. Ищем
SELECT id, autor FROM
Заменяем на
SELECT id, autor, approve FROM
3.6. Ищем
$item_db[1] = $row['autor'];
На сл. строке вставляем
$item_db[2] = $row['approve'];
3.7. Ищем
$db->free();
На сл. строке вставляем
$p_lasteditor=$member_db[2];

if ($approve || $item_db[2]!=$approve) $p_moderation=$member_db[2];
3.8. Ищем все
expires='$expires', symbol='$catalog_url' WHERE
Заменяем на
expires='$expires', symbol='$catalog_url', p_moderation='$p_moderation', p_lasteditor='$p_lasteditor' WHERE
4. Открываем engine/ajax/editnews.php Ищем все
allow_br='$allow_br' where
Заменяем на
allow_br='$allow_br', p_lasteditor='$member_id[name]' where
5. Открываем language/Russian/adminpanel.lng Ищем
'edit_approve'
На сл. строке вставляем
'edit_who'		=>	" Кто? ",

'edit_pmod'		=>	"Модерил:",

'edit_pled'		=>	"Посл. редактор:",

Удачи!

Пользуйтесь, если пригодится..

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

PAV, молодец!

ALTER TABLE `dle_post` ADD `p_moderation` VARCHAR( 40 )

Вот только думается мне лучше хранить ID модератора в таблице новостей, а не его имя

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

Подправил пункты: 3.7 и 3.8 в 00:29 09.12.2007 (по Московскому времени), т.е.:

3.7. Ищем

$db->free();
На сл. строке вставляем
$p_lasteditor=$member_db[2];

$p_moderation="";

if (($approve && $item_db[2]!=$approve) || $item_db[2]!=$approve) $p_moderation=" p_moderation='$member_db[2]',";
3.8. Ищем все
expires='$expires', symbol='$catalog_url' WHERE
Заменяем на
expires='$expires', symbol='$catalog_url',$p_moderation p_lasteditor='$p_lasteditor' WHERE

ALTER TABLE `dle_post` ADD `p_moderation` VARCHAR( 40 )

Вот только думается мне лучше хранить ID модератора в таблице новостей, а не его имя

Как Вы, себе, это представляете?

1. При выводе списка новостей, отображается имя редактора (тот, кто нажал кнопку Сохранить, при редактировании новости..), также отображается имя отмодерировавшего (тот, кто пропустил новость, или же запретил её).. Для того, чтобы не добавлять потом в код - запросов, для определения юзера по его ID, а это приличное кол. запросов, если новостей конечно много..

2. Также имеются ссылки на пользователя, отредактировавшего или отмодерировавшего. А они как мы можем посмотреть из ссылки, происходит именно по имени "?mod=editusers&action=list&search=yes&search_name="

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

Что-то я намудрил :)

$p_lasteditor=$member_db[2];

$p_moderation="";

if ($item_db[2]!=$approve) $p_moderation=" p_moderation='$member_db[2]',";

И всё.. То есть, если значение approve, отличается от его же значения в БД, то сл. переменная, вписанная в SQL запрос - выполняется, а это значит, что наследуется новый или всё тотже отмодеривший новость (разрешил или запретил её показ..

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

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

что-то я не пойму, что делает этот хак?.. дайте пожалуйста описание мода, если это возможно :)

как выводить имя промодерировавшего в короткой новости?..

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

как выводить имя промодерировавшего в короткой новости?..

1. Открываем engine/engine.php

Ищем все строчки с

$sql_select =
Добавляем перед FROM
, p_moderation
2. Открываем engine/modules/show.short.php Ищем
$tpl->set('{short-story}'
На пр. строчке вставляем
	if ($row['p_moderation']) {

		$tpl->set('{moderation}', stripslashes($row['p_moderation']));

		$tpl->set('[moderation]', '');

		$tpl->set('[/moderation]', '');

	} else $tpl->set_block("'\\[moderation\\](.*?)\\[/moderation\\]'si","");
3. Открываем templates/ваша_тема/shortstory.tpl В нужное, Вам, место вставляем
[moderation]Отмодерировал: {moderation}[/moderation]

P.S. Переменные можно назвать по своему..

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

PAV, вообще да, вы правы относительно имени модератора в новости. Просто я привык всегда по ID делат ьвыборки, а у вас их и нет по сути =)

А вот касаемо записи

	if ($row['p_moderation']) {

		$tpl->set('{moderation}', stripslashes($row['p_moderation']));

		$tpl->set('[moderation]', '');

		$tpl->set('[/moderation]', '');

	} else $tpl->set_block("'\\[moderation\\](.*?)\\[/moderation\\]'si","");
и
[moderation]Отмодерировал: {moderation}[/moderation]
Вот честное слово, к чему лишние строчки, когда можно написать и так:
if ($row['p_moderation'])

	$tpl->set('{moderation}', 'Отмодерировал: '.stripslashes($row['p_moderation']));

else

	$tpl->set('{moderation}', '');

А в шаблоне просто в нужное место вставить {moderation}

Дело вкуса конечно ;)

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

А вот касаемо записи

...

Вот честное слово, к чему лишние строчки, когда можно написать и так:

if ($row['p_moderation'])

	$tpl->set('{moderation}', 'Отмодерировал: '.stripslashes($row['p_moderation']));

else

	$tpl->set('{moderation}', '');

А в шаблоне просто в нужное место вставить {moderation}

Дело вкуса конечно ;)

Для шаблонности..

У кого-то шаблон, сам по себе, сложный, у кого-то их несколько, у кого-то шаблоны на разных языках, не править же им языковые файлы?

А так согласен - дело вкуса..

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Я тут на днях буквально читал, что всё подключается одной строчкой ;)

А тут несколько различных вариаций одного и того же.. или чего?

Я вот неопытный совсем кодер и для меня это не то не похоже на готовое решение, а даже запутывающий ребус ;)

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

error2k, ну это же не модуль, а хак :o

ну я так думаю.. хотелось бы послушать опытных кодеров)

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

Готовым решением, подключающимся одной строчкой были бы готовые файлы, но это снесло бы все уже установленные хаки.

Так что тут по другому никак...Ибо меняются функционал, а не добавляется что-то новое.

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

Я вообще считаю, что лучше не парить себе мосги с устновкой этого хака. Какая разница кто редаткировал новость?

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

Nosferatu,

например, админу хочется видеть кто из модераторов пропускает качественные новости, а кто не очень

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

До тех пор, пока не будет в отдельную таблицу сливаться ВСЯ история исправлений - Кто и когда (в идеале конечно хотелось бы и что именно ) ченность мода весьма условна.

Модер 1 пропустил. Модер 2 исправил ОРФОРГАФИЧЕСКУЮ ошибку. Главный редактор ВЫДЕЛИЛ шрифтом акцент какой нить фразы. Бедный админ .. На кого ж ему думать ..

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

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

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

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

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

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

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