Решено Шаблон генерации темы обсуждений (ресуры и прочее)

Статус
В этой теме нельзя размещать новые ответы.

Обжигающий Иней

Только чтение
Сообщения
1,560
Реакции
509
Баллы
5,635
Здравствуйте господа. Меня уже задолбал гугл оповещениями о дублях в title. Собственно с ресурсами я подзабил на это дело, но потом пошла в бой порта а теперь и амс, итог всё в дублях.

Я никак не могу понять, если брать на примере ресурсов, где именно происходит генерация title страницы ресурсов > в title страницы обсуждений на данной странице ресурсов.

Просто нужно дописывать в title обсуждений слово "discussions".
Я перелопатил всё. Единственно можно добавить в шаблон тем, но тогда это будет приписываться вообще ко всем темам.
Спасибо кто проникся.
 
итог всё в дублях
Вот вот. Я не понимаю такого подхода. Делать разные страницы для самого объекта и для его обсуждения. Ещё и с одинаковыми тайтлами.
где именно происходит генерация title страницы ресурсов > в title страницы обсуждений на данной странице ресурсов
Хрен его знает. Да и не думаю, что "копать" в этом направлении - разумная идея. Уж слишком глубоко копать придётся.
Просто нужно дописывать в title обсуждений слово "discussions".
Мне кажется, есть выход получше. В настройках ведь есть возможность указать префиксы для тем обсуждений. Например, у вас есть статья под названием Форумные движки, и вы установили префикс Обсуждение для создаваемых тем. Таким образом тема на форуме с обсуждением данной статьи будет иметь тайтл "Обсуждение - Форумные движки".
 
Мне кажется, есть выход получше. В настройках ведь есть возможность указать префиксы для тем обсуждений. Например, у вас есть статья под названием Форумные движки, и вы установили префикс Обсуждение для создаваемых тем. Таким образом тема на форуме с обсуждением данной статьи будет иметь тайтл "Обсуждение - Форумные движки".
Это решение, да :)
Но сделать правильно, тут на самом деле нет ничего сложного для кодера. Я так понимаю нужно в файле плагина где код дописать функцию чтоб генерировал доп. слово.
 
Моё предыдущее сообщение опубликовано в 17:45, а сейчас 20:47.
И знаете, чем я эти три (!!) часа занимался?.. Решал ваш вопрос. И знаете что?.. Решил. :-)
Но это было непросто конечно. Учитывая, что я полный нуб в PHP и прочем. Хотя, уже наверное не полный... Ибо пришлось реально повозиться.
Я напишу вам решение для AMS, так как из интересующих вас плагинов только этот у меня был установлен на тестовом форуме. Для Менеджера Ресурсов думаю также не составит особой проблемы сделать подобное. Может установлю его на днях и напишу мануальчик. А вот насчёт Порты ничего вообще не могу сказать, пробуйте сами.
Итак. Нам нужен файл \library\NFLJ\AMS\Model\Thread.php. Строка 30:
$writer->set('title', $article['title']);
Редактируем её вот так:
$writer->set('title', "Обсуждение: ".$article['title']);
Результат: тайтл создаваемых AMS тем будет иметь вид Обсуждение: [название статьи].
Вы можете использовать другой текст, который будет добавляться. Я просто привёл пример, чтобы было понятно. Также можно добавлять текст не перед названием статьи, а после. Если не разберётесь сами, напишите, объясню как.
 
Последнее редактирование:
Sergey Miroshnichenko, от души :-)
Сейчас затещу отпишу.

Выдаёт ошибку при создании статьи. Видимо нужно просто в код корректно строчку вставить :-)

Код:
Mysqli statement execute error : Incorrect string value: '\xCE\xE1\xF1\xF3\xE6\xE4...' for column 'title' at row 1
Zend_Db_Statement_Mysqli->_execute() in Zend/Db/Statement.php at line 317
Zend_Db_Statement->execute() in Zend/Db/Adapter/Abstract.php at line 479
Zend_Db_Adapter_Abstract->query() in Zend/Db/Adapter/Abstract.php at line 574
Zend_Db_Adapter_Abstract->insert() in XenForo/DataWriter.php at line 1638
XenForo_DataWriter->_insert() in XenForo/DataWriter.php at line 1627
XenForo_DataWriter->_save() in XenForo/DataWriter.php at line 1419
XenForo_DataWriter->save() in Brivium/MetadataEssential/DataWriter/Discussion/Thread.php at line 11
Brivium_MetadataEssential_DataWriter_Discussion_Thread->save() in NFLJ/AMS/Model/Thread.php at line 57
NFLJ_AMS_Model_Thread->createThread() in NFLJ/AMS/ControllerPublic/Article.php at line 1787
NFLJ_AMS_ControllerPublic_Article->actionAddSave() in XenForo/FrontController.php at line 351
XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
XenForo_FrontController->run() in /var/www/site.ru/index.php at line 13
 

Вложения

  • Screenshot_29.png
    Screenshot_29.png
    49.4 KB · Просмотры: 16
Последнее редактирование:
Добавил текст. Хм, в кодировке, и что теперь менять кодировку базы или таблицы?
Ладно, поэкспериментируем отпишу, спасибо за подсказку :)
 
Последнее редактирование:
Не ребят, это костыли. Править файлы дополнения, это не пацанский метод. Например, при каждом обновлении плагина нужно будет снова лезть в файлы дополнения и вносить правки.
Чтобы не делать костыльно, можно поступить так.
Открываем нужный шаблон. Например thread_view
В шаблоне за место тайтла вставляем следующее:
Код:
<xen:title>{$thread.title}{xen:helper pagenumber, $page}<xen:if is="{$forum.node_id} == 1"> {xen:phrase discussion_AMS}</xen:if></xen:title>
Таким образом после тайтла будет вставлено нужное слово, которое находится в фразе discussion_AMS.
Единицу нужно заменить на id нужного раздела.
Ну и чтобы тоже не костылять и не вносить правку в шаблон, это лучше сделать в виде модификации. Тогда точно никогда ничего не слетит и не будет выглядеть как костыли.
Можно конечно пойти ещё дальше и создать дополнение. В дополнении в настройки вынести поле для ввода id разделов, если их несколько. А, еще в дополнение нужно вставить проверку на то, что тема создана AMS, чтобы фраза discussion_AMS не дописывалась к обычным темам.
Тогда будет вообще по фэншую. Если не сможете это сделать, то позже сделаю, т.к. сам уже активно пользуюсь данным дополнением и дубли мне тоже ни к чему. Сейчас пока нет времени на это, занят.
 
ValeCore, пацаны выручают :-)
Спасибо ребят.

Если кому нужно будет на несколько разделов выставить, где х х х id-разделов:
Код:
<xen:title>{$thread.title}{xen:helper pagenumber, $page}<xen:if is="in_array({$forum.node_id}, array(x, x, x))"> {xen:phrase discussion_AMS}</xen:if></xen:title>
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу