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
Форумы портала PHP.SU :: Версия для печати :: 2 проблемы
Форумы портала PHP.SU » PHP » Программирование на PHP » 2 проблемы

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

1. metra - 15 Марта, 2011 - 14:40:20 - перейти к сообщению
1. Есть код шаблона Smarty:

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


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

2. Перерыл кучу скриптов и статей - ничего не нашел по поводу нотификации прихода новых сообщений и т.д. Т.е. в реальном времени (AJAX/JavaScript естественно) показ есть ли новые сообщения и т.п. При чем вложенность типа сообщений может быть сложной (к примеру есть ответ на заказ, есть комментарий к ответу на заказ и т.п. И так от каждого юзера и т.п.) Помогите пожалуйста.
2. OrmaJever - 15 Марта, 2011 - 14:46:14 - перейти к сообщению
metra пишет:
PHP:
скопировать код в буфер обмена
  1. {if isset($u)}
  2. Вы исполнитель
  3. {else}
  4. Вы не исполнитель
  5. {/if}

что это за шаблон? Кто это придумал?
3. metra - 15 Марта, 2011 - 14:51:09 - перейти к сообщению
Это шаблон формата tpl.php шаблонизатора Smarty. Прошу прощения что не указал шаблонизатор - голова не варит уже)
4. Мелкий - 15 Марта, 2011 - 15:02:56 - перейти к сообщению
0) возможно, закэшированный вывод не очищается. Или ещё чего-нибудь возможно. Показан-то только самый бесполезный кусок кода.
1) с заданным интервалом аяксом пинать сервер на предмет новых сообщений.
5. metra - 15 Марта, 2011 - 16:19:33 - перейти к сообщению
Мелкий в том то и дело, что я не понимаю и не представляю теоретически даже как определить, какие новые сообщения (не прочитанные) а какие нет))
6. OrmaJever - 15 Марта, 2011 - 16:32:23 - перейти к сообщению
в таблице с сообщениями зделать поле отдельное поле в которые писать true - прочитаое или false - не прочитаное. При выборке брать с условием поле = false, и при прочтении записывать в таблицу true
7. Мелкий - 15 Марта, 2011 - 16:36:03 - перейти к сообщению
Один из вариантов:
0) записываете в сессию время последнего обращения (именно время, unix time, с ним работать проще).
1) у каждой сущности сообщения имеется время создания
2) вытягиваете всё появившееся после последнего сохранённого времени в сессии
8. metra - 15 Марта, 2011 - 16:50:10 - перейти к сообщению
OrmaJever, Мелкий, это понятно. Дело то как раз в том, что каким образом (хотя бы теоретически) понять, было ли прочитанно сообщение и т.п.
9. Champion - 15 Марта, 2011 - 18:27:07 - перейти к сообщению
По первой проблеме было бы лучше увидеть
metra пишет:
выводится дисплеем в переменную посредством ob_start() и т.д.
10. DeepVarvar - 15 Марта, 2011 - 18:50:41 - перейти к сообщению
Мелкий пишет:
вытягиваете всё появившееся после последнего сохранённого времени в сессии

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

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

Под "прочитано" обычно подразумевается "показано пользователю". У вас иначе?
12. DeepVarvar - 15 Марта, 2011 - 19:21:22 - перейти к сообщению
Мелкий пишет:
У вас иначе?

Выходит что иначе :)
В контексте публичного канала - самое оно.
13. Champion - 15 Марта, 2011 - 20:29:05 - перейти к сообщению
DeepVarvar пишет:
Выходит что иначе Улыбка
http://www[dot]itspecial[dot]ru/post/10139 / Нужно включить в состав клиентских веб-языков слежение за взглядом человека. Всего-то)
Тогда можно следить прочитал пользователь или нет)
14. OrmaJever - 15 Марта, 2011 - 20:31:14 - перейти к сообщению
Champion пишет:
Нужно включить в состав клиентских веб-языков слежение за взглядом человека.
А если человек смотрит но текст но не вдумывается и не воспринимает его? Нужно также контроль за мыслями Подмигивание
15. DeepVarvar - 15 Марта, 2011 - 20:38:37 - перейти к сообщению

У меня тема в гноме темная, и буквы на ней серого цвета (по умолчанию)
Вот это "умолчание" тянет и браузер.
Вот потеха - на этой ссылке не указан бекграунд-колор, указан только цвет букв, прям как цвет моего "умолчательного" бекграунда.....
Вобщем серый цвет сплошной... Закатив глазки

 

Powered by ExBB FM 1.0 RC1