Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shtrih/altocms-plugin-contentfieldsx
Позволяет работать с дополнительными полями контента, полагаясь на уникальное имя поля, вместо случайного числового идентификатора.
https://github.com/shtrih/altocms-plugin-contentfieldsx
Last synced: 16 days ago
JSON representation
Позволяет работать с дополнительными полями контента, полагаясь на уникальное имя поля, вместо случайного числового идентификатора.
- Host: GitHub
- URL: https://github.com/shtrih/altocms-plugin-contentfieldsx
- Owner: shtrih
- License: other
- Created: 2015-08-25T14:57:49.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-09-15T15:51:56.000Z (over 9 years ago)
- Last Synced: 2024-10-30T18:26:33.561Z (2 months ago)
- Language: PHP
- Size: 148 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Content Fields eXtended
ContentFieldsX это плагин для [Alto CMS](https://github.com/altocms/altocms), который предназначен для облегчения работы с дополнительными полями типов контента.
Чтобы понять, как работать с дополнительными полями, читайте пост http://altocms.ru/1182.htmlВ форме создания дополнительного поля, появляется «Уникальное имя поля», которое заполняется по усмотрению админа, чтобы затем,
в шаблонах (обычно это `topic.type_ваш-тип-show.tpl` и `topic.type_ваш-тип-list.tpl`) по имени получать значение поля, не привязываясь к динамическим идентификаторам полей.По сути, добавляет два новых метода `$oTopic->getFieldValueByName()` и `$oContentType->getFieldByName($sFieldName)`.
`getFieldByName` является альтернативой `$oContentType->getField($iFieldId)`.
А `getFieldValueByName` пригодится тогда, когда нам не нужна информация о поле (имя поля, описание).
Вместо конструкции:
```smarty
{$oField = $oContentType->getFieldByName('nsfw')}
{if $oField}
{$oTopicField = $oTopic->getField($oField->getFieldId())}
{if $oTopicField}
{$oTopicField->getValue()}
{/if}
{/if}
```
можно написать:
```smarty
{$oTopicField = $oTopic->getFieldValueByName('nsfw'))}
{if $oTopicField}
{$oTopicField->getValue()}
{/if}
```## Примеры использования
### Получить значение поля по уникальному имени
В переменную `$oNsfw` запишется экземпляр класса `ModuleTopic_EntityContentValues` или `null`:
```smarty
{$oNsfw = $oTopic->getFieldValueByName('nsfw')}
```### Получение экземпляра поля `ModuleTopic_EntityField`
В переменную `$oFieldNsfw` запишется экземпляр класса `ModuleTopic_EntityField` или `null`:
```smarty
{$oContentType = $oTopic->getContentType()}
{$oFieldNsfw = $oContentType->getFieldByName('nsfw')}{* Печатаем значение c помощью стандартного шаблона для отображения поля *}
{include file="fields/customs/field.custom.`$oFieldNsfw->getFieldType()`-show.tpl" oField=$oFieldNsfw}
```### Пропуск полей
После того, как мы запросили и использовали нужные нам поля с уникальными именами, нужно не дать им вывестись со всеми остальными полями.
В данном случае, пропускаются поля `nsfw` и `nsfw-pictures`:
```smarty
{* topic.type_mycontenttype-show.tpl *}{foreach from=$oContentType->getFields() item=oField}
{* Пропускаем некоторые поля *}
{if in_array($oField->getFieldUniqueName(), ['nsfw', 'nsfw-pictures'])}
{continue}
{/if}{include file="fields/customs/field.custom.`$oField->getFieldType()`-show.tpl" oField=$oField}
{/foreach}
```## Использование совместно с другими плагинами
В манифесте вашего плагина (`plugin.xml`) в секцию `requires/plugins` добавьте `plugin` как показано ниже:
```xml
…
…
contentfieldsx
…
```# Лизцензия
Плагин распространяется под лицензией MIT, подробнее в файле LICENSE.txt