Merge pull request #1151 from victorsl/BUG-9549

BUG 9549 "Posibilidad de copiar dynaforms" SOLVED
This commit is contained in:
julceslauhub
2013-01-03 11:50:43 -08:00
7 changed files with 448 additions and 126 deletions

View File

@@ -59,11 +59,14 @@ if ($dynUid == '') {
} else {
$aFields = $dynaform->load( $dynUid );
}
$aFields['PRO_UID'] = isset( $dynaform->Fields['PRO_UID'] ) ? $dynaform->Fields['PRO_UID'] : $_GET['PRO_UID'];
$aFields["PRO_UID"] = (isset($dynaform->Fields["PRO_UID"]))? $dynaform->Fields["PRO_UID"] : $_GET["PRO_UID"];
$aFields['ACTION'] = isset( $_GET['ACTION'] ) ? $_GET['ACTION'] : '';
//$aFields['READ_ONLY'] = ($_GET['ACTION']=='normal')?0:1;
$aFields["LANG"] = SYS_LANG;
G::LoadClass( 'xmlfield_InputPM' );
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'dynaforms/dynaforms_Edit', '', $aFields, SYS_URI . 'dynaforms/dynaforms_Save' );

View File

@@ -37,7 +37,6 @@ if (isset( $_POST['function'] )) {
}
if (isset( $sfunction ) && $sfunction == 'lookforNameDynaform') {
$snameDyanform = urldecode( $_POST['NAMEDYNAFORM'] );
$sPRO_UID = urldecode( $_POST['proUid'] );
@@ -69,7 +68,6 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameDynaform') {
print $flag;
} else {
$dynaform = new dynaform();
if (isset( $_POST['form'] )) {
$aData = $_POST['form']; //For old process map form
if ($aData['DYN_UID'] === '') {
@@ -91,18 +89,161 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameDynaform') {
}
//if ($aData['DYN_UID']==='') unset($aData['DYN_UID']);
$dynaform = new dynaform();
if (isset( $aData['DYN_UID'] )) {
if (isset($aData["DYN_UID"])) {
$dynaform->Save($aData);
} else {
if (! isset( $aData['ADD_TABLE'] ) || $aData['ADD_TABLE'] == "") {
switch ($aData["ACTION"]) {
case "copy":
$aData["DYN_TYPE"] = $aData["COPY_TYPE"];
$aData["DYN_TITLE"] = $aData["COPY_DYNAFORM_TITLE"];
$aData["DYN_DESCRIPTION"] = $aData["COPY_DYNAFORM_DESCRIPTION"];
$aFields = $dynaform->create($aData);
$dynaformUid = $dynaform->getDynUid();
//Copy files of the dynaform
$umaskOld = umask(0);
$fileXml = PATH_DYNAFORM . $aData["COPY_PROCESS_UID"] . PATH_SEP . $aData["COPY_DYNAFORM_UID"] . ".xml";
if (file_exists($fileXml)) {
$fileXmlCopy = PATH_DYNAFORM . $aData["PRO_UID"] . PATH_SEP . $dynaformUid . ".xml";
$fhXml = fopen($fileXml, "r");
$fhXmlCopy = fopen($fileXmlCopy, "w");
while (!feof($fhXml)) {
$strLine = fgets($fhXml, 4096);
$strLine = str_replace($aData["COPY_PROCESS_UID"] . "/" . $aData["COPY_DYNAFORM_UID"], $aData["PRO_UID"] . "/" . $dynaformUid, $strLine);
//Dynaform grid
preg_match_all("/<.*type\s*=\s*[\"\']grid[\"\'].*xmlgrid\s*=\s*[\"\']\w{32}\/(\w{32})[\"\'].*\/>/", $strLine, $arrayMatch, PREG_SET_ORDER);
foreach ($arrayMatch as $value) {
$copyDynaformGridUid = $value[1];
//Get data
$criteria = new Criteria();
$criteria->addSelectColumn(ContentPeer::CON_VALUE);
$criteria->add(ContentPeer::CON_ID, $copyDynaformGridUid);
$criteria->add(ContentPeer::CON_CATEGORY, "DYN_TITLE");
$criteria->add(ContentPeer::CON_LANG, SYS_LANG);
$rsCriteria = ContentPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$copyDynGrdTitle = $row["CON_VALUE"];
$criteria = new Criteria();
$criteria->addSelectColumn(ContentPeer::CON_VALUE);
$criteria->add(ContentPeer::CON_ID, $copyDynaformGridUid);
$criteria->add(ContentPeer::CON_CATEGORY, "DYN_DESCRIPTION");
$criteria->add(ContentPeer::CON_LANG, SYS_LANG);
$rsCriteria = ContentPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$copyDynGrdDescription = $row["CON_VALUE"];
//Create grid
$aDataAux = $aData;
$aDataAux["DYN_TYPE"] = "grid";
$aDataAux["DYN_TITLE"] = $copyDynGrdTitle;
$aDataAux["DYN_DESCRIPTION"] = $copyDynGrdDescription;
$dynaformGrid = new dynaform();
$aFields = $dynaformGrid->create($aDataAux);
$dynaformGridUid = $dynaformGrid->getDynUid();
$aDataAux["DYN_UID"] = $dynaformGridUid;
$dynaformGrid->update($aDataAux);
//Copy files of the dynaform grid
$fileGridXml = PATH_DYNAFORM . $aData["COPY_PROCESS_UID"] . PATH_SEP . $copyDynaformGridUid . ".xml";
if (file_exists($fileGridXml)) {
$fileGridXmlCopy = PATH_DYNAFORM . $aData["PRO_UID"] . PATH_SEP . $dynaformGridUid . ".xml";
$fhGridXml = fopen($fileGridXml, "r");
$fhGridXmlCopy = fopen($fileGridXmlCopy, "w");
while (!feof($fhGridXml)) {
$strLineAux = fgets($fhGridXml, 4096);
$strLineAux = str_replace($aData["COPY_PROCESS_UID"] . "/" . $copyDynaformGridUid, $aData["PRO_UID"] . "/" . $dynaformGridUid, $strLineAux);
fwrite($fhGridXmlCopy, $strLineAux);
}
fclose($fhGridXmlCopy);
fclose($fhGridXml);
chmod($fileGridXmlCopy, 0777);
}
$fileGridHtml = PATH_DYNAFORM . $aData["COPY_PROCESS_UID"] . PATH_SEP . $copyDynaformGridUid . ".html";
if (file_exists($fileGridHtml)) {
$fileGridHtmlCopy = PATH_DYNAFORM . $aData["PRO_UID"] . PATH_SEP . $dynaformGridUid . ".html";
copy($fileGridHtml, $fileGridHtmlCopy);
chmod($fileGridHtmlCopy, 0777);
}
$strLine = str_replace($aData["COPY_PROCESS_UID"] . "/" . $copyDynaformGridUid, $aData["PRO_UID"] . "/" . $dynaformGridUid, $strLine);
}
fwrite($fhXmlCopy, $strLine);
}
fclose($fhXmlCopy);
fclose($fhXml);
chmod($fileXmlCopy, 0777);
}
$fileHtml = PATH_DYNAFORM . $aData["COPY_PROCESS_UID"] . PATH_SEP . $aData["COPY_DYNAFORM_UID"] . ".html";
if (file_exists($fileHtml)) {
$fileHtmlCopy = PATH_DYNAFORM . $aData["PRO_UID"] . PATH_SEP . $dynaformUid . ".html";
copy($fileHtml, $fileHtmlCopy);
chmod($fileHtmlCopy, 0777);
}
umask($umaskOld);
break;
default:
//normal
//pmtable
if (!isset($aData["ADD_TABLE"]) || $aData["ADD_TABLE"] == "") {
$aFields = $dynaform->create($aData);
} else {
$aFields = $dynaform->createFromPMTable( $aData, $aData['ADD_TABLE'] );
$aFields = $dynaform->createFromPMTable($aData, $aData["ADD_TABLE"]);
}
$aData['DYN_UID'] = $dynaform->getDynUid();
break;
}
$aData["DYN_UID"] = $dynaform->getDynUid();
$dynaform->update($aData);
}
echo $dynaform->getDynUid();
}

View File

@@ -16,6 +16,7 @@
<en>Type
<option name="normal">Blank Dynaform</option>
<option name="pmtable">PM Table Dynaform</option>
<option name="copy">Copy/Import Dynaform</option>
</en>
</DYN_SOURCE>
@@ -31,22 +32,32 @@
<JS type="javascript">
<![CDATA[
function choseDynaformType( form, bOpen ) {
var action;
if (document.getElementsByName('form[DYN_SOURCE]')[0].checked) {
action = document.getElementsByName('form[DYN_SOURCE]')[0].value;
} else {
action = document.getElementsByName('form[DYN_SOURCE]')[1].value;
function choseDynaformType(form, bOpen)
{
var action = "";
if (document.getElementsByName("form[DYN_SOURCE]")[0].checked) {
action = document.getElementsByName("form[DYN_SOURCE]")[0].value;
}
panel = popupWindowObject('@G::LoadTranslation(ID_NEW_DYNAFORM)', '@G::encryptlink(@#dynaformsNewPlugin)?PRO_UID=@%PRO_UID&ACTION='+action , 450, 350);
if (document.getElementsByName("form[DYN_SOURCE]")[1].checked) {
action = document.getElementsByName("form[DYN_SOURCE]")[1].value;
}
if (document.getElementsByName("form[DYN_SOURCE]")[2].checked) {
action = document.getElementsByName("form[DYN_SOURCE]")[2].value;
}
panel = popupWindowObject("@G::LoadTranslation(ID_NEW_DYNAFORM)", "@G::encryptlink(@#dynaformsNewPlugin)?PRO_UID=@%PRO_UID&ACTION=" + action, 600, 460);
currentPopupWindow.remove();
}
function cancel(){
function cancel()
{
currentPopupWindow.remove();
}
]]>
</JS>
</dynaForm>

View File

@@ -26,7 +26,7 @@
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.ADD_TABLE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.ADD_TABLE}</td>
</tr>
<tr>
<tr id="title">
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$DYN_TITLE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.DYN_TITLE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.DYN_TITLE}</td>
@@ -36,19 +36,42 @@
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.DYN_TYPE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.DYN_TYPE}</td>
</tr>
<tr>
<tr id="description">
<td class="FormLabel" width="{$form_labelWidth}">{$DYN_DESCRIPTION}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.DYN_DESCRIPTION} </td> //-->
<td class="FormFieldContent"width="{$form_fieldContentWidth}">{$form.DYN_DESCRIPTION}</td>
</tr>
<tr id="normalform" style="display: none;" ><td></td>
<td class="FormButton" colspan="1" align="center">{$form.SAVE_DYNAFORM}&nbsp; &nbsp;{$form.SAVE_OPEN}&nbsp; &nbsp;{$form.BTN_CANCEL}</td>
<tr id="normalform" style="display: none;">
<td class="FormButton" colspan="2" align="center">{$form.SAVE_DYNAFORM}&nbsp;{$form.SAVE_OPEN}&nbsp;{$form.BTN_CANCEL}</td>
</tr>
<tr id="pmtableform" style="display: none;">
<td class="FormButton" colspan="2" align="center">{$form.CONTINUE}&nbsp;{$form.BTN_CANCEL}</td>
</tr>
<tr id="pmtableform" style="display: none;" ><td></td>
<td class="FormButton" colspan="1" align="center">{$form.CONTINUE}&nbsp; &nbsp;{$form.BTN_CANCEL}</td>
<!--Copy dynaform-->
<tr id="copyProcess" style="display: none;">
<td class="FormLabel" width="{$form_labelWidth}">{$COPY_PROCESS_UID}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.COPY_PROCESS_UID}</td>
</tr>
<tr id="copyType" style="display: none;">
<td class="FormLabel" width="{$form_labelWidth}">{$COPY_TYPE}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.COPY_TYPE}</td>
</tr>
<tr id="copyDynaform" style="display: none;">
<td class="FormLabel" width="{$form_labelWidth}"><span style="color: red;">*</span>&nbsp;{$COPY_DYNAFORM_UID}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.COPY_DYNAFORM_UID}</td>
</tr>
<tr id="copyDynTitle" style="display: none;">
<td class="FormLabel" width="{$form_labelWidth}"><span style="color: red;">*</span>&nbsp;{$COPY_DYNAFORM_TITLE}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.COPY_DYNAFORM_TITLE}</td>
</tr>
<tr id="copyDynDescription" style="display: none;">
<td class="FormLabel" width="{$form_labelWidth}">{$COPY_DYNAFORM_DESCRIPTION}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.COPY_DYNAFORM_DESCRIPTION}</td>
</tr>
<tr id="copyButton" style="display: none;">
<td class="FormButton" colspan="2" align="center">{$form.BTNCOPYSAVE}&nbsp;{$form.BTNCOPYSAVEOPEN}&nbsp;{$form.BTNCOPYCANCEL}</td>
</tr>
</tbody></table>
</td>
</tr>
@@ -61,3 +84,4 @@
</script>
</form>

View File

@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm
name="dynaforms_Edit"
type="xmlform"
width="100%" enableTemplate="1" >
<dynaForm name="dynaforms_Edit" type="xmlform" width="100%" enableTemplate="1">
<DYN_UID type="hidden" showInTable="0"/>
<ACTION type="hidden" showInTable="0"/>
<PRO_UID type="hidden" showInTable="0"/>
<LANG type="private"/>
<TITLE type="title" group="1">
<en>Dynaform Information</en>
@@ -48,36 +45,155 @@
<en>Cancel</en>
</BTN_CANCEL>
<!--Copy dynaform-->
<COPY_PROCESS_UID type="dropdown" dependentfields="COPY_DYNAFORM_UID">
<![CDATA[
SELECT PRO.PRO_UID, CON.CON_VALUE
FROM PROCESS AS PRO, CONTENT AS CON
WHERE PRO.PRO_UID = CON.CON_ID AND CON.CON_CATEGORY = 'PRO_TITLE' AND CON.CON_LANG = '@#LANG'
ORDER BY CON.CON_VALUE ASC
]]>
<en>
Process
<option name="">- Select a process -</option>
</en>
</COPY_PROCESS_UID>
<COPY_TYPE type="dropdown" dependentfields="COPY_DYNAFORM_UID">
<en>
Showing forms of type
<option name="xmlform">Normal</option>
<option name="grid">Grid</option>
</en>
</COPY_TYPE>
<COPY_DYNAFORM_UID type="dropdown" dependentfields="COPY_DYNAFORM_DESCRIPTION">
<![CDATA[
SELECT DYN.DYN_UID, CON.CON_VALUE
FROM DYNAFORM AS DYN, CONTENT AS CON
WHERE DYN.PRO_UID = '@#COPY_PROCESS_UID' AND DYN.DYN_TYPE = '@#COPY_TYPE' AND
DYN.DYN_UID = CON.CON_ID AND CON.CON_CATEGORY = 'DYN_TITLE' AND CON.CON_LANG = '@#LANG'
ORDER BY CON.CON_VALUE ASC
]]>
<en>
Dynaform to copy/import
<option name="">- Select a dynaform -</option>
</en>
</COPY_DYNAFORM_UID>
<COPY_DYNAFORM_TITLE type="text" size="48" maxlength="256" required="1">
<en>Title of the new dynaform</en>
</COPY_DYNAFORM_TITLE>
<COPY_DYNAFORM_DESCRIPTION type="textarea" rows="8" cols="45">
<![CDATA[
SELECT CON.CON_VALUE
FROM CONTENT AS CON
WHERE CON.CON_ID = '@#COPY_DYNAFORM_UID' AND CON.CON_CATEGORY = 'DYN_DESCRIPTION' AND CON.CON_LANG = '@#LANG'
]]>
<en>Description of the new dynaform</en>
</COPY_DYNAFORM_DESCRIPTION>
<BTNCOPYSAVE type="button" onclick="dynaformSave(this.form, false);">
<en><![CDATA[Copy/Import]]></en>
</BTNCOPYSAVE>
<BTNCOPYSAVEOPEN type="button" onclick="dynaformSave(this.form, true);">
<en><![CDATA[Copy/Import and Open]]></en>
</BTNCOPYSAVEOPEN>
<BTNCOPYCANCEL type="button" onclick="cancel();">
<en>Cancel</en>
</BTNCOPYCANCEL>
<JS type="javascript">
<![CDATA[
function checkDynaformSource()
{
var action = "@#ACTION";
getField('DYN_TITLE').form.onsubmit = function() {return false;};
switch (action) {
case "pmtable":
document.getElementById("pmtableform").style.display="";
document.getElementById("pmtabledrop").style.display="";
document.getElementById("normalform").style.display="none";
//document.getElementById("form[DYN_TYPE]").value = "xmlform";
break;
case "copy":
document.getElementById("title").style.display = "none";
document.getElementById("description").style.display = "none";
document.getElementById("form[TITLE]").innerHTML = "@G::LoadTranslation(ID_DYNAFORM_COPY)";
document.getElementById("copyProcess").style.display = "";
document.getElementById("copyType").style.display = "";
document.getElementById("copyDynaform").style.display = "";
document.getElementById("copyDynTitle").style.display = "";
document.getElementById("copyDynDescription").style.display = "";
document.getElementById("copyButton").style.display = "";
break;
default:
//normal
document.getElementById("normalform").style.display="";
document.getElementById("normalformdrop").style.display="";
document.getElementById("pmtableform").style.display="none";
break;
}
/*
if ("@#ACTION" == "normal"){
hideRow("ADD_TABLE");
hideRow("CONTINUE");
hideRow("PROCESS_VARIABLES");
hideRow("PRO_VAR_ASSIGN");
} else {
document.getElementById("form[DYN_TYPE]").value = "xmlform";
hideRow("DYN_TYPE");
}
*/
}
var cbocopyDynaformUid = getField("COPY_DYNAFORM_UID")
var txtcopyDynTitle = getField("COPY_DYNAFORM_TITLE");
leimnud.event.add(
getField("COPY_PROCESS_UID"),
"change",
function ()
{
txtcopyDynTitle.value = "";
}
);
leimnud.event.add(
getField("COPY_TYPE"),
"change",
function ()
{
txtcopyDynTitle.value = "";
}
);
leimnud.event.add(
cbocopyDynaformUid,
"change",
function ()
{
txtcopyDynTitle.value = "";
if (cbocopyDynaformUid.value != "") {
txtcopyDynTitle.value = cbocopyDynaformUid.options[cbocopyDynaformUid.selectedIndex].text;
}
}
);
txtcopyDynTitle.form.onsubmit = function () { return false; };
getField("DYN_TITLE").form.onsubmit = function () { return false; };
checkDynaformSource();
function checkDynaformSource(){
//alert('@#ACTION');
if ('@#ACTION'=='normal'){
document.getElementById('normalform').style.display='';
document.getElementById('normalformdrop').style.display='';
document.getElementById('pmtableform').style.display='none';
} else {
document.getElementById('pmtableform').style.display='';
document.getElementById('pmtabledrop').style.display='';
document.getElementById('normalform').style.display='none';
//document.getElementById('form[DYN_TYPE]').value = 'xmlform';
}
/*if ('@#ACTION'=='normal'){
hideRow('ADD_TABLE');
hideRow('CONTINUE');
hideRow('PROCESS_VARIABLES');
hideRow('PRO_VAR_ASSIGN');
} else {
document.getElementById('form[DYN_TYPE]').value = 'xmlform';
hideRow('DYN_TYPE');
}*/
}
leimnud.event.add(getField('DYN_TITLE'), 'blur', function()
{
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };
@@ -147,3 +263,4 @@ document.getElementById('form[DYN_TITLE]').value = document.getElementById('form
</JS>
</dynaForm>

View File

@@ -22,7 +22,7 @@
<js type="javascript" replaceTags="1"><![CDATA[
function dynaformAdd(){
popupWindow('@G::LoadTranslation(ID_NEW_DYNAFORM)', '@G::encryptlink(@#dynaformsChoseType)?PRO_UID=@%PRO_UID' , 500, 200);
popupWindow("@G::LoadTranslation(ID_NEW_DYNAFORM)", "@G::encryptlink(@#dynaformsChoseType)?PRO_UID=@%PRO_UID" , 500, 225);
//popupWindow('@G::LoadTranslation(ID_NEW_DYNAFORM)', '@G::encryptlink(@#dynaformsNewPlugin)?PRO_UID=@%PRO_UID' , 500, 350);
}
function dynaformPluginAdd(){
@@ -74,30 +74,52 @@
return document.getElementById(id);
}
function dynaformSave ( form, bOpen ) {
var nameDynaForm = getField('DYN_TITLE').value;
var proUid = getField('PRO_UID').value;
function dynaformSave(form, bOpen)
{
var nameDynaForm = "";
if(nameDynaForm==''){
// G_STRINGS.ID_REQUIRED_NAME_DYNAFORM
msgBox('@G::LoadTranslation(ID_REQUIRED_NAME_DYNAFORM)','alert');
var msgv = "";
var swv = 1;
switch (getField("ACTION").value) {
case "copy":
nameDynaForm = getField("COPY_DYNAFORM_TITLE").value;
if (getField("COPY_DYNAFORM_UID").value == "") {
msgv = msgv + ((msgv != "")? "<br />" : "") + "@G::LoadTranslation(ID_DYNAFORM_COPY_REQUIRED)";
swv = 0;
}
break;
default:
//normal
//pmtable
nameDynaForm = getField("DYN_TITLE").value;
break;
}
if (nameDynaForm == "") {
msgv = msgv + ((msgv != "")? "<br />" : "") + "@G::LoadTranslation(ID_REQUIRED_NAME_DYNAFORM)";
swv = 0;
}
if (swv == 0) {
msgBox(msgv, "alert");
return false;
}
reqName=ajax_function(form.action,'lookforNameDynaform','NAMEDYNAFORM='+encodeURIComponent(nameDynaForm)+'&proUid='+encodeURIComponent(proUid),'POST') ;
var reqName = ajax_function(form.action, "lookforNameDynaform", "NAMEDYNAFORM=" + encodeURIComponent(nameDynaForm) + "&proUid=" + encodeURIComponent(getField("PRO_UID").value), "POST");
if (!reqName) {
// alert(G_STRINGS.ID_EXIST_DYNAFORM);return false;
msgBox('@G::LoadTranslation(ID_EXIST_DYNAFORM)','alert');
msgBox("@G::LoadTranslation(ID_EXIST_DYNAFORM)", "alert");
} else {
if (!bOpen) {
ajax_post( form.action, form, 'POST' );
ajax_post(form.action, form, "POST");
lastPopupWindow.remove();
@#PAGED_TABLE_ID.refresh();
} else {
ajax_post( form.action, form, 'POST', openDynaform );
ajax_post(form.action, form, "POST", openDynaform);
}
}
}
function dynaformSavePMBasedForm ( form, bOpen ) {
@@ -152,3 +174,4 @@
<SEARCH_FILTER_FORM type="private"/>
</dynaForm>

View File

@@ -57,11 +57,13 @@
</TAS_SELFSERVICE_TIME_UNIT>
<TAS_SELFSERVICE_TRIGGER_UID type="dropdown" required="1">
<![CDATA[
SELECT TGR.TRI_UID, CON.CON_VALUE
FROM TRIGGERS AS TGR, CONTENT AS CON
WHERE TGR.PRO_UID = '@#PRO_UID' AND
TGR.TRI_UID = CON.CON_ID AND CON.CON_CATEGORY = 'TRI_TITLE' AND CON.CON_LANG = '@#LANG'
ORDER BY CON.CON_VALUE ASC
]]>
<en>
Trigger to execute
@@ -296,3 +298,4 @@ var insertFormVar = function(sFieldName, sValue) {
]]></JS>
</dynaForm>