Skip to content

Instantly share code, notes, and snippets.

@beingsane
Forked from eddieajau/backend_edit_pages.xml
Created May 13, 2014 15:01
Show Gist options
  • Save beingsane/7e39a261703ee11dfb59 to your computer and use it in GitHub Desktop.
Save beingsane/7e39a261703ee11dfb59 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<snippets>
<category filters="*" id="category_1276571442053" initial_state="1" label="Backend Edit Pages" largeicon="" smallicon="">
<description><![CDATA[Snippets specifically for creating backend edit views.]]></description>
<item category="category_1276571442053" class="" editorclass="" id="item_1276505902148" label="Backend Item Subcontroller" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet adds the basic sub-controller for single item.]]></description>
<content><![CDATA[jimport('joomla.application.component.controllerform');
/**
* ${VIEW} Subcontroller.
*
* @package ${PACKAGE}
* @subpackage ${SUBPACKAGE}
* @since ${SINCE}
*/
class ${NAME}Controller${VIEW} extends JControllerForm
{
}]]></content>
<variable default="" id="name_1" name="PACKAGE">
<description><![CDATA[The API package.]]></description>
</variable>
<variable default="" id="name_2" name="SUBPACKAGE">
<description><![CDATA[The API subpackage.]]></description>
</variable>
<variable default="1.0" id="name_3" name="SINCE">
<description><![CDATA[The version this feature was added.]]></description>
</variable>
<variable default="" id="name_4" name="NAME">
<description><![CDATA[The proper case name of the component (without com_).]]></description>
</variable>
<variable default="" id="name_5" name="VIEW">
<description><![CDATA[The proper case name of the view.]]></description>
</variable>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276506088293" label="Backend Item Model" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet is for a backend item (singular) model that supports editing.]]></description>
<content><![CDATA[jimport('joomla.application.component.modeladmin');
/**
* ${MODEL} model.
*
* @package ${PACKAGE}
* @subpackage ${SUBPACKAGE}
* @since ${SINCE}
*/
class ${NAME}Model${MODEL} extends JModelAdmin
{
/**
* Method to get the ${MODEL} form.
*
* @param array $data An optional array of data for the form to interogate.
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
*
* @return JForm A JForm object on success, false on failure
* @since ${SINCE}
*/
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm(
$this->option.'.'.$this->name,
$this->getName(),
array('control' => 'jform', 'load_data' => $loadData)
);
if (empty($form)) {
return false;
}
return $form;
}
/**
* Method to get a ${MODEL}.
*
* @param integer $pk An optional id of the object to get, otherwise the id from the model state is used.
*
* @return mixed Category data object on success, false on failure.
* @since 1.6
*/
public function getItem($pk = null)
{
if ($result = parent::getItem($pk)) {
// Convert the created and modified dates to local user time for display in the form.
jimport('joomla.utilities.date');
$tz = new DateTimeZone(JFactory::getApplication()->getCfg('offset'));
if (intval($result->created_time)) {
$date = new JDate($result->created_time);
$date->setTimezone($tz);
$result->created_time = $date->toMySQL(true);
}
else {
$result->created_time = null;
}
if (intval($result->modified_time)) {
$date = new JDate($result->modified_time);
$date->setTimezone($tz);
$result->modified_time = $date->toMySQL(true);
}
else {
$result->modified_time = null;
}
}
return $result;
}
/**
* A protected method to get a set of ordering conditions.
*
* @param JTable $table A record object.
*
* @return array An array of conditions to add to add to ordering queries.
* @since ${SINCE}
*/
protected function getReorderConditions($table = null)
{
$condition = array(
'category_id = '.(int) $table->category_id
);
return $condition;
}
/**
* Returns a reference to the a Table object, always creating it.
*
* @param type $type The table type to instantiate
* @param string $prefix A prefix for the table class name.
* @param array $config Configuration array for model.
*
* @return JTable A database object
* @since ${SINCE}
*/
public function getTable($type = '${MODEL}', $prefix = '${NAME}Table', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
/**
* Method to get the data that should be injected in the form.
*
* @return mixed The data for the form.
* @since ${SINCE}
*/
protected function loadFormData()
{
// Check the session for previously entered form data.
$data = JFactory::getApplication()->getUserState($this->option.'.edit.'.$this->getName().'.data', array());
if (empty($data)) {
$data = $this->getItem();
}
return $data;
}
/**
* Prepare and sanitise the table prior to saving.
*
* @param JTable $table The table object for the record.
*
* @return boolean True if successful, otherwise false and the error is set.
* @since ${SINCE}
*/
protected function prepareTable($table)
{
jimport('joomla.filter.output');
// Prepare the alias.
$table->alias = JApplication::stringURLSafe($table->alias);
// If the alias is empty, prepare from the value of the title.
if (empty($table->alias)) {
$table->alias = JApplication::stringURLSafe($table->title);
}
if (empty($table->${PK})) {
// For a new record.
// Set ordering to the last item if not set
if (empty($table->ordering)) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('MAX(ordering)');
$query->from('#__${DBTABLE}');
$query->where('category_id = '.(int) $table->category_id);
$max = (int) $db->setQuery($query)->loadResult();
if ($error = $db->getErrorMsg()) {
$this->setError($error);
return false;
}
$table->ordering = $max + 1;
}
}
// Clean up keywords -- eliminate extra spaces between phrases
// and cr (\r) and lf (\n) characters from string
if (!empty($this->metakey)) {
// Only process if not empty.
// array of characters to remove.
$strip = array("\n", "\r", '"', '<', '>');
// Remove bad characters.
$clean = JString::str_ireplace($strip, ' ', $this->metakey);
// Create array using commas as delimiter.
$oldKeys = explode(',', $clean);
$newKeys = array();
foreach ($oldKeys as $key)
{
// Ignore blank keywords
if (trim($key)) {
$newKeys[] = trim($key);
}
}
// Put array back together, comma delimited.
$this->metakey = implode(', ', $newKeys);
}
}
}]]></content>
<variable default="" id="name_1" name="PACKAGE">
<description><![CDATA[The API package.]]></description>
</variable>
<variable default="" id="name_2" name="SUBPACKAGE">
<description><![CDATA[The API subpackage.]]></description>
</variable>
<variable default="1.0" id="name_3" name="SINCE">
<description><![CDATA[The version this feature was added.]]></description>
</variable>
<variable default="" id="name_4" name="NAME">
<description><![CDATA[The proper case name of the component (without com_).]]></description>
</variable>
<variable default="" id="name_5" name="MODEL">
<description><![CDATA[The proper case name of the model.]]></description>
</variable>
<variable default="" id="name_6" name="DBTABLE">
<description><![CDATA[The name of the database table which stores the record (without a prefix).]]></description>
</variable>
<variable default="id" id="name_7" name="PK">
<description><![CDATA[The name of the primary key in the database table.]]></description>
</variable>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276515761870" label="Backend Item XML Form" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet is the basic XML form that will support the edit view for a record. Modify the fields to suit the actual data schema used in the component.]]></description>
<content><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<!-- $Id$ -->
<form>
<fieldset>
<field name="${PK}"
type="text"
label="JGLOBAL_FIELD_ID_LABEL"
description ="JGLOBAL_FIELD_ID_DESC"
default="0"
class="readonly"
size="10"
readonly="true" />
<field name="category_id"
type="category"
extension="${OPTION}"
label="JCATEGORY"
description="JFIELD_CATEGORY_DESC"
default="0"
class="inputbox"
required="true">
<option value="0">JOPTION_NO_CATEGORY</option>
</field>
<field name="title"
type="text"
label="JGLOBAL_TITLE"
description="JFIELD_TITLE_DESC"
class="inputbox"
size="45"
required="true" />
<field name="alias"
type="text"
label="JFIELD_ALIAS_LABEL"
description="JFIELD_ALIAS_DESC"
class="inputbox"
size="45" />
<field name="body"
type="editor"
label="${OPTION}_FIELD_BODY_LABEL"
description="${OPTION}_FIELD_BODY_DESC"
class="inputbox"
filter="safehtml"
buttons="true" />
<field name="note"
type="text"
label="JFIELD_NOTE_LABEL"
description="JFIELD_NOTE_DESC"
class="inputbox"
size="45" />
<field name="published"
type="list"
label="JPUBLISHED"
description="JFIELD_PUBLISHED_DESC"
default="1"
class="inputbox"
filter="intval"
size="1">
<option value="1">
JPUBLISHED</option>
<option value="0">
JUNPUBLISHED</option>
<option value="2">
JARCHIVED</option>
<option value="-2">
JTRASHED</option>
</field>
<field name="ordering"
type="text"
label="JFIELD_ORDERING_LABEL"
description="JFIELD_ORDERING_DESC"
default="0"
class="inputbox"
size="6" />
<field name="access"
type="accesslevel"
label="JFIELD_ACCESS_LABEL"
description="JFIELD_ACCESS_DESC"
class="inputbox"
size="1" />
<field name="language"
type="contentlanguage"
label="JFIELD_LANGUAGE_LABEL"
description="JFIELD_FIELD_LANGUAGE_DESC"
default="*"
class="inputbox">
<option value="*">JALL</option>
</field>
<field name="metadesc"
type="textarea"
label="JFIELD_META_DESCRIPTION_LABEL"
description="JFIELD_META_DESCRIPTION_DESC"
class="inputbox"
rows="3"
cols="30" />
<field name="metakey"
type="textarea"
label="JFIELD_META_KEYWORDS_LABEL"
description="JFIELD_META_KEYWORDS_DESC"
class="inputbox"
rows="3"
cols="30" />
<field name="checked_out"
type="hidden"
filter="unset" />
<field name="checked_out_time"
type="hidden"
filter="unset" />
<field name="created_user_id"
type="hidden"
filter="unset" />
<field name="created_time"
type="text"
label="${OPTION}_FIELD_CREATED_TIME_LABEL"
description="${OPTION}_FIELD_CREATED_TIME_DESC"
class="readonly"
size="20"
readonly="true"
filter="unset" />
<field name="modified_user_id"
type="hidden"
filter="unset" />
<field name="modified_time"
type="text"
label="${OPTION}_FIELD_MODIFIED_TIME_LABEL"
description="${OPTION}_FIELD_MODIFIED_TIME_DESC"
class="readonly"
size="20"
readonly="true"
filter="unset" />
</fieldset>
<fields name="params">
<fieldset name="basic" label="${OPTION}_BASIC_PARAMS_FIELDSET_LABEL">
<field name="show_title"
type="list"
label="JGLOBAL_SHOW_TITLE_LABEL"
description="${OPTION}_PARAM_SHOW_TITLE_DESC">
<option value="">JGLOBAL_USE_GLOBAL</option>
<option value="0">JHIDE</option>
<option value="1">JSHOW</option>
</field>
</fieldset>
<fieldset name="advanced" label="${OPTION}_ADVANCED_PARAMS_FIELDSET_LABEL">
<field name="layout"
type="componentlayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_COMPONENT_LAYOUT_DESC"
extension="${OPTION}"
view="${LAYOUT_VIEW}" />
</fieldset>
</fields>
</form>
]]></content>
<variable default="" id="name_1" name="OPTION">
<description><![CDATA[The upper case option for the component (with com_).]]></description>
</variable>
<variable default="" id="name_2" name="LAYOUT_VIEW">
<description><![CDATA[The lower case name of the frontend view that displays this type of item.]]></description>
</variable>
<variable default="id" id="name_3" name="PK">
<description><![CDATA[The name of the primary key of the database table.]]></description>
</variable>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276513628360" label="Backend Item Edit View" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet adds the typical view class for a backend edit/single item view.]]></description>
<content><![CDATA[jimport('joomla.application.component.view');
/**
* ${NAME} view.
*
* @package ${PACKAGE}
* @subpackage ${SUBPACKAGE}
* @since ${SINCE}
*/
class ${NAME}View${VIEW} extends JView
{
/**
* @var JObject The data for the record being displayed.
* @since ${SINCE}
*/
protected $item;
/**
* @var JForm The form object for this record.
* @since ${SINCE}
*/
protected $form;
/**
* @var JObject The model state.
* @since ${SINCE}
*/
protected $state;
/**
* Prepare and display the ${VIEW} view.
*
* @return void
* @since ${SINCE}
*/
public function display()
{
// Intialiase variables.
$this->item = $this->get('Item');
$this->form = $this->get('Form');
$this->state = $this->get('State');
// Check for errors.
if (count($errors = $this->get('Errors'))) {
JError::raiseError(500, implode("\n", $errors));
return false;
}
$this->addToolbar();
parent::display();
}
/**
* Add the page title and toolbar.
*
* @return void
* @since ${SINCE}
*/
protected function addToolbar()
{
JRequest::setVar('hidemainmenu', true);
$user = JFactory::getUser();
$isNew = ($this->item->${PK} == 0);
$checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id'));
$canDo = ${NAME}Helper::getActions();
JToolBarHelper::title(
JText::_(
'COM_${NAME}_'.
($checkedOut
? 'VIEW_${VIEW}'
: ($isNew ? 'ADD_${VIEW}' : 'EDIT_${VIEW}')).'_TITLE'
)
);
// If not checked out, can save the item.
if (!$checkedOut && $canDo->get('core.edit')) {
JToolBarHelper::apply('${CONTROLLER_ITEM}.apply', 'JTOOLBAR_APPLY');
JToolBarHelper::save('${CONTROLLER_ITEM}.save', 'JTOOLBAR_SAVE');
JToolBarHelper::custom('${CONTROLLER_ITEM}.save2new', 'save-new.png', null, 'JTOOLBAR_SAVE_AND_NEW', false);
}
// If an existing item, can save to a copy.
if (!$isNew && $canDo->get('core.create')) {
JToolBarHelper::custom('${CONTROLLER_ITEM}.save2copy', 'save-copy.png', null, 'JTOOLBAR_SAVE_AS_COPY', false);
}
if (empty($this->item->${PK})) {
JToolBarHelper::cancel('${CONTROLLER_ITEM}.cancel', 'JTOOLBAR_CANCEL');
}
else {
JToolBarHelper::cancel('${CONTROLLER_ITEM}.cancel', 'JTOOLBAR_CLOSE');
}
}
}]]></content>
<variable default="" id="name_1" name="PACKAGE">
<description><![CDATA[The API package.]]></description>
</variable>
<variable default="" id="name_2" name="SUBPACKAGE">
<description><![CDATA[The API subpackage.]]></description>
</variable>
<variable default="1.0" id="name_3" name="SINCE">
<description><![CDATA[The version this feature was added.]]></description>
</variable>
<variable default="" id="name_4" name="NAME">
<description><![CDATA[The proper case name of the component (without com_).]]></description>
</variable>
<variable default="" id="name_5" name="VIEW">
<description><![CDATA[The proper case name of the view.]]></description>
</variable>
<variable default="" id="name_6" name="CONTROLLER_ITEM">
<description><![CDATA[The controller prefix to be used for individual items (like add and edit).]]></description>
</variable>
<variable default="id" id="name_7" name="PK">
<description><![CDATA[The name of the primary key of the database table.]]></description>
</variable>
<variable default="" id="name_8" name="STUB">
<description><![CDATA[Ignore this]]></description>
</variable>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276514564396" label="Backend Item Edit Layout" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet adds the typcial layout for a backend edit view.]]></description>
<content><![CDATA[//JHtml::addIncludePath(JPATH_COMPONENT.'helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('behavior.keepalive');
?>
<script type="text/javascript">
// Attach a behaviour to the submit button to check validation.
Joomla.submitbutton = function(task)
{
var form = document.id('${VIEW}-form');
if (task == '${VIEW}.cancel' || document.formvalidator.isValid(form)) {
<?php echo $this->form->getField('body')->save(); ?>
Joomla.submitform(task, form);
}
else {
<?php JText::script('COM_${NAME}_ERROR_N_INVALID_FIELDS'); ?>
// Count the fields that are invalid.
var elements = form.getElements('fieldset').concat(Array.from(form.elements));
var invalid = 0;
for (var i = 0; i < elements.length; i++) {
if (document.formvalidator.validate(elements[i]) == false) {
valid = false;
invalid++;
}
}
alert(Joomla.JText._('COM_${NAME}_ERROR_N_INVALID_FIELDS').replace('%d', invalid));
}
}
</script>
<form action="<?php echo JRoute::_('index.php?option=${OPTION}&layout=edit&id='.(int) $this->item->${PK}); ?>"
method="post" name="adminForm" id="${VIEW}-form" class="form-validate">
<div class="width-60 fltlft">
<fieldset class="adminform">
<ul class="adminformlist">
<li>
<?php echo $this->form->getLabel('title'); ?>
<?php echo $this->form->getInput('title'); ?>
</li>
<li>
<?php echo $this->form->getLabel('alias'); ?>
<?php echo $this->form->getInput('alias'); ?>
</li>
<li>
<?php echo $this->form->getLabel('category_id'); ?>
<?php echo $this->form->getInput('category_id'); ?>
</li>
<li>
<?php echo $this->form->getLabel('published'); ?>
<?php echo $this->form->getInput('published'); ?>
</li>
<li>
<?php echo $this->form->getLabel('ordering'); ?>
<?php echo $this->form->getInput('ordering'); ?>
</li>
<li>
<?php echo $this->form->getLabel('access'); ?>
<?php echo $this->form->getInput('access'); ?>
</li>
<li>
<?php echo $this->form->getLabel('language'); ?>
<?php echo $this->form->getInput('language'); ?>
</li>
<li>
<?php echo $this->form->getLabel('note'); ?>
<?php echo $this->form->getInput('note'); ?>
</li>
</ul>
<?php echo $this->form->getLabel('body'); ?>
<div class="clr"></div>
<?php echo $this->form->getInput('body'); ?>
</fieldset>
</div>
<div class="width-40 fltrt">
<?php echo JHtml::_('sliders.start','${VIEW}-sliders-'.$this->item->${PK}, array('useCookie' => 1)); ?>
<?php echo $this->loadTemplate('params'); ?>
<?php echo $this->loadTemplate('metadata'); ?>
</div>
<div class="clr"></div>
<input type="hidden" name="task" value="" />
<?php echo JHtml::_('form.token'); ?>
</form>]]></content>
<variable default="" id="name_1" name="NAME">
<description><![CDATA[The upper case name of the component (without COM_).]]></description>
</variable>
<variable default="" id="name_2" name="VIEW">
<description><![CDATA[The lower case name of the view.]]></description>
</variable>
<variable default="" id="name_3" name="OPTION">
<description><![CDATA[The lower case option for the component (with com_).]]></description>
</variable>
<variable default="id" id="name_4" name="PK">
<description><![CDATA[The primary key of the database table for the record.]]></description>
</variable>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276515026310" label="Backend Item Edit Params Sublayout" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet is for the record parameter/options sub-layout in a backend edit view.]]></description>
<content><![CDATA[$fieldSets = $this->form->getFieldsets('params');
foreach ($fieldSets as $name => $fieldSet) :
echo JHtml::_('sliders.panel',JText::_($fieldSet->label), $name.'-params');
if (isset($fieldSet->description) && trim($fieldSet->description)) :
echo '<p class="tip">'.$this->escape(JText::_($fieldSet->description)).'</p>';
endif;
?>
<fieldset class="panelform">
<ul class="adminformlist">
<?php foreach ($this->form->getFieldset($name) as $field) : ?>
<li>
<?php echo $field->label; ?>
<?php echo $field->input; ?>
</li>
<?php endforeach; ?>
</ul>
</fieldset>
<?php endforeach; ?>]]></content>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276515412425" label="Backend Item Edit Metadata Sublayout" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description><![CDATA[This snippet is for the record metadata sub-layout in a backend edit view.]]></description>
<content><![CDATA[echo JHtml::_('sliders.panel', JText::_('${OPTION}_METADATA_FIELDSET_LABEL'), 'metadata-options'); ?>
<fieldset class="panelform">
<ul class="adminformlist">
<li>
<?php echo $this->form->getLabel('metadesc'); ?>
<?php echo $this->form->getInput('metadesc'); ?>
</li>
<li>
<?php echo $this->form->getLabel('metakey'); ?>
<?php echo $this->form->getInput('metakey'); ?>
</li>
<?php if ($this->item->created_time) : ?>
<li>
<?php echo $this->form->getLabel('created_time'); ?>
<?php echo $this->form->getInput('created_time'); ?>
</li>
<?php endif; ?>
<?php if (intval($this->item->modified_time)) : ?>
<li>
<?php echo $this->form->getLabel('modified_time'); ?>
<?php echo $this->form->getInput('modified_time'); ?>
</li>
<?php endif; ?>
</ul>
</fieldset>]]></content>
<variable default="" id="name_1" name="OPTION">
<description><![CDATA[The lower case option for the component (with com_).]]></description>
</variable>
</item>
<item category="category_1276571442053" class="" editorclass="" id="item_1276600338336" label="Backend Item Edit INI Strings" largeicon="" smallicon="" snippetProvider="org.eclipse.wst.common.snippets.ui.TextSnippetProvider">
<description/>
<content><![CDATA[COM_${NAME}_ADD_${SINGULAR_UPPER}_TITLE="Add ${SINGULAR}"
COM_${NAME}_ADVANCED_PARAMS_FIELDSET_LABEL="Advanced Options"
COM_${NAME}_BASIC_PARAMS_FIELDSET_LABEL="Basic Options"
COM_${NAME}_EDIT_${SINGULAR_UPPER}_TITLE="Edit ${SINGULAR}"
COM_${NAME}_VIEW_${SINGULAR_UPPER}_TITLE="View ${SINGULAR}"
COM_${NAME}_FIELD_BODY_DESC="The body text of the ${SINGULAR} to display."
COM_${NAME}_FIELD_BODY_LABEL="${SINGULAR} Body"
COM_${NAME}_FIELD_CREATED_TIME_DESC="The time this item was created."
COM_${NAME}_FIELD_CREATED_TIME_LABEL="Created"
COM_${NAME}_FIELD_MODIFIED_TIME_DESC="The time this item was modified."
COM_${NAME}_FIELD_MODIFIED_TIME_LABEL="Modified"
COM_${NAME}_METADATA_FIELDSET_LABEL="Metadata"
COM_${NAME}_ERROR_N_INVALID_FIELDS="You have %d invalid field(s)."
COM_${NAME}_ERROR_${SINGULAR_UPPER}_TITLE="The ${SINGULAR} record needs a title."
COM_${NAME}_${SINGULAR_UPPER}_FILTER_SEARCH_DESC="Search in ${SINGULAR} title."
]]></content>
<variable default="" id="name_1" name="NAME">
<description><![CDATA[The upper case name of the component (without COM_).]]></description>
</variable>
<variable default="" id="name_2" name="SINGULAR">
<description><![CDATA[The proper case singular form of the item being actioned.]]></description>
</variable>
<variable default="" id="name_3" name="SINGULAR_UPPER">
<description><![CDATA[The upper case singular form of the item being actioned.]]></description>
</variable>
</item>
</category>
</snippets>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment