Подскановка id в поле alias.
Есть сниппет. Он создает документ.
Сейчас alias формируется из tv+рандом. Как сделать так чтобы в alias подставлялся id документа который был создан.
Код сниппета:
Сейчас alias формируется из tv+рандом. Как сделать так чтобы в alias подставлялся id документа который был создан.
Код сниппета:
<?php
$profile = $modx->user->getOne('Profile');
$userid = $profile ? $profile->get('id') : '';
// Сниппет будет получать данные из формы методом POST
$title = $_POST['title'];
$content = $_POST['message'];
$introtext = $_POST['introtext'];
$description = $_POST['description'];
$parent = $_POST['parent'];
$template = $_POST['template'];
$user_id = $_POST['user_id'];
$publishedon = date('Y-m-d H:i:s');
// Если некоторые значения не будут указаны,
// они будут установлены по умолчанию
if (!$introtext) $introtext = $title;
if (!$description) $description = $introtext;
if (!$parent) $parent = 6;
if (!$template) $template = 6;
// Создаем ресурс
$newResource = $modx->newObject('modResource');
$permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$alias = $userid.'-'.substr(str_shuffle($permitted_chars), 0, 32);
// Заполняем нужные значения
$newResource->set('pagetitle',$title);
$newResource->set('longtitle',$title);
$newResource->set('description',$description);
$newResource->set('introtext',$introtext);
$newResource->set('content',$content);
$newResource->set('alias',$alias);
$newResource->set('template',$template);
$newResource->set('published',1);
$newResource->set('parent',$parent);
$newResource->set('publishedon',$publishedon);
$id = $newResource->get('id');
// Сохраняем ресурс
if ($newResource->save()) {
// Очищаем кеш, чтобы изменения были видны сразу
$modx->cacheManager->clearCache();
}
$newResource->setTVValue('user_id', $user_id);
$newResource->setTVValue('project_status', '<span class="badge badge-primary">Відкритий</span>');
return true;
Поблагодарить автора
Отправить деньги
Комментарии: 3
// Сохраняем ресурс
if ($newResource->save()) {
$newResource->set('alias', $newResource->get('id'));
$newResource->save()
// Очищаем кеш, чтобы изменения были видны сразу
$modx->cacheManager->clearCache();
}
Не работает.
А не, работает. Спасибо большое.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.