1 (2012-11-27 20:00:30 отредактировано newbie)

Тема: FAQ - Часто Задаваемые Вопросы


Последнее редактирование: 27.11.2012 - 23:45 (МСК)

1. Основные определения:
Шаблон/Тема - html/php код, который задаёт общее оформление для разных типов страниц.
Для панели администратора, шаблоны находятся в папке:

/admin/themes/

Для сайта, шаблоны находятся в папке:

/public/themes/

--
Сниппеты - расширения, написанные на PHP, которые добавляют разные возможности на сайте, редактировать их могут только администраторы.
Вывести на страницу сниппет можно шорткодом так:

{snippets get="NameSnippets"}

В шаблоне:

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

{block get="test"}

В шаблоне:

где test - название вашего блока.
--
Чанки - небольшие куски (X)HTML-кода, которые можно использовать для повторяющихся частей в шаблонах, а также для работы сниппетов.
В коде шаблона чанк можно вывести так:

где header - название вашего чанка
--
Short Code (Короткий код) - представляет собой некое выражения, которые затем интерпретируются в машинный код системы, используется для легкого и быстрого вывода нужной части информации на страницах сайта.
--
Минификация - сжатие кода, удаление не ненужной конечному пользователю информации: отступы, пробелы, переходы строк, комментарии - всё то, что увеличивает вес страницы, а следовательно и время ее загрузки.

====================

2. Подключение файлов стилей (*.css):
В шаблонах системы: (*примеры)
Несколько CSS:




Один CSS:


--
В шаблонах панели администратора: (*примеры)
Несколько CSS:




Один CSS:


--
В чём разница:
frontend - обозначение подключения для системы
backend - обозначение подключения для панели администратора
- собирает обший скоп и минифицирует в один общий файл.

====================

3. Подключение файлов JavaScript (*.js) :
Несколько JS (*примеры):



Один JS (*примеры):


--
Альтернативный вариант (более правильный), правда минификация пока не реализована:
Несколько JS (*примеры подключения в панели администратора):




Один JS (*пример подключения в системе):


--
В чём разница:
frontend - обозначение подключения для системы
backend - обозначение подключения для панели администратора
- собирает обший скоп и минифицирует в один общий файл (минификация ещё не реализована).

====================

4. Точка в slug (home.html):
- Открыть файл:

/monstra/helpers/security.php

- Найти 159-162 строки:

            // Remove characters
            $str = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str );
            $str = preg_replace("/[\/_|+ -]+/", $delimiter, $str );
            $str = trim($str, $delimiter); 

- Заменить на:

        // Remove characters
        $str = preg_replace("/[^a-zA-Z0-9.\/_|+ -]/", '', $str );
        $str = preg_replace("/[\/|+ -]+/", $delimiter, $str );
        $str = trim($str, $delimiter); 

- Открыть файл:

plugins/box/filesmanager/filesmanager.admin.php

- Найти:

move_uploaded_file($_FILES['file']['tmp_name'], $files_path.Security::safeName(basename($_FILES['file']['name'], File::ext($_FILES['file']['name'])), '-', true).'.'.File::ext($_FILES['file']['name']));

- Заменить на:

move_uploaded_file($_FILES['file']['tmp_name'], $files_path.Security::safeName(basename($_FILES['file']['name'], File::ext($_FILES['file']['name'])), '-', true).File::ext($_FILES['file']['name']));

====================

6. Включить monstra cms в режим отладки:
- Открыть файл:

/monstra/bootstrap.php 

- Найти:

Core::$environment = Core::PRODUCTION;

- Заменить на:

Core::$environment = Core::DEVELOPMENT;

====================

7. При входе в панель администратора высвечивается надпись "Plugin main admin function does not exist":
Решение: очистить cookie и кэш браузера.

====================

8. Могу ли я разрабатывать и продавать плагины за деньги:
Да, конечно можете, никаких ограничений на данный момент по этому поводу нет. Помните, что monstra cms работает под лицензией GNU GENERAL PUBLIC LICENSE Version 3:
http://monstra.org/about/license
а это значит, что любой пользователь, которому вы продадите плагин, может размещать его как и на форуме, так и на файлообменниках или других ресурсах, единственное требование, которое он должен будет выполнить - это указывать Вас, как разработчика и контактную информацию, например Ваш e-mail или сайт.

====================

9. Основные теги вывода информации в шаблоне:
http://monstra.org/documentation/theme-template-tags
Имя сайта:

---
Название темы/шаблона:

---
Название сайта - title:

---
Описание сайта - description:

---
Ключевые слова- keywords:

---
Слоган сайта:

---
Контент сайта:

Рекомендуется контент выводить так:

Эти хуки нужны для работы некоторых плагинов, используя их они могут выполнять какие-либо действия.
---
URL-адрес сайта:

---
Копирайты:

====================

10. Как в шаблоне вывести меню сайта:

если вы обозвали меню например "category_name", то так:

====================

11. В шаблоне подключен bootstrap.css, что это такое?:
monstra cms имеет встроенный framework twitter bootstrap
http://twitter.github.com/bootstrap/
http://ru.wikipedia.org/wiki/Twitter_Bootstrap
Если вы планируете делать свой шаблон без него, то использовать данные файлы нет необходимости.

====================

12. В чём разница между "Редактором" и "Администратором":
Редакторы - пользователи, которые отвечают исключительно за контент и информацию на сайте.
Администраторы - пользователи, которые обладают всеми правами "редакторов", а так же могут изменять код и скрипты, в частности например сниппеты.

====================

13. Где можно взять графические элементы monstra cms:
http://monstra.org/about/logos-and-graphics
или тут
http://forum.monstra.org/ru/post/2318/#p2318

====================

14. Как подключить индивидуальный css:




Получается схема: мини_файл_css + индивидуальный_css.
Рекомендация: Сообщество monstra cms всё же рекомендует использовать один css файл по схеме минификации.

====================

15. Как вывести контент одной страницы, на другой странице:
Открыть:

/plugins/box/pages/pages.plugin.php

Найти 29-30 строки:

        // Include Admin
        Plugin::Admin('pages', 'box');

Заменить на:

        // Include Admin
        Plugin::Admin('pages', 'box');
    }
    Shortcode::add('page', 'get_page_content');
    function get_page_content($attributes) {
    $page = Pages::$pages->select('[slug="'.$attributes['slug'].'"]', null);
    return Text::toHtml(File::getContent(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt'));
    }

Вывести на странице другую страницу:

{page slug="home"}

В шаблоне:

 'home')); ?>

home - это название slug
Не надо на странице home выводить страницу home:-)

====================

16. Вывод ссылок на дочерние страницы в родителе:

или так:

$pages = Page::children('parent_page_name');
foreach($pages as $page) {
echo $page['title'];
}

Для настройки вывода списка редактируем следующий файл:

/plugins/box/pages/views/frontend/available_pages.view.php

====================

+ RomanArt, Prividenie, olsv64, Awilum, smetagenus

Поделиться

2 (2012-11-15 22:16:40 отредактировано AlxBuk)

Re: FAQ - Часто Задаваемые Вопросы

Файл конфигурации сайта. storage\database\options.table.xml

http://i.imgur.com/rQrD1.png

---   JABBER КОНФЕРЕНЦИЯ MONSTRACMS   ---
---   ДЕМО САЙТ НА MONSTRA CMS + ДЕМО ПЛАГИНОВ   ---

Сайт AlxBuk

Поделиться

3

Re: FAQ - Часто Задаваемые Вопросы

Примерно такая же информация и у меня в ТХТ файле - как подсказка для себя.
Молодец newbie, что выложил тут.

Сайт Hmelex

Поделиться

4

Re: FAQ - Часто Задаваемые Вопросы

Дополните FAQ тем как вывести определенные блок или снипет на определенной странице.

Например вставив его в одном месте в шаблоне, блок выводится на заданной ему странице или нескольких страниц исключая к примеру главную и наоборот smile

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

Поделиться

5

Re: FAQ - Часто Задаваемые Вопросы

STUFF пишет:

Дополните FAQ тем как вывести определенные блок или снипет на определенной странице.

Например вставив его в одном месте в шаблоне, блок выводится на заданной ему странице или нескольких страниц исключая к примеру главную и наоборот smile

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

Внимательно прочитайте еще раз... Там всё написано... Шорткод - на определенной странице выводит. В Шаблоне - на страницах данного шаблона выводит.

Поделиться

6

Re: FAQ - Часто Задаваемые Вопросы

newbie нет, я имею ввиду так: шаблон состоит к примеру из только index.template.php

у меня страницы например так - главная, о компании, услуги

я хочу бок "тест" вывести в правой колонке сайдбара, только лишь на странице "о компании", как мене его для этого прописать в index.template.php?

или мне нужно создавать o_koppanii.template.php и туда вставлять блок "тест"? иначе ни как? Оо

Поделиться

7 (2012-11-24 10:20:09 отредактировано olsv64)

Re: FAQ - Часто Задаваемые Вопросы

в одной из CMS для компонентов (см. БЛОКОВ) есть такой код

 компонент с именем ссылки страницы
или так

я думаю человек это имеет ввиду, это позволяет не создавать массу шаблонов, а пользоваться одним

Сайт olsv64

Поделиться

8

Re: FAQ - Часто Задаваемые Вопросы

olsv64 помните как это было в TCMS? а этот вариант, сейчас попробую)

Поделиться

9

Re: FAQ - Часто Задаваемые Вопросы

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

Можно ли что-то подобное использовать в Монстре?

Поделиться

10

Re: FAQ - Часто Задаваемые Вопросы

Делай не блоком а чанками.. они выводят что хочешь в любом месте страницы.....

Лучше сгореть, чем истлеть...

Сайт kromverk

Поделиться

11

Re: FAQ - Часто Задаваемые Вопросы

kromverk ок а как мне чанку приказать выводится на определенной страницу если допустим у меня только один шаблон  index.template.php?

Поделиться

12

Re: FAQ - Часто Задаваемые Вопросы

либо добавлять чанк в контент через - Страницы
либо создать index2.template.php и туда вставить чанки которые тебе нужны , но не забудь применить эту шаблон для страницы в которой ты хочешь его видеть

(с) Roman Art

Поделиться

13

Re: FAQ - Часто Задаваемые Вопросы

RomanArt спасибо, но этот то вариант мне понятен smile

Поделиться

14

Re: FAQ - Часто Задаваемые Вопросы

я бы тоже предложил разработчикам придумать подобную фишку, чтобы не создавать слишком много шаблонов

Сайт olsv64

Поделиться

15 (2012-11-25 16:12:26 отредактировано sergeyterr)

Re: FAQ - Часто Задаваемые Вопросы

>> я бы тоже предложил разработчикам придумать подобную фишку, чтобы не создавать слишком много шаблонов

а так нельзя сделать?

Поделиться

16 (2012-11-26 10:53:32 отредактировано AlxBuk)

Re: FAQ - Часто Задаваемые Вопросы

Добавьте в ФАК

Задача: N-колво страниц без родителей, сделать с одним конкретным родителем.
Решение:
В админке запаришься тыкать перемещать, намного проще открыть в NPP storage\database\pages.table.xml
И в нужных страницах заменить на имя вашего родителя blog


Задача: Массово удалить ненужные пункты в главном меню

Решение:
Открыть в NPP storage\database\menu.table.xml привести к нормальному виду и править.

Для наглядности вот рисунки

ДО
http://i.imgur.com/mGIPq.png

ПОСЛЕ

http://i.imgur.com/60oiO.png

---   JABBER КОНФЕРЕНЦИЯ MONSTRACMS   ---
---   ДЕМО САЙТ НА MONSTRA CMS + ДЕМО ПЛАГИНОВ   ---

Сайт AlxBuk

Поделиться

17 (2012-11-27 14:06:23 отредактировано sergeyterr)

Re: FAQ - Часто Задаваемые Вопросы

sergeyterr пишет:

>> я бы тоже предложил разработчикам придумать подобную фишку, чтобы не создавать слишком много шаблонов

а так нельзя сделать?

Я проверил - поставил у себя такой код в сниппете  - отлично работает:

$page = Site::title();
if($page == 'Контакты') Chunk::get('niz2');
else Chunk::get('niz1');
?>

Не понятно только почему если сниппет это кусок пхп в нем нужно вставлять

 cod ?>

Поделиться

18

Re: FAQ - Часто Задаваемые Вопросы

Не понятно только почему если сниппет это кусок пхп в нем нужно вставлять

Это кусочек шаблона. В нем также как и в шаблоне можно писать хоть php, хоть js, хоть html

Сайт Awilum

Поделиться