path_set_alias
modules/path/path.module, строка 87
- Версии
- 5
path_set_alias($path = NULL, $alias = NULL, $pid = NULL)
- 6
path_set_alias($path = NULL, $alias = NULL, $pid = NULL, $language = '')
Устанавливает синоним для заданного пути Drupal'а, предотвращая повторения.
Код
<?php
function path_set_alias($path = NULL, $alias = NULL, $pid = NULL, $language = '') {
$path = urldecode($path);
$alias = urldecode($alias);
// First we check if we deal with an existing alias and delete or modify it based on pid.
if ($pid) {
// An existing alias.
if (!$path || !$alias) {
// Delete the alias based on pid.
db_query('DELETE FROM {url_alias} WHERE pid = %d', $pid);
}
else {
// Update the existing alias.
db_query("UPDATE {url_alias} SET src = '%s', dst = '%s', language = '%s' WHERE pid = %d", $path, $alias, $language, $pid);
}
}
else if ($path && $alias) {
// Check for existing aliases.
if ($alias == drupal_get_path_alias($path, $language)) {
// There is already such an alias, neutral or in this language.
// Update the alias based on alias; setting the language if not yet done.
db_query("UPDATE {url_alias} SET src = '%s', dst = '%s', language = '%s' WHERE dst = '%s'", $path, $alias, $language, $alias);
}
else {
// A new alias. Add it to the database.
db_query("INSERT INTO {url_alias} (src, dst, language) VALUES ('%s', '%s', '%s')", $path, $alias, $language);
}
}
else {
// Delete the alias.
if ($alias) {
db_query("DELETE FROM {url_alias} WHERE dst = '%s'", $alias);
}
else {
db_query("DELETE FROM {url_alias} WHERE src = '%s'", $path);
}
}
drupal_clear_path_cache();
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии