Очередная версия MaxSite CMS. Изменений немного, в основном это «текучка», но я выделил изменения в отдельную версию, поскольку включил в комплект системы несколько новых функций, которые могут быть полезны вебмастерам.
Традиционно, краткое описание изменений.
- Переход на CodeIgniter 2.1.2.
- Исправление, касаемое безопасности. Дополнительная XSS-фильрация комментариев. Может быть актуально для старых сайтов, которые работали еще примерно с версии 0.40.
- LessPHP обновлен до 0.3.5.
- В функции mso_cat_array_single() убрал дефолтный тип страниц blog. Теперь по-умолчанию получаются все записи рубрик, не зависимо от типа записей. Так более логично.
- Новая функция mso_get_cat_from_id(), которой можно получить значение произвольного ключа указанной рубрики. Например mso_get_cat_from_id(10, 'category_name') вернет название рубрики номер 10.
- При залогировании выполняется 3-секундная задержка. Это примитивная защита от брутфорса (brute force) - подбора паролей.
- Плагин autoclose_tags может использовать php-библиотеку Tidy.
- В плагине Forms поле subject (тема письма) принимает либо select, если указаны несколько тем, либо редактируемое поле input. При этом, если это одиночная тема, которая начинается с символа «_», то тема письма формируется как скрытое (тип hidden) и не видна посетителям.
- Архив сайта (плагин sitemap) сортируется по category_menu_order, а не по имени, как было раньше.
- В компоненте default-шаблона menu.php убрал поддержку хука main_menu. По сути этот хук использовался только в плагине MainMenu, который теперь исключен из комплекта MaxSite CMS. Текущий вариант стандартного меню на обычном CSS полностью перекрывает этот плагин, но проще и удобней в работе.
- Также исключены плагины Admin_announce и pre_to_ol. Плагины перемещены в Каталог плагинов. Кому нужно, качайте оттуда.
- Вывод комментариев (page-comments.php) чуть переиграл по верстке.
- Новый type_foreach-файл page-other-pages, по которому можно вывести свой блок «Еще записи этой рубрики».
- Новые stock-файлы: class-columns, page-out, thumb.
- class-columns - php-класс позволяет просто организовать вывод любой информации колонками/блоками. Колонки могут формироваться как автоматом, так и вручную. Можно использовать счетчик.
- page-out - форматированный вывод записей. По сути это обёртка над функциями mso_page_.... Вместо них используются подстановочные фразы, вроде $p-> line('[date] | [autor] | [comments]'). Можно задать форматирование любого блока, вывести html, «умный» блок и т.п. Я попытался собрать в этом классе все наиболее частые задачи по выводу данных записей.
- thumb - класс для формирования thumb-изображений (с произвольными размерами). В отличие от подбных thumb-библиотек, в этой изображения не формируются из get-запроса. Именно get-запросы подобных библиотек являются гиганской дырой в безопасности не только сайта, но и всего сервера. У нас это исключено, поскольку вся работа осуществляется через явный вызов php-функций. Кроме того, функции жестко завязаны на каталог uploads. На входе передаём адрес произвольного изображения (например картинка записи), на выходе - готовый адрес нового файла thumb-изображения с заданными размерами. Миниатюру можно создать пропорциональным уменьшением, точным размером, кропом по центру, кропом от левого угла, кропом со смещением, вначале уменьшение, потом кроп, а также уменьшение по ширине, после кроп по центру. В общем варианты на любой вкус.
Новые stock-файлы нигде не используются в default-шаблоне, но я выкладываю их в свободный доступ, поскольку они здорово упрощают создание сложных шаблонов. Примеры и подробное описание есть в начале этих файлов.
Комментариев: 44 RSS
1АлександрСайт07-08-2012 11:47
Радует, что система "вылизывается" и развивается. Maxу огромная благодарность.
2Аноним08-08-2012 02:11
Макс, спасибо тебе за возможность бесплатно обучаться этому кропотливому, но безумно интересному делу. Надеюсь, что не за горами и моя благодарность.
3Василий Петрович Романов08-08-2012 03:51
Чтож, как говорил Жан-Луи Гассье: "обновляемся"!
4АлександрСайт09-08-2012 14:17
Поздравляю с развитием, ты когда выложишь яндекс кошелек?;-)
5Максим09-08-2012 14:18
У меня нет Яд-кошелька. Он только для россиян.
6АлександрСайт09-08-2012 14:27
Жаль ( ты получал от меня сообщение что я тоже хочу помогать в развитии проекта? На емейл ответа так и не приходило. По поводу янд. Понятно прийдется 4.5 процента терять на переводе на твой веб мани :(
7АлександрСайт09-08-2012 14:55
небольшая поправка, проверил, оказывается совсем не могу перевести с ян на вебмоней ( а про развитие я имел ввиду кодинг :)
8Максим09-08-2012 15:18
Понимаю, но к сожалению, от меня это уже не зависит. :-)
9Сергей МСайт12-08-2012 06:55
Почему только для Россиян?
Заводи и получай деньги. ;-)
10Teem12-08-2012 15:39
Какие либо особенности по обновлению с версии 0.734 есть или просто заливаем файлы по верх прежних?
11Максим12-08-2012 15:42
Поверх.
12jimmy jonezz14-08-2012 18:26
Это здорово!
13zloj16-08-2012 05:30
Жаль что базу пользователей и комментаторов не хотят объединять, сейчас большая часть сайтов хотят форум с интеграцией сайта, это большой минус движку...
14pashichСайт16-08-2012 07:25
Кто-нибудь победил на этой версии плагин "Древовидные комментарии"? Кто сможет помочь за небольшое материальное вознаграждение, оставьте ваш контакт, свяжусь с вами.
15pashichСайт16-08-2012 23:15
Не актуально, вышла новая версия плагина, она корректно работает на 0.74
16Аноним03-09-2012 11:39
Подскажите, а есть ли плагин какой для автоматической публикации через RSS ленту?
17Денис Назаров04-09-2012 18:50
Колбасит плагин login_form. Комюзеру через него залогиниться просто нереально.
18Денис Назаров04-09-2012 19:17
блиииинннннн..... логинится без проблем, но!!!!!!
в качестве имени надо мыло вводить.... пипец логика....
Макс! Может стоит отказаться от деления юзер/комюзер?
При инсталляции создается админ - а дальше пусть рулит, кому какие права давать, по умолчанию все комюзеры, а дальше пусть ручками переводят, кому надо, в юзеров. Будет гораздо логичнее.
Да, понимаю, все перелопатить придется. Но чем проще система, тем она надежнее.
19zloj05-09-2012 01:24
Полностью поддерживаю, нужна единая таблица пользователей!
20АлександрСайт05-09-2012 10:45
Насколько я понимаю, maxsite изначально создавалась не мультиблоговой системой, поэтому и предусмотрено жесткое разделение типов пользователей для большей безопасности. Понятно, что с ростом популярности системы хочется расширения возможностей, но любое усовершенствование такого типа будет усложнять движок и лишать его основных преимуществ: легкости и быстродействия. :-)
21Аноним05-09-2012 11:43
Есть плагин регистрации, можно сразу задать чтоб комментаторы регистрировались как пользователи.
22Денис Назаров05-09-2012 11:56
Ну как по мне, так тип пользователя может быть только один - юзер он юзер и есть. А вот прав у него может быть много, а может быть и мало. И даже если у него админские права, то он все равно остается пользователем.
Сижу, ваяю плагин инет-магазина, собрался уже клиенту показывать, ладно вовремя сообразил зарегить простого юзера (комюзера в терминологии Макса) и вдруг получаю картинку, как будто и не залогинен юзер! В корзину не пускает, товар туда складывать не дает, а все потому, что сам то я сижу под админом, а тут, понимаешь, просто Ден лезет :)
Вот и пришлось извращаться и делать отдельную функцию для определения залогинености (ком)юзера. А таблицы то уже разработаны! А как корзину вести с разными типами? А если они по id пересекутся?
В общем - жутко неудобно. А всего-то делов - в таблице пользователя предусмотреть поле-флажок публикации своих записей, возможность входить в админку и фильтрацию контента админки, то есть чтобы свои записи трогал, чужие (не мог)/(мог) и т.д.
2Gor - кривоват плагинчик... письмо мне так и не пришло, как админ я вручную не смог активировать, пришлось лезть в базу и ручками, ручками... Это уж совсем не годится
23zloj06-09-2012 03:54
От разных таблиц только проблемы, то активному комментатору нужно сделать доступ для размещения статей - а никак, только создавать нового пользователя, ну и т.п., проблемы появляются во всём где нужно брать данные пользователя, а это практически 100% если дорабатывать функционал. Ну и самое важное - невозможность нормальной интеграции с другими движками - форумы и т.п.
24Максим06-09-2012 07:40
Нечего пускать посторонних в админку...
Всё остальное, что тут понаписали - бред. Разберитесь что и как устроено, после делайте громогласные заявления.
25Денис Назаров06-09-2012 11:05
Дык уже разобрался... но все равно как-то не очень...
26Денис Назаров06-09-2012 11:19
Макс, и еще... понятное дело, ты автор, у тебя свое видение, но тем не менее - просто прикинь, сколько народу пустило бы посторонних в админку. А если с грамотной разноской прав - так это вообще без проблем.
Да и речь, в общем, не о том, чтобы их туда пускать, а о том, что приходится много лишнего делать. Вот к примеру, твой же код
здесь лишнего 30%, а именно - проверка, юзер это или комюзер. Единая таблица только в одном этом плагине сэкономила бы тебе время на написание, а уж остальным бы как жизнь облегчила.
Но если тебе так уж хочется плодить сущности сверх необходимого - что ж... хозяин-барин.
27Максим06-09-2012 11:29
А у меня и так грамотная «разноска» прав. Или сделай свою «объединенную» функцию. Если же этот код вызывает проблемы с пониманием или для тебя он слишком большой, то могу только посоветовать учиться и разбираться дальше.
28Денис Назаров06-09-2012 11:32
Не надо думать, что все такие непонятливые.
Сделал уже давно, но все равно это неправильно.
А "грамотная разноска прав" по двум таблицам - это уже не есть "грамотно".
Но все равно - за систему спасибо :)
29Максим06-09-2012 11:42
А права никакого отношения и не имеют к таблицам. Меня несколько напрягает, когда человек, не разобравшись в сути, начинает говорить что правильно, а что нет. Неужели сложно зайти на форум и почитать обсуждения по этому вопросу? Я не утверждаю, что система пользователей в MaxSite CMS идеальна, но она практически гарантированно защищена от взломов и несанкционированного доступа. А то, что пользователи разделены на две таблицы, так это вообще не проблема. Получить данные любого из них - один sql-запрос - это вообще задача для пятиклассника.
30Денис Назаров06-09-2012 12:05
а есть гарантия, что id пользователя не пересечется с id админа?
31Максим06-09-2012 12:21
Поля id в наших таблицах нет.
32Денис Назаров06-09-2012 12:37
воооттт.... вот об этом и пыхтение.... что по сути-то оно есть, только называется по разному....
в общем, что бы ты ни говорил - все равно система заточена под блоги. И сделать что-то, кроме блогов - надо сильно постараться... Что радует, так это возможность делать это "что-то" в виде плагина, что огорчает - так это необходимость двойной обработки данных о пользователях. Что с учетом общей расхлябанности пыхи огорчает вдвойне. Но делать нечего, кактус будет сгрызен....
33Максим06-09-2012 12:45
Смешно... RTFM.
34Денис Назаров06-09-2012 12:58
убедил :)
35Gor06-09-2012 15:22
А вот это, извините меня, уже действительно бред , что вы вообще понимаете под словом "блог", на MaxSite CMS реализованы, не только сайты визитки, блоги, интернет магазины, но и довольно-таки крупные порталы, у вас в руках система с открытым кодом, всё что для вас не хватает, можете дорабатывать сами, реализовывать плагинами и т.д..
И вообще если у вас на сайте есть другие авторы, просто создайте для них отдельных пользователей, если же вы х.з. что делаете на своём сайте, это же не значит, что у всех комментаторов должен быть доступ к админке, комментатор для того и есть, чтоб комментировать статьи, а не иметь доступ к админке.
36Дмитрий08-09-2012 14:07
Второй раз переустановил. Не могу попасть в админку,нажимаю "вход",выскакивает авторизация,ввожу логин и пароль-неверный логин и все! Что я делал не так?
37Griz08-09-2012 16:09
Некоторое время назад у меня подобная проблема возникала (с глюками при авторизации) из за проблем у одного интернет-оператора (кстати очень известного и широко распостраненного), услугами которого я пользовался... Проблемы с авторизацией были на всех сайтах на MaxSite CMS. Локально всё работало нормально. Долго и нудно переписывался с тех.поддержкой провайдера. Проблему решили на стороне провайдера.
38Дмитрий08-09-2012 16:33
ну,с оператором я точно ничего сделать не смогу-монстр Укртелеком.
Врядли причина в этом.Пароль и логин ввожу и с почты и копирую и вручную и в разных браузерах уже пробывал. Да и первый раз думал,может,криво установилось.По-новой переустановил.Не получается войти. Очень хочу испытать систему.
39АлександрСайт08-09-2012 19:36
Извини за банальный вопрос, но ты случайно не забыл переименовать mso_config.php-distr?
40Griz09-09-2012 06:58
В моем случае, дело было точно не в mso_config.php и не в параметре $mso_install. Я пробовал авторизоваться при подключении через разных провайдеров. Специально взял у товарища usb-модем другого известного оператора. В одном случае авторизация проходила без проблем, в другом случае авторизация не проходила с сообщением о неверности логина - пароля... Кстати, некоторые глюки с авторизацией в этом случае наблюдались и при попытке доступа на майл.ру. Я сначала думал, что это майловская проблема, но мне их техподдержка ответила, что подобные проблемы - это глюк провайдера Х. (я им не сообщал, что пользовался его услугами, но как раз через Х я и выходил в сеть).
41Александр09-09-2012 18:19
Здравствуйте!
После установки всё прошло успешно, но при входе в админпанель вывелась ошибка:
A PHP Error was encountered
Severity: 8192
Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
Filename: mysql/mysql_driver.php
Line Number: 319
A PHP Error was encountered
Severity: 8192
Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
Filename: mysql/mysql_driver.php
Line Number: 319
Что с этим делать?
42Максим09-09-2012 19:54
Это из-за PHP 5.4. Вот так попробуйте: http://forum.max-3000.com/viewtopic.php?p=18847#p18847
43Александр09-09-2012 20:13
Ура! Сработало.
Спасибки! Движок супер!!!
44wemarus10-09-2012 04:34
Супер надо перейти и мне на свеженькую!