BUG 13400 "Adjuntar dos archivos con el mismo nombre en un correo." SOLVED

- Adjuntar dos archivos con el mismo nombre en un correo (PM v. 2.5.1).
- Problema resuelto:
  Se agrega un nuevo metodo "arrayDocumentAddElement" el cual permite validar el indice de un array, si los indices
  son iguales se diferenciara, si no lo son, se mantendra el mismo indice.

  El metodo recibe los siguientes parametros:
    > $arrayData: Array, valor de entrada, en donde contendra los nuevos datos.
    > $index: Nuevo nombre de indice
    > $value: Nuevo valor que contendra el indice
    > $suffix: Cadena que se concatenara al indice diferente por default es: "$suffix = Copy({i})"
               Ejemplo de cadena de concatenacio:
                       Fotografia Copy(1).jpg

      Nota.- Suffix es un parametro opcional como se muestra en los ejemplos y su aplicabilidad:

            arrayDocumentAddElement($array(), "notas.txt", "Notas de estudiantes");
            arrayDocumentAddElement($array(), "notas.txt", "Notas de estudiantes", " Numero de copias-({i})");
            arrayDocumentAddElement($array(), "notas.txt", "Notas de estudiantes", "");

    > La nueva funcion es:

    function arrayDocumentAddElement($arrayData, $index, $value, $suffix = " Copy({i})")
    {
        ...
    }

    Este metodo puede ser utilizado al momento de crear triggers en: DESIGNER>Triggers>New

  Disponible para la version 2.5.2
This commit is contained in:
Luis Fernando Saisa Lopez
2013-11-21 16:37:24 -04:00
parent de44707216
commit f5bb7d341a

View File

@@ -2796,3 +2796,44 @@ function PMFAddCaseNote($caseUid, $processUid, $taskUid, $userUid, $note, $sendM
}
}
/**
*@method
*
* Document Add Element array.
*
* @name arrayDocumentAddElement
* @label Add Element in Array
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#arrayDocumentAddElement.28.29
*
* @param array | $arrayData | Array that will contain new data | Array value comes where will contain the new data.
* @param string(32) | $index | Name of the index | New index name
* @param string(32) | $value | Index value | New value will contain the index
* @param string | $suffix = " Copy({i})" | Is suffix | A string that is concatenated to index different
* @return array | $arrayData | Array with new data | The array will contain the new data
*
*/
function arrayDocumentAddElement($arrayData, $index, $value, $suffix = " Copy({i})")
{
if (isset($suffix) && $suffix == "") {
$suffix = " Copy ({i})";
}
$newIndex = $index;
$count = 2;
$newIndexFormat = $index . $suffix;
if (preg_match("/^(.+)\.(.+)$/", $index, $arrayMatch)) {
$newIndexFormat = $arrayMatch[1] . $suffix . "." . $arrayMatch[2];
}
while (isset($arrayData[$newIndex])) {
$newIndex = str_replace("{i}", $count, $newIndexFormat);
$count = $count + 1;
}
$arrayData[$newIndex] = $value;
return $arrayData;
}