Создать ответ 
Ваша форма "Добавить комментарий к теме:"
Автор Сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #31
RE: Ваша форма "Добавить комментарий к теме:"
И снова здравствуйте! ))

1.) Скажите, пожалуйста, каким образом можно сделать в Вашу потрясающую форму комментариев подстановку имени из системы авторизации на сайте в поле "Ваше имя:"? Имя юзера в моём случае отображается командой <?=$_SESSION["user"]["name"]?> в любом месте страницы.

2.) Второй вопрос: Вы не могли бы написать мааалюсенький модуль скрипт для админки формы комментариев, чтобы если страница модерации весит открытая - по приходу новых сообщений на модерацию скрипт издавал звуковой сигнал (любой формат, например wav или mp3) ну на подобии как это происходит на многих соц. порталах, желательно с интервалом обновления где то раз в минуту.

P.S... Ну, если это будет слишком сложно, то тогда можно сделать просто отправку сообщения на E-Mail при поступлении новых сообщений на модерацию (а там уже в любом почтовике можно выставить звуковое оповещение).

3.) Дополнение к первому пункту... )) Как можно прицепить к сообщениям пользователей (которые отображаются всем уже после модерации) при совпадении имени юзера что бы показывал рядом его аватор (из моего скрипта авторизации аватор достаётся на показ командой <?=$_SESSION["user"]["photo"]?> - если это вставить в любое место сайта то покажет картинку аватора) , а если имя юзера не совпадает (допустим гость отметился) - то показывал бы определённую картинку типа "Гостевой комментарий".

Спасибо!
09.06.2012 10:31:13
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #32
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте.
Сначала по первому пункту.
У Вас в глобальной переменной $_SESSION["user"]["name"] в любом случае что-то есть или только у зарегистрированных пользователей?
Если переменная $_SESSION["user"]["name"] для гостей пустая, то перед формой для отправки комментариев добавьте строчку:

PHP код:
$_SESSION[comment_user_text]=$_SESSION["user"]["name"]; 

По второму - чуть позже.

По третьему пункту.
У Вас команда <?=$_SESSION["user"]["photo"]?> показывает аватарку или содержит ссылку на нее?
В любом случае просто добавьте $_SESSION["user"]["photo"] в нужное место и все, т.к. имя пользователя Вам будет дано в сессии.

Например, замените строки:
PHP код:
echo '<tr><td colspan="5" align="justify">';
 echo 
wordwrap(nl2br($comments[message]), 70"\n"1);
 echo 
'</td></tr></table>'

на такие:
PHP код:
echo '<tr><td width="100">'.$_SESSION["user"]["photo"].'</td>';
 echo 
'<td colspan="4" align="justify">';
 echo 
wordwrap(nl2br($comments[message]), 70"\n"1);
 echo 
'</td></tr></table>'
09.06.2012 16:43:29
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #33
RE: Ваша форма "Добавить комментарий к теме:"
По второму пункту придумал отличное решение.
В папку с файлом формы модерации комментариев помещаете mp3 файл (в нашем случае это muzmo.mp3)

В файле с формой модерации комментариев вверху добавляете <head><meta http-equiv="refresh" content="120"></head> где 120 - интервал обновления странички в секундах.

Далее в файле модерации комментариев ищите строки:

PHP код:
if ($number>0) {
for (
$n=1$n<=$number$n++) { 

И меняете их на:
PHP код:
if ($number>0) { echo '<bgsound src="muzmo.mp3">';
for (
$n=1$n<=$number$n++) { 

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

P.S. Кстати в Опере команда bgsound что-то тупит и не проигрывает файл, а в IE все норм. Как вариант, <bgsound src="muzmo.mp3"> можно заменить на <embed src="muzmo.mp3" autostart="true" hidden="false" loop="false" width="300" height="65" align="bottom"> </embed>, но тогда необходимо установить плагин.
09.06.2012 17:53:24
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #34
RE: Ваша форма "Добавить комментарий к теме:"
Вау спасибочки!!! )) А то я пробовал через
Код:
value=".["user"]["name"]."
не получалось, теперь всё работает, правда пришлось в строке
Код:
$_SESSION[comment_user_text]=$_SESSION["user"]["name"];
заменить comment_user_text на comment_mess_login - что бы логин отображался там где надо, и судя по всему я понял что в Вашей супер форме Вы это уже за ранее предусмотрели, о чём говорят вот эти строчки:
Код:
$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';

- и я сразу же воспользовался этим случаем и сделал так:
Код:
$_SESSION[comment_user_text]='Введите пожалуйста сюда текст своего сообщения...';

Спасибо! Сейчас пойду пробовать Ваше решение с аватором!
(Последний раз сообщение было отредактировано 09.06.2012 в 19:12:32, отредактировал пользователь Incognito.)
09.06.2012 18:16:51
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #35
RE: Ваша форма "Добавить комментарий к теме:"
Звук тоже заработал, спасибо! ))) Пока буду IE пользоваться т.к. на Оперу установить плагин для проигрывания Embed так и не удалось, потом сделаю через флеш проигрыватель... ))


А вот с фото не совсем правильно получилось, сейчас попробую сам догнать как это делается...

Благодарочка Вам !!!! ) Smile
09.06.2012 19:41:14
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #36
RE: Ваша форма "Добавить комментарий к теме:"
Действительно, случайно спутал $_SESSION[comment_user_text] с $_SESSION[comment_mess_login].

Строчки
Код:
$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';
выполняют функцию очистки полей после отправки комментариев на модерацию.

При каждом клике очищать поле - не вариант. Представьте, что пользователь набирал текст, а потом решил добавить туда скопированную строчку. В результате клика поле очистится и данные потеряются.

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

Для удаления содержимого поля с текстом по клику придется для начала добавить код:
Код:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript">
$(function() {
    $("textarea").focus(function(event) {
        $(this).text("");
        $(this).unbind(event);
    });
});
</script>

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

Следует обратить внимание, что действие данной функции очистки распространится на все элементы textarea на страничке.
09.06.2012 19:45:09
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #37
RE: Ваша форма "Добавить комментарий к теме:"
(09.06.2012 19:45:09)Admin писал(а):  Действительно, случайно спутал $_SESSION[comment_user_text] с $_SESSION[comment_mess_login].

Строчки
Код:
$_SESSION[comment_mess_login]='';
$_SESSION[comment_user_text]='';
выполняют функцию очистки полей после отправки комментариев на модерацию.

Ага я так и понял - после отправления сообщения при их удалении, текст оставался старым...

(09.06.2012 19:45:09)Admin писал(а):  При каждом клике очищать поле - не вариант. Представьте, что пользователь набирал текст, а потом решил добавить туда скопированную строчку. В результате клика поле очистится и данные потеряются.

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

Для удаления содержимого поля с текстом по клику придется для начала добавить код:
Код:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript">
$(function() {
    $("textarea").focus(function(event) {
        $(this).text("");
        $(this).unbind(event);
    });
});
</script>

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

Следует обратить внимание, что действие данной функции очистки распространится на все элементы textarea на страничке.

Ого спасибо, а я уж постеснялся у Вас спрашивать про это... Blush Всё работает -отличный Вариант!!!
Спасибо Вам огромное за всё! ))
(Последний раз сообщение было отредактировано 09.06.2012 в 20:39:09, отредактировал пользователь Incognito.)
09.06.2012 19:51:03
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #38
RE: Ваша форма "Добавить комментарий к теме:"
Добрый день! Извиняюсь за навязчивость. Blush А не подскажете как отцентрировать вот этот текст:

PHP код:
$_SESSION[comment_user_text]='Введите пожалуйста сюда текст своего сообщения...'

по центру окна сообщения, чего только не пробовал, стандартные html средства почему-то сюда не подходят?
10.06.2012 11:36:46
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #39
RE: Ваша форма "Добавить комментарий к теме:"
Для выравнивания по горизонтали используйте стандартное решение:

PHP код:
echo '<textarea cols="65" rows="5" name="user_text" align="center">'
.$_SESSION[comment_user_text].'</textarea>'

А для выравнивания по вертикали могу предложить только так:

PHP код:
$_SESSION[comment_user_text]='


Введите пожалуйста сюда текст своего сообщения...'

10.06.2012 16:01:25
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #40
RE: Ваша форма "Добавить комментарий к теме:"
(10.06.2012 16:01:25)Admin писал(а):  Для выравнивания по горизонтали используйте стандартное решение:

PHP код:
echo '<textarea cols="65" rows="5" name="user_text" align="center">'
.$_SESSION[comment_user_text].'</textarea>'

А для выравнивания по вертикали могу предложить только так:

PHP код:
$_SESSION[comment_user_text]='


Введите пожалуйста сюда текст своего сообщения...'


Ага, пасибочки! Что то я не догнал куда html разметку вставлять... ))
10.06.2012 22:59:07
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru