Тодор

Тодор

Был в сети 29 июня 2026, 13:05
Заказы не принимаю
На своих сайтах я всегда делаю вот такой плагин
<?php
switch ($modx->event->name) {
    case 'OnFileManagerUpload':
    	$generator = $modx->newObject('modResource');
    	$bases = $source->getBases($directory);
    	$fullPath = $bases['pathAbsolute'].ltrim($directory,'/');
    	$directory = $source->fileHandler->make($fullPath);
    	foreach ($files as $file) {
    		$ext = @pathinfo($file['name'],PATHINFO_EXTENSION);
    		rename($directory->getPath().$file['name'], $directory->getPath() . $generator->cleanAlias($file['name']));
    	}
	break;
    default: break;
}
return true;
Он для транслитерации всех загружаемых в админку файлов.
Для этого еще должен быть установлен пакет translit, и сист.настройка «friendly_alias_translit»=«russian»
В каждой форме сделайте инпути с разными name
<form id="form-1" method="post" action="">
    <input name="name-1" placeholder="Имя">
    <input name="phone-1" placeholder="Телефон">
    <button type="submit">Отправить</button>    
</form>
<form id="form-2" method="post" action="">
    <input name="name-2" placeholder="Имя">
    <input name="phone-2" placeholder="Телефон">
    <button type="submit">Отправить</button>    
</form>
<form id="form-3" method="post" action="">
    <input name="name-3" placeholder="Имя">
    <input name="phone-3" placeholder="Телефон">
    <button type="submit">Отправить</button>    
</form>
В связке FormIt и AjaxForm, submitVar можна не указывать.
И еще поставьте в &validate=`` хотя бы одно обязательное поле
$order = $modx->getObject('msOrder', ORDER_ID);
$address = $order->getOne('Address');

$address->set('city', "New York");
$address->set('street', "st.Metrofana 15");

$properties = array(
    'test' => htmlentities('My test properties field', ENT_COMPAT | ENT_HTML401,'UTF-8'),
    'test 2' => htmlentities('My test properties field2', ENT_COMPAT | ENT_HTML401,'UTF-8'),
);

$address->set('properties', json_encode($properties));
$address->save();
Можно также в сниппете установить плейсхолдер, и после обычного вызова сниппета проверять значение плейсхолдера
{'!mySnippet' | snippet}
{if $_modx->getPlaceholder('my_pls')}
    Мой плейсхолдер равен {$_modx->getPlaceholder('my_pls')}
{/if}
Сам сниппет
<?php
$modx->setPlaceholder('my_pls', 1);
Можна в форму поставить
<input name="note" type="hidden" value=""/>
И после выполнения твоих манипуляции записать значение note в input[name=«note»]
Либо можно написать hook который будет выполняться после успешной валидации формы.
В чанке где форма для коментариев должен бить следующий закоментирований код, которий отвечает за оформление капчи
<!--tickets_captcha
<div class="form-group">
    <label for="comment-captcha" id="comment-captcha">[[+captcha]]</label>
    <input type="text" name="captcha" value="" id="comment-captcha" class="form-control" />
</div>
-->
Спасибо, это помогло. Картинки появились в дереве ресурсов, но я их не могу вибрать в качестве значения для tv-шки. Если я нажимаю на папку images, то мне справа все равно показиваэтся содержимоє корня сайта