Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: 2 проблемы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
metra
Отправлено: 15 Марта, 2011 - 14:40:20
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




1. Есть код шаблона Smarty:

CODE (html):
скопировать код в буфер обмена
  1. {if isset($u)}
  2. Вы исполнитель
  3. {else}
  4. Вы не исполнитель
  5. {/if}


Этот шаблон является дочерним (т.е. он выводится дисплеем в переменную посредством ob_start() и т.д. и уже потом ассигнится и выводится родительский шаблон). Проблема в том, что фраза "Вы не исполнитель" выводится и там где нужно и сверху страницы (выше разметки и тегов <html> даже). Не могу понять почему.

2. Перерыл кучу скриптов и статей - ничего не нашел по поводу нотификации прихода новых сообщений и т.д. Т.е. в реальном времени (AJAX/JavaScript естественно) показ есть ли новые сообщения и т.п. При чем вложенность типа сообщений может быть сложной (к примеру есть ответ на заказ, есть комментарий к ответу на заказ и т.п. И так от каждого юзера и т.п.) Помогите пожалуйста.

(Отредактировано автором: 15 Марта, 2011 - 14:51:30)

 
 Top
OrmaJever Модератор
Отправлено: 15 Марта, 2011 - 14:46:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




metra пишет:
PHP:
скопировать код в буфер обмена
  1. {if isset($u)}
  2. Вы исполнитель
  3. {else}
  4. Вы не исполнитель
  5. {/if}

что это за шаблон? Кто это придумал?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
metra
Отправлено: 15 Марта, 2011 - 14:51:09
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Это шаблон формата tpl.php шаблонизатора Smarty. Прошу прощения что не указал шаблонизатор - голова не варит уже)
 
 Top
Мелкий Супермодератор
Отправлено: 15 Марта, 2011 - 15:02:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




0) возможно, закэшированный вывод не очищается. Или ещё чего-нибудь возможно. Показан-то только самый бесполезный кусок кода.
1) с заданным интервалом аяксом пинать сервер на предмет новых сообщений.


-----
PostgreSQL DBA
 
 Top
metra
Отправлено: 15 Марта, 2011 - 16:19:33
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Мелкий в том то и дело, что я не понимаю и не представляю теоретически даже как определить, какие новые сообщения (не прочитанные) а какие нет))

(Отредактировано автором: 15 Марта, 2011 - 16:20:21)

 
 Top
OrmaJever Модератор
Отправлено: 15 Марта, 2011 - 16:32:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




в таблице с сообщениями зделать поле отдельное поле в которые писать true - прочитаое или false - не прочитаное. При выборке брать с условием поле = false, и при прочтении записывать в таблицу true


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Марта, 2011 - 16:36:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Один из вариантов:
0) записываете в сессию время последнего обращения (именно время, unix time, с ним работать проще).
1) у каждой сущности сообщения имеется время создания
2) вытягиваете всё появившееся после последнего сохранённого времени в сессии


-----
PostgreSQL DBA
 
 Top
metra
Отправлено: 15 Марта, 2011 - 16:50:10
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




OrmaJever, Мелкий, это понятно. Дело то как раз в том, что каким образом (хотя бы теоретически) понять, было ли прочитанно сообщение и т.п.
 
 Top
Champion Супермодератор
Отправлено: 15 Марта, 2011 - 18:27:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




По первой проблеме было бы лучше увидеть
metra пишет:
выводится дисплеем в переменную посредством ob_start() и т.д.
 
 Top
DeepVarvar Супермодератор
Отправлено: 15 Марта, 2011 - 18:50:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
вытягиваете всё появившееся после последнего сохранённого времени в сессии

Я бы предложил вариант не с UNIXTIME - каждое сообщение имеет свой уникальный порядковый номер, и индексируются на отдачу только последние (например) 10, т.е. при постинге нового сообщения, старое летит в историю, а в топ-10 пихается новое.
Далее по условию, любому запросившему (?getmemessage=234323) отдаем все которые больше номером, но не более 10-ти (в нашем случае) сообщений за раз (если чел только зашел, он просит номер ноль). Или, если сообщений моложе нет - не отдаем ничего.
Так можно отказаться и от сессий, и от индентификаторов каналов пользователей.....
Пользователь же с новым запросом всего-лишь шлет последний полученный номер.
(Добавление)
Еще можно добавить тот факт, что если новые сообщения будут добавляться быстрее чем одно в секунду (а запись в БД в принципе можно считать "атомарым" действием, и насколько я знаю - неблокирующим), то у пользователей будет "несрастуха" в полученых сообщениях, во первых из-за одинаковых таймстампов, во вторых из-за упреждающего кеширования на чтение.
С порядковыми номерами такой фокус не пройдет...
 
 Top
Мелкий Супермодератор
Отправлено: 15 Марта, 2011 - 19:19:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar, хорошая идея, мне нравится.

metra пишет:
Дело то как раз в том, что каким образом (хотя бы теоретически) понять, было ли прочитанно сообщение и т.п.

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


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 15 Марта, 2011 - 19:21:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Мелкий пишет:
У вас иначе?

Выходит что иначе :)
В контексте публичного канала - самое оно.
 
 Top
Champion Супермодератор
Отправлено: 15 Марта, 2011 - 20:29:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




DeepVarvar пишет:
Выходит что иначе Улыбка
http://www[dot]itspecial[dot]ru/post/10139 / Нужно включить в состав клиентских веб-языков слежение за взглядом человека. Всего-то)
Тогда можно следить прочитал пользователь или нет)
 
 Top
OrmaJever Модератор
Отправлено: 15 Марта, 2011 - 20:31:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Champion пишет:
Нужно включить в состав клиентских веб-языков слежение за взглядом человека.
А если человек смотрит но текст но не вдумывается и не воспринимает его? Нужно также контроль за мыслями Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 15 Марта, 2011 - 20:38:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)





У меня тема в гноме темная, и буквы на ней серого цвета (по умолчанию)
Вот это "умолчание" тянет и браузер.
Вот потеха - на этой ссылке не указан бекграунд-колор, указан только цвет букв, прям как цвет моего "умолчательного" бекграунда.....
Вобщем серый цвет сплошной... Закатив глазки
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB