Не знаю куда вставить код, помогите пожалуйста

Автор THEKILLERS, 23 марта 2011, 14:37:51

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

THEKILLERS

Поставил мод Notify Modification Last Post (http://dragomano.ru/page/notify-modification-last-post и официальная страница http://custom.simplemachines.org/mods/index.php?mod=1557). Мод рассчитан на RC1, но при установке (у меня RC5) нужно исправить всего лишь один файл. Я попробовал на локалке это сделать-мод полностью работает. Точно такого же куска кода, который выдало при установке (кода нажимаешь файлы для правки, если есть ошибки), не было. Поэтому я установил RC1 на локалке. Там конечно же нашел этот код, потом отыскал подобный в RC5. Вот код из RC1:
Цитировать............
   )
      );
   }

   // Mark inserted topic as read.
   if (!empty($topicOptions['mark_as_read']) && !$user_info['is_guest'])
      $smcFunc['db_insert']('replace',
         '{db_prefix}log_topics',
         array('id_topic' => 'int', 'id_member' => 'int', 'id_msg' => 'int'),
         array($topicOptions['id'], $user_info['id'], $modSettings['maxMsgID']),
         array('id_topic', 'id_member')
      );
............

Вставлять код надо перед помеченным красным.

Вот код из RC5:
Цитировать...........      )
      );
                            куда вставлять код-сюда?
      $flag = $smcFunc['db_affected_rows']() != 0;
                            или сюда?
      if (empty($flag))
      {
         $smcFunc['db_insert']('ignore',
            '{db_prefix}log_topics',
            array('id_topic' => 'int', 'id_member' => 'int', 'id_msg' => 'int'),
            array($topicOptions['id'], $user_info['id'], $modSettings['maxMsgID']),
            array('id_topic', 'id_member')
         );
      }
   }
............

Вот код который нужно вставить:

Цитироватьif ($modSettings['ModifyLastPostMail'] || $modSettings['ModifyLastPostBump'] || $modSettings['ModifyLastPostIcon'])
      NotifyUpdateLastMessages($msgOptions, $topicOptions);

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

Макар

#1
Хм . . . В каком файле , название напиши .


update

странно  >:( как то не обращал внимания а сейчас глянул инструкции

изменения в ./Themes/default/Xml.template.php

два раза одно и то же упс  :-[ тут все правильно <modified> встречается в двух местах файла


теперь по поводу вопроса выше

обрати внимание что в рс5 нет файла ./Themes/default/scripts/xml_topic.js


приведенный тобой код в файле ./Sources/Subs-Post.php

встречается в двух местах  >:(


но причем здесь он ?

ошибка же в том что не находит    // Mark inserted topic as read. так как в рс5 эта строчка теперь     // Mark inserted topic as read (only for the user calling this function).

вот перед ней и надо вставлять   :coolsmiley:


Нашел у себя косяк от мода. Я перетягивал файл ./Themes/default/scripts/xml_topic.js из версии в версию и с каждым обновлением у меня в файле накапливалась функция // Repair id msg bumped............

исправил усебя , но мод пока так и не заработал  :'(

копаю дальше  knuppel
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

THEKILLERS

#2
Цитата: Макар от 23 марта 2011, 21:42:50
Хм . . . В каком файле , название напиши .
Файл ./Sources/Subs-Post.php
Цитата: Макар от 23 марта 2011, 21:42:50
странно  >:( как то не обращал внимания а сейчас глянул инструкции

изменения в ./Themes/default/Xml.template.php

два раза одно и то же упс  :-[ тут все правильно <modified> встречается в двух местах файла
.............
приведенный тобой код в файле ./Sources/Subs-Post.php

встречается в двух местах 


но причем здесь он ?
Все правильно, там изменить надо в 2х местах (я сначала тоже не понял, но в инструкции 2 одинаковых изменения для 2х одинаковых кодов).
Цитата: Макар от 23 марта 2011, 21:42:50
но причем здесь он ?
Просто я не знал куда влепить код в этом файле, поэтому спросил про него.
Цитата: Макар от 23 марта 2011, 21:42:50
ошибка же в том что не находит    // Mark inserted topic as read. так как в рс5 эта строчка теперь     // Mark inserted topic as read (only for the user calling this function).

вот перед ней и надо вставлять
А вот тут как раз и нет-я также думал, я пробовал вставлять код как ты сказал перед "// Mark inserted topic as read (only for the user calling this function)." Но мод не заработал, видимо "// Mark inserted topic as read" и "// Mark inserted topic as read (only for the user calling this function)." не одно и то же. Проверял несколько раз это, не канает. Поэтому я взял RC1 и нашел аналогичный кусок кода, отличающийся одной строчкой. Вставил перед ним код, и о чудо - мод заработал! Что куда вставлять я написал в 1м посте (этот файл ./Sources/Subs-Post.php). Я пока вставил код перед
  $flag = $smcFunc['db_affected_rows']() != 0;
Попробуй сделай это, и я уверен, у тебя мод заработает! Ведь у меня работает (и на локалке и на хосте). Ищи этот код по строчке
'{db_prefix}log_topics',
Он будет в 2х местах, сверху и снизу, вставляй в нижнем коде (опять же что куда вставлять в 1м посте написано).
Цитата: Макар от 23 марта 2011, 21:42:50
обрати внимание что в рс5 нет файла ./Themes/default/scripts/xml_topic.js
Но зато есть файл topic.js, я сравнил тотал командером по содержимому эти 2 файла-оно совпадает, за исключением новых строчек в topic.js, которых нет в xml_topic.js, видимо это один и тот же файл. Собственно в topic.js я вставил код, полет нормальный.


UPD Кстати если поставишь мод и он у тебя заработает, отпишись, я тебе дам ссылку на мод, который позволяет редактировать все уведомления, приходящие на email, в т.ч. и для этого мода ибо мне на почту приходило сообщение типа "Оставлен новый ответ" вместо "Отредактирован последний пост". Кстати в файле Modifications.russian-utf8.php почему-то не добавляется русский перевод после установки. Нужно добавить туда вот это:
// MOD Notify Modification Last Post - Translation by vika.vedy
$txt['ModifyLastPostMail'] = 'Включить email-уведомления при редактировании последнего сообщения';
$txt['ModifyLastPostMail_sub'] = 'Отправить уведомления пользователям, подписанным на тему';
$txt['ModifyLastPostBump'] = '"Поднять" тему после редактирования последнего сообщения';
$txt['ModifyLastPostBump_sub'] = 'Включение этой опции также позволяет показать соотв. икноку (см. следующую опцию)';
$txt['ModifyLastPostIcon'] = 'Показать иконку "Новое"';
$txt['ModifyLastPostIcon_sub'] = 'Показать иконку "Новое" для темы после редактирования последнего сообщения.';
$txt['notification_modify_subject'] = 'Ответ изменён: %s';
$txt['notification_modify'] = 'Последнее сообщение в теме, на которую Вы подписались, было изменено участником %s.' . "\n\n" . 'Посмотреть сообщение: ';

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

UPD2 Сейчас попробовал вставить код после того кода после которого в RC1 идет код, перед которым надо вставить код в RC1 (а именно перед "// Mark the edited post as read."). Тоже работает. Короче я точно не знаю куда правильнее вставлять код, но главное что работает.

UPD3 Сейчас посмотрел в файле RC1 есть и "// Mark inserted topic as read." и "// Mark inserted topic as read (only for the user calling this function)." Теперь точно ясно, что вставка кода перед "// Mark inserted topic as read (only for the user calling this function)." не канает, что и подтвердилось на практике.

Макар

Спасибо :) попробую твой вариант . Топик.хмл еще вчера сравнивал и тоже отредактировал . Мод  я  мучал еще на рс4 когда он перестал работать после перехода с рс3 . Мой пост на оф ты тоже видел. Но автор видать забил на мод и на смф .
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

THEKILLERS

Цитата: Макар от 24 марта 2011, 15:45:11
Спасибо :)  я его мучал еще на рс4 когда он перестал работать после перехода с рс3 . Мой пост на оф ты тоже видел. Но автор видать забил на мод и на смф .
Угу, пост твой видал там :).
Ну так что у тебя получилось или ты не пробовал? Мод точно работает полностью на RC5.

Макар

Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

THEKILLERS


Макар

Цитата: THEKILLERS от 24 марта 2011, 07:44:00

UPD3 Сейчас посмотрел в файле RC1 есть и "// Mark inserted topic as read." и "// Mark inserted topic as read (only for the user calling this function)." Теперь точно ясно, что вставка кода перед "// Mark inserted topic as read (only for the user calling this function)." не канает, что и подтвердилось на практике.

угу  а слона то я и не заметил  :-[

Цитата: THEKILLERS от 24 марта 2011, 07:44:00

UPD2 Сейчас попробовал вставить код после того кода после которого в RC1 идет код, перед которым надо вставить код в RC1 (а именно перед "// Mark the edited post as read."). Тоже работает. Короче я точно не знаю куда правильнее вставлять код, но главное что работает.

имхо  как и описано в инструкции перед ....... the edited post as read правильнее чем
Цитата: THEKILLERS от 24 марта 2011, 07:44:00
сюда?
      $flag = $smcFunc['db_affected_rows']() != 0;
или сюда?

в районе 2500 строки вставил

мод заработал (от модераторам счастья то будет ;) )
правда xml_topic.js надо еще удалить ............ но эт уже мелочи


Цитата: THEKILLERS от 24 марта 2011, 07:44:00
Последние 2 строчки видимо уведомление на почту, но они не заработали, именно поэтому я отредактировал уведомления с помощью мода, на который я дам тебе ссылку если надо.

спасибо . (а то как будто я не знаю как он называется  ;D  )
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

THEKILLERS

Поздравляю  :)
Цитата: Макар от 25 марта 2011, 01:14:41
имхо  как и описано в инструкции перед ....... the edited post as read правильнее чем
Цитироватьсюда?
      $flag = $smcFunc['db_affected_rows']() != 0;
или сюда?
Спасибо  :) Исправил у себя.

Сапожник

А еще... :)
в файле languages.xml, в русском utf-8 не хватало закрывающего тега [/add] из-за этого текст не добавлялся в lng файл
а в файле emaillang.xml неправильно указана строка поиска "Появился ответ в теме".
Все собрал в архив. Прикрепил :)
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/