Быстрый ответ после любого сообщения

Автор slavutskyi, 21 июня 2012, 16:20:55

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

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

slavutskyi

День добрый, Гуру SMF !

Стоит задача сделать так, чтоб при нажатии кнопки "Цитировать", сразу же под этим сообщением появлялось окно быстрого ответа, а не внизу как по умолчанию.

Обыскался в поиске решение этой задачи. Может есть какой-то мод, или подскажите, что-то.

Буду очень благодарен.
Версия форума: SMF 2.0.2

maestrosite.ru

Можете обработчик навесить, что бы форма визуально перемещалась под нужно  сообщение. Но здесь будет вашей темы оформления зависеть.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

slavutskyi

Цитата: maestrosite.ru от 22 июня 2012, 11:20:47
Можете обработчик навесить, что бы форма визуально перемещалась под нужно  сообщение. Но здесь будет вашей темы оформления зависеть.
Тема стандартная. А примеры навесить обработчик, есть ?
Версия форума: SMF 2.0.2

maestrosite.ru

Для стандартной что-нибудь типа такого: в Themes/default/scripts/topic.js после
ЦитироватьgetXMLDocument(smf_prepareScriptUrl(this.opt.sScriptUrl) + 'action=quotefast;quote=' + iMessageId + ';xml', this.onQuoteReceived);
добавить:var tmp=0;
for(msgs=oInTopicModeration.opt.aMessageIds;m=msgs.pop();tmp=m)
if(m==iMessageId)break;
if(tmp)
{
m=document.getElementById('msg'+tmp);
q=document.getElementById('quickreplybox');
q.style.position='absolute';
q.style.top=m.offsetTop+'px';
m.style.marginTop=q.offsetHeight+'px';
m.style.display='block';
//@todo отмена перемещения (возврат на место) формы
return false;
}
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

slavutskyi

Цитата: maestrosite.ru от 22 июня 2012, 16:15:13//[at]todo отмена перемещения (возврат на место) формы
К сожалению это не сработало по какой-то причине.
Код добавил где указали, но при нажатии на кнопку "Цитировать" меня бросает в окно быстрого ответа внизу страницы.
Может сможете еще чем-то помочь ?
Версия форума: SMF 2.0.2

maestrosite.ru

1. Ctrl+F5 в теме
2. @todo - это отметка, что надо сделать
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

slavutskyi

Цитата: maestrosite.ru от 22 июня 2012, 17:51:06
1. Ctrl+F5 в теме
2. [at]todo - это отметка, что надо сделать
Цитата: maestrosite.ru от 22 июня 2012, 17:51:06
1. Ctrl+F5 в теме
2. [at]todo - это отметка, что надо сделать
После Ctrl+F5 ситуация изменилась, но не в лучшую сторону.
При нажатии на цитирование, вверху появляется строка с Загрузкой, а после бросает в окно обычного ответа.
Может я еще что-то делаю не так ?
Версия форума: SMF 2.0.2

maestrosite.ru

Я вам только набросок дал. Далее уж как вам надо сделайте.

Во-первых, надо изменить источник данных. Например, в Display.template,php по аналогии с существующим в секцию script после списка сообщений:
echo '
    var aMessageIds = [\'', implode('\', \'', $removableMessageIDs), '\'];';


а в topic.js заменить:for(msgs=aMessageIds;m=msgs.pop();tmp=m)
if(m==iMessageId)break;
...


Во-вторых, оформление приличным сделать.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

slavutskyi

Цитата: maestrosite.ru от 22 июня 2012, 22:19:40
Я вам только набросок дал. Далее уж как вам надо сделайте.

Во-первых, надо изменить источник данных. Например, в Display.template,php по аналогии с существующим в секцию script после списка сообщений:
echo '
    var aMessageIds = [\'', implode('\', \'', $removableMessageIDs), '\'];';


а в topic.js заменить:for(msgs=aMessageIds;m=msgs.pop();tmp=m)
if(m==iMessageId)break;
...


Во-вторых, оформление приличным сделать.

Вы мне как профессионалу объясняете куда что вставить, но я пробовал первый код вставить после // Get all the messages... ничего, только ошибки на форуме

в topic.js заменил, но ничего не произошло.
Версия форума: SMF 2.0.2

maestrosite.ru

Вы просили пример, я вам показал пример. В Display.template.php вставьте приведённый код после echo '
<script type="text/javascript" src="' . $settings['default_theme_url'] . '/scripts/topic.js"></script>
<script type="text/javascript"><!-- // --><![CDATA[';
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

slavutskyi

А что еще необходимо исправить, чтоб это окно быстрого ответа отображалось не только у Администраторов, но так же и у обычных пользователей ?
Т.к. при цитирование у пользователя без прав администратора срабатывает обычный быстрый ответ.
Версия форума: SMF 2.0.2

maestrosite.ru

Цитата: slavutskyi от 03 июля 2012, 12:27:42
А что еще необходимо исправить, чтоб это окно быстрого ответа отображалось не только у Администраторов, но так же и у обычных пользователей ?
Т.к. при цитирование у пользователя без прав администратора срабатывает обычный быстрый ответ.
Замените в Dispaly.template.php
$alternate = !$alternate;
if ($message['can_remove'])
$removableMessageIDs[] = $message['id'];


на $alternate = !$alternate;
// if ($message['can_remove'])
$removableMessageIDs[] = $message['id'];
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

slavutskyi

А где причесывается внешний вид быстрого ответа, ширина, высота и т.п. ?
Версия форума: SMF 2.0.2

maestrosite.ru

в css-файлах, ключевые слова quickReply (quickreply)
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru