Туториал по созданию и выводу дополнительных полей контента В Typecho есть следующие типы дополнительных полей: text, textarea, radiobutton, select, checkboxes.
Создать их можно, как напрямую при написании статьи, так и задав их появление автоматически, через файл functions.php.
Для того чтобы создать дополнительные поля контента откройте файл functions.php в папке вашего шаблона. По умолчанию путь до него будет /usr/themes/default/functions.php
• добавьте в самый конец файла
function themeFields($layout){ 
/*CUSTOM FIELDS*/
};

• вместо /CUSTOM FIELDS/ вставьте код дополнительного поля

Примеры

Строка текста
$fields_name= new Typecho_Widget_Helper_Form_Element_Text('fields_name', NULL, NULL, _t('Название поля'), _t('Текст подсказки'));
$layout->addItem($fields_name);

fields_name - имя поля, должно содержать в себе только английские буквы и цифры
Название поля - название поля
Текст подсказки - подсказка, отображается под полем

Текстовое поле
$fields_name= new Typecho_Widget_Helper_Form_Element_Textarea('fields_name', NULL, NULL, _t('Название поля'), _t('Текст подсказки'));
$layout->addItem($fields_name);

fields_name - имя поля, должно содержать в себе только английские буквы и цифры
Название поля - название поля
Текст подсказки - подсказка, отображается под полем

Поле radio - переключатель
$fields_name= new Typecho_Widget_Helper_Form_Element_Radio('fields_name',array('key_1' => _t('Значение для ключа 1'),'key_2' => _t('Значение для ключа 2'),'key_3' => _t('Значение для ключа 3'),'key_4' => _t('Значение для ключа 4'),'key_5' => _t('Значение для ключа 5'),'key_6' => _t('Значение для ключа 6')),'0',_t('Название поля'),_t("Текст подсказки"));
$layout->addItem($fields_name);

fields_name - имя поля, должно содержать в себе только английские буквы и цифры
Название поля - название поля
Текст подсказки - подсказка, отображается под полем
key_ - ключ для поля, должен содержать в себе только английские буквы и цифры
Значение для ключа- значение для ключа

Поле select - список
$fields_name= new Typecho_Widget_Helper_Form_Element_Select('fields_name',array('key_1' => _t('Значение для ключа 1'),'key_2' => _t('Значение для ключа 2'),'key_3' => _t('Значение для ключа 3'),'key_4' => _t('Значение для ключа 4'),'key_5' => _t('Значение для ключа 5'),'key_6' => _t('Значение для ключа 6')),'0',_t('Название поля'),_t("Текст подсказки"));
$layout->addItem($fields_name);

fields_name - имя поля, должно содержать в себе только английские буквы и цифры
Название поля - название поля
Текст подсказки - подсказка, отображается под полем
key_ - ключ для поля, должен содержать в себе только английские буквы и цифры
Значение для ключа- значение для ключа

Поле checkbox - список с возможностью мультивыбора
$fields_name= new Typecho_Widget_Helper_Form_Element_Checkbox('fields_name',array('key_1' => _t('Значение для ключа 1'),'key_2' => _t('Значение для ключа 2'),'key_3' => _t('Значение для ключа 3'),'key_4' => _t('Значение для ключа 4'),'key_5' => _t('Значение для ключа 5'),'key_6' => _t('Значение для ключа 6')),'0',_t('Название поля'),_t("Текст подсказки"));
$layout->addItem($fields_name);

fields_name - имя поля, должно содержать в себе только английские буквы и цифры
Название поля - название поля
Текст подсказки - подсказка, отображается под полем
key_ - ключ для поля, должен содержать в себе только английские буквы и цифры
Значение для ключа- значение для ключа

Вывод значения дополнительных полей контента в шаблонах

Код вывода зависит от типа дополнительного поля. Самый простой вывод значения поля, с проверкой на его заполнение выглядит так:
<?php
$custom_fields = $this->fields->fields_name;
    if(isset($custom_fields))
        echo 'Test_custom_fields: TRUE '.$custom_fields;
    else
        echo 'Test_custom_fields: FALSE';
?>
Где fields_name- имя поля

Вывод поля типа radio или selectс проверкой на значение по ключам
<?php if($this->fields->fields_name== "key_1") { ?><!-- Выбрано значение поля key_1 --> Lorem ipsum <?php } elseif ($this->fields->fields_name== "key_2") { ?><!-- Выбрано значение поля key_2 --> Dolor sit amet <?php } else {?><!-- Не выбрано никакое значение --> other <?php }?>
Где fields_name- имя поля, а key_1& key_2- это ключи для значений поля

При помощи radio или select поля можно легко создать различные шаблоны для всевозможных типов контента. Например создать поле "Вид страницы" с ключами и названиями "Галерея", "Статья", "Видео", а затем сделать различный вывод контента в зависимости от выбранного значения.



Вывод поля checkboxes
$custom_fields = $this->fields->fields_name;
foreach ($custom_fields as $row) {
echo $row . "\r\n";
}

Где fields_name - имя поля

0 Comments

  1. No comments yet.

Basic HTML tags are allowed.

Cms reviews, templates
and american pitbull terrier photos
Recent Responses
  • WolfJN
    Да, движок очень хороший . Я сделала для него шаблон flat-cms.ru/artic…
  • Daga
    Расширения для движка my-engine
  • Yura
    Модули для my-engine cms link text
  • Yura
    Самый лучший движок на файлах, много моделей и расширений.
  • WolfJN
    Решила добавить новых скриншотов к обзорам по cms и с удивлением не об…