Вопросы новичков

480 views
Skip to first unread message

Александр Маслаков

unread,
Dec 11, 2011, 2:37:18 PM12/11/11
to flexo-mana...@googlegroups.com
Здравствуйте те, кто впервые установил и приступил к работе с Flexo CMS. Данная тема открыта специально для вас.

Вы можете задавать такие вопросы, к примеру:
«Как добавить страницу?»
«Как установить плагин?»
«Где находится настройки плагинов?»

Мы будем отвечать, указывая либо на разделы документации, либо предлагать готовые решения.

Александр Жуков

unread,
Dec 11, 2011, 3:04:08 PM12/11/11
to flexo-mana...@googlegroups.com
Мне не совсем понятна логика работы движка.Очень полезные поля "добавления дополнительных полей (2)" "добавить изображения (1)" но при сохранении страницы на сайте они не отображаются.Вопрос:
  1. нужно в шаблоне прописать какие-то переменные для этих блоков?!
  2. Как вставить боковое, древовидное меню
  3. как подключить шаблон.
  4. Как правильно вставлять эти самые сниплеты. (это если мне к основному шаблону нужно добавить отдельный блок?)
  5. В какой папке лежит шаблон: flexoCMS.ru\www\public\themes или flexoCMS.ru\www\layouts ?
Буду благодарен если для примера подключите шаблон (прикреплен к письму)
    

11 декабря 2011, 23:37 от Александр Маслаков <jmas.u...@gmail.com>:
1.png
stylissimo.zip

Александр Маслаков

unread,
Dec 11, 2011, 4:01:47 PM12/11/11
to flexo-mana...@googlegroups.com
Логика работы движка очень проста. Главное понять как организовано дерево страниц.
Каждая страница может содержать бесконечное количество подстраниц.
Страница может быть как страницей, так и страницей-разделом (содержащей потомков).
Используется принцип наследования. Если у главной страницы определен шаблон, то этот шаблон будет использоваться и всеми под-страницами.
Шаблон можно переопределить на любом уровне — просто изменяете шаблон у страницы и он будет применен ко всем потомкам.
В системе используется PHP-код напрямую. Вы можете использовать его напрямую в страницах, сниппетах, шаблонах. (С версии f 0.2.0 вставку PHP-кода в страницы планируется ограничить).

1. Да, действительно, в шаблоне необходимо прописать вывод для этих полей. Пока эти плагины, увы, совсем не документированы.

Для вывода информации из данных полей в шаблон необходимо добавить следующий код:

<?php if($this->fields->my_field): ?>
<p><b>Дополнительное поле:</b> <?php echo $this->fields->my_field; ?></p>
<?php endif; ?>

Если необходимо выводить какой ни будь контент «по-умолчанию», если дополнительное поле не определено, тогда используйте:

<?php if($this->fields->my_field): ?>
<p><b>Дополнительное поле:</b> <?php echo $this->fields->my_field; ?></p>
<?php else: ?>
<p>Контент по умолчанию.</p>
<?php endif; ?>

Вывод изображений происходит подобным образом.

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

<?php $images = $child->images->findAll(); ?>
<?php if ($images): ?>
<?php foreach($images as $image): ?>
<img src="<?php echo $image->url(); ?>" alt="Description" />
<?php endforeach; ?>
<?php endif; ?>

В параметрах функции url() вы можете указать размеры, если вам необходимо уменьшенное изображение: <?php echo $image->url(100, 100); ?>

2. Боковое древовидное меню можно вставить следующим образом.
Создаем сниппет, например menu_multilevel:

<?php
if (!function_exists('menu_multilevel')) {
function menu_multilevel($page) {
$out = '<ul>';

if ($page->childrenCount() > 0) {
foreach ($page->children() as $child) {
$out .= '<li>';
$out .= $child->link();

if ($child->childrenCount() > 0) {
$out .= menu_multilevel($child);
}

$out .= '</li>';
}
}

return $out . '</ul>';
}
}
echo menu_multilevel($this->parent(0));
?>

Подключаем сниппет в шаблоне в элементе с ID #sidebar:

<?php $this->includeSnippet('menu_multilevel'); ?>

Параметр 0 в $this->parent(0) регулирует уровень с которого необходимо начинать показывать подстраницы.

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

4. Сниппеты подключаются следующим кодом:

<?php $this->includeSnippet('snippet_name'); ?>

Так же сниппеты могут содержать параметры. Расширенный вариант подключения сниппета:

<?php $this->includeSnippet('images_gallery', array( 'width' => 100, 'height' => 100 )); ?>

Сниппеты могут подключаться не только в шаблонах, но и в страницах.
Переходите к редактированию страницы, выключаете WYSIWYG-редактор (визуальный редактор выключается путем нажатия шестеренки и выбора значения Фильтр: - отсутствует -).
И затем вставляете код, аналогичный коду для вставки в шаблон:

<?php $this->includeSnippet('snippet_name'); ?>

5. В директории flexoCMS.ru\www\layouts


11 декабря 2011 г. 22:04 пользователь Александр Жуков <alexandr...@mail.ru> написал:



--
С уважением, Маслаков Александр.
Разработка сайтов: дизайн, программирование, подготовка информации, сопровождение.

Тел.: +38 099 669–15–06
Портфолио: www.up.dn.ua
Эл. почта: in...@up.dn.ua
Skype: up.dn.ua

Alex Radiocity

unread,
Jan 10, 2012, 4:37:13 PM1/10/12
to flexo-mana...@googlegroups.com
На странице настроек плагина есть ссылка. Она ведет на "/myplugin/settings/somewhere"
Как мне обработать путь somewhere чтобы что то с ним сделать?

Alex Radiocity

unread,
Jan 10, 2012, 6:54:43 PM1/10/12
to flexo-mana...@googlegroups.com
Я так понимаю, это делается через Dispatcher?

sartas

unread,
Jan 10, 2012, 9:47:16 PM1/10/12
to flexo-mana...@googlegroups.com
Если нужно добавить путь во фронтенде

frontend.php плагина
 
Dispatcher::addRoute(array(
'/somewhere' => 'myplugin/myfunction'
));
class MypluginController extends Controller {
public function myfunction()
{
}
}


Если в бакенде получить somewhere из "/myplugin/settings/somewhere"

mypluginController.php

public function settings($args)
{
print_r($args)
}

Message has been deleted

Alex Radiocity

unread,
Jan 16, 2012, 11:21:12 AM1/16/12
to flexo-mana...@googlegroups.com
Допустим, получаю данные из textarea. Нужно ли экранировать знаки через mysql_escape_string() или это делается автоматически где нибудь в $__CONN__->prepare()  или  $__CONN__->quote() ?

sartas

unread,
Jan 16, 2012, 11:35:19 AM1/16/12
to flexo-mana...@googlegroups.com
Если данные вставляются через Record::insert() , update() и save() , то экранировать не надо.

В остальных случаях надо экранировать через Record::escape() для совместимости с другими базами.

Alex Radiocity

unread,
Jan 18, 2012, 7:22:24 AM1/18/12
to flexo-mana...@googlegroups.com
За ответ спасибо.
Как правильно деактивировать плагин (скажем, в случае, когда он не поддерживается)?
Plugin::deactivate('myplugin'); не срабатывает =\

sartas

unread,
Jan 18, 2012, 9:50:08 AM1/18/12
to flexo-mana...@googlegroups.com
1. Деактивировать плагин в админке.

2. В файле (если такой файл есть) enable.php у плагина, надо посмотреть какие действия производятся с базой при установке и отменить их - в phpmyadmin удалить созданные таблицы/строки/столбцы. Но можно этого и не делать потому что это, обычно, не влияет на работу cms.

3. Удалить папку с плагином из /cms/plugins/

Когда деактивировать плагин в админке не получается - это тоже самое что и Plugin::deactivate('myplugin'); не срабатывает.
Возможно в папке с плагином есть disable.php, который используется при деактивации плагина.
disable.php нужно просто удалить и выполнить пункт 2.

Message has been deleted

Alex Radiocity

unread,
Jan 31, 2012, 9:09:17 AM1/31/12
to flexo-mana...@googlegroups.com
Приветствую. Никак не могу взять в толк, каким образом заменить вывод "body" на собственный. Необходимо заменить его содержимое, сохранив шаблон. Как это можно сделать?

Александр Маслаков

unread,
Jan 31, 2012, 10:09:30 AM1/31/12
to flexo-mana...@googlegroups.com
Так просто перехватить наверное не получиться.
Посмотрю дома. sartas задавал подобный вопрос и даже, помнится переписывал часть отвечающую за behavior чтобы получить возможность переопределять методы класса FrontPage.

31 января 2012 г. 16:09 пользователь Alex Radiocity <radio...@gmail.com> написал:

Приветствую. Никак не могу взять в толк, каким образом заменить вывод "body" на собственный. Необходимо заменить его содержимое, сохранив шаблон. Как это можно сделать?

sartas

unread,
Feb 1, 2012, 4:38:26 AM2/1/12
to flexo-mana...@googlegroups.com
сделать плагин (myplugin), при редактировании выбрать тип страницы "content".

backend.php & frotend.php


Behavior::add('content', 'myplugin/content.php');


 content.php

class Content {
public function __construct( &$page, $params )
{
$page->part = new stdClass;
$page->part->body = new stdClass;
$page->part->body->name = 'body';
$page->part->body->content_html = 'content';
}
}

sartas

unread,
Feb 1, 2012, 4:48:30 AM2/1/12
to flexo-mana...@googlegroups.com
легче сделать шаблон

$this->includeSnippet('header');
echo $this->content();
$this->includeSnippet('footer');

для замены контента сделать новый шаблон с хеадером и футером, в нем вывести нужный контент

Alex Radiocity

unread,
Feb 2, 2012, 7:13:06 PM2/2/12
to flexo-mana...@googlegroups.com
Спасибо, ход мысли понял... но пока не получается (выводится пустая страница).
Думаю наследовать FrontPage, изменив content() на нужный мне... 

Роман Смолянюк

unread,
Feb 20, 2012, 6:50:58 AM2/20/12
to flexo-mana...@googlegroups.com
Получилось реализовать? Я пробовал сделать model аналогичную FrontPage, Но при такой реализации не работает PageFields, да и как-то это неправильно.

Alex Radiocity

unread,
Feb 24, 2012, 3:13:15 PM2/24/12
to flexo-mana...@googlegroups.com


понедельник, 20 февраля 2012 г. 15:50:58 UTC+4 пользователь Роман Смолянюк написал:
Получилось реализовать? Я пробовал сделать model аналогичную FrontPage, Но при такой реализации не работает PageFields, да и как-то это неправильно.
Нет, к сожалению 

Николай Селивёрстов

unread,
May 24, 2012, 6:14:19 PM5/24/12
to flexo-mana...@googlegroups.com
Привет.

Код вида
<?
$child = $this->children();
redirect( '/'.$child[0]->getUri() );
?>

В Wolf CMS работает на ура.
Во Flexo не срабатывает функция redirect (по каким причинам — не разбирался).

По идее решить эту задачу следует созданием нового типа страницы "Redirect to first child".

Николай Селивёрстов

unread,
May 24, 2012, 6:29:41 PM5/24/12
to flexo-mana...@googlegroups.com
ПС

конечно же для флексо код был
<?
$child = $this->children();
redirect( '/'.$child[0]->url );
?>
 

пятница, 25 мая 2012 г., 2:14:19 UTC+4 пользователь Николай Селивёрстов написал:

Николай Селивёрстов

unread,
May 24, 2012, 6:35:27 PM5/24/12
to flexo-mana...@googlegroups.com
На какой эвент лучше всего повесит обработчик?
frontpage_requested подойдет? или что-то есть ближе к задаче "Redirect to first child"?

Спасибо.

Alex Radiocity

unread,
May 26, 2012, 2:17:48 PM5/26/12
to flexo-mana...@googlegroups.com
Осуществляйте простой редирект:

<?
$child = $this->children(); 
Header("Location: /".$child[0]->getUri() );
exit();
?>

пятница, 25 мая 2012 г., 2:14:19 UTC+4 пользователь Николай Селивёрстов написал:
Привет.

Николай Селивёрстов

unread,
May 26, 2012, 7:29:57 PM5/26/12
to flexo-mana...@googlegroups.com
Спасибо, Алекс. Пробовал, тоже не срабатывало.
Пытаюсь сделать плагин.

Артём Риженков

unread,
Jun 29, 2012, 1:43:01 PM6/29/12
to flexo-mana...@googlegroups.com
Здравствуйте. Подскажите пожалуйста, можно ли из сниппета заменить заголовок текущей страницы? Спасибо.

Alex Radiocity

unread,
Jun 29, 2012, 3:11:49 PM6/29/12
to flexo-mana...@googlegroups.com
Недостаточно информации. Конкретизируйте задачу. 

пятница, 29 июня 2012 г., 21:43:01 UTC+4 пользователь Артём Риженков написал:

riartem

unread,
Jun 29, 2012, 3:24:20 PM6/29/12
to flexo-mana...@googlegroups.com

У каждой страницы есть заголовок, который задаётся в админке.
Допустим у нас есть страница "новость"
При входе на эту страницу в шаблон передаётся заголовок "новость"
Можно ли написать php-код, который переопределит данный заголовок?

29.06.2012 22:11 пользователь "Alex Radiocity" <radio...@gmail.com> написал:

Марсель

unread,
Jun 29, 2012, 4:20:16 PM6/29/12
to flexo-mana...@googlegroups.com
if ($this->title =='новость')
$this->title = 'другой заголовок';

Вставлять в шаблон до вывода заголовка (echo $this->title)


30 июня 2012 г., 1:24 пользователь riartem <ria...@gmail.com> написал:

riartem

unread,
Jun 29, 2012, 11:07:29 PM6/29/12
to flexo-mana...@googlegroups.com

Так в этом и проблема.
Заголовок ведь выводится в title

29.06.2012 23:58 пользователь "Марсель" <ardu...@gmail.com> написал:

Alex Radiocity

unread,
Aug 11, 2012, 9:39:54 AM8/11/12
to flexo-mana...@googlegroups.com
Как переводить  i8n строки в js скриптах на локальный язык? Подглядел, что это должно делаться функцией __(string), однако этого не происходит.

Alex Radiocity

unread,
Oct 27, 2012, 5:12:01 PM10/27/12
to flexo-mana...@googlegroups.com
Зачем в helpers/email.php такая регулярка страшная?

/^((?>[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$/

Александр Маслаков

unread,
Oct 28, 2012, 2:57:34 PM10/28/12
to flexo-mana...@googlegroups.com
Видимо в свое время была выбрана "самая страшная" в надежде, что в ней описаны всевозможные случаи формирования электронного адреса.

Необходимо посмотреть в исходники Yii фреймверка, в код CEmailValidator (http://www.yiiframework.com/doc/api/1.1/CEmailValidator) и переместить решение в хелпер, конечно если данная регулярка по каким то причинам не удовлетворяет требованиям. :)

2012/10/28 Alex Radiocity <radio...@gmail.com>

Зачем в helpers/email.php такая регулярка страшная?

/^((?>[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$/

Alex Radiocity

unread,
Oct 28, 2012, 3:06:39 PM10/28/12
to flexo-mana...@googlegroups.com
Выдрал функцию из joomla 1.5 и засунул в ядро. ИМХО, более-менее валидная, да и не требует включения громоздкого класса.

Александр Маслаков

unread,
Oct 28, 2012, 3:11:04 PM10/28/12
to flexo-mana...@googlegroups.com
По хорошему, необходимо развивать функционал валидаторов (классов, которые занимаются полной валидацией POST запросов по определенным правилам).
Впихивать в ядро сервисные функции, ИМХО, не совсем корректно.

2012/10/28 Alex Radiocity <radio...@gmail.com>

Выдрал функцию из joomla 1.5 и засунул в ядро. ИМХО, более-менее валидная, да и не требует включения громоздкого класса.

Alex Radiocity

unread,
Oct 28, 2012, 3:13:08 PM10/28/12
to flexo-mana...@googlegroups.com
Думаете, стоит добавить новый статичный helper?

воскресенье, 28 октября 2012 г., 23:11:04 UTC+4 пользователь Александр Маслаков написал:

Alex Radiocity

unread,
Oct 28, 2012, 3:14:44 PM10/28/12
to flexo-mana...@googlegroups.com
Делать автоматическую проверку всего POST запроса не правильно. Это дополнительные ресурсы системы. 

Александр Маслаков

unread,
Oct 28, 2012, 3:37:19 PM10/28/12
to flexo-mana...@googlegroups.com
Думаю, пока стоит оставить функционал в хелпере Email.php (сейчас очевидно, хелпер занимается отправкой e-mail сообщений, а не только валидацией), введя статическую функцию-валидатор Email::validate($email).

Пользоваться можно будет:

use_helper('Email');

if (Email::validate($email)) { /* yes */ } else { /* no */ }

Я не помню уже, сейчас это так или нет...

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

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

А про валидацию POST я имел ввиду следующее:

В классе Validator ввести конструктор, который конфигурирует валидатор на проверку определенных полей по определенным правилам заданным в качестве параметра конструктора. Метод Validator::validate($attributes); будет производить валидацию пришедших данных из формы для последующего присваивания этих данных к модели.

Использовать следующим образом:

$model = new ModelName();

// Обработка POST-запроса
if (isset($_POST['FormName'])) {
   $validator = new Validator(array(
        'code' => array('numeric', 'integerOnly' => true),
        'name' => array('length', 'min' => 10, 'max' => 255),
        'email' => array('email'),
    ));

    if ($validator->validate($_POST['FormName'])) {
        $model->setData($_POST['FormName']);
    } else {
        // здесь можно передать ошибку валидации
    }
}

Подобный подход используется в Yii Framework, советую взглянуть на все тот же http://www.yiiframework.com/doc/api/1.1/CValidator

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

2012/10/28 Alex Radiocity <radio...@gmail.com>

Александр Хитрук

unread,
Oct 30, 2012, 7:36:49 AM10/30/12
to flexo-mana...@googlegroups.com
Добрый день.

Я в php не очень "рублю", поэтому возникла проблема такого рода. Есть страничка личная http://alexkhitruk.com.
Существует два раздела 'apps' и 'web'. Сейчас на главной странице я вывожу через сниппет записи из обоих разделов таким кодом:

<?php

$web = $this->find('web');
$apps = $this->find('apps');
?>
<div id="scroll_container" class="scroll_container">
<div class="scroll_nav">
<span id="scroll_prev" class="scroll_prev">Previous</span>
<span id="scroll_next" class="scroll_next">Next</span>
</div>
<div class="scroll_wrapper">

<ul class="scroll_gallery">
<?php foreach ($apps->children(array('limit' => 10)) as $item): ?>
<li><div class="box">
<a href="<?php echo $item->url(); ?>"><div class="item"><?php echo $item->content('short'); ?></div></a>
</div><div class="work_overlay"><?php echo $item->link(); ?></div></li>
<?php endforeach; ?>
<?php foreach ($web->children(array('limit' => 10)) as $item): ?>
<li><div class="box">
<a href="<?php echo $item->url(); ?>"><div class="item"><?php echo $item->content('short'); ?></div></a>
</div><div class="work_overlay"><?php echo $item->link(); ?></div></li>
<?php endforeach; ?>

</ul>
</div>
</div><!--/.articles-list-->

Такой способ не совсем подходит, т.к. сначала выводятся все айтемы из 'apps', а только потом из 'web'. Как можно изменить условие, чтобы выводились последние работы из обоих разделов?

Заранее спасибо. 

Александр Маслаков

unread,
Oct 30, 2012, 8:58:17 AM10/30/12
to flexo-mana...@googlegroups.com
Как раз с этим в flexo/frog существуют проблемы, т.к. сейчас "из коробки" не существует адекватного способа "смешивать" страницы из двух разделов.

Набросал сниппет для выборки из двух разделов:

<?php

class FrontPageExt extends FrontPage
{
public static function findChildrens($id, $args=null, $value=array(), $include_hidden=false)
{
$connection = Record::getConnection();

// Collect attributes...
       $where   = isset($args['where']) ? $args['where']: '';
       $order   = isset($args['order']) ? $args['order']: 'position, id';
       $limit   = isset($args['limit']) ? $args['limit']: 0;
        $offset  = 0;
        
       // Prepare query parts
       $where_string = trim($where) == '' ? '' : "AND ".$where;
       $limit_string = $limit > 0 ? "LIMIT $offset, $limit" : '';

$page_class = __CLASS__;

$sql = 'SELECT page.*, author.name AS author, author.id AS author_id, updator.name AS updator, updator.id AS updator_id '
            . 'FROM '.TABLE_PREFIX.'page AS page '
            . 'LEFT JOIN '.TABLE_PREFIX.'user AS author ON author.id = page.created_by_id '
            . 'LEFT JOIN '.TABLE_PREFIX.'user AS updator ON updator.id = page.updated_by_id '
            . 'WHERE parent_id IN(' . join(',', $id) . ') AND published_on <= NOW() AND (status_id='.self::STATUS_REVIEWED.' OR status_id='.self::STATUS_PUBLISHED.($include_hidden ? ' OR status_id='.self::STATUS_HIDDEN: '').') '
            . "$where_string ORDER BY $order $limit_string";

$stmt = $connection->prepare( $sql );
$stmt->execute($value);

if ($stmt->rowCount() > 0)
{
$result = array();
while ($page = $stmt->fetchObject()) {
if ($page->parent_id)
$parent = self::findById($page->parent_id);
else
$parent = null;

// hook to be able to redefine the page class with behavior
if ( !empty($parent->behavior_id) )
{
// will return Page by default (if not found!)
$page_class = Behavior::loadPageHack($parent->behavior_id);
}

// create the object page
$page = new $page_class($page, $parent);

Observer::notify('frontpage_children_found', array($page));

$result[] = $page;
}

return $result;
}
else
return null;
}
}

$pages = FrontPageExt::findChildrens(array(39, 22));

echo '<p>Разделы: Тестовый полигон, Расширения: </p><ul>';

foreach ($pages as $page) {
echo '<li>' . $page->parent->title() . ': '. $page->title() . '</li>';
}

echo '</ul>'

?>

Только в качестве параметра необходимо передать массив с перечнем ID разделов.

Необходимо заняться созданием подобного решения "из коробки".

Надеюсь, вам этот пример поможет решить проблему.

2012/10/30 Александр Хитрук <akhi...@gmail.com>

Александр Маслаков

unread,
Oct 30, 2012, 9:06:36 AM10/30/12
to flexo-mana...@googlegroups.com
Для большей наглядности можно добавить параметр order:

$pages = FrontPageExt::findChildrens(array(39, 22), array('order' => 'created_on'));

2012/10/30 Александр Маслаков <jmas.u...@gmail.com>

Александр Маслаков

unread,
Oct 30, 2012, 9:12:43 AM10/30/12
to flexo-mana...@googlegroups.com
Добавил информацию для "улучшения" в репозиторий https://github.com/flexocms/flexo1.source/issues/11

2012/10/30 Александр Маслаков <jmas.u...@gmail.com>

gizomo

unread,
Oct 30, 2012, 9:14:37 AM10/30/12
to flexo-mana...@googlegroups.com
Вот самая надежная регулярка на валидацию email, но больно уж страшная.
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html

Александр Маслаков

unread,
Oct 30, 2012, 9:20:55 AM10/30/12
to flexo-mana...@googlegroups.com
Думаю, настолько серьезной валидации не требуется. Берем самое распространенное решение, применяемое в одном из популярных фреймверках CodeIgnitor, Zend, Yii, etc.

2012/10/30 gizomo <giz...@ya.ru>

Вот самая надежная регулярка на валидацию email, но больно уж страшная.
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html

Spyker888

unread,
Oct 31, 2012, 3:30:01 PM10/31/12
to flexo-mana...@googlegroups.com
Здравствуйте! Хочу на 1 действующий сайт под вашей CMS добавить несколько новых страниц 4-го уровня вложенности. Все вроде нормально, делаю по аналогии с другими страницами такой же вложенности, но когда хочу посмотреть как выглядит данная страница на сайте, то почему-то не получается. В адресной строке пишет нужный адрес, а в реальности перебрасывает на страницу уровнем выше. Не пойму в чем дело, ведь все необходимое заполнил, опубликовал, для теста даже скопировал 1 в 1 пару страниц и ничего - старые открываются, новые - нет. Подскажите в чем может быть проблема? Сам этот сайт не разрабатывал, впервые ваш движок вижу изнутри, может что-то не заметил.

Александр Маслаков

unread,
Oct 31, 2012, 3:35:48 PM10/31/12
to flexo-mana...@googlegroups.com
Здравствуйте, существует проблема с длинными кириллическими адресами.
Попробуйте всем страницами указать Slug в виде транслита - если не поможет - будем решать проблему дальше.


2012/10/31 Spyker888 <bolinchu...@gmail.com>

Здравствуйте! Хочу на 1 действующий сайт под вашей CMS добавить несколько новых страниц 4-го уровня вложенности. Все вроде нормально, делаю по аналогии с другими страницами такой же вложенности, но когда хочу посмотреть как выглядит данная страница на сайте, то почему-то не получается. В адресной строке пишет нужный адрес, а в реальности перебрасывает на страницу уровнем выше. Не пойму в чем дело, ведь все необходимое заполнил, опубликовал, для теста даже скопировал 1 в 1 пару страниц и ничего - старые открываются, новые - нет. Подскажите в чем может быть проблема? Сам этот сайт не разрабатывал, впервые ваш движок вижу изнутри, может что-то не заметил.

Spyker888

unread,
Oct 31, 2012, 3:40:45 PM10/31/12
to flexo-mana...@googlegroups.com
SLUG я сразу сделал латинскими буквами (пример: vilnus-universiti ) и ничего не помогает и не пойму в чем может быть загвостка.

среда, 31 октября 2012 г., 21:35:48 UTC+2 пользователь Александр Маслаков написал:

Александр Маслаков

unread,
Oct 31, 2012, 4:18:48 PM10/31/12
to flexo-mana...@googlegroups.com
Возможно, имеется проблема с шаблоном. Если контент текущей страницы не был обнаружен - движок пытается найти контент на предыдущем уровне. Обычно этот алгортм включается, если в шаблоне прописано в месте вставки контента $this->content('body', true);. Второй параметр как раз отвечает за включение функции наследования контента у предыдущих уровней.


2012/10/31 Spyker888 <bolinchu...@gmail.com>

Spyker888

unread,
Oct 31, 2012, 4:42:34 PM10/31/12
to flexo-mana...@googlegroups.com
<?php echo $this->content(); ?> во всех шаблонах стоит, значит не наследует контент у родителя. А при создании страницы подключаю в часть страницы "body" сниппет <?php $this->includeSnippet('view_this_page', array('thumb_width' => 95, 'thumb_height' => 63)); ?>

среда, 31 октября 2012 г., 22:18:49 UTC+2 пользователь Александр Маслаков написал:

Александр Маслаков

unread,
Nov 1, 2012, 3:08:15 AM11/1/12
to flexo-mana...@googlegroups.com
Не могу сказать наверняка, в чем может быть причина. Есть проекты, где вложенность превышает 5 уровней.
Необходимо смотреть в код проекта (вашего сайта) и разбираться в чем причина неправильного поведения.
Я мог бы взглянуть, если откроете доступ к панели управления.


2012/10/31 Spyker888 <bolinchu...@gmail.com>

Сергей Болинчук

unread,
Nov 1, 2012, 4:13:15 AM11/1/12
to flexo-mana...@googlegroups.com
Про открытие доступа пока сказать не могу, я не владелец сайта, просто попросили помочь с наполнением. Единственно что понял что скорее всего в slug причина. Если ставлю в новый ресурс slug который уже где-то используется, то страница открывается нормально, если хочу произвольное значение написать, то уже не работает.

1 ноября 2012 г., 9:08 пользователь Александр Маслаков <jmas.u...@gmail.com> написал:

Alexander Khitruk

unread,
Jan 4, 2013, 3:41:53 AM1/4/13
to flexo-mana...@googlegroups.com
Всем привет.

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

Спсибо.

riartem

unread,
Jan 4, 2013, 4:18:21 AM1/4/13
to flexo-mana...@googlegroups.com
В http://www.kodicms.ru/ (это тоже самое, только использует Kohana) можно писать так:
<? if(Auth::instance()->logged_in('admin')): ?>
Тут код, который только для пользователей с ролью admin
<? endif; ?>


4 января 2013 г., 11:41 пользователь Alexander Khitruk <akhi...@gmail.com> написал:



--
С Уважением, Риженков Артём
http://riartem.by/

Михаил Киселев

unread,
Jul 16, 2013, 2:57:54 AM7/16/13
to flexo-mana...@googlegroups.com
Здравствуйте. Волнуюсь. Хотел бы просто узнать как дела у проекта? Все не заброшено?

Павел Бучнев

unread,
Aug 30, 2013, 8:01:45 AM8/30/13
to flexo-mana...@googlegroups.com
Привет, Михаил, советую переходить на http://www.kodicms.ru/ . Демо сайт находится здесь http://demo.kodicms.ru/ Доступ в админ интерфейс demo / demodemo

вторник, 16 июля 2013 г., 10:57:54 UTC+4 пользователь Михаил Киселев написал:
Reply all
Reply to author
Forward
0 new messages