1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Смена автора темы

Тема в разделе "Основные вопросы по XenForo", создана пользователем Massa, 12.12.2010.

Загрузка
  1. Massa

    Massa Местный

    Регистрация:
    04.12.10
    Сообщения:
    105
    Симпатии:
    43
    В определенных темах необходимо изменить первоначального автора темы на нового. возможно?
     
  2. R.J.

    R.J. Местный

    Регистрация:
    04.10.10
    Сообщения:
    168
    Симпатии:
    59
    В БД, вероятно.
     
  3. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    С помощью интерфейса форума - нет. Только через редактирование базы данных.
     
  4. vkams

    vkams Местный

    Регистрация:
    08.07.11
    Сообщения:
    132
    Симпатии:
    28
    А что там надо редактировать? Только что мой модератор нечаянно физически удалил тему. Я восстановил её на локалке, надо перенести. Проще всего это сделать, отправив десяток сообщений от лица разных пользователей и изменив дату. Знать бы - как?
     
  5. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    По поводу смены автора топика у меня возникли вопросы:
    1. Помимо смены автора топика нужно ли менять и его посты в этой теме?
    2. Какая дата должна быть: произвольная или с чем-то связана?
    3. Кому достанутся лайки и вообще что делать со статистикой?
    Может быть еще какие-то вопросы, которые я пропустил. Высказывайтесь, не стесняйтесь :)

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

    И, кстати, если вдруг появится история сообщений, то через нее было бы удачнее что-то менять, так как в таком случае смену автора можно было бы предусмотреть в этой истории. Соответственно, появились бы варианты по смене без нарушения статистики. Чем больше я думаю по этому поводу, тем меньше я понимаю, как это сделать корректно. И речь не о технической реализации, прежде всего, а об организационных проблемах.
     
  6. vkams

    vkams Местный

    Регистрация:
    08.07.11
    Сообщения:
    132
    Симпатии:
    28
    На прошлом форуме (на phpBB2) смена автора сообщения возникала только при затруднениях опубликовать сообщение, тогда я делал это под своим логином (пароль пользователя не знал, хотя это можно было бы... но незачем), а потом изменял автора - себя на него.

    Для чего нужно другим менять автора, я не знаю.

    Сейчас возникла потребность не только опубликовать сообщение, но и изменить его дату с нынешней на оригинальную (из резервной копии).

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

    На вопросы ответил бы так:
    1. Выделить несколько и произвести операцию над ними?
    2. Дату бывает необходимо менять, лучше эту опцию включить. Но даты разных сообщений придётся менять индивидуально.
    3. Лайки перенести на нового, а если это трудно - просто удалить. Не самая существенная часть.
    Может быть, изобрести универсальное решение трудно. Ждать появления истории сообщений - долго. А вот конкретную задачу появления мода, аналогичного известным уже много лет, хотелось бы решить, не слишком откладывая.
     
  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Есть и еще такая "мелочь", как нарушение цитат. Они указывают на ник конкретного пользователя, помимо номер поста. Чтобы их изменить, потребуется перелопатить всю базу постов. Для крупного форума эта операция будет очень долгой.

    Простую замену пользователя можно сделать через phpmyadmin примерно так.

    Зайдите в таблицу xf_thread и измените там user_id и username на нужные. В этой же таблице в поле first_post_id хранится номер поста, запомните его.
    В таблице xf_post найдите нужный пост (first_post_id из таблицы xf_thread) и измените user_id и username.

    В обеих таблицах post_date - это время в формате unix. Помощь в переводе обычного времени в формат unix и обратно - http://www.onlineconversion.com/unix_time.htm

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

    Конечно, это очень грубая смена пользователя, но если надо, то делайте. Цитирование при этом останется нетронутым. Лайки данного поста достанутся новому пользователю. Используйте это на свой страх и риск (бэкап базы лучше сделать).
     
    Flanker и vkams нравится это.
  8. Flanker

    Flanker Местный

    Регистрация:
    19.05.11
    Сообщения:
    155
    Симпатии:
    27
    Версия XF:
    1.2.2
    Как я менял автора темы:
    • Поменять user_id и username в таблице xf_post
    • Поменять user_id в таблице xf_search_index
    • Поменять user_id в таблице xf_thread_user_post
    • Поменять user_id в таблице xf_thread_watch
    • В таблице xf_user найти пользователя и причислить ему +1 сообщение (message_count). А у первоначального создателя темы отнять 1 сообщение в message_count.
    • Перестроить все кэши, выполнить все задания планировщика
    Вообще «щекотливый» это процесс. Сообщения пользователю я причислил, а трофей не выдался (задания планировщика выполнял). Значит ещё где-то в таблицах значения сидят...

    P.S.
    Вот этого не делал. По моим шагам, которые написаны выше, данные значения изменились самостоятельно.
     
    TAIFUN и exarh нравится это.
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ну, как говорится, на свой страх и риск. Я не исследовал всю базу данных. Мое решение в принципе лишь жестко меняет пользователя в самой теме. А вот где это еще может применяться - поищите. Я бы вообще не стал менять пользователя, пока не сделают такую функцию сами разработчики. Все же для этого нужно очень хорошо разбираться в структуре базы.
     
  10. Adrug

    Adrug Местный

    Регистрация:
    28.04.12
    Сообщения:
    50
    Симпатии:
    6
    Версия XF:
    1.1.2
    поднимаю данный вопрос. Я не знаю насколько изменилась система цитирования с тех пор, но менять в ручную запросами слишком нудно и можно ошибиться.
    Насчет изменения даты, если стоит плагин XenPorta то он прекрасно умеет менять дату публикации, даже опубликование в будущем.
    Если данный плагин реализовать не составляет труда, то кто может им заняться? Сам я в php программирование чайник еще тот.
     
  11. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Есть плагин Thread Tools - XenFans.com, но этот форум закрыт с недавних пор. Автор плагина просил не распространять плагин. Поищите в гугле, может быть найдёте.
     
  12. den1111

    den1111 Местный

    Регистрация:
    01.09.16
    Сообщения:
    34
    Симпатии:
    2
    Версия XF:
    1.5.7
    Проверил на 1.5.2
    Меняет автора темы wmboard.net/plaginy-dlya-xenforo/7139-plagin-changethreadstarter-smena-ts.html
    Меняет дату сообщения - ChangeDate_v1.5 , поиском его можно найти в интернете.
     

Поделиться этой страницей