Web
Analytics
Skip to content

Concrete5

на русском языке

Темы и Стили

Получить стиль

 

$this->getStyleSheet();
 
Загружает стили css в header
 
<?php echo $this->getStyleSheet('main.css')?>

Получить путь к шаблону

$this->getThemePath();
 
Используется для загрузки изображения из директории image в папке шаблона
<img src="<?=$this->getThemePath()?>/images/photo.png">
 
ИЛИ
 
<?php
  $v = View::getInstance();
  $v->getThemePath();
?>

Назначить путь к файлу шаблона

 

Используется для добавления пути шаблона в блоке
 
<?php
  $v = View::getInstance();
  $themePath = $v->getThemePath();
?>
 
  Для вывода изображения из директории image в папке с шаблоном
 
  <img src="<?php echo $themePath ?>/images/photo.png">

Работа с блоками

Добавление области вывода для блоков

 

<?php 
    $a = new Area('AREA_NAME');
    $a->display($c);
?>

Обертка из div для каждого блока в области страницы

 

<?php 
  $a = new Area('sidebar');
  $a->setBlockWrapperStart('<div class="box">');
  $a->setBlockWrapperEnd('</div>');
  $a->display($c); 
?>

Добавление промежутков между блоками в режими редактирования

 

<?php 
  if ($c->isEditMode()) { ?>
    <div style="min-height: 20px;"> </div>
  <?php } ?>

Добавление глобальной области на странице для стека

 

<?php
  $a = new GlobalArea('НАЗВАНИЕ СТЕКА');
  $a->display();
?>

Добавление стека на страницу

 

<?php
$stack = Stack::getByName('НАЗВАНИЕ СТЕКА');
$stack->display();
?>

Получить названия стеков (или handle)

 

<?php
  $stm = new StackList();
  $stm->filterByGlobalAreas(); 
  // Используйте filterByGlobalAreas() или filterByUserAdded()
  $stacks = $stm->get();
 
  foreach($stacks as $st) {
    print  $st->getCollectionName();
    //  Используйте $st->getCollectionName(),  $st->getCollectionHandle(), и т.п.
  }
?>

Получение URL для директории Блока

 

<img src="<?php echo $this->getBlockURL() ?>/images/image.png">

Работа со страницами в Блоках или Темах

Добавить Тип страницы

<?php
  /* Проверка страницы на существование. */
 
  Loader::model('collection_types');
  $pageType = CollectionType::getByHandle('[page_type_handle]');
 
  /* Добавить новую страницу если ее нет. */
 
  if(!is_object($pageType)) {
    $data['ctHandle'] = '[page_type_handle]';
    $data['ctName'] = t('[page_type_name]');
    $newPage = CollectionType::add($data, $pkg);
  }
?>

Вывод Имени Родительской Страницы

 

<?php
  $page=Page::getByID($c->getCollectionParentID());
  echo $page->getCollectionName();
?>

Вывод Названия Родительской страницы верхнего уровня

 

<?php 
  $c = Page::getCurrentPage();
  $nh = Core::make('helper/navigation');
  $cobj = $nh->getTrailToCollection($c);
 
  $rcobj = array_reverse($cobj);
    if(is_object($rcobj[1])) {
      $pID  = $rcobj[1]->getCollectionID();
      $page = Page::getByID($pID);  
      echo $page->getCollectionName();
    }else{
      echo $c->getCollectionName();
    }  
?>

Получить Текущий объект страницы

 

$page = Page::getCurrentPage();

Получение Даты добавления или создания страницы

 

<?php
$c->getCollectionDateAdded('F j, Y')
?>
 
Вывод даты добавления страницы.
 
<?php echo $c->getCollectionDateAdded('F j, Y') ?>

Получение Handle Родительской страницы и что-нибудь с ним сделать

 

<?php
  $page=Page::getByID($c->getCollectionParentID());
 
  if ( $page->getCollectionName() == 'ru' ) {
    echo '<a href="/index.php/gallery">Галерея</a>';
  } else {
    echo '<a href="/index.php/gallery">Gallery</a>';
  }
?>

Получение Описания страницы

 

$c->getCollectionDescription();
 
Вывод описания страницы
 
<?php echo $c->getCollectionDescription() ?>

Получение Handle страницы

 

$c->getCollectionHandle();
 
Создание блока div для добавления стилей к одной страницы
 
<div id="<?php echo $c->getCollectionHandle() ?> "> </div>
 
Добавить класс для div в зависимости от handle страницы
 
<div id="header" class="<?php echo $c->getCollectionHandle() ?>"> </div>

Получить ID страницы

 

$c->getCollectionID();
 
Вывод ID страницы
 
<?php echo $c->getCollectionID() ?>

Получить Название страницы

 

$c->getCollectionName();
 
Вывод названия страницы
 
<?php echo $c->getCollectionName() ?>

Получить ID Родительской страницы

 

$c->getCollectionParentID();
 
Вывести ID родительской страницы
 
<?php echo $c->getCollectionParentID() ?>

Получить ID владельца страницы

 

$pageOwner = $c->getCollectionUserID()

Получить текущий URL страницы

 

<?php
$nh = Core::make('helper/navigation');
$URL = $nh->getCollectionURL($c);
?>

Получить Название типа страницы

 

$c->getCollectionTypeName();
 
Установить класс для типа страницы с этим именем.
 
<?php 
  if($c->getCollectionTypeName() == 'Full Width'){ 
    echo 'class="full-width"';
  }
?>

Получить название Сайта

 

<?php
echo Config::get('concrete.site');
?>

Получить Дату/Время Публикации из данных страницы

 

<?php
$dateHelper = Core::make('helper/date');
 
echo $dateHelper->getSystemDateTime($c->getCollectionDatePublic(), $mask = 'l, F d, Y  g:ia')
?>

Получение Даты последнего изменения

 

<?php
// Загрузить Date Helper (Помощник Даты)
$date = Core::make('helper/date'); 
 
// Получить Блоки в области Main
foreach($c->getBlocks('Main') as $b) {
   $bDate[$i] = $b->getBlockDateLastModified();
   $i ++;
}
 
// Отсортировать массив дат в обратном порядке
rsort( $bDate );
 
//Вывести Дату и Время последнего редактирования Страницы
echo $date->getLocalDateTime($bDate[0],$mask = 'd-m-Y g:i:s');
?>

Внедрить Блок Навигации на страницу Шаблона

 

<?php 	
  $bt = BlockType::getByHandle('autonav');
    // Выодить страницы:
  $bt->controller->displayPages = 'top'; // 'top'(верхнего уровня), 'above' (на уровень выше),
      // 'below', 'second_level' (второго уровня), 'third_level' (третьего уровня), 
      //'custom' (пользовательское), 'current' (текущего уровня)
    // Выводить определенные страницы по ID
  $bt->controller->displayPagesCID = ''; // Если установлен пользовательский вывод страниц:
        // ‘custom’
        // Сортировка страниц
  $bt->controller->orderBy = 'display_asc';  // 'chrono_desc' (по дате убывания, 
    //'chrono_asc' (по дате возрастания), 'alpha_asc' (от А до Я), 'alpha_desc' (от Я до А),
    // 'display_desc' (как в карте сайта),'display_asc' (в обратном порядке карыт сайта) 
    //  Выводить подстранцицы?          
  $bt->controller->displaySubPages = 'all';   //none' нет, 'all' (все), 
  // 'relevant_breadcrumb' (релевантные "хлебные крошки"), 'relevant' под текущим уровнем          
  $bt->controller->displaySubPageLevels = 'all'; // 'enough' (одного подуровня), 
   // 'enough_plus1' (одного подуровня плюс 1), 'all'(все),
   // 'custom' (пользовательское количество)
   // Глубина вложенности страниц
  $bt->controller->displaySubPageLevelsNum = ''; // Если выбран вывод пользовательсой глубины
      // страниц 'custom'
  $bt->render('view'); // для шаблона 'templates/template_name';
?>

Работа с атрибутами страницы

Добавить атрибут страницы программно

 

<?php
namespace
use \Concrete\Core\Attribute\Type as AttributeType;
use CollectionAttributeKey;
 
// добавление атрибута с типом чекбокс
$att = AttributeType::getByHandle('boolean');
$testAttribute3=CollectionAttributeKey::getByHandle('attribute_handle');
if( !is_object($testAttribute3) ) {
    CollectionAttributeKey::add($att, array('akHandle' => 'handle атрибута', 
        'akName' => t('Название атрибута'),
        'akIsSearchable' => true,
        'akCheckedByDefault' => true),
        $pkg);
}
?>

Проверить что у атрибута есть значение

 

<?php
  if ($c->getCollectionAttributeValue(attribute_hande)) {
  Что-нибудь здесь делаем;
  }
?>

Получить значение атрибута страницы

 

$c->getCollectionAttributeValue()
 
Вывести текстовое значение атрибута страницы
 
<?php echo $c->getCollectionAttributeValue('attribute_hande') ?>
 
*В некоторых блоках понадобится использовать объект $cobj

Получить Ключ Атрибута по его Handle

 

$atKey = CollectionAttributeKey::getByHandle('handle');

Вывести атрибут страницы изображение

 

<img src="<?php echo ($c->getAttribute('attribute_handle')->getVersion()->getRelativePath());?>" width="120px" height="160px">

 

<?php
  if($c->getAttribute('имя_атрибута')) {
    echo '<a href="' . $c->getAttribute('handle_атрибута')->getVersion()->getRelativePath() .' ">Скачать PDF</a>';
  }
?>

Получить Название атрибута Файла или Изображения

 

<?php
$c->getAttribute('handle_атрибута')->getFileName() 
?>

Получить все атрибуты Страницы

 

(во view.php)
<?php
$atKeys = CollectionAttributeKey::getList();
 
foreach($atKeys as $ak) {
  echo  $ak->akName . '<br/>';
}
?>
 
(в controller.php)
 
<?php
namespace
use View;
 
$atKeys = CollectionAttributeKey::getList();
 
foreach($atKeys as $ak) {
  pageAttributes[] =  $ak->akName;
}

(во view.php)
<?php
$atKeys = CollectionAttributeKey::getList();
 
foreach($atKeys as $ak) {
  echo  $ak->getAttributeKeyName() . '<br/>';
}
?>
 
(в controller.php)
 
<?php
namespace
use View;
 
$atKeys = CollectionAttributeKey::getList();
 
foreach($atKeys as $ak) {
  pageAttributes[] =  $ak->getAttributeKeyName();
}

Получить все атрибуты в Наборе (Set)

 

(во view.php)
$atSet = AttributeSet::getByHandle('attribute_set_handle');
$atKeys = $atSet->getAttributeKeys();
 
foreach($atKeys as $ak) {
  echo $ak->akName;
}
 
(в controller.php)
 
namespace
use \Concrete\Core\Attribute\Set as AttributeSet;
 
$atSet = AttributeSet::getByHandle('handle_сета_атрибута');
$atKeys = $atSet->getAttributeKeys();
 
foreach($atKeys as $ak) {
  $setNmes[] = $ak->akName;
}

(во view.php)
$atSet = AttributeSet::getByHandle('attribute_set_handle');
$atKeys = $atSet->getAttributeKeys();
 
foreach($atKeys as $ak) {
  echo $ak->getAttributeKeyName();
}
 
(в controller.php)
 
namespace
use \Concrete\Core\Attribute\Set as AttributeSet;
 
$atSet = AttributeSet::getByHandle('attribute_set_handle');
$atKeys = $atSet->getAttributeKeys();
 
foreach($atKeys as $ak) {
  $setNmes[] = $ak->getAttributeKeyName();
}

Вывести или получить опции атрибута типа выпадающего списка

 

<?php 
  use CollectionAttributeKey;
 
  $ak = CollectionAttributeKey::getByHandle('attribute_handle');
  if ( is_object($ak)) {
    $type = $ak->getAttributeType();
    $controller = $type->getController();
    $controller->setAttributeKey($ak);
    $options = $controller->getOptions();
 
    foreach($options as $option){
      print $option . '<br/>';
    }
  }
 ?>				

Добавить атрибут выпадающего списка из сета атрибутов

<?php 
  // добавить выпадающий список из сета атрибутов страницы
 
  // Установить категорию атрибута	
  $akCat = AttributeKeyCategory::getByHandle('collection');
  $akCat->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_SINGLE);
  $akCatSet = $akCat->addSet('attribute_set_handle', t('Название Сета Атрибута'),$pkg);
 
  $atType = AttributeType::getByHandle('select');
 
  // проверить если атрибут существует
  $myAttribute = CollectionAttributeKey::getByHandle('attribute_handle'); 
 
  // Добавить атрибут
  if( !is_object($myAttribute) ) {
 
    CollectionAttributeKey::add($atType, 
    array('akHandle' => 'attribute_hande', 
    'akName' => t('Название атрибута'), 
    'akIsSearchable' => true, 
    'akIsSearchableIndexed' => true,
    'akSelectAllowMultipleValues' => false,
    'akSelectAllowOtherValues' => false,
    'akSelectOptionDisplayOrder' => 'alpha_asc',  // по алфавиту или популярности
    ),$pkg)->setAttributeSet($akCatSet); 
 
    //Добавить значения опций
    $myAttribute = CollectionAttributeKey::getByHandle('attribute_handle');
    SelectAttributeTypeOption::add( $mMakerAttribute, 'Опция 1');
    SelectAttributeTypeOption::add( $mMakerAttribute, 'Опция 2');
    SelectAttributeTypeOption::add( $mMakerAttribute, 'Опция 3');
 }
?>

Выбрать навигацию в зависимости от атрибута страницы

(Смотрите переключение языков)
 
<?php
  if ($c->getCollectionAttributeValue('spanish_menus')) {
    $block = Block::getByName('Испанское меню');
    if( is_object($block) ) $block->display();
  } else {
    $block = Block::getByName('English Menus');
     if( is_object($block) ) $block->display();
   }
?>

Работа с Пользователями

Программное добавление атрибута Пользователя

<?php
  
  //добавление булевого атрибута пользователя 
  $boolt = AttributeType::getByHandle('boolean');
  $attributeHandle=UserAttributeKey::getByHandle('attribute_handle');
 
  if( !is_object($attributeHandle) )
    UserAttributeKey::add($boolt, array('akHandle' => 'atribute_handle', 'akName' => t('Attribute name'), 'akIsSearchable' => false, 'uakProfileEdit' => false, 'uakRegisterEdit' => false, 'akCheckedByDefault' => false));
}
?>

Программное удаление атрибута Пользователя

<?php
  
  $attributeHandle = UserAttributeKey::getByHandle('atribute_handle');
   if( is_object($attributeHandle) )
     $attributeHandle->delete();
}
?>

Получить атрибут Пользователя для авторизованного человека

<?php
  $u = new User();
  if($u->isLoggedIn()) {
    $ui = UserInfo::getByID($u->getUserID());
    echo $ui->getAttribute('attribute_name');	
}
?>

Установить атрибут Пользователя для авторизованного человека

<?php
  $u = new user();
  $ui = UserInfo::getByID($u->getUserID());
  $ui->setAttribute('attributenName', 'value');
?>

Удалить атрибут Пользователя

<?php
 
  $attributeKey = UserAttributeKey::getByHandle('user_attribute_name');
  if( is_object($attributeKey) )
    $attributeKey->delete();
?>

Вывести или получить Опции из атрибута Пользователя типа выпадающего меню

<?php
  
  $ak = UserAttributeKey::getByHandle('project_name');
  $sa = new SelectAttributeTypeController(AttributeType::getByHandle('select'));
  $sa->setAttributeKey($ak);
  $values = $sa->getOptions();
 
  foreach ($values as $v) {
    echo $v->value;
  }
?>

Добавить Пользователя в Группу

<?php
  $u = new User();
  $u->getByUserID($uID);
  $groupName = Group::getByName('Название_Группы');
  $u->enterGroup($groupName);
?>

Получение Имен всех Пользователей Группы

<?php
 
$gl = new GroupSearch();
$gResults = $gl->getPage();
 
foreach ($gResults as $g) {
  echo  $g['gName'];
}
?>	

Вывести Имя Пользователя

 

<?php
  $u = new User();
  echo $u->getUserName();
?>

Если авторизован подправить позицию Фона страницы

 

<?php 
  $u = new User();
 
  if ($u->isLoggedIn()) { ?>
    <style type="text/css">
    body { background-position: 0px 49px; }
    </style>
<?php } ?>

Если Пользователь авторизован что-нибудь сделать

 

<?php
  $u = new User();
  if($u->isLoggedIn()) {
    echo 'Привет '.$u->getUserName();
  }
?>

Если авторизованный - администратон что-нибудь сделать

 

<?php
  $u = new user();
  $g = Group::getByName('Administrators');
 
  if ($u->inGroup($g)||$u->isSuperUser()) {
    //что-нибудь здесь сделать
  }
?>

Работа с Файлами и Наборам

Получить путь к Файлу

 

<?php
  $f = File::getByID(FILE_ID);
  $fv = $f->getApprovedVersion();
  $path = $fv->getRelativePath();
?>

 

Получить название Набора Файлов

 

(во view.php)
<?php
  $fileSets = FileSet::getMySets();
  foreach ($fileSets as $fs) {
    echo $fs->getFileSetName();
  }
?>
 
$fs->getFileSetID()
$fs->getFileSetName()
$fs->getFileSetType()
 
(in controller.php
 
<?php
namespace
use FileSet;
use FileList;
 
  $fileSets = FileSet::getMySets();
  foreach ($fileSets as $fs) {
   $filesets('id' => $fs->getFileSetID(), 'name' => $fs->getFileSetName());
 }
?>

Добавить Набор Файлов

 

<?php  
  $fs = FileSet::createAndGetSet('FILESET_NAME', FileSet::TYPE_PUBLIC, $uID = false);
?>

Получить значение атрибута Файла

<?php
  $f = File::getByID(Идентификатор Файла);
  echo $f->getAttribute('Attrubute_name');
?>

Добавить атрибут Файла

 

<?php
// в пакете плагина
use Concrete\Core\Attribute\Key\CollectionKey as CollectionAttributeKey;
use \Concrete\Core\Attribute\Type as AttributeType;
 
$attribute = CollectionAttributeKey::getByHandle('my_attribute');
if ( !is_object($attribute)) {
  $att = AttributeType::getByHandle('select');
  // add attribute 
  CollectionAttributeKey::add($att, array('akHandle' => 'my_attribute', 
    'akName' => t('Мой Атрибут'), 
    'akIsSearchableIndexed' => true, 
    'akIsSearchable' => true, 
    'akSelectAllowMultipleValues' => true, 
    'akSelectAllowOtherValues' => true, 
    'akSelectOptionDisplayOrder' => 'alpha_asc'),$pkg); 
 
  // или добавить атрибут и приписать его сету атрибутов
  // CollectionAttributeKey::add($att, array('akHandle' => 'my_attribute', 
  // 'akName' => t('Мой Атрибут'), // По русски
  // 'akIsSearchableIndexed' => true, 
  // 'akIsSearchable' => true, 
  // 'akSelectAllowMultipleValues' => true, 
  // 'akSelectAllowOtherValues' => true, 
  // 'akSelectOptionDisplayOrder' => 'alpha_asc'),$pkg)->setAttributeSet($akCatSet); 
  $addAttribute = CollectionAttributeKey::getByHandle('my_attribute');
}

Добавить Набор атрибутов Файлов

 

<?php
  use \Concrete\Core\Attribute\Key\Category as AttributeKeyCategory;
 
  $akCat = AttributeKeyCategory::getByHandle('collection');
  $akCat->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_SINGLE);
  $akCatSet = $akCat->addSet('my_attribute_set', t('Мой Набор Атрибутов'),$pkg);

Вывести или Получить информацию из Набора Файлов

 

(во view.php)
<?php
  $fs = FileSet::getByName('Мой Набор Файлов');
  $fl = new FileList();
  $fl->filterBySet($fs);
  $fl->sortBy('fsDisplayOrder', 'asc');
  $files = $fl->get();
 
  foreach($files as $f) {
    echo $f->getFileName();
    echo $f->getTitle(); 
    echo $f->getAttribute("width");
    echo $f->getDownloadURL();
    echo $f->getRelativePath();
    echo $f->getDescription();
    echo $f->getAttribute('attribute_name');
  }
?>
 
(в controller.php)
<?php
namespace
use FileSet;
use FileList;
 
  $fs = FileSet::getByName('Мой Набор Файлов');
  $fl = new FileList();
  $fl->filterBySet($fs);
  $fl->sortBy('fsDisplayOrder', 'asc');
  $files = $fl->get();
?>  

Добавить Файл

<?php
    Core::make("helper/file/importer");
    $fi = new FileImporter();
    $newFile = $fi->import($pathToFile, $nameOfFile, $fileObject);
  }
?>

Добавить Файл из Формы

<?php
  // функция в контроллере (controller)
  function action_file_upload()	{ 
    
    $fi = new FileImporter();
    $newFile = $fi->import($_FILES['fileName']['tmp_name'],
    $_FILES['fileName']['name']);
  }
?>

Добавить файл в набор файлов

<?php
  // когда загружаются с формой
  function action_file_upload()	{
    
    $fi = new FileImporter();
    $newFile = $fi->import($_FILES['fileName']['tmp_name'],
    $_FILES['fileName']['name']);
 
    // добавить файл в набор файлов		
    
    $fs = FileSet::createAndGetSet('FILE_SET_NAME', FileSet::TYPE_PUBLIC, 
    $uID = false);
    $fsf = $fs->addFileToSet($newFile);	
  }
?>

Работа со Списком Страниц

Инициализация Списка Страниц

 

(во view.php)
 
<?php
  $pl = Core::Make('PageList'); 
 
  $pl = new PageList();
 
    ... Фильтрация и Сортировка по атрибутам ...
 
   // Получение отфильтрованных страниц 
  $pages = $pl->get() Получение всех страниц подходящих заданным критериям
 
(в controller.php)
 
<?php
namespace
use Concrete\Core\Page\PageList;
 
  $pl = new PageList();
 
    ... Опции фильтрации или сортировки ...
 
   // Получение результирующего списка страниц 
  $pages = $pl->get() Получение всех страниц подходящих заданным критериям

Фильтрация или сортировка Списка Страниц

 

<?php
  // Доступные фильтры
  $pl->ignorePermissions(); // Не проверять права доступа авторизованного пользователя.
  $pl->ignoreAliases(); // Игнорировать дупликаты страниц.
  $pl->includeSystemPages(); // Включить системные страницы
  $pl->displayUnapprovedPages(); // Включить не утвержденные страницы.
  $pl->filterByName($name, $exact = false); // Фильтровать по названию страницы.
  $pl->filterByPath($path, $includeAllChildren = true); // Фильтровать страницы по пути, по детям true/false
  $pl->filterByParentID($cParentID); //Фильтровать по родительскому ID.
  $pl->filterByCollectionTypeID($ctID); //Вывести страницы определенного типа.
  $pl->filterByUserID($userID); //Вывести страницы принадлежащие конкретному ID пользователя.
  $pl->filterByIsApproved($isApproved); //Вывести только опубликованные страницы.
  $pl->filterByIsAlias($ia); //Фильтровать только если страница является копией (дубликатом).
  $pl->filterByCollectionTypeHandle($ctHandle); //Фильтровать по handle типа страницы. $ctHandle может быть массивом имен типа страниц.
  $pl->filterByDateAdded($date, $comparison = '='); //Фильтровать по дате добавления страницы. $comparison может быть любой оператор сравнения MySQL.
  $pl->filterByPublicDate($date, $comparison = '='); //Фильтровать по дате публикации. $comparison может быть любой оператор сравнения MySQL.
  $pl->filterByDateLastModified($date, $comparison = '='); //Фильтровать по дате изменения страницы. $comparison может быть любой оператор сравнения MySQL.
  $pl->filterByNumberOfChildren($number, $comparison = '='); //Фильтровать по количеству подстраниц. $comparison может быть любой оператор сравнения MySQL.
  $pl->filterByAttribute($attributeKeyHandle, $value, $comparison); //Фильтрация по атрибуту.
  $pl->filter($column, $value, $comparison); //Фильтровать по условию MySql "WHERE"
 
  // Опции сортировки
  $pl->sortByRelevance(); //Сортировать индексу по убыванию. Используется только для поиска по ключевым словам.
  $pl->sortByDisplayOrder(); //Сортировка по расположению в карте сайта от начала к концу.
  $pl->sortByDisplayOrderDescending(); // Сортировка по расположению в карте сайта от конца к началу.
  $pl->sortByPublicDate(); //Сортировка по дате публикации по возрастанию.
  $pl->sortByPublicDateDescending(); //Сортировка по дате публикации по убыванию.
  $pl->sortByName(); //Сортировка по названию страницы по возрастанию (А-Я).
  $pl->sortByNameDescending(); // Сортировка по названию страницы по возрастанию (Я-А)
  $pl->sortBy('ak_ATTRIBUTE_HANDLE'); // Сортировка по атрибуту страницы
?>

 

Получить Список страниц на основе Названия Типа Страницы

<?php
  $pl = new PageList();
  $pl->filterByCollectionTypeHandle('COLLECTION_HANDLE');
  $pl->sortByDisplayOrder('alpha_asc'); // Сортировать по алфавиту
 
  $pages = $pl->getPage();
 
  // Вывести Название Страницы и Описание
  foreach ($pages as $page){
    echo $page->getCollectionName();
    echo $page->getCollectionDescription();
  }
?>

Включить Блок Списка Страниц в Шаблон

<?php
  $bt = BlockType::getByHandle('page_list');
 
  //Set Options
  $bt->controller->orderBy = 'display_asc'; // 'display_asc', 'chrono_desc', 'chrono_asc', 'alpha_asc', 'alpha_desc'
  $bt->controller->ctID = ''; // Фильтровать по ID Типа Страницы
  $bt->controller->displayFeaturedOnly = 'false'; // Если атрибут Feature 'true', 'false' 
  $bt->controller->displayAliases = 'false'; // Выводить дупликаты страниц 'true', 'false'
  $bt->controller->paginate = 'true'; // 'true', 'false'
  $bt->controller->cParentID = '6149'; // Выводить страницы, расположенные ниже страницы с этим ID
  $bt->controller->includeAllDescendents = 'true'; // 'true', 'false'						
  $bt->controller->orderBy = 'display_asc'; // 'display_asc', 'chrono_desc', 'chrono_asc', 'alpha_asc', 'alpha_desc'
  $bt->controller->showrss = 'false'; // Вывести RSS feed 'true', 'false'
  $bt->controller->truncateSummaries = 'true'; // 'true', 'false'
  $bt->controller->truncateChars = '128'; // Обрезать длину описания 'true'
  $bt->controller->paginate = 'true'; // 'true', 'false'
 
  // Вывод Блока
  $bt->render('view'); // для шаблонов 'templates/template_name'
?>

Пересортировать Блок Списка Страниц Массив $pages

<?php
  // Пересортировка во view.php по атрибуту страницы end date (на конец дня)
  usort($pages, create_function('$a, $b', 'return $a->getAttribute("end_date") > $b->getAttribute("end_date");'));
?>

Контроллеры

Контроллеры Одиночных Страниц

 

Создайте файл для одиночной страницы: applications/single_pages/test_page.php
 
Создайте файл контроллера: applications/controllers/test_page.php 
 
Пространство имен и классы контроллера
 
<?php 
namespace Application\Controller\SinglePage;
use PageController;
 
class TestPage extends PageController
{
 
    // Добавьте функции
    public function view()
    {
        // Любой код, который нужен для функции
        echo 'Hello World';
    }
 
}
?>

База Данных

Получить Данные из Базы Данных

<?php
  $db = Loader::db();
 
  $sql = "SELECT * FROM [table] WHERE [column1] = ? AND [column2] = ?";
  $vals = array('[value1]', '[value2]');
  $r = $db->Execute($sql, $vals);
  $row = $r->FetchRow();
 
  echo $row[column name];
?>

Обновить Базу Данных

<?php 
  $db = Loader::db();
 
  $sql = "UPDATE [table] SET [column] = ? WHERE bID = $this->bID";
  $vals = array('[value]');
  $update = $db->Execute($sql, $vals);
?>

Помощники Хелперы

Помощник Дата/Время

Загрузка помощника Date/Time

 

<?php
$date = Core::make('helper/date');
?>

Сравнить Сегодняшнюю Дату с Атрибутом Страницы Date/Time  (end_date) И Что-нибудь Сделать

Используйте Помощник Даты для форматирования по маске ($mask=) для вывода даты и времени.
 
<?php
 
  if($date->getSystemDateTime($c->getCollectionAttributeValue('end_date'), $mask = 'd-m-Y G:i') > $date->getLocalDateTime('now',$mask = 'd-m-Y G:i')) {
    echo 'Конечная дата больше сегодняшней даты';
  }
?>

Вывести Date/Time В Формате dd-mm-yyyy 00:00.

<?php
  $date = Loader::helper("date");  echo $date->getLocalDateTime('now',$mask = 'd-m-Y G:i')
?>

Вывести Атрибут Страницы "end_date" В Формате mm/dd/yy 

<?php
  echo $date->getSystemDateTime($c->getCollectionAttributeValue('end_date'), $mask = 'm/d/y') 
?>

Получить Дату, Когда Страница Была Отредактирована

<?php
  foreach($c->getBlocks('Main') as $b) {
    $bDate[$i] = $b->getBlockDateLastModified();
    $i ++;
  }
 
  rsort( $bDate );
 
  echo $date->getLocalDateTime($bDate[0],$mask = 'm-d-Y g:i:s');
?>

Если Атрибут Страницы "end_date" Больше Текущего Времени, Сделать Что-нибудь.

<?php
  if($date->getSystemDateTime($c->getCollectionAttributeValue('end_date'), $mask = 'd-m-Y G:i') > $date->getLocalDateTime('now',$mask = 'd-m-Y G:i')) {
 
    [сделать что-нибудь здесь]
 
  }
?>

Форматирование Даты PHP с помощью маски

a 'am' или 'pm'
A 'AM' или 'PM'
B Swatch Internet time
d день месяца, 2 цифры с нулем впереди; например '01' до '31'
D день недели, текстовый, 3 буквы; например 'пон'
F месяц, textual, long; например 'January'
g час, 12-часовой формат без ведущих нулей; например '1' до '12'
G час, 24-часовой формат без ведущих нулей; например '0' до '23'
h час, 12-часовой формат; например '01' до '12'
H час, 24-часовой формат; например '00' до '23'
i минуты; например '00' до '59'
I (заглавная i) '1' если Используется Летнее ​​​​​​​Время, '0' в другом случае.
j день месяца без ведущих нулей; например '1' до '31'
l (прописная 'L') текстовый день недели, полный; например 'пятница'
L Булевая, если високосный год; например '0' или '1'
m месяц; например '01' до '12'
M месяц, текст, 3 буквы; например 'янв'
n месяц без ведущих нулей; например '1' до '12'
r RFC 822 форматирование ​​​​​​​даты; например 'вто, 21 дек 2000 16:01:07 +0200' (добавлено в PHP 4.0.4)
s секунды; например '00' до '59'
S Английский суффикс, текст, 2 символа; например 'th', 'nd'
t количество дней в заданном месяце; например '28' до '31'
T Часовой пояс установленный на компьютере; например 'MDT'
U секунды с начала эпохи
w день недели, число, например '0' (понедельник) до '6' (воскресенье)
Y год, 4 цифры; например '1999'
y год, 2 цифры; например '99'
z день года; например '0' до '365'
Z разница в секундах между часовыми поясами (например '-43200' до '43200'). 
   Разница для часового пояса западнее Гринвича всегда отрицательна, а восточнее Гринвича всегда положительна.

Помощник Изображений

Загрузка Помощника Изображений

 (отменено)

<?php
  $imageHelper = Core::make('helper/image');
?>

Вывод Миниатюры из Атрибута Страницы

Если изображение существует в атрибуте типа Image/File "product_image", вывести изображение уменьшенное до 100px.
 
<?php
  if($c->getAttribute('product_image')) {
    $imageHelper->outputThumbnail($c->getAttribute('product_image'),100 ,100);
  }
?>

Получить Данные Миниатюры через Помощника Изображений

<?php
  $file = File::getByID(id_number);
  $img = $imageHelper->getThumbnail($file, 100, 100);
?> 
 
<img src="<?php echo $img->src; ?>" width="<?php echo $img->width; ?>" height="<?php echo $img->height; ?>">

Multilingual Помощник

Загрузка Multilingual Помощника

<?php
  $lh = Loader::helper('section', 'multilingual');
<?

Вернуть Код На Двух Языках

<?php
  $lh = Loader::helper('section', 'multilingual');
  echo $lh->getLanguage();
?>

Site.php

Общие настройки

Установить расширенные права доступа
  define('PERMISSIONS_MODEL', 'advanced');
 
Use APC Caching (you need APC installed)
  define('CACHE_LIBRARY', 'apc');
 
Disable Zend Cache Cleaning (может улучшить производительность)
  define('CACHE_FRONTEND_OPTIONS',
  serialize(array('automatic_cleaning_factor' => 0)));
 
Установить time на 24 часовой формат
  define('DATE_FORM_HELPER_FORMAT_час', '24');
 
Date Formatting
  define('DATE_APP_GENERIC_MDYT_FULL', 'F d, Y \a\t g:i A');
  define('DATE_APP_GENERIC_MDYT', 'n/j/Y \a\t g:i A');
  define('DATE_APP_GENERIC_MDY', 'n/j/Y');
  define('DATE_APP_GENERIC_MDY_FULL', 'F d, Y');
 
Изменить минимальную длину имени пользователя со значения по умолчанию 3
  define('USER_USERNAME_MINIMUM', 3);
 
Изменить максимальную длину имени пользователя со значения по умолчанию 64
  define('USER_USERNAME_MAXIMUM', 64);
 
Изменить минимальную длину пароля со значения по умолчанию 5
  define('USER_PASSWORD_MINIMUM', 5);
 
Изменить максимальную длину пароля со значения по умолчанию 64
  define('USER_PASSWORD_MAXIMUM', 64);
 
Изменить время сессии со значения по умолчанию в 2 часа
  define('SESSION_MAX_LIFETIME', 7200); // 2 часs
 
Назначить email адрес для уведомления регистрации
  define('EMAIL_ADDRESS_REGISTER_NOTIFICATION',
  'example@domain.com');
 
Назначить email адрес для уведомления регистрации​​​​​​​ от кого
  define('EMAIL_ADDRESS_REGISTER_NOTIFICATION_FROM',
  'example@domain.com');

Белая Конфигурация

Отключить связь с магазином concrete5.
define('ENABLE_MARKETPLACE_SUPPORT', false); 
 
Отключить помощь при умном поиске.
define('ENABLE_INTELLIGENT_SEARCH_HELP', false);
 
Отключить появление приложений из магазина в результатах умного поиска. 
define('ENABLE_INTELLIGENT_SEARCH_MARKETPLACE', false); 
 
Отключить вывод новосте
define('ENABLE_NEWSFLOW_OVERLAY', false);
 
Путь к картинке с логотипом. Это может быть и полный путь URL. 
Этот file должен быть 49x49 пикселей.
define('WHITE_LABEL_LOGO_SRC', 'PATH до FILE'); 
 
Alt текст для логотипа
define('WHITE_LABEL_APP_NAME', 'TEXT');
 
Отключить Разметку.
define('ENABLE_AREA_LAYOUTS', false); 
 
Отключить Пользовательский Дизайн для блоков или областей.
define('ENABLE_CUSдоM_DESIGN', false);
 
Отключить Newsflow связь с concrete5.org для получения последних обновлений. 
define('ENABLE_APP_NEWS', false); 
 
Установить валидное изображение (либо локальное либо с удаленного URL), либо нет.
define('WHITE_LABEL_DASHBOARD_BACKGROUND_SRC', 'none');
 
Web адрес для сегодняшнего Изображения
define('WHITE_LABEL_DASHBOARD_BACKGROUND_FEED', false); 
Загрузка беседы