$yform->setObjectparams('getdata', true); $yform->setValueField('text', ['yrewrite_url', $addon->i18n('customurl'), 'notice' => $autoUrl]); $yform->setValidateField('customfunction', ['name' => 'yrewrite_url', 'function' => function ($func, $yrewrite_url) { return substr($yrewrite_url, 0, 1) == '/' || substr($yrewrite_url, -1) == '/'; }, 'params' => [], 'message' => rex_i18n::msg('yrewrite_warning_noslash')]); $yform->setValidateField('customfunction', ['name' => 'yrewrite_url', 'function' => function ($func, $yrewrite_url) { return strlen($yrewrite_url) > 250; }, 'params' => [], 'message' => rex_i18n::msg('yrewrite_warning_nottolong')]); $yform->setValidateField('customfunction', ['name' => 'yrewrite_url', 'function' => function ($func, $yrewrite_url) { if ($yrewrite_url == "") { return false; } return !preg_match('/^[%_\\.+\\-\\/a-zA-Z0-9]+$/', $yrewrite_url); }, 'params' => [], 'message' => rex_i18n::msg('yrewrite_warning_chars')]); $yform->setValidateField('customfunction', ['name' => 'yrewrite_url', 'function' => function ($func, $yrewrite_url, $params, $field) { $return = ($a = rex_yrewrite::getArticleIdByUrl($params["domain"], $yrewrite_url)) && (key($a) != $params["article_id"] || current($a) != $params["clang"]); if ($return && $yrewrite_url != "") { $field->setElement("message", rex_i18n::msg('yrewrite_warning_urlexists', key($a))); } else { $return = false; } return $return; }, 'params' => ['article_id' => $article_id, "domain" => $domain, "clang" => $clang], 'message' => rex_i18n::msg('yrewrite_warning_urlexists')]); $yform->setActionField('db', [rex::getTable('article'), 'id=' . $article_id . ' and clang_id=' . $clang]); $yform->setObjectparams('submit_btn_label', $addon->i18n('update_url')); $form = $yform->getForm(); if ($yform->objparams['actions_executed']) { $form = rex_view::success($addon->i18n('urlupdated')) . $form; rex_yrewrite::generatePathFile(['id' => $article_id, 'clang' => $clang, 'extension_point' => 'ART_UPDATED']); rex_article_cache::delete($article_id, $clang); } else {