Современная, быстрая и удобная система управления сайтом

MaxSite CMS 0.74

Версии (релизы)Комментарии: 44Просмотров: 54049

Очередная версия 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

2Аноним08-08-2012 02:11

Макс, спасибо тебе за возможность бесплатно обучаться этому кропотливому, но безумно интересному делу. Надеюсь, что не за горами и моя благодарность.

3Василий Петрович Романов08-08-2012 03:51

Чтож, как говорил Жан-Луи Гассье: "обновляемся"!

6АлександрСайт09-08-2012 14:27

Жаль ( ты получал от меня сообщение что я тоже хочу помогать в развитии проекта? На емейл ответа так и не приходило. По поводу янд. Понятно прийдется 4.5 процента терять на переводе на твой веб мани :(

7АлександрСайт09-08-2012 14:55

небольшая поправка, проверил, оказывается совсем не могу перевести с ян на вебмоней ( а про развитие я имел ввиду кодинг :)

9Сергей МСайт12-08-2012 06:55

У меня нет Яд-кошелька. Он только для россиян.

Почему только для Россиян?

Заводи и получай деньги. ;-)

10Teem12-08-2012 15:39

Какие либо особенности по обновлению с версии 0.734 есть или просто заливаем файлы по верх прежних?

12jimmy jonezz14-08-2012 18:26

Новые stock-файлы: class-columns, page-out, thumb.

Это здорово!

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 ленту?

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

Нечего пускать посторонних в админку...

Всё остальное, что тут понаписали - бред. Разберитесь что и как устроено, после делайте громогласные заявления.

26Денис Назаров06-09-2012 11:19

Макс, и еще... понятное дело, ты автор, у тебя свое видение, но тем не менее - просто прикинь, сколько народу пустило бы посторонних в админку. А если с грамотной разноской прав - так это вообще без проблем.

Да и речь, в общем, не о том, чтобы их туда пускать, а о том, что приходится много лишнего делать. Вот к примеру, твой же код

if (is_login())
{
$out = '

' . t('Привет,') . ' ' . getinfo('users_nik') . '!

[' . t('управление') . ']
[' . t('выйти') . ']

';
}
elseif ($comuser = is_login_comuser())
{
if (!$comuser['comusers_nik']) $cun = t('Привет!');
else $cun = t('Привет,') . ' ' . $comuser['comusers_nik'] . '!';

$out = '

' . $cun . '

[' . t('своя страница') . ']
[' . t('выйти') . ']

';
}
else
{
$after_form = (isset($options['after_form'])) ? $options['after_form'] : '';

$out = mso_login_form(array( 'login'=>t('Логин (email):') . ' ', 'password'=>t('Пароль:') . ' ', 'submit'=>'', 'form_end'=>$after_form ), getinfo('siteurl') . mso_current_url(), false);
}

здесь лишнего 30%, а именно - проверка, юзер это или комюзер. Единая таблица только в одном этом плагине сэкономила бы тебе время на написание, а уж остальным бы как жизнь облегчила.

Но если тебе так уж хочется плодить сущности сверх необходимого - что ж... хозяин-барин.

27Максим06-09-2012 11:29

А у меня и так грамотная «разноска» прав. Или сделай свою «объединенную» функцию. Если же этот код вызывает проблемы с пониманием или для тебя он слишком большой, то могу только посоветовать учиться и разбираться дальше.

28Денис Назаров06-09-2012 11:32

Не надо думать, что все такие непонятливые.

Сделал уже давно, но все равно это неправильно.

А "грамотная разноска прав" по двум таблицам - это уже не есть "грамотно".

Но все равно - за систему спасибо :)

29Максим06-09-2012 11:42

А "грамотная разноска прав" по двум таблицам - это уже не есть "грамотно".

А права никакого отношения и не имеют к таблицам. Меня несколько напрягает, когда человек, не разобравшись в сути, начинает говорить что правильно, а что нет. Неужели сложно зайти на форум и почитать обсуждения по этому вопросу? Я не утверждаю, что система пользователей в MaxSite CMS идеальна, но она практически гарантированно защищена от взломов и несанкционированного доступа. А то, что пользователи разделены на две таблицы, так это вообще не проблема. Получить данные любого из них - один sql-запрос - это вообще задача для пятиклассника.

32Денис Назаров06-09-2012 12:37

воооттт.... вот об этом и пыхтение.... что по сути-то оно есть, только называется по разному....

в общем, что бы ты ни говорил - все равно система заточена под блоги. И сделать что-то, кроме блогов - надо сильно постараться... Что радует, так это возможность делать это "что-то" в виде плагина, что огорчает - так это необходимость двойной обработки данных о пользователях. Что с учетом общей расхлябанности пыхи огорчает вдвойне. Но делать нечего, кактус будет сгрызен....

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

Супер надо перейти и мне на свеженькую!

Оставьте свой комментарий!

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)