Друзья, работа не стоит на месте, но движется довольно быстрыми темпами. Довольно много времени было уделено семейным вопросам на этой неделе, но удалось произвести значительные улучшения движка. Обо всем по порядку.Кеширование
Полностью переписано кеширование, которое теперь построено по принципу драйверов. Появилась поддержка тегов кеша — данные теряют актуальность, если одна из их меток стирается или обновляется после определенного промежутка времени. Упразднен класс storage, дублирующий кешированные записи в БД. На его замену пришла производительная цепочка файлового кеша + Memcached.Данные улучшения привели к увеличению производительности. Количество запросов к странице сократилось до минимума. Ведутся работы по оптимизации кеширования во всех необходимых компонентах.
//Пример кеширования с тегами
$this->cache->tags('one,two,three')->set('nodes',$nodes);
// Или так
$this->cache->set('nodes',$nodes,3600,array('one','two','tree'));
// Теги можно указывать строкой через запятую или же массивом
// Если кто-то удалит хотя бы один тег или перезапишет его
$this->cache->tags('one')->clear();
// то все данные кеша, привязанные к этому тегу потеряют свою актуальность
Автозагрузка
Доработал задумки с прошлого обновления. Модели и классы шестеренок индексируются и кешируются. Исключены все функции include и require для стандартного вызова моделей и классов.// Автозагрузка действует только для контроллера и сущности
// В моделях она создает путаницу, к сожалению.
$CI =& get_instance();
// Модель не требуется инициализировать,
// хотя эта возможность осталась для особых параметров вызова модели
$CI->user->get();
// Если вы хотите предзагрузить некоторые модели для того,
// чтобы они изначально были доступны во всех других моделях
// Просто укажите это в файле конфигурации шестеренки
// Например, global.conf
models[] = breadcrumb bc; Загрузим модель breadcrumb, назвав объект bc
models[] = cpanel;
...
// Любая другая модель
$this->bc->add();
Убрать все лишнее
Были упразднены компоненты «Таксономия», «Типы таксономии», «Типы нод» по причине их громоздкости. Новые версии шестеренок по данной тематике ожидаются в ближайшем будущем.Производительность
Результат не заставили себя ждать. Загрузка главной страницы на локальной машине (Mac Pro Early 2008):Использование памяти: 1.35МбЗагрузка главной страницы на данном сервере (высокая загруженность):
Запросов к базе данных: 0
Запросов в кеш: 2
Время работы: 0.1853
Использование памяти: 2.26Мб
Запросов к базе данных: 0
Запросов в кеш: 2
Время работы: 0.3540
Будущее
В планах на ближайшее время:- Переработка компонента загрузки файлов. Упразднить JSHttpRequest, сделать простую загрузку через iframe.
- Переработка компонента комментариев. Подгрузка не всего дерева целиком, а только обновленных комментариев с соответствующей цветовой индикацией.
- Внедрения нового кеширования в старые компоненты.
- Переход на новый тип лицензии.
- Разработка установщика движка.
- Создание дополнительных модулей (теги, типы постов, голосования, произвольные поля профиля).
Спасибо всем, кто следит за развитием движка и посещает этот сайт.


/me слежу
Используется для ajax-загрузки файлов.
Все делается через flash-компонент (-:
Посмотрим. В идеале — мне очень нравится реализация загрузки на http://picamatic.com. Хотя такой вариант скорее всего будет реализован в следующей версии движка.
Вот статья по загрузки файлов http://vremenno.net/html-css/file-uploaders-overview/
Я свою ajax мультизагрузку сделал за 2 дня :)
Скоро обновление.
Куда «красивее» JS ;)
Пришивать jQuery ради единственного момента нет смысла.
Тем более, что вы не поймете, что это Flash, если не заглянете в код ;-)
У вас стоит расширение под FF Adblock Plus ;)? Тогда поймете.
А это расширение стоит у многих.
Как бы вам этого не хотелось, оно не реагирует на мою реализацию загрузки «в один клик».
/me тоже слежу =), всё мыло заслежено ревизиями =))
исправил это
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1наRewriteEngine on #RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]ЗЫ. также думаю не помешало бы включить в htaaccess<IfModule mod_rewrite.c> ... </IfModule>и убрать php_value, т.к не на всех серверах поддерживается изменение php параметров через htaccessЕсли их не будет — ссылки внутри движка работать также не будут.
Идея «чистых адресов» является ключевой.
Странно, что помогли такие исправления. RewriteBase никому не мешал жить.
RewriteCond %{REQUEST_FILENAME} !-d
Можно убрать и прописать папки исключения.
Таким образом кто угодно может запускать этот скрипт и использовать ( если скрипт не использует ядро Cogear).
А если убрать данные строки и вписать папки исключения из правил, то любой запрос кроме того который будет адресован на соответствующие папки будет переведен на index.php
Любой скрипт движка может быть подключен только после index.php.
Посмотрите первую строчку в любой моделе/контроллере/библиотеке.
index.php
images
css
js
…
оставить в htdocs/www
а остальное — на уровень ниже, и доступа не будет.
Если разработчик модуля забудет про строку защиты — придется ее использовать прежде, чем его модуль будет размещен в официальном каталоге.
Кстати убрав эти строки шел запущенный в CMS будет практически не возможно вызвать.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|phpinfo\.php|templates|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
По хорошему должна быть папка asset в которую будут сложенны все img,js,css которые используются на сайте.
Запрос к всему остальному должен перекидывать пользователя на index.php
P.S. Смотрите http://cogear.ru/templates/cogear/footer.tpl
по идеи до этого я не должен был добраться.
http://cogear.ru/engine/index.html
Глядя на эту страницу (стандартная КИшная 403) я понимаю что папку engine вы не куда не перемешали и не переименовывали.
http://cogear.ru/gears/admin/templates/navbar.tpl
Вы закрыли доступ к файлам с расширением .txt и .info а
вот про .tpl забыли)
P.S. Что-та раздвигающийся автоматом редактор тупит.
При попытке авторизации\регистрации у себя на локалхосте
вылазит
//Вот так $this->form->set('login')->key()...Или же в модели формы по-умолчанию можно выключить проверку ключа безопасности, если изменить ее переменную $key на ложное значение.А вот две минуты назад было ~380 человек. После перезагрузки страницы — 82
Бог ему судья.
A PHP Error was encountered
Severity: Warning
Message: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'FilesCache::remove' was given
Filename: libraries/Cache.php
Line Number: 88
Можно ли ввести систему хоткеев? Чтобы при нажатии определёных сочетаний клавиш можно было опубликовать\создать\перейти на определённый пункт меню или к форме написания статьи. Чтобы было всё быстро и удобно =)
Смысл делать это, если до страницы публикации один клик? Быть может просто перекомпоновать панель пользователя, сделав его полупрозрачным слоем в фиксированном расположении на экране (а-ля «Оставить свой отзыв»)?
Я против разделения дизайна админки/сайта.
Идея Dashboard уже очень давно присутствует в Wordpress в более наглядном виде, чем в Habari.
Сейчас скачаю и посмотрю код, чтобы получить более полное представление об этой системе.
Но при установке с mysql вылезло пару ошибок. Не войти под админом также после установки. Пробовал sqlite — такой же результат.
Кстате у них на сайте вроде демо есть — demo/demo
Что с русской, что с английской раскладкой. Там же указывается код клавиши, а не само значение.
Брать тут Описание: Позволяет добавлять публикации в социальные закладки.
Сделана на основе шестерёнки favorites
ЗЫ
Ещё один вопрос по шестерёнкам. Смогу ли я сделать двойную авторизацию? чтобы при логине в систему проверялся логин с 2х разных таблиц и пароль с 2х разных таблиц?
Двойная авторизация для каких целей — безопасности?
Авторизация нужна мне для игрового сервера =), чтобы человек мог заходить по аккаунту через который он играет на сервере =)
А переделал потому, что «стандартный» модуль передавал через iframe только $_FILES и совсем забывал про $_GET и $_POST.
http://cogear.ru/community/updates/update-03-july-21.html#comment-6
ФФ 3.5, ХР сп3
Попробуйте так.
А, ну все, понял. Посмотри на «Пульс» :) Там у всех ссылок якорь одинаковый.
PS. Я про число комментариев, которое справа (или слева) под значком «обновить комментарии»