<ul class="attached"> <li>...</li> <li>...</li> ... </ul>
$e = &$modx->Event;
switch($e->name)
{
case 'OnBeforeDocFormSave':
global $content;
if($_POST['attach_file'] && $_POST['attach_file'][0]<>''){
$attached_files='<ul class="attached">';
$attach_file=$_POST['attach_file'];
$attach_file_name=$_POST['attach_file_name'];
foreach ($attach_file as $key=>$value)
{
$attached_files .= "<li><a href=".$value.">".$attach_file_name[$key]."</a></li>";
}
$attached_files.='</ul>';
$_POST['ta'].=$attached_files;
}
break;
case 'OnDocFormRender':
global $content;
$output = '<script type="text/javascript">var $j = jQuery.noConflict(); $j(document).ready(function($)
{
attach="<div class=\"sectionHeader\">Присоединить файл</div>";
attach +="<div class=\"sectionBody tmplvars\">";
attach_field ="<p>";
attach_field +="<label for=\"attach_file_browser\">Путь файла</label> ";
attach_field +="<input id=\"attach_file\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"\" name=\"attach_file[0]\"/>";
attach_field +="<input id=\"attach_file_browser\" type=\"button\" onclick=\"BrowseFileServer(\'attach_file[0]\')\" value=\"Выбрать\"/>";
attach_field +=" <label for=\"attach_file_name\">Название файла</label> ";
attach_field +="<input id=\"attach_file_name\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"\" name=\"attach_file_name[0]\"/>";
attach_field +=" <a href=\"#\" id=\"add_attach_field\">Добавить поле</a> ";
attach_field +="</p>";
attach_end ="</div>";
jQuery(".sectionBody .sectionBody:eq(0)").after(attach+attach_field+attach_end);
jQuery("#add_attach_field").live("click",function(e){
number=0;
a=jQuery(this).parent().parent();
a.children().each(function(){number++;});
attach_field ="<p>";
attach_field +="<label for=\"attach_file_browser["+number+"]\">Путь файла</label> ";
attach_field +="<input id=\"attach_file\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"\" name=\"attach_file["+number+"]\"/>";
attach_field +="<input id=\"attach_file_browser["+number+"]\" type=\"button\" onclick=\"BrowseFileServer(\'attach_file["+number+"]\')\" value=\"Выбрать\"/>";
attach_field +=" <label for=\"attach_file_name["+number+"]\">Название файла</label> ";
attach_field +="<input id=\"attach_file_name["+number+"]\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"\" name=\"attach_file_name["+number+"]\"/>"
attach_field +=" <a href=\"#\" id=\"add_attach_field\">Добавить поле</a> ";
attach_field +="</p>";
jQuery(this).parent().parent().append(attach_field);
return false;});
});</script>';
$e->output($output);
break;
}
<ul class="attached">и сгенерировать поля с уже вставленными файлами.


$e = &$modx->Event;
switch($e->name)
{
case 'OnBeforeDocFormSave':
global $content;
function fileSizeText($fileSize) {
if ($fileSize == 0) $returnVal = '0 bytes';
else if ($fileSize > 1024*1024*1024) $returnVal = (ceil($fileSize/(1024*1024*1024)*100)/100) . ' GB';
else if ($fileSize > 1024*1024) $returnVal = (ceil($fileSize/(1024*1024)*100)/100) . ' MB';
else if ($fileSize > 1024) $returnVal = (ceil($fileSize/1024*100)/100) . ' kB';
else $returnVal = $fileSize . ' B';
return $returnVal;
}
if($_POST['attach_file'] && $_POST['attach_file'][0]<>''){
$attached_files='<ul class="attached">';
$attach_file=$_POST['attach_file'];
$attach_file_name=$_POST['attach_file_name'];
foreach ($attach_file as $key=>$value)
{
if (!empty($value))
{
if ($attach_file_name[$key]=='') $attach_file_name[$key]=preg_replace("'.*?/'", '', $value);
$attached_files .= '<li id="attached_file"><a href="'.$value.'">'.$attach_file_name[$key].'</a><span>('.fileSizeText(filesize($modx->config['base_path'].$value)).')</span></li>';
}
}
$attached_files.='</ul>';
$_POST['ta'].=$attached_files;
$content.=$attached_files;
}
break;
case 'OnDocFormPrerender':
global $content;
/*echo "<pre>";
print_r ($content);
echo "</pre>";*/
//$content['content'].="dsf";
preg_match_all("/<li id=\"attached_file\">.*?(href[= = ])(.*?)(>)(.*?)(<\/a>+)/sim",$content['content'],$attached);
$content['content']= preg_replace("'<ul class=\"attached\">.*?<\/ul>'im", '', $content['content']);
$attach_file=$attached[2];
$attach_file_name=$attached[4];
$output = '<script type="text/javascript">var $j = jQuery.noConflict(); $j(document).ready(function($)
{
jQuery("ul.attached").remove();
attach="<div class=\"sectionHeader\">Присоединить файл</div>";
attach +="<div class=\"sectionBody tmplvars\">";
attach_field ="";';
for ($i=0; $i<=sizeof($attach_file);$i++)
{
$output .= 'attach_field +="<p rel=\"'.$i.'\">";
attach_field +="<label for=\"attach_file_browser['.$i.']\">Путь файла</label> ";
attach_field +="<input id=\"attach_file['.$i.']\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"'.str_replace('"','',$attach_file[$i]).'\" name=\"attach_file['.$i.']\" />";
attach_field +="<input id=\"attach_file_browser['.$i.']\" type=\"button\" onclick=\"BrowseFileServer(\'attach_file['.$i.']\')\" value=\"Выбрать\"/>";
attach_field +=" <label for=\"attach_file_name['.$i.']\">Название файла</label> ";
attach_field +="<input id=\"attach_file_name['.$i.']\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"'.htmlspecialchars($attach_file_name[$i]).'\" name=\"attach_file_name['.$i.']\"/>";
attach_field +=" <a href=\"#\" id=\"add_attach_field\">Добавить поле</a> ";
attach_field +=" <a href=\"#\" id=\"delete_attach_field\">Удалить поле</a> ";
attach_field +="</p>";';
}
$output .= 'attach_end ="</div>";
jQuery(".sectionBody .sectionBody:eq(0)").after(attach+attach_field+attach_end);
jQuery("#add_attach_field").live("click",function(e){
number=0;
a=jQuery(this).parent().parent();
var number= parseInt(a.children("p:last").attr("rel"))+1;
attach_field ="<p rel=\""+number+"\">" ;
attach_field +="<label for=\"attach_file_browser["+number+"]\">Путь файла</label> ";
attach_field +="<input id=\"attach_file\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"\" name=\"attach_file["+number+"]\"/>";
attach_field +="<input id=\"attach_file_browser["+number+"]\" type=\"button\" onclick=\"BrowseFileServer(\'attach_file["+number+"]\')\" value=\"Выбрать\"/>";
attach_field +=" <label for=\"attach_file_name["+number+"]\">Название файла</label> ";
attach_field +="<input id=\"attach_file_name["+number+"]\" type=\"text\" onchange=\"documentDirty=true;\" style=\"width: 200px;\" value=\"\" name=\"attach_file_name["+number+"]\"/>"
attach_field +=" <a href=\"#\" id=\"add_attach_field\">Добавить поле</a> ";
attach_field +=" <a href=\"#\" id=\"delete_attach_field\">Удалить поле</a> ";
attach_field +="</p>";
jQuery(this).parent().parent().append(attach_field);
return false;});
jQuery("#delete_attach_field").live("click",function(e){
jQuery(this).parent().remove();
return false;});
});</script>';
$e->output($output);
break;
}