Проверка на дубль alias
Плагин добавляет последние две цифры id в alias при сохранении.
Подскажите, пожалуйста.
<?php
switch ($modx->event->name) {
case 'OnDocFormSave';
// Для ресурсов, использующих определённый шаблон
if ($resource->get('template') == 3) {
$generated = $resource->cleanAlias($resource->pagetitle);
$lasttwoid = substr($id, -2);
$aliasid = $generated .'-'. $lasttwoid;
$resource->set('alias', $aliasid);
$resource->save();
}
break;
}
А как сделать проверку и добавлять последние две цифры id не всем ресурсам, а только если такой alias уже существует у другого ресурса в том же контейнере?Подскажите, пожалуйста.
Комментарии: 6
Ну видимо проверить есть ли такой алиас уже или нет
<?php
switch ($modx->event->name) {
case 'OnDocFormSave';
// Для ресурсов, использующих определённый шаблон
if ($resource->get('template') == 3) {
$generated = $resource->cleanAlias($resource->pagetitle);
$tmp = $modx->getObject('modResource', array(
'parent' => $resource->get('parent'),
'alias' => $generated
));
if ($tmp) {
$lasttwoid = substr($id, -2);
$aliasid = $generated .'-'. $lasttwoid;
$resource->set('alias', $aliasid);
$resource->save();
}
}
break;
}
Спасибо, но с этим кодом все так же добавляет id всем ресурсам.
А так?
Вообще, при сохранении есть же проверка на дублирование и modx не даст создать 2 одинаковых алиаса.
Вообще, при сохранении есть же проверка на дублирование и modx не даст создать 2 одинаковых алиаса.
<?php
switch ($modx->event->name) {
case 'OnDocFormSave';
if ($resource->get('template') == 3) {
$alias = $resource->cleanAlias($resource->pagetitle);
$count = $modx->getCount('modResource', array(
'parent' => $resource->parent,
'alias' => $alias,
'id:NOT' => $id
));
if ($count > 0) {
$postfix = substr($id, -2);
$alias = $alias.'-'.$postfix;
$resource->set('alias', $alias);
$resource->save();
}
}
break;
}
Так тоже не хочет, пишет при сохранении «Ресурс с идентификатором 24 уже использует URI. Пожалуйста, введите уникальный псевдоним или используйте «Заморозить URI», чтобы вручную заменить его.»
MODX проверяет на дублирование, но у меня ресурсы автоматом создаются, надо избежать дублей.
MODX проверяет на дублирование, но у меня ресурсы автоматом создаются, надо избежать дублей.
С помощью компонента возможно найти дубликаты URL и там же устранить неисправность
mspre
mspre
Добрый день. Решили свою проблему? Тоже такой вопрос возник
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.