Последнюю неделю не было времени, сейчас думаю продолжить разработку. Хочу поинтересоваться, как лучше реализовать кеширование? Например страниц просмотра темы. Сохранять выводимый HTML код не вариант, т.к. хочу в теме отображать, на форуме пользователь (тот, который добавил сообщение) или нет...
Нет. Выбери все данные за один запрос. А уже на стороне клиента их разбери и поставь что надо, куда надо.
Сделал новую версию ExBB SQL 0.0.3, на ней сейчас работает http://exbb.hol.es/. Расширены возможности системы плагинов. Расширены возможности системы шаблонов, появилась возможность переопределять виды плагинов и модулей. Благодаря этому нововведению стало возможным полностью изменить дизайн форума не вмешиваясь в исходный код плагинов и модулей. Пример - http://exbb.hol.es/, с помощью шаблона полностью изменён дизайн. Инсталлятор теперь сделан в таком же стиле, как и главная страница форума. Исправлены баги версии 0.0.2 Появилась возможность заменить вид всех ссылок с помощью плагинов (можно будет попробовать сделать ЧПУ)
Молоток Только сделай расстояние между секциями категорий меньше, чем между шапкой и первой секцией, а то глаз режет.
Исправил кое-какие косяки в шаблоне, наладил BB коды, открыл один форум для гостей. Уже вполне можно нормально общаться. Следующее по планам ЧПУ http://exbb.hol.es/topics/1234.html http://exbb.hol.es/forums/1234.html http://exbb.hol.es/users/1234.html или: http://exbb.hol.es/topic-1234.html http://exbb.hol.es/forum-1234.html http://exbb.hol.es/user-1234.html Как лучше?
1) Первый вариант лучше. 2) Ты что-то накосячил, у тебя лимит по затратам проца превышен. 3) Накуй бесплатные хостинги, тебе уже начали прижимать яйцы. Когда спросишь, в чем дело, тебе скажут - переходи на платную основу. Еще и акк могут зафризить кхерам. Со всеми данными на нем. Это типичная тактика. Вот те сцылка. Работают на ура. Стоят копейки. Не первый год пользуюсь, довольный как слоноконь. И поддержка суперская. Чтобы с тикетами не морочиться, можно в скайпе в рилтайме общаться. Всегда помогут, всегда пойдут на встречу.
Из соображений безопасности. Попроси в скайпе - включат без доплат и тд. На твой страх, риск и все такое. Мне включали Единственное, на шареде никто тебе рутовый доступ не даст. Это факт. А в остальном все воркает.
Хех, я уже публичный ключ создал, залил, а оно мне фиг показало ) Создал тикет, на вид хостер прилично смотрится, ценник даже некоторое недоверие вызывает, для "что бы показать" самое то, а там видно будет.
Я с ними уже дело имею наверное года три как. Четвертый идет. Нареканий или проблем не было. Ни разу "яйцы" не выкручивали. Ни разу ничего не запрещали, ультиматумы не ставили. На качество работы не жаловался никогда. Машины у них не допотопные, постоянно отчитываются об апгрейдах и переносах сайтов на новые сервера. Инфа по шаред серверам доступна в рилтайме постоянно, аптайм, загрузка проца. З.Ы. http://shneider-host.ru/whmcs/knowledgebase.php?action=displayarticle&id=3
Это тактика любого бесплатного хостинга - ждут пару месяцев в лучшем случае, пока привыкнешь, а потом раз - и хвать тя за яйцы. Сам не раз на такое натыкался, когда по бесплатным хостингам ходил.
Ещё пару вопросов по ЧПУ, в .htaccess делаю так: Код (Text): RewriteRule ^topics/([0-9]+).html(/?)+$ index.php?a=topic&topic=$1 [L] В плагине генерации ссылок так: Код (Text): public static function topic($id, $page=1, $params=array()) { return URL."/topics/{$id}.html"; } А как делать обработку GET параметра page и других GET параметров, если неизвестно, какие они могут быть? Со страницами можно так, дописав ещё несколько правил в .htaccess http://forum.ru/topics/1234-page2.html http://forum.ru/forums/1234-page2.html А как с другими параметрами, например search, делать так: http://forum.ru/forums/1234-page2.html&search=text - это http://forum.ru/index.php?a=topic&topic=1234&page=2&search=text
Извиняюсь за долгую задержку)) Форум на моём движке теперь доступен по адресу: http://exbb.pw/ Сейчас есть некоторые неточности в шаблоне, например в цепочке навигации. Скоро поправлю... Было сделано несколько улучшений, сегодня сделал проверку, прочитана ли тема пользователем.
заходим на главную. видим внизу [Time: 0.0215 Memory: 932.6094 (Peak: 980.9414) KB; SQL Queries: 33] вот интересно, что там за запросы такие необходимые? думаю запросы такие: - получение списка тем = 1 - проверка авторизации = 1 - данные профиля =1 (хотя я зашел как гость) - получение какихто настроек сайта + личные = 2 - статистика внизу = 5 например (и нах она нужна вообще, либо в кеш её загнать) итого: 10 запросов. максимум. с натягом. если архитектура нормальная. блин, но откуда 33 ? что там в цикле чтоли чтото выбирается?)
Проверка прав доступа для каждого из форумов. Доступ регулируется с помощью групп Добавлено спустя 56 секунд: Получение информации о пользователях, которые оставляли в теме сообщения. Тут сделаю выборку пользователей одним запросом Добавлено спустя 1 минуту 17 секунд: Гость тоже пользователь, его профиль тоже хранится в БД
а нельзя выбрать это одним запросом? все права текущего юзера для каждой темы сразу. непонял. и где это выводится? нужно то всего узнать кто создал тему, кто последний ответил(как вариант). и все. это можно совместить с запросом выборки самих тем. в общем, очень много лишних запросов. это факт.
Вот функция, выполняется для каждого форума. В принципе можно все права выбирать один запросом сразу. Код (Text): /** * Проверяет права доступа к определённому форуму * @param int $forum_id ID форума * @param string $right Название права доступа * @return bool */ public static function checkForum($forum_id, $right) { if (isset(self::$rights[$forum_id]) && isset(self::$rights[$forum_id][$right]) && self::$rights[$forum_id][$right]) return true; $access = db::getRow('SELECT access_value FROM exbb_access WHERE group_id=?i AND forum_id=?i AND access_name=?s', core::$user->getGroupId(), $forum_id, $right); if (!isset(self::$default[$right])) self::$default[$right] = false; if (!isset($access['access_value']) && self::$default[$right]) return true; if ($access['access_value']) return true; return false; }
ну так - just do it! Добавлено спустя 2 минуты 50 секунд: а лучче сразу - невыбирать форумы куда нет доступа. да и все. и проверок непонадобится