Практика показала, что категории все же нужны далеко не всем. Поэтому сейчас этот функционал в виде отдельного плагина реализован: altocms.ru/addons/item/92/
Вот-вот, визуальный редактор, это из-за него. Не суть важно, что именно редактируется в нем, важен сам факт, что было редактирование какого-то текста, и если после этого не выполняется отправка формы, в которой шло редактирование, то выскакивает такая вещь. А комментарии ведь хитро отправляются, аяксом, без перезагрузки страницы, вот и считает редактор, что текст правился, но не был отправлен.
Наверное, это можно как-то побороть, но я пока не смотрел толком
Пардон, про этот «нюанс» я, честно говоря, забыл, т.к. давно уже с ним сталкивался, и давно с Владимиром (aka extravert ) на эту тему общался. Насколько я понимаю, в последних версиях плагина DAO это все решено
Если включить режим wysiwyg, то точно такое же бывает, если, например, редактируешь топик и вдруг решил уйти без сохранения. Наверняка на сайте редактирование с tinymce включено
Со стороны движка в версии 1.0.8 не знаю ни одного факта несовместимости с DAO. Но потребовалась адаптация DAO к самим шаблонам (CSS-стили все же очень отличаются). Автор плагина подтвердил, что адаптация практически готова, сейчас идет тестирование, и скоро обновление будет в каталоге.
В версии 1.1. запланировано пока два ключевых пункта:
1) Новый механизм работы с меню (меню можно будет управлять и настройками в конфиг-файле, и программно из плагинов, и просто из админки)
2) Улучшенная работа с изображениями, о чем я писал здесь: altocms.ru/793.html
Ну, и всяческие улучшения, на список которых Андрей дал ссылку
Тогда редиректа не будет, а будет попытка загрузить ту же страницу. Я тут говорю «попытка», потому что если эта страница закрыта для неавторизованного юзера, то он увидит страницу 404
Либо, если уж совсем по всем правилам делать, делаем маленький файл шаблона (напр., friends_count.tpl:
{if E::IsUser()}
Друзей: {$iFriendsCount}
{/if}
А обработчик хука записываем так:
public function TplFriendsCount() {
$iFriendsCount = E::IsUser() ? E::User_GetCountUsersFriend(E::User()) : '0';
$this->Viewer_Assign('iFriendsCount ', $iFriendsCount );
return $this->Viewer_Fetch('friends_count.tpl');
}
Но важно понимать, что запрос числа друзей — это обращение к базе. Поэтому если речь про то, что это надо вывести в одном месте страницы для текущего юзера — то это нормально. А если, например, на странице выводится большой список юзеров и для каждого нужно вывести число друзей, то это уже лучше писать плагин, чтоб оптимизировать число запросов.
Если речь о том, что нужно править стили, то лучше всего сделать копию одной из тем и работать с ней. Например, собственная тема будет называться new.
Для начала копируем .../start-kit/themes/light/ в .../start-kit/themes/new/.
А дальше есть два варианта:
1) Если умеете обращаться с LESS-файлами, то меняете, как нужно .../start-kit/themes/new/style-light.less и/или .../skin/start-kit/assets/less/classes.less и компилируете, чтоб получился .../start-kit/themes/new/style.css
2) Если с LESS дружбы нет, то создаете свой файл стилей, например, .../start-kit/themes/new/custom.css и там переопределяете все CSS-классы, какие нужно. А потом подключаете этот файл в настройках шаблона в .../start-kit/settings/config/config.php, добавив строку:
Значит, еще что-то поломано оказалось, надо внимательно код шаблона перебирать. Подобные вещи случаются, когда меняется DOM. А это значит — либо id нужных элементов нет, либо классов, а иногда — даже если изменена цепочка CSS-классов у элементов.
Думаю, понятно, что делать это надо отдельным плагином.
И я бы cделал примерно так: создается плагин для конкретного сайта (напр., PluginMine, где переопределяется ActionContent, в котором расширяем метод checkTopicFields($oTopic):
class PluginMine_ActionContent extends PluginMine_Inherits_ActionContent
protected function checkTopicFields($oTopic) {
// сначала вызываем стандартную проверку
$bResult = parent::checkTopicFields($oTopic);
// а теперь проверяем заполнение дополнительных полей
if (empty($_REQUEST['fields'][2])) {
$this->Message_AddError('Поле не заполнено', $this->Lang_Get('error'));
$bResult = false;
}
return $bResult;
}
}
Наверное, это можно как-то побороть, но я пока не смотрел толком
1) Новый механизм работы с меню (меню можно будет управлять и настройками в конфиг-файле, и программно из плагинов, и просто из админки)
2) Улучшенная работа с изображениями, о чем я писал здесь: altocms.ru/793.html
Ну, и всяческие улучшения, на список которых Андрей дал ссылку
Тогда редиректа не будет, а будет попытка загрузить ту же страницу. Я тут говорю «попытка», потому что если эта страница закрыта для неавторизованного юзера, то он увидит страницу 404
Можно и хуком сделать:
А в шаблоне в нужное место ставим:
Либо, если уж совсем по всем правилам делать, делаем маленький файл шаблона (напр., friends_count.tpl:
А обработчик хука записываем так:
Но важно понимать, что запрос числа друзей — это обращение к базе. Поэтому если речь про то, что это надо вывести в одном месте страницы для текущего юзера — то это нормально. А если, например, на странице выводится большой список юзеров и для каждого нужно вывести число друзей, то это уже лучше писать плагин, чтоб оптимизировать число запросов.
Для начала копируем .../start-kit/themes/light/ в .../start-kit/themes/new/.
А дальше есть два варианта:
1) Если умеете обращаться с LESS-файлами, то меняете, как нужно .../start-kit/themes/new/style-light.less и/или .../skin/start-kit/assets/less/classes.less и компилируете, чтоб получился .../start-kit/themes/new/style.css
2) Если с LESS дружбы нет, то создаете свой файл стилей, например, .../start-kit/themes/new/custom.css и там переопределяете все CSS-классы, какие нужно. А потом подключаете этот файл в настройках шаблона в .../start-kit/settings/config/config.php, добавив строку:
И, разумеется, не забудьте саму тему у скина сменить, задав new
И я бы cделал примерно так: создается плагин для конкретного сайта (напр., PluginMine, где переопределяется ActionContent, в котором расширяем метод checkTopicFields($oTopic):