Смайлы справа или слева от окошка сообщения

Автор 0daliska, 11 декабря 2009, 00:49:42

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

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

0daliska

Решение для SMF1.1.x default - замена на смайлы справа:
Находим:
// Now start printing all of the smileys.
if (!empty($context['smileys']['postform']))
{
echo '
<tr>
<td align="right"></td>
<td valign="middle">';

// Show each row of smileys ;).
foreach ($context['smileys']['postform'] as $smiley_row)
{
foreach ($smiley_row['smileys'] as $smiley)
echo '
<a href="javascript:void(0);" onclick="replaceText(\' ', $smiley['code'], '\', document.forms.', $context['post_form'], '.', $context['post_box_name'], '); return false;"><img src="', $settings['smileys_url'], '/', $smiley['filename'], '" align="bottom" alt="', $smiley['description'], '" title="', $smiley['description'], '" /></a>';

// If this isn't the last row, show a break.
if (empty($smiley_row['last']))
echo '<br />';
}

// If the smileys popup is to be shown... show it!
if (!empty($context['smileys']['popup']))
echo '
<a href="javascript:moreSmileys();">[', $txt['more_smileys'], ']</a>';

echo '
</td>
</tr>';
}

// If there are additional smileys then ensure we provide the javascript for them.

Заменяем полностью этот блок на:

// The most important bit - the actual text box to write in, but it will be display at the left!
echo ' <tr>
<td align="right"></td>
<td valign="middle">
<table width="100%" class="windowbg" cellspacing="0" cellpadding="2" align="center">
<tr>
<td width="70%">
<textarea class="editor" name="', $context['post_box_name'], '" rows="', $context['post_box_rows'], '" cols="', $context['post_box_columns'], '" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" tabindex="', $context['tabindex']++, '"', isset($context['post_error']['no_message']) || isset($context['post_error']['long_message']) ? ' style="border: 1px solid red;"' : '', '>', $message, '</textarea>
</td>';
// Now start printing all of the smileys.
if (!empty($context['smileys']['postform']))
{
echo '

<td>';

// Show each row of smileys ;).
foreach ($context['smileys']['postform'] as $smiley_row)
{
foreach ($smiley_row['smileys'] as $smiley)
echo '
<a href="javascript:void(0);" onclick="replaceText(\' ', $smiley['code'], '\', document.forms.', $context['post_form'], '.', $context['post_box_name'], '); return false;"><img src="', $settings['smileys_url'], '/', $smiley['filename'], '" align="bottom" alt="', $smiley['description'], '" title="', $smiley['description'], '" /></a>';

// If this isn't the last row, show a break.
if (empty($smiley_row['last']))
echo '<br />';
}

// If the smileys popup is to be shown... show it!
if (!empty($context['smileys']['popup']))
echo '
<a href="javascript:moreSmileys();">[', $txt['more_smileys'], ']</a>';

echo '
</td>';
}

// If there are additional smileys then ensure we provide the javascript for them.

Далее находим:
// Finally the most important bit - the actual text box to write in!
echo '
<tr>
<td valign="top" align="right"></td>
<td>
<textarea class="editor" name="', $context['post_box_name'], '" rows="', $context['post_box_rows'], '" cols="', $context['post_box_columns'], '" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" tabindex="', $context['tabindex']++, '"', isset($context['post_error']['no_message']) || isset($context['post_error']['long_message']) ? ' style="border: 1px solid red;"' : '', '>', $message, '</textarea>
</td>
</tr>';
}

Полностью заменяем на:

// Finally the most important bit - we shut up the table :)!
echo '
</tr>
</table>
</td>
</tr>';
}

Получаем результат на картинке result.jpg
Если надо слева от окошка сообщения:
Те же куски кода заменяем соответственно:
Первый на:


// Now start printing all of the smileys.
if (!empty($context['smileys']['postform']))
{
echo '
<tr>
<td align="right"></td>
<td valign="middle">
<table width="100%" class="windowbg" cellspacing="0" cellpadding="2" align="center">
<tr>
<td width="30%">';

// Show each row of smileys ;).
foreach ($context['smileys']['postform'] as $smiley_row)
{
foreach ($smiley_row['smileys'] as $smiley)
echo '
<a href="javascript:void(0);" onclick="replaceText(\' ', $smiley['code'], '\', document.forms.', $context['post_form'], '.', $context['post_box_name'], '); return false;"><img src="', $settings['smileys_url'], '/', $smiley['filename'], '" align="bottom" alt="', $smiley['description'], '" title="', $smiley['description'], '" /></a>';

// If this isn't the last row, show a break.
if (empty($smiley_row['last']))
echo '<br />';
}

// If the smileys popup is to be shown... show it!
if (!empty($context['smileys']['popup']))
echo '
<a href="javascript:moreSmileys();">[', $txt['more_smileys'], ']</a>';

echo '
</td>';
}

// If there are additional smileys then ensure we provide the javascript for them.

Второй кусок на:

// Finally the most important bit - the actual text box to write in!
echo '
<td width="70%">
<textarea class="editor" name="', $context['post_box_name'], '" rows="', $context['post_box_rows'], '" cols="', $context['post_box_columns'], '" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" tabindex="', $context['tabindex']++, '"', isset($context['post_error']['no_message']) || isset($context['post_error']['long_message']) ? ' style="border: 1px solid red;"' : '', '>', $message, '</textarea>
</td>
</tr>
</table>
</td>
</tr>';
}

Получаем результат на картинке result2.jpg
Экспериментируйте и удачи!!!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

Макар

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

Inter

запихни смайлы в таблицу и укажи ширину таблицы
<td align="right">
это устаревший атрибут - лучше делать стили на .css  :P
I'm the law and you can't beat the law

|censored| 'em and their law

Crack down at sundown

0daliska

#3
Цитата: Makar от 11 декабря 2009, 12:39:57
а как их сжать немного, что бы не выходили за границы текстового поля ?
Если я не ошибаюсь, то это смайлы в форме быстрого ответа...
Если речь идет о моде Enhanced Quick Reply 2.0, то предположительно в этом куске кода в Display.template.php:
// Now start printing all of the smileys.
if (!empty($context['smileys']['postform']))
{
echo '
<br />';

// Show each row of smileys ;).
foreach ($context['smileys']['postform'] as $smiley_row)
{
foreach ($smiley_row['smileys'] as $smiley)
echo '
<a href="javascript:void(0);" onclick="replaceText(\' ', $smiley['code'], '\', document.forms.postmodify.message); return false;"><img src="', $settings['smileys_url'], '/', $smiley['filename'], '" align="bottom" alt="', $smiley['description'], '" title="', $smiley['description'], '" /></a>';

// If this isn't the last row, show a break.
if (empty($smiley_row['last']))
echo '<br />';
}

Заменить первый  <br  /> на <div style="padding: 5px 15px;" align ="center">  и второй <br /> на </div>... в открывающем теге div  первое число (5px) показывает расстояние сверху и снизу до блока смайлов, а второе число (15px) - расстояние слева и справа... Делайте расстояние так, как Вам надо...
То есть должно получиться так в этом блоке:
// Now start printing all of the smileys.
if (!empty($context['smileys']['postform']))
{
echo '
<div style="padding: 5px 15px;" align ="center">';

// Show each row of smileys ;).
foreach ($context['smileys']['postform'] as $smiley_row)
{
foreach ($smiley_row['smileys'] as $smiley)
echo '
<a href="javascript:void(0);" onclick="replaceText(\' ', $smiley['code'], '\', document.forms.postmodify.message); return false;"><img src="', $settings['smileys_url'], '/', $smiley['filename'], '" align="bottom" alt="', $smiley['description'], '" title="', $smiley['description'], '" /></a>';

// If this isn't the last row, show a break.
if (empty($smiley_row['last']))
echo '</div>';
}

Все выравнивания действительно можно прописать в стили, но я намеренно этого не делаю, поскольку чем меньше файлов будет юзер трогать, тем легче найти ошибку.... Кроме того, насколько мне известно в SMF1 идет файл стилей style.css, а у SMF2 - по-разному, вроде бы (index.css и есть еще для отдельных браузеров файлы стилей?)...

В целом... Привела код навскидку... Этот мод у меня не установлен, поэтому проверить не могу... В следствие этого, пожалуйста, перед тем как вносить изменения в файл, сохраните его копию у себя на компьютере, чтобы можно было в случае неработоспособности кода заменить на исходник без проблем!!!
Но сработать должно!!!
Удачи!!! Пробуйте... Ну и как всегда, отписывайтесь по результатам...  :D

Хотя можно через стили задать ширину блоку быстрого ответа в файле css и все проблемы сами собой отпадут... За это отвечает #quickreplybox
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

Макар

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

0daliska

Цитата: 0daliska от 11 декабря 2009, 00:49:42
Решение для SMF1.1.x default - замена на смайлы справа:
...............
...............
Получаем результат на картинке result2.jpg
Экспериментируйте и удачи!!!


Здесь идет речь о правке Post.template.php
Извините, что сразу не написала...
Так что маленькое дополнение :)
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

artruslan

А как в быстром ответе поубирать лишние объекты, что в Display.template.php надо удалять какую часть?
SMF 1.1.11

0daliska

Цитата: artruslan от 23 января 2010, 17:28:05
А как в быстром ответе поубирать лишние объекты, что в Display.template.php надо удалять какую часть?
SMF 1.1.11
Именно там, парсинг к моду расширенного быстрого ответа Вам в этом поможет... ;)
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

artruslan

Что это значит объясните попроще. Какой-то мод поставить нужно или что сделать?

0daliska

Цитата: artruslan от 23 января 2010, 17:51:24
Что это значит объясните попроще. Какой-то мод поставить нужно или что сделать?

По умолчанию в быстром ответе нет ни смайлов, ни кнопок кода...
Если в быстром ответе у Вас что то есть, кроме текстового поля, следовательно Вы уже себе поставили мод Расширенного быстрого ответа Enhanced Quick Reply...

Или же Вы путаете Быстрый ответ, который внизу под сообщениями находится, с Обычной формой ответа в теме
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

artruslan

Мод какой-то ставил, похоже вроде этот. Теперь хочу сделать, чтобы не было лишнего и как здесь по всей ширине темы, а ничего не получается. Лишнее не убирается, редактировал, удалял кое-что только форум переставал работать и выдавал ошибки, а расшириться вообще ни как не хочет.

Drakonsa

Цитата: artruslan от 23 января 2010, 18:08:04
Мод какой-то ставил, похоже вроде этот. Теперь хочу сделать, чтобы не было лишнего и как здесь по всей ширине темы, а ничего не получается. Лишнее не убирается, редактировал, удалял кое-что только форум переставал работать и выдавал ошибки, а расшириться вообще ни как не хочет.
Ну значит display.template В студию :)

artruslan


0daliska

Цитата: artruslan от 23 января 2010, 18:18:54
Есть
Строки в этом файле с 696 по 734 выводят массив с ВВ-кодами
Какой ВВ-код Вам надо, чтобы не отображался?
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

artruslan

Для начал подскажите, что нужно удалить, чтобы убрать смайлы? Остальное я хочу сам подредактировать, чтобы окончательно определиться, что оставить, а что убрать. И ещё как все таки расширить форму быстрого ответа.

0daliska

Цитата: artruslan от 23 января 2010, 18:48:49
Для начал подскажите, что нужно удалить, чтобы убрать смайлы? Остальное я хочу сам подредактировать, чтобы окончательно определиться, что оставить, а что убрать. И ещё как все таки расширить форму быстрого ответа.
1. Сделать на 100% по ширине
Вот этом куске:
echo '
<a name="quickreply"></a>
<div style="width: 100%;" align="center"><div class="tborder" style="width: 50%;" align="left">

в 644 строке изменить 50% на 100%
То есть должен вместо этого получиться код:
echo '
<a name="quickreply"></a>
<div style="width: 100%;" align="center"><div class="tborder" style="width: 100%;" align="left">


2. Убрать смайлы:
Закомментировать строки с 822 по 899!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

artruslan

Цитировать
2. Убрать смайлы:
Закомментировать строки с 822 по 899!
А как закомментировать?

0daliska

Цитата: artruslan от 23 января 2010, 19:06:19
А как закомментировать?
wallbash
Читаем здесь: http://www.weblibrary.biz/php/1wagi/comenty
или качаем приложенный аттачмент с исправлениями


Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

artruslan

почитать очень кстати было, думаю теперь справлюсь

Mountlander

А для версии 2 RC5 есть возможность поместить справа или слева смайлы?

Akellа

Да, меня это тоже интересует. Есть ли модификация такая? :)