Song Опубликовано 29 Января 2004 Жалоба Поделиться Опубликовано 29 Января 2004 Вообщем история такова:в классе Forums у меня формируется значение. Его необходимо передать в класс Topics(), точнее когда открывается любой топик. Через ссылку топика передать не подходит т.к. на момент формирования ссылок топиков в Forums.php это значение ещё неизвестно или, так скажем, известно не до конца. Через глобальную переменную также нельзя т.к. вызов топика происходит через index.php, в котором все глобальные переменные очищаются.Как быть? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 30 Января 2004 Жалоба Поделиться Опубликовано 30 Января 2004 А что конкретно пытаешься сделать?.. В принципе, такие глобальные переменные передаются обычно через куки там и т.п. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 30 Января 2004 Автор Жалоба Поделиться Опубликовано 30 Января 2004 В Boards.phpесть переменная ну, например, $this->variableмне надо её использовать в Topics.phpОбычно передают всё через ссылки, но на момент формирования ссылок, её значение ещё неизвестно.Через глобальную переменную её также нельзя передать т.к. глобальные переменные очищаются и пересоздаются в index.php (в начале файла) - ведь topics.php "запускается" из index.php!Через куки можно, но плохо двумя моментами:1) увеличивается входящий трафик на сервак (денюжка )2) мне надо иметь по одной переменной на каждый раздел. Допустим пользователь открыл раздел, нужное число сохранилось в кук "variable", прочиталось в Topics.php, всё ок. Но если юзер откроет сразу много разделов в разных окнах? Он вполне может это сделать! Тогда кук перезапишется и в нём будет последнее значение. А пользователь переключится в первое окно, где это число вовсе не соответствует последнему сохранённому в куке И вот уже ошибка. Кроме того кук такая вещь ненадёжная.. в одном окне запишется, во втором нет, в третьем с запозданием (всё зависит от того как хорошо доступна конкретная страница топика).Можно ли передать как-то переменную из класса в класса на стороне клиента? без использования обработки на сервере (куки, база) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 30 Января 2004 Жалоба Поделиться Опубликовано 30 Января 2004 Можно ли передать как-то переменную из класса в класса на стороне клиента? без использования обработки на сервере (куки, база)PHP работает только на сервере и не о каких "из класса в класса на стороне клиента" и речи быть не может. Далее куки это всегда клиент, не нравятся куки используй механизм сессий (в IPB они все равно повязаны на куки).Если открывает много и сразу, хранить надо не одну пепременную, а ассоциативный массив И вообще напиши проблему полностью, что хочешь и почему пошел так... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 31 Января 2004 Автор Жалоба Поделиться Опубликовано 31 Января 2004 Мне надо маркировать форум прочитанным после того как пользователь просмотрит все новые для него топики.Сейчас это выглядит так: юзер смотрит топик, состояние топика меняется с "нового" на "неновый". Если даже юзер просмотрит все топики и в форуме не останется ни одного нового топика, форум всё-равно не пометится на прочитанный т.к. собственно "пометка форума прочитанным" происходит при чтении топиков. Читается список топиков, и если там нет новых, то форум маркируется прочитанным.Поэтому сейчас получается так:1) Пользователь зашёл в форум. Видит непрочитанный форум2) Заходит в него, читает все новые для него топики3) Возвращается в root, форум всё-равно остался непрочитанным!4) Он снова в него заходит и вот только теперь форум делается прочитанным, но сам этот шаг 4-ый не нужен пользователю т.к. фактически в форуме не осталось уже ни одного "полезного" непрочитанного сообщения, т.е. он нужен только для того, чтобы промаркирвать форум прочитанным, что есть лишнее действие, лишний трафик и лишнее раздражение. А если этого не делать, то юзер попросту путается. Как я хочу сделать:В Forums.php собирается кол-во новых постов для пользователя.Я передаю это число в Topics.php.При клике на пост, определяется новый ли это пост для юзера (точнее для данной ситуации, когда он его уже посмотрел - был ли он новым постом для него). Если да, то вычитаем из этого числа единицу. Пользователь может посещать другие топики и новые и не новые, но число будет убавляться на единицу только если он прочитал новый для него пост. А далее проверочка: if (!$new_posts) { маркируем } Вот..С самого начала не написал, потому что это проблема выходит из стандартных исходников IPB. У нас это переделано.Я это уже сделал, и это уже работало, но я не нашёл ничего лучшего как передавать это число через куки. И это всё хорошо работало, когда юзер откроет один форум. А когда откроет несколько, тогда куки будут содержать число из последнего открытого форума, что не есть хорошо.Наверно, я пошёл в неправильном направлении. Надо что-то с запросом рубить.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 31 Января 2004 Жалоба Поделиться Опубликовано 31 Января 2004 Я это уже сделал, и это уже работало, но я не нашёл ничего лучшего как передавать это число через куки. И это всё хорошо работало, когда юзер откроет один форум. А когда откроет несколько, тогда куки будут содержать число из последнего открытого форума, что не есть хорошо.Просто записывай в куки массив чисел, соответствующих каждому форуму, при помощи serialize() Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 31 Января 2004 Автор Жалоба Поделиться Опубликовано 31 Января 2004 Спасибо за советы. Сделал через запрос. Буду смотреть как он скажется на быстродействии. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.