Вот пример команды hello с экшеном test. При вызове из консоли php ls hello test эта команда выведет логин пользователя с id=1 средствами движка.
class CmdHello extends LSC {
protected $_name;
/**
* Выводим помощь о команде
*/
public function getHelp() {
return <<<EOD
USAGE
ls hello test
EOD;
}
function __construct() {
E::getInstance()->Init();
}
public function actionTest($aArgs) {
$oAdmin = E::User_GetUserById(1);
echo $oAdmin->getLogin();
}
}
В класс команды добавлен конструктор в котором инициализируется движок
function __construct() {
E::getInstance()->Init();
}
И теперь обращаться к методам модуля можно так E::Module_Method($param1, [$param2, .., $paramN])
Для этого нужно в настройках конкретного виджета указать страницу на которой его нужно выводить, например если нужно вывести виджет прямого эфира на страницах page, то в файл локальных настроек виджетов app/config/widgets.php нужно добавить конфиг
Попробуйте в конфиге app/config/config.local.php установить параметры по правилу:
/**
* Настройка путей
* Если необходимо установить движек в директорию(не корень сайта) то следует сделать так:
* $config['path']['root']['web'] = 'http://'.$_SERVER['HTTP_HOST'].'/subdir';
* $config['path']['root']['server'] = $_SERVER['DOCUMENT_ROOT'].'/subdir';
* и возможно придётся увеличить значение $config['path']['offset_request_url'] на число вложенных директорий,
* например, для директории первой вложенности www.site.ru/community/ поставить значение равное 1
*
* Как правило полный путь до папки или файла содержит в названии 'dir'
* URL-путь содержит в названии 'url'
*/
Может стоит изменить $config['path']['offset_request_url']=2
Для шаблонов есть рад изменений в версии 1.1 (пока коротко, но будет отдельным топиком):
— Добавлены шаблоны сниппетов common/templates/skin/experience/tpls/snippets.
— Добавлено шаблон модального окна вставки изображений common/templates/skin/experience/tpls/modals/modal.insert_img.tpl
— Добавлен шаблон поля картинки common/templates/skin/experience/tpls/fields/customs/field.custom.single-image-uploader-edit.tpl
Но как то не очень красиво — копировать объявление всего виджета. Вот бы, скажем, указать лишь name...
Такой функционал реализован в версии 1.1. Кроме того, положение виджетов вы можете менять и в админке «Сайт > Виджеты», а не в файле конфига.
На счет left/right. Тут всё просто: в любом месте шаблона вы можете указать
{wgroup group='very_very_right_position'}
а в конфиге виджета
'wgroup' => 'very_very_right_position',
он там и выведется. То есть left/right — это просто места в шаблоне. Если вам удобно — назовите мето размещения виджетов column и используйте его )
В таком случае, как в один момент времени значение могет быть == 'left и != 'left'? :)
Не может — тема одноколоночная — либо слева, либо справа. Может быть тема трёхколоночная вообще без переменной sidebarPosition — это особенности конкретного шаблона.
Скорее всего вы правильно делаете, но не до конца
1. Переопределяем виджет в конфиге приложения. Например, если я хочу перенести влево виджет прямого эфира, то в конфиг приложения app/config/widgets.php копирую определения виджета из основного конфига (заметьте, я поменял только 'wgroup' => 'left')
3. Но это поможет не во всех случаях, поскольку в шаблонах экшенов также могут быть переменные, которые наш левый зайдбар затрут, потому в шаблонах экшенах нужно проверить есть ли еще переменные и если есть, то корректно их переслать в _index.tpl так, например, для шаблона экшена главной страницы common/templates/skin/start-kit/tpls/actions/index/action.index.index.tpl добавить в блок шаблонов флаг append что бы получилось так:
4. Ну и в конце проверить какая группа шаблонов всё таки выводится в сайдбаре. В шаблоне common/templates/skin/start-kit/tpls/commons/common.sidebar.tpl видим, что выводится правая группа
{wgroup group='right'}
а в настройках виджета — левая, соответственно поменяем на
{wgroup group='left'}
Это был длинный способ, а короче можно просто в шаблоне common/templates/skin/start-kit/themes/default/layouts/default.tpl поменять местами колонки )
Делается точно также, адрес статической страницы состоит из двух частей, например page/about, page/hello и т.д. page — одинакова для всех — это имя экшена страницы, а вторая часть — урл страницы, который задается при ее создании в админке, так вот что бы вынести статическую страницу в меню третьего уровня нужно поступить так (продублирую about в меню третьего уровня):
1. В конфиге указать параметры ссылки так:
Статические страницы создаются и редактируются через админку: Админка>Контент>Страницы. Там в настройках каждой странице есть галочка «Отображать на главной странице»
В класс команды добавлен конструктор в котором инициализируется движок
И теперь обращаться к методам модуля можно так E::Module_Method($param1, [$param2, .., $paramN])
где в список экшенов, на которых этот виджет выводится указан ещё и page
в блоке переменных шаблона
убрать {$noSidebar=true}
Второй пример: перейти с url example.com/about/admin на профиль пользователя
копируем настроку из основного конфига в файл app/config/config.local.php
И в ней добавляем правило:
Может стоит изменить $config['path']['offset_request_url']=2
— Добавлены шаблоны сниппетов common/templates/skin/experience/tpls/snippets.
— Добавлено шаблон модального окна вставки изображений common/templates/skin/experience/tpls/modals/modal.insert_img.tpl
— Добавлен шаблон поля картинки common/templates/skin/experience/tpls/fields/customs/field.custom.single-image-uploader-edit.tpl
На счет left/right. Тут всё просто: в любом месте шаблона вы можете указать
а в конфиге виджета
он там и выведется. То есть left/right — это просто места в шаблоне. Если вам удобно — назовите мето размещения виджетов column и используйте его )
Не может — тема одноколоночная — либо слева, либо справа. Может быть тема трёхколоночная вообще без переменной sidebarPosition — это особенности конкретного шаблона.
1. Переопределяем виджет в конфиге приложения. Например, если я хочу перенести влево виджет прямого эфира, то в конфиг приложения app/config/widgets.php копирую определения виджета из основного конфига (заметьте, я поменял только 'wgroup' => 'left')
2. Но в шаблоне старт-кит у меня нет левой колонки, добавив в шаблон common/templates/skin/start-kit/tpls/_index.tpl строки
3. Но это поможет не во всех случаях, поскольку в шаблонах экшенов также могут быть переменные, которые наш левый зайдбар затрут, потому в шаблонах экшенах нужно проверить есть ли еще переменные и если есть, то корректно их переслать в _index.tpl так, например, для шаблона экшена главной страницы common/templates/skin/start-kit/tpls/actions/index/action.index.index.tpl добавить в блок шаблонов флаг append что бы получилось так:
4. Ну и в конце проверить какая группа шаблонов всё таки выводится в сайдбаре. В шаблоне common/templates/skin/start-kit/tpls/commons/common.sidebar.tpl видим, что выводится правая группа
а в настройках виджета — левая, соответственно поменяем на
Это был длинный способ, а короче можно просто в шаблоне common/templates/skin/start-kit/themes/default/layouts/default.tpl поменять местами колонки )
на
а у вас так:
1. В конфиге указать параметры ссылки так:
2. Добавить в шаблон меню код проверки на активность
было
стало