Jump to content

Recommended Posts

Видел на просторах интернета данное решение за "бесплатно", если это требуется многим, готов поделиться своим решением, на безвозмездной основе. Отпишитесь 20 не однодневных пользователей и я выложу данное решение.

Link to post
Share on other sites

О чем вообще речь? Редирект из админки - редирект чего именно?

 

из панели управления назначать редиректы, без использования htaccess , например при переезде старого сайта на новый, потому что 1000 редиректов проблематично размещать htaccess 

Edited by xilt
Link to post
Share on other sites

из панели управления назначать редиректы, без использования htaccess , например при переезде старого сайта на новый, потому что 1000 редиректов проблематично размещать htaccess 

 

и вы хотите 1000 урл забить вручную? так это не делается....

 

для небольшого количества урл можно добавить функционал, и он не хитрый. а для переезда со старого движка все же надо автоматом формировать старые урл на новые и загонять все урл в базу или текстовый документ.

Edited by DaVinci
Link to post
Share on other sites

и вы хотите 1000 урл забить вручную? так это не делается....

 

для небольшого количества урл можно добавить функционал, и он не хитрый. а для переезда со старого движка все же надо автоматом формировать старые урл на новые и загонять все урл в базу или текстовый документ.

 

Согласен, можно доработать, прикрутить импорт/экспорт

Link to post
Share on other sites

Всегда найдется человек которому та или иная доработка потребуется, целесообразность уже будет выбирать сам человек который будет использовать данное решение. 

А по поводу 20 сообщений, какого содержания они должны были быть?Это попросту флуд. Если есть решение выкладывайте платно или бесплатно ваше право. Сообщения выше не касающихся темы я удаляю. 

Link to post
Share on other sites
  • Solution

Решение может не идеальное на 100%, но какое есть, если заметили неточности или кривизну сообщите подправлю. Также пишите предложения о улучшении, добавления функционала.

 

1. Копируем файлы  редирект.zip
Redirect.php - в папку api
RedirectsAdmin.php - в папку admin
RedirectAdmin.php - в папку admin
redirects.tpl - в папку admin/design/html/
redirect.tpl - в папку admin/design/html/
 
2. Подключаем их
api/Simpla.php - добавляем в конец функции private $classes = array( ...  это

 

,'redirect'   => 'Redirect'

 

api/Managers.php - добавляем в конец функции public $permissions_list = array( ...  это

 

,'redirect'

 

admin/IndexAdmin.php - добавляем в конец функции private $modules_permissions = array( ... это ,

 

,'RedirectsAdmin'      => 'redirect',    

'RedirectAdmin'       => 'redirect'

 

admin/design/html/manager.tpl - добавляем в конец списка {$perms = [ , это

 

,'redirect'   =>'Редирект'

 

в папке admin/design/html/ добавляем в файлах settings.tpl, currency.tpl, deliveries.tpl, payment_methods.tpl, managers.tpl, menu.tpl
в списке {capture name=tabs} добавляем это

 

{if in_array('redirect', $manager->permissions)}<li><a href="index.php?module=RedirectsAdmin">Редирект</a></li>{/if}

 

 
3. Создаем sql таблицу, запрос такой
CREATE TABLE IF NOT EXISTS `s_redirect` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(255) NOT NULL,
  `url_red` varchar(255) NOT NULL,
  `visible` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `enabled` (`visible`),
  KEY `url` (`url`),
  KEY `url_red` (`url_red`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `s_redirect` (`id`, `url`, `url_red`, `visible`) VALUES
(1, 'contact', '/', 1);

 

 
4. включаем редирект
в файле index.php в корне, вставляем
$uri=trim($_SERVER['REQUEST_URI'], '/');
$red = $view->redirect->get_redirect($uri);
if($uri==$red->url && $red->visible==1)
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$red->url_red);
exit;
}

    

 перед
    if(($res = $view->fetch()) !== false)
    {
    ...
    }
    else
    {
    ...
    }

    

5. Проверяем работоспособность...    
    
Edited by xilt
Link to post
Share on other sites

Спасибо, сделано очень аккуратно. Только в п.4 накручено лишнее. Куда проще вставить ОДИН раз в ОДНОМ месте:

$uri=trim($_SERVER['REQUEST_URI'], '/');
$red = $view->redirect->get_redirect($uri);
    if($uri==$red->url && $red->visible==1)
    {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: '.$red->url_red);
    exit;

    }

 


 

Link to post
Share on other sites
  • 9 months later...

Добрый день.

 

Не могу найти menu.tpl, помогите, пожалуйста. Куда добавить:

 

в папке admin/design/html/ добавляем в файлах settings.tpl, currency.tpl, deliveries.tpl, payment_methods.tpl, managers.tpl, menu.tpl

в списке {capture name=tabs} добавляем это
Link to post
Share on other sites

 

Добрый день.

 

Не могу найти menu.tpl, помогите, пожалуйста. Куда добавить:

 

в папке admin/design/html/ добавляем в файлах settings.tpl, currency.tpl, deliveries.tpl, payment_methods.tpl, managers.tpl, menu.tpl

в списке {capture name=tabs} добавляем это

 

 menu.tpl это дополнение, где можно созавать свои меню. в стандартной симпла его нет. можете пропускать этот файл

Link to post
Share on other sites
  • 5 years later...
В 10.03.2015 в 12:56, xilt сказал:

Решение может не идеальное на 100%, но какое есть, если заметили неточности или кривизну сообщите подправлю. Также пишите предложения о улучшении, добавления функционала.

 

1. Копируем файлы  редирект.zip
Redirect.php - в папку api
RedirectsAdmin.php - в папку admin
RedirectAdmin.php - в папку admin
redirects.tpl - в папку admin/design/html/
redirect.tpl - в папку admin/design/html/
 
2. Подключаем их
api/Simpla.php - добавляем в конец функции private $classes = array( ...  это

 


,'redirect'   => 'Redirect'

 

api/Managers.php - добавляем в конец функции public $permissions_list = array( ...  это

 


,'redirect'

 

admin/IndexAdmin.php - добавляем в конец функции private $modules_permissions = array( ... это ,

 


,'RedirectsAdmin'      => 'redirect',    

'RedirectAdmin'       => 'redirect'

 

admin/design/html/manager.tpl - добавляем в конец списка {$perms = [ , это

 


,'redirect'   =>'Редирект'

 

в папке admin/design/html/ добавляем в файлах settings.tpl, currency.tpl, deliveries.tpl, payment_methods.tpl, managers.tpl, menu.tpl
в списке {capture name=tabs} добавляем это

 


{if in_array('redirect', $manager->permissions)}<li><a href="index.php?module=RedirectsAdmin">Редирект</a></li>{/if}

 

 
3. Создаем sql таблицу, запрос такой

CREATE TABLE IF NOT EXISTS `s_redirect` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(255) NOT NULL,
  `url_red` varchar(255) NOT NULL,
  `visible` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `enabled` (`visible`),
  KEY `url` (`url`),
  KEY `url_red` (`url_red`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `s_redirect` (`id`, `url`, `url_red`, `visible`) VALUES
(1, 'contact', '/', 1);

 

 
4. включаем редирект
в файле index.php в корне, вставляем

$uri=trim($_SERVER['REQUEST_URI'], '/');
$red = $view->redirect->get_redirect($uri);
if($uri==$red->url && $red->visible==1)
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$red->url_red);
exit;
}

    

 перед

    if(($res = $view->fetch()) !== false)
    {
    ...
    }
    else
    {
    ...
    }

    

5. Проверяем работоспособность...    
    

Архив битый, не распаковывается.... Можете залить заново? Заранее благодарю.

Link to post
Share on other sites
  • 2 years later...
В 31.03.2023 в 16:15, Dmitry86 сказал:

Ни у кого не найдётся архива с файлами для этого решения?

тоже интересует.. вдруг у кого-нибудь остался?

Link to post
Share on other sites
4 часа назад, 6cnitymi сказал:

Можете поделиться, пожалуйста?

https://cloud.mail.ru/public/3GgG/vGbnbuykt

Возможно, вам потребуется вносить правки в зависимости от того, как у вас настроены общие редиректы в .htaccess

Не знаю, как было изначально задумано, но в админке я вношу url в следующем виде:

Откуда: catalog/razdel-1

Куда: /catalog/razdel

Именно так, и слэш в новом ur; должен стоять в начале. Думаю, разберетесь)

Link to post
Share on other sites
В 10.03.2015 в 13:37, Kors сказал:

Спасибо, сделано очень аккуратно. Только в п.4 накручено лишнее. Куда проще вставить ОДИН раз в ОДНОМ месте:


$uri=trim($_SERVER['REQUEST_URI'], '/');
$red = $view->redirect->get_redirect($uri);
    if($uri==$red->url && $red->visible==1)
    {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: '.$red->url_red);
    exit;

    }

 

 

Кстати, тут ещё можно добавить удаление всяких get-параметров, если нужно или они были раньше в ссылках:

$uri = trim(strtok($_SERVER['REQUEST_URI'], '?'), '/');

 

Link to post
Share on other sites
  • 4 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...