Nikela |
Отправлено: 13 февраля 2011 — 20:41 • Тема: Мод: Смена автора существующего сообщения • Форум: Модификации и дополнения |
Ответов: 33 Просмотров: 0
|
electron пишет:Nikela , в архиве есть файл chownposts.diff - это и есть инструкция по установке
electron, спасибо, блин, ну разве можно догадаться что там инструкция ...
Я, наверное, полный нуб (хотя как-то ж большинство модов установила), но ткните меня носом в строки, где описано что надо делать в этом файле:
Спойлер (Отобразить)CODE:diff -U 3 -H -b -w -B -E -d -r -X /var/virtualhosts/alohomora/www/diffexclude.txt -- ExBB_FM_1.0_RC1/javascript/topicmoder.js ExBB_FM_1.0_RC1_with_chownposts/javascript/topicmoder.js
--- ExBB_FM_1.0_RC1/javascript/topicmoder.js 2007-01-15 03:31:32.000000000 +0300
+++ ExBB_FM_1.0_RC1_with_chownposts/javascript/topicmoder.js 2010-03-07 05:48:25.795721302 +0300
@@ -19,7 +19,7 @@
function CheckFormAction() {
act = document.ModOptions.action;
- if (act.value == 'delselected' || act.value == 'innew' || act.value == 'inexists' || act.value == 'delattach'){
+ if (act.value == 'delselected' || act.value == 'innew' || act.value == 'inexists' || act.value == 'delattach'|| act.value == 'chown'){
el = document.getElementsByTagName('input');
arr = ''; ii = 0;
for (var i = 0; i < el.length; i++){
diff -U 3 -H -b -w -B -E -d -r -X /var/virtualhosts/alohomora/www/diffexclude.txt -- ExBB_FM_1.0_RC1/language/russian/lang_front_forums.php ExBB_FM_1.0_RC1_with_chownposts/language/russian/lang_front_forums.php
--- ExBB_FM_1.0_RC1/language/russian/lang_front_forums.php 2009-03-11 00:05:36.000000000 +0300
+++ ExBB_FM_1.0_RC1_with_chownposts/language/russian/lang_front_forums.php 2010-03-07 05:47:30.763720594 +0300
@@ -108,6 +108,7 @@
$this->LANG['DelTrackers'] = 'Отписать от темы всех';
$this->LANG['TopRestore'] = 'Восстановить тему';
$this->LANG['SelectAll'] = 'Выделить все';
+$this->LANG['chown'] = 'Сменить автора';
$this->LANG['SearchText'] = 'Искать в тексте';
@@ -309,6 +310,14 @@
$this->LANG['AttachDeleteOk'] = 'Прикрепленные файлы, в выбранных сообщениях, успешно удалены!';
/*
+
+*/
+$this->LANG['chown_posts'] = 'Смена автора сообщений';
+$this->LANG['chown_posts_ok'] = 'Новые авторы назначены успешно. Счётчики сообщений успешно обновлены.';
+
+
+
+/*
move selected innew & inexists
*/
$this->LANG['MoveSelectedInNew'] = 'Выделение сообщений в новую тему';
diff -U 3 -H -b -w -B -E -d -r -X /var/virtualhosts/alohomora/www/diffexclude.txt -- ExBB_FM_1.0_RC1/postings.php ExBB_FM_1.0_RC1_with_chownposts/postings.php
--- ExBB_FM_1.0_RC1/postings.php 2009-07-15 21:55:08.000000000 +0400
+++ ExBB_FM_1.0_RC1_with_chownposts/postings.php 2010-03-07 05:47:30.765721128 +0300
@@ -77,6 +77,10 @@
break;
case 'delattach' : delattach();
break;
+ case 'chown' : chown_posts();
+ break;
+ case 'chownthread' : chown_posts(true);
+ break;
default : $fm->_Message($fm->LANG['MainMsg'],$fm->LANG['CorrectPost']);
break;
}
@@ -1529,6 +1533,16 @@
$list[$newtopic_id] = $tpm_list;
}
+ // Если посты переносятся в тему, находящуюся в подфоруме, то обновляем ластпост родительского форума
+ // Также в этом форуме увеличим число тем на 1 и число ответов на кол-во перемещаемых сообщений минус 1
+ $pcatid = $allforums[$toforum_id]['catid'];
+ if (stristr($pcatid, 'f')) {
+ $pforum = substr($pcatid, 1, strlen($pcatid) - 1);
+ $allforums[$pforum]['topics']++;
+ $allforums[$pforum]['posts'] += $countmoving - 1;
+ relast_post($pforum);
+ }
+
unset($tpm_list,$newlist);
uasort($list,"sort_by_postdate");
$fm->_Write($fp_list,$list);
@@ -1549,16 +1563,6 @@
$allforums[$forum_id]['posts'] = ($movingFlag === TRUE) ? $allforums[$forum_id]['posts']-$countmoving:$allforums[$forum_id]['posts']-1;
$allforums[$forum_id]['topics'] = count($list);
- // Если посты переносятся в тему, находящуюся в подфоруме, то обновляем ластпост родительского форума
- // Также в этом форуме увеличим число тем на 1 и число ответов на кол-во перемещаемых сообщений минус 1
- $pcatid = $allforums[$toforum_id]['catid'];
- if (stristr($pcatid, 'f')) {
- $pforum = substr($pcatid, 1, strlen($pcatid) - 1);
- $allforums[$pforum]['topics']++;
- $allforums[$pforum]['posts'] += $countmoving - 1;
- relast_post($pforum);
- }
-
// Если посты перенесены из темы, находящейся в подфоруме, то обновим ластпост родительского форума
// Также вычтем из числа ответов этого форума кол-во перемещённых сообщений
$pcatid = $allforums[$forum_id]['catid'];
@@ -1721,6 +1725,15 @@
$topicname = (isset($list[$newtopic_id]['tnun'])) ? $list[$newtopic_id]['name'].' - '.$list[$newtopic_id]['tnun']:$list[$newtopic_id]['name'];
}
+ // Если сообщения перемещаются в тему, находящуюся в подфоруме, то обновим ластпост в родительском форуме
+ // Также прибавим к числу ответов этого форума кол-во перемещаемых сообщений
+ $pcatid = $allforums[$toforum_id]['catid'];
+ if (stristr($pcatid, 'f')) {
+ $pforum = substr($pcatid, 1, strlen($pcatid) - 1);
+ $allforums[$pforum]['posts'] += $countmoving;
+ relast_post($pforum);
+ }
+
uasort($list,"sort_by_postdate");
$fm->_Write($fp_list,$list);
@@ -1738,15 +1751,6 @@
$allforums[$forum_id]['last_post'] = $list[$oldlasttopic]['name'];
$allforums[$forum_id]['last_post_id'] = $oldlasttopic;
- // Если сообщения перемещаются в тему, находящуюся в подфоруме, то обновим ластпост в родительском форуме
- // Также прибавим к числу ответов этого форума кол-во перемещаемых сообщений
- $pcatid = $allforums[$toforum_id]['catid'];
- if (stristr($pcatid, 'f')) {
- $pforum = substr($pcatid, 1, strlen($pcatid) - 1);
- $allforums[$pforum]['posts'] += $countmoving;
- relast_post($pforum);
- }
-
// Если сообщения перемещаются из темы, находящейся в подфоруме, то обновим ластпост в родительском форуме
// Также вычтем из числа ответов этого форума кол-во перемещаемых сообщений
$pcatid = $allforums[$forum_id]['catid'];
@@ -2056,4 +2060,152 @@
return $allforums;
}
+function chown_posts($chown_thread = false)
+{
+ global $fm, $allforums;
+ global $forum_id,$topic_id;
+ $action = $fm->input['action'];
+ if ($fm->_POST === FALSE)
+ {
+ $fm->_Message($fm->LANG['MainMsg'],$fm->LANG['CorrectPost']);
+ }
+
+ $allforums = $fm->_Read2Write($fp_allforums,FM_ALLFORUMS);
+
+ if (($topic_id = $fm->_Intval('topic')) === 0 || ($forum_id = $fm->_Intval('forum')) === 0 || !isset($allforums[$forum_id]))
+ {
+ $fm->_Message($fm->LANG['MainMsg'],$fm->LANG['CorrectPost']);
+ }
+ if (!$chown_thread)
+ {
+ if (($postkey = $fm->_String('postkey')) === '' || ($postkey = @unserialize($postkey)) === FALSE || count($postkey) === 0)
+ {
+ $fm->_Message($fm->LANG['chown'],$fm->LANG['NotSelectedPosts']);
+ }
+ }
+ $user_id = $fm->_Intval('user_id');
+ $user_name = $fm->_String('user_name');
+ if ( $user_id === 0 && $user_name === '' ) //первый этап: ввод части имени
+ {
+ $fm->_Fclose($fp_allforums);
+ $selectdesc = $fm->LANG['User'];
+ $jumphtml = '<input type="text" name="user_name">';
+ if (!$chown_thread)
+ $postkey = serialize($postkey);
+ else
+ $postkey = null;
+ $bodytitle = $fm->LANG['chown_posts'];
+ } else if ( $user_id === 0 ) { // второй этап: выбор имени
+ $fm->_Fclose($fp_allforums);
+ $selectdesc = $fm->LANG['User'];
+ $bodytitle = $fm->LANG['chown_posts'];
+ $allusers = $fm->_Read(FM_USERS,FALSE);
+ $username = preg_quote($fm->_LowerCase($user_name));
+ ksort($allusers);
+ $jumphtml = '<select name="user_id">'; //TODO сообщение "не найдено"
+ foreach ($allusers as $id=>$info)
+ {
+ if (preg_match("#^".$username."#is",$info['n']))
+ {
+ $jumphtml .= '<option value="'.$id.'">'.$info['n'].'</option>';
+ }
+ }
+ $jumphtml .= '</select>';
+ if (!$chown_thread)
+ $postkey = serialize($postkey);
+ else
+ $postkey = null;
+ } else {
+ $topic = $fm->_Read2Write($fp_topic,'forum'.$forum_id.'/'.$topic_id.'-thd.php', FALSE);
+ ksort($topic,SORT_NUMERIC);
+ end($topic);
+ $last_key = key($topic);
+ $user = $fm->_Read2Write($fp_user,'members/'.$user_id.'.php');
+ $allusers = $fm->_Read2Write($fp_allusers,FM_USERS,FALSE);
+ $count = 0;
+ $log_entry="chown_posts[forum_id=$forum_id,topic_id=$topic_id,user_id=$user_id]: ";
+ if ($chown_thread)
+ {
+ reset($topic);
+ $postkey = array(key($topic));
+ }
+ foreach ($postkey as $post_id)
+ {
+ if (!isset($topic[$post_id]))
+ {
+ $fm->_WriteLog($log_entry . 'ОШИБКА: пост '.$post_id.' не найден, пропуск.');
+ continue;
+ }
+ $prev_user_id = $topic[$post_id]['p_id'];
+ if ($prev_user_id==$user_id)
+ {
+ continue; //тот же юзер, нечего делать
+ }
+ $prev_user = $fm->_Read2Write($fp_prev_user,'members/'.$prev_user_id.'.php');
+ $prev_user['posts']--;
+ if (isset($prev_user['posted'][$forum_id]))
+ {
+ $prev_user['posted'][$forum_id]--;
+ if ($prev_user['posted'][$forum_id]<1)
+ unset($prev_user['posted'][$forum_id]);
+ }
+ $fm->_Write($fp_prev_user,$prev_user);
+ $user['posts']++;
+ if (isset($user['posted'][$forum_id]))
+ $user['posted'][$forum_id]++;
+ else
+ $user['posted'][$forum_id]=1;
+ $topic[$post_id]['p_id'] = $user_id;
+ $allusers[$prev_user_id]['p'] = $prev_user['posts'];
+ if ($last_key == $post_id || $chown_thread)
+ {
+ $list = $fm->_Read2Write($fp_list, 'forum'.$forum_id.'/list.php');
+ }
+ if ($chown_thread)
+ {
+ $list[$topic_id]['author'] = $user['name'];
+ $list[$topic_id]['a_id'] = $user_id;
+ }
+ if ($last_key == $post_id) //последний пост в теме
+ {
+ $list[$topic_id]['poster'] = $user['name'];
+ $list[$topic_id]['p_id'] = $user_id;
+ if ($allforums[$forum_id]['last_post_id'] == $topic_id)
+ {
+ $allforums[$forum_id]['last_poster'] = $user['name'];
+ $allforums[$forum_id]['last_poster_id'] = $user_id;
+ $pcatid = $allforums[$forum_id]['catid'];
+ if (stristr($pcatid, 'f'))
+ {
+ $pforum = substr($pcatid, 1, strlen($pcatid) - 1);
+ if ($allforums[$pforum]['last_post_id'] == $topic_id && @$allforums[$pforum]['last_sub'] == $forum_id)
+ {
+ $allforums[$pforum]['last_poster'] = $user['name'];
+ $allforums[$pforum]['last_poster_id'] = $user_id;
+ }
+ }
+ }
+ }
+ if ($last_key == $post_id || $chown_thread)
+ {
+ $fm->_Write($fp_list,$list);
+ unset($list);
+ }
+ unset($prev_user);
+ $count++;
+ }
+ $allusers[$user_id]['p'] = $user['posts'];
+ $fm->_Write($fp_topic,$topic);
+ $fm->_Write($fp_user,$user);
+ $fm->_Write($fp_allusers,$allusers);
+ $fm->_Write($fp_allforums,$allforums);
+ $fm->_WriteLog($log_entry . 'Завершено успешно. '.$count.' сообщений сменили владельца');
+ $fm->_Message($fm->LANG['chown_posts'], $fm->LANG['chown_posts_ok'], 'topic.php?forum='.$forum_id.'&topic='.$topic_id);
+
+ }
+ include('./templates/'.DEF_SKIN.'/all_header.tpl');
+ include('./templates/'.DEF_SKIN.'/chown_posts.tpl');
+ include('./templates/'.DEF_SKIN.'/footer.tpl');
+}
+
?>
diff -U 3 -H -b -w -B -E -d -r -X /var/virtualhosts/alohomora/www/diffexclude.txt -- ExBB_FM_1.0_RC1/templates/InvisionExBB/topic_options.tpl ExBB_FM_1.0_RC1_with_chownposts/templates/InvisionExBB/topic_options.tpl
--- ExBB_FM_1.0_RC1/templates/InvisionExBB/topic_options.tpl 2009-01-30 21:15:08.000000000 +0300
+++ ExBB_FM_1.0_RC1_with_chownposts/templates/InvisionExBB/topic_options.tpl 2010-03-07 05:47:30.766720296 +0300
@@ -10,6 +10,7 @@
<option value="innew">{$fm->LANG['MoveInNew']}</option>
<option value="inexists">{$fm->LANG['MoveInExists']}</option>
<option value="delattach">{$fm->LANG['AttachDelSelected']}</option>
+ <option value="chown">{$fm->LANG['chown']}</option>
<option value="-1" style="color:black"></option>
<option value="-1" style="color:black">---- {$fm->LANG['TopicOptions']} ----</option>
<option value="edittopic">{$fm->LANG['EditTitle']}</option>
@@ -20,6 +21,7 @@
<option value="movetopic">{$fm->LANG['Move']}</option>
<option value="trackers">{$fm->LANG['DelTrackers']}</option>
<option value="restore">{$fm->LANG['TopRestore']}</option>
+ <option value="chownthread">{$fm->LANG['chown']}</option>
</select>
<input name="chek" type="checkbox" onClick="ChekUncheck()" title="{$fm->LANG['SelectAll']}">
<input type="button" value="Go!" onClick="CheckFormAction();" />
electron пишет:их можно заливать к себе при условии что у вас "голый" , т.е. не обвешанный модами и исправлениями форум
Pauk утверждает обратное... |
Nikela |
Отправлено: 13 февраля 2011 — 19:50 • Тема: Мод: Смена автора существующего сообщения • Форум: Модификации и дополнения |
Ответов: 33 Просмотров: 0
|
Pauk пишет:в архиве есть файл инструкция, там все описано куда и что нужно добавить/заменить/удалить
Простите, но в с скаченном архиве я не нашла такого файла, там есть папки change, copy, и файл chownposts.diff
Можете этот файлик отдельно выложить? |
Nikela |
Отправлено: 13 февраля 2011 — 07:59 • Тема: Мод: Ссылки на последние темы форума на Вашем сайте • Форум: Модификации и дополнения |
Ответов: 235 Просмотров: 0
|
BON пишет:Nikela, и не надо весь код вводить. Код одгрузится и обработает в левом создамнном фаиле пхп
В общем, благодаря помощи пользователя igrok54, мод Зега удалось интегрировать на мой сайт + мы сделали его модулем прямо в Джумле, который выводится и отключается в админке. Все работает как часики.
За что я ему и премного благодарна. |
Nikela |
Отправлено: 12 февраля 2011 — 00:44 • Тема: ExBB и RSS лента • Форум: Настройка форума |
Ответов: 24 Просмотров: 0
|
Выявлена такая проблема в Google reader.
Копирую сюда посты моего пользователя:
Цитата:все внешние ссылки из rss ленты форума не редиректят по назначению, причина в отсутствии forum/ перед /rd.php.
Цитата:В качестве ридера у меня Google reader. В других ридерах нет проблем, а вот гуглридер к относительному пути (при внешних ссылках путь именно относительный, начиная от rd.php) не прибавляет контекст /forum (взятый из адреса ленты) как делают другие клиенты.
Цитата:Повлиять можно, если в rss выдывать абсолютные ссылки, те которые сейчас относительные (внешние, что идут через rd.php). |
Nikela |
Отправлено: 12 февраля 2011 — 00:19 • Тема: Мод: Смена автора существующего сообщения • Форум: Модификации и дополнения |
Ответов: 33 Просмотров: 0
|
lisiycat, действительно может решить.
Например смотрите: создалось 2 одинаковых темы (начальная и тема-дубль). Я беру в начальной теме создаю сообщение, в которое копирую временно под своим авторством текст из 1поста темы-дубля, затем в эту начальную тему забрасываю все остальные сообщения из темы-дубля, которые и так переносятся (только все никак не выйдет мод, чтобы они корректно датировались ) и потом беру и изменяю в своем скопированном посте автора, на того, кто создал тему-дубль.
Скачала, только вот установить его вряд ли получится, т.к. там идет замена файлов, которые уже правлены были мной не раз, из-за установки других модов. Было бы здорово, чтобы Юрий сделал стандартную инструкцию по установке мода, т.к. это хоть какое-то, но все-таки решение серьезной проблемы по склейке тем. |
Nikela |
Отправлено: 11 февраля 2011 — 00:17 • Тема: Нужен ли платный движок • Форум: Обсуждаем |
Ответов: 49 Просмотров: 0
|
yura3d, я абсолютно согласна с Вами на счет FAQ и систематизации, я сама все это очень уважаю.
И я высказалась не в качестве претензии, а больше в качестве шутки, чтобы успокоить автора.
yura3d пишет:Также существует вероятность, что при поиске сперва будет выдана ссылка на более старую тему. Конечно, всё это забота модераторов - объединять подобные темы.
А вот объясните, плиз, как это возможно если это не доступно - http://exbb.info/community/topic...=3&topic=180 ? |
Nikela |
Отправлено: 10 февраля 2011 — 23:49 • Тема: Фраза "Отредактировано автором" • Форум: Настройка форума |
Ответов: 22 Просмотров: 0
|
electron, имхо - это не выход.
1Bot, привычка и лень - это такое заразное дело... очень сложно себя заставить делать что-то по-другому, если первое доведено до автоматизма честно сказать даже не обращала внимания на эту кнопку
Если ввести в гугле "отредактировано автором", то в топе форум на exBB Геодезист ру |
Nikela |
Отправлено: 10 февраля 2011 — 20:38 • Тема: Перенос сообщения • Форум: Общие вопросы |
Ответов: 14 Просмотров: 0
|
Плохо, мне надо объединить одинаковые темы, созданные пользователем.
Неужели нет вариантов? |
Nikela |
Отправлено: 10 февраля 2011 — 00:50 • Тема: Фраза "Отредактировано автором" • Форум: Настройка форума |
Ответов: 22 Просмотров: 0
|
Прошу о создании следующего мода: сейчас при изменении своего собственного поста вставляется фраза:
(Отредактировано автором: 23 декабря 2010 — 22:37)
Она вставляется даже если редактирование осуществилось менее чем в течение минуты после создания сообщения. Мне кажется это как-то неразумно и эта фраза постоянно засоряет форум (если отфильтровать все мои сообщения то 90% будут с этой фразой, т.к. я сначала публикую, потом исправляю ).
Пожелание: сделать вывод этой фразы, если редактирование осущ. после того как прошло 5мин с момента публикации. Еще можно добавить условие, чтобы эта фраза выводилась ранее 5мин если после поста добавлен следующий пост другим автором, т.е. чтобы автор нового поста выдел, что предыдущий пост отредактирован.
Так же хочется задать другой стиль этой фразе, в частности уменьшить шрифт, т.е. буду благодарна за подсказку где это сделать.
зы. Может стоить на этот форум добавить Мод поиска тем и сообщений пользователей? а то я собственные посты порой не могу найти в какой теме оставляла. Как-то я плохо ориентируюсь в разделах форума. |
|