Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

Как создать шаблон для MaxSite

Наиболее частые вопросы по MaxSite CMS.
Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Как создать шаблон для MaxSite

Сообщение Wave » 08 июн 2009, 21:43

Автоматического конвертера шаблонов Wordpress в шаблоны MaxSite нет и не будет!

О создании шаблона для МаксСайта есть лекция в Центре помощи и несколько записей в блогах. Прошу ознакомиться. Также Макс начал публикацию статей по основам системы. Шаблонов касаются нижеследующие оные.

1) 1. Делаем свой шаблон, 2) Изменения в шаблонах, 3) Общая структура шаблона.
То есть имея готовый HTML-шаблон можно практически без программирования переделать его для MaxSite CMS.


а) Шаблон «Mini» для MaxSite CMS, б) MaxSite CMS для чайников. Разбираем шаблоны, в) MaxSite CMS для чайников. Type-файлы, г) MaxSite CMS для чайников. Шаблонная практика, д) MaxSite CMS для верстальщиков (в 6-и частях)

Плюс ещё несколько мелких хинтов, знание html\css и php и уже имеющиеся шаблоны.

P.s. Несколько бесплатных шаблонов для данного движка есть на сайтах maxsitecms.ru, alonebit.ru и maxsites.ru
Плюс по одиночке ещё несколько найти можно. В общей сложности десятка два наберётся.


P.p.s. Общие вопросы «нет, всё понятно, но шо конкретно» и «как переделать из вордпресса на пальцах» будут безжалостно удаляться. Допускаются вопросы «сделал так-то и так-то, получил это и вот это, а хотелось бы вот так» и вопросы, выходящие за рамки вышеприведенных ссылок.
Также не принимаются вопросы от людей абсолютно не владеющих html\css. Автоматического конвертера шаблонов Wordpress в шаблоны MaxSite нет и не будет, и если вы в состоянии разобраться с шаблонами Wordpress, то сможете и с шаблонами MaxSite, а если нет, то просите или заказывайте их у тех, кто может.

Ниже в этой теме планируется неспешное собрание разных практических трюков.
  • Как сделать заставку на главной странице, а сами записи главной выводить по какому-нибудь адресу типа site.com/blog
  • Как сделать, чтобы ссылки на страницы были с префиксами, отличными от page?
  • Как сделать выпадающее главное меню?
  • Вывод необходимого только на главной странице.
  • на страницах типа blog выводить дополнительный сайдбар а на страницах static не выводить
  • Вывод только на страницах site/home/next/*n
  • Как на сайте организовать «Избранное»?

Аватар пользователя
Cuprum
Модератор
Сообщений: 766
Зарегистрирован: 01 фев 2009, 21:22

Re: Как создать шаблон для MaxSite

Сообщение Cuprum » 09 июн 2009, 07:55

Если вы переделывайте тему от Wordpress для Maxsite для более простого выделения каркаса html+css в первоисточнике рекомендую использовать Firebug (плагин для Firefox).

Maxsite CMS генерирует ряд служебных сообщений. Не забывайте оформлять их в стилистике шаблона:

1. Сообщения, на текст которых мы не можем повлиять, но можем оформить через CSS:
блоки <div class="comment-error">...</div> и <div class="comment-ok">...</div>. Как правило, могут появляться там, где надо что-либо вводить в форму (комментарий, код активации и тд) сигнализируя пользователю об ошибке или успешности действия.

2. Сообщения, которые можно изменять в шаблоне: о премодерации комментариев в _page-comments.php, о необходимости завершить активацию в _users.php, о неправильно заполненных полях или об успешности отправки для формы обратной связи в contact.php (ч/з механизм type_foreach недоступно)

Иногда необходимо принудительно запретить некоторые URL на сайте. Это может быть страница с последними комментариями (site.domain/comments) или страницы авторов записей (site.domain/authors/id).
Общая схема такова:
1. В папке /type шаблона должен быть файл, соответствующий странице (страницам), которую необходимо запретить. Для site.domain/comments это comments.php, для site.domain/author/id - author.php и тд.
2. Внутри данных файлов выводиться статус 404 (страница не существует) и подключается вывод сообщения для посетителя. Полностью содержание таких файлов должно выглядеть примерно так:

Код: Выбрать все

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

mso_cur_dir_lang('templates');

header('HTTP/1.0 404 Not Found');

# начальная часть шаблона
require(getinfo('template_dir') . 'main-start.php');

echo NR . '<div class="type">' . NR;

if ($f = mso_page_foreach('pages-not-found'))
{
   require($f); // подключаем кастомный вывод
}
else // стандартный вывод
{
   echo '<h2>' . t('404. Ничего не найдено...') . '</h2>';
   echo mso_hook('page_404');
}

echo NR . '</div>' . NR;

# конечная часть шаблона
require(getinfo('template_dir') . 'main-end.php');

?>

Разбор и индивидуальный вывод различных текстовых сообщений для разных страниц (site.domain/comments, site.domain/authors/id и т. д.) можно сделать в файле pages-not-found.php в папке шаблона /type_foreach.
Таким образом, по ссылке site.domain/comments посетитель увидит "404. Ничего не найдено..." (или то, что указано в pages-not-found.php) а поисковый бот получит 404-й статус и не будет индексировать то, чего нет ;)

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: Как создать шаблон для MaxSite

Сообщение Wave » 03 авг 2009, 19:18

Практические примеры:

Как сделать заставку на главной странице, а сами записи главной выводить по какому-нибудь адресу типа site.com/blog

  • Скопируйте home.php в blog.php
  • Измените home.php под свои нужды (напр. флешевую заставку).
  • Добавьте в index.php, например, после (или перед) elseif ( is_type('home') ) require($type_dir . 'home.php'); строку типа elseif ( mso_segment(1) == 'blog' ) require($type_dir . 'blog.php');
  • Добавьте в blog.php куда-нибудь в начало строчку $MSO->data['type'] = 'home';
  • Добавьте перед хуком пагинации тип ''

Код: Выбрать все

      $pagination['type'] = '';
      mso_hook('pagination', $pagination);


Этого плюс-минус должно хватить, чтобы по адресу site.com/blog было то, что обычно на главной выводится.

Как сделать, чтобы ссылки на страницы были с префиксами, отличными от page?
Т.е. не site.com/page/slug, а site.com/mypagetype/slug

  • Кому-то это может понадобиться, например, для сайта-каталога.
  • Так вот, за формирование ссылки отвечает функция mso_page_title, в которой последним параметром можно передать искомое.
  • Здесь архив с примером — в архиве есть changed.txt с описанием изменений. Из дефолтного шаблона сделан шаблон, в котором на страницы ссылаются с префиксами, равными типам страниц (которые могут быть не blog или static).
  • Плагины тоже нужно править, а потом следить за ними при обновлении системы.
  • Апдейт из более позднего времени: Помимо mso_page_title используется функция mso_page_comments_link для ссылок вида «Комментариев столько-то». С ней нужно поступить аналогично mso_page_title. В архиве этого нет. Да и вообще архив сильно устарел. Если кому этот трюк действительно нужен, создайте отдельную тему, где обсудим все нюансы.

Как сделать выпадающее главное меню?
Начиная со сборки 0.351, т.е. после версии 0.34, в МаксСайте появилась возможность делать главное меню с пунктами, выпадающими при наведении мышки. Аналогично тому, как сделано в админке в шаблоне wordpress26.
Для того, чтобы этой возможностью воспользоваться, нужно:
  • Установить последнюю сборку (на момент написания совета это 0.351).
  • Включить плагин main_menu.
  • Для выхода в окно настройки плагина надо нажать на «вкл» рядом с ним.
  • Скопировать main-menu.css в папку со своим шаблоном.
  • В шаблоне должен быть прописан хук 'main_menu'. Как это сделать, смотрите пример main-start.php дефолтного шаблона.
  • Сделать многоуровневое меню, как указано в окне настройки плагина:
Пример:

Код: Выбрать все

http://mysite.ru/blog/ | Главная
[
http://mysite.ru/blog/about | О сайте
http://mysite.ru/blog/comments | Комментарии
]

Аватар пользователя
Sadovnik
Модератор
Сообщений: 793
Зарегистрирован: 26 июл 2009, 20:59

Re: Как создать шаблон для MaxSite

Сообщение Sadovnik » 08 авг 2009, 23:09

Спасибо. Теперь стало ясно, как делать свои префиксы.
Не все так просто, как казалось.
И главное, пока не понятно - чем будут чревато применение собственных префиксов.

UmFal
Модератор
Сообщений: 472
Зарегистрирован: 27 июн 2009, 12:44

Re: Как создать шаблон для MaxSite

Сообщение UmFal » 29 авг 2009, 18:21

Wave писал(а):Практические примеры:

Как сделать заставку на главной странице, а сами записи главной выводить по какому-нибудь адресу типа site.com/blog

  • Скопируйте home.php в blog.php
  • Измените home.php под свои нужды (напр. флешевую заставку).
  • Добавьте в index.php, например, после (или перед) elseif ( is_type('home') ) require($type_dir . 'home.php'); строку типа elseif ( mso_segment(1) == 'blog' ) require($type_dir . 'blog.php');

А не работает почему-то. Выводится пустая страница. То есть оформление всё есть, а вот с момента получения массива страниц не работает. Видимо функция mso_get_pages не получает страницы. Чё-то не соображу почему. Подскажите пожалуйста.

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: Как создать шаблон для MaxSite

Сообщение Wave » 30 авг 2009, 15:03

См. апдейт.
Добавьте в blog.php куда-нибудь в начало строчку $MSO->data['type'] = 'home';

UmFal
Модератор
Сообщений: 472
Зарегистрирован: 27 июн 2009, 12:44

Re: Как создать шаблон для MaxSite

Сообщение UmFal » 30 авг 2009, 18:49

благодарю за ответ :D

Smolenskiy
Сообщений: 155
Зарегистрирован: 15 мар 2009, 20:40

Re: Как создать шаблон для MaxSite

Сообщение Smolenskiy » 17 окт 2009, 21:07

Вывод необходимого только на главной странице.
Вставить в шаблон, следующий код:

Код: Выбрать все

if (!mso_segment(1)) echo 'Парам-пам-пам';


Задача: необходимо на страницах типа blog выводить дополнительный сайдбар а на страницах static не выводить, решение:

Код: Выбрать все

if ($bl_pages)
{
      require(getinfo('template_dir') . 'sidebar-1.php');
}


Вывод только на страницах site/home/next/*n

Код: Выбрать все

if ( (mso_segment(2) == 'next') and ( (int)mso_segment(3) > 1 ) ) echo 'Парам-пам-пам';
реестр - зло, система стоит с 23 ноября 2008 г., 4:26:44

Аватар пользователя
Wave
Сообщений: 1218
Зарегистрирован: 01 фев 2009, 17:38

Re: Как создать шаблон для MaxSite

Сообщение Wave » 27 фев 2010, 13:23

Как на сайте организовать «Избранное»?


redwine
Сообщений: 3
Зарегистрирован: 14 фев 2014, 23:09

Re: Как создать шаблон для MaxSite

Сообщение redwine » 17 фев 2014, 15:17

здравствуйте, я в верстке новичек, пока освоил только html и css, пару дней назад установил MaxSite CMS к себе на Open-Server и начал изучать курс "Создание шаблона" с http://maxsite.org/ Уже узнал много нового, но столкнулся со следующей проблемой: когда в курсе начинается создание шаблона, там написано что готовый каркас находится в каталоге _create_a_new_template, который я не могу найти (почитав немного сайт понял, что его заменили), но разобраться где в данный момент (в последней версии CMS) находится это каркас у меня не получилось. Подскажите пожалуйста, где найти каркас и стоит ли продолжать проходить курс, т.к. он немного устарел?


Вернуться в «FAQ»

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron