markimax Опубліковано: 8 вересня 2014 Share Опубліковано: 8 вересня 2014 Может кто сталкивался с такой проблемой? (не знаю даже куда обращаться, но обычно разработчики здесь тусуются ;) ) Надо получить ЧПУ для front-a из админ. части. Без костылей никак не выходит... Дело в том что в админ. части нет ЧПУ и ЧПУ формирователя. А у разных формирователей разные правила. Например в SEO PRO ЧПУ может заканчивать .html и слешем и т.п. в других. И если делать $this->url->link('product/product','&product_id=1'); То получиться .../admin/index.php?route=product/product&product_id=1 в отличии допустим от поля SEO URL tovar-1 и должно быть ../tovar-1.html или /tovar-1/ или /tovar-1 в зависимости от формирователя Костыль то я нашел как получить, но это костыль... Может у кого-то была такая проблема и он её решил без костылей? Просто костылем не очень красиво. Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 8 вересня 2014 Share Опубліковано: 8 вересня 2014 Не сталкивался, но могу предположить..Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 8 вересня 2014 Share Опубліковано: 8 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Вызов из админки, поэтому существующий экземпляр класса URL не покатит. Надо создать новый: $urlToCatalog = new Url(HTTP_CATALOG, $config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($some_route); Код не проверял P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) 1 Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Так и сделал, гонял ссылку во front, там получал ответ от контроллера с обработанной. Но как и писал, это костыль, в принципе для обработки одной ссылки сойдет Но как то костыльно выглядит. Вот и спросил, может кто-то изобрел что-то получше P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) Там в 99% нубовские вопросы, поэтому действительно сложные проблемы и приходиться обсуждать в курилке, загнали разрабов как обычно в курилку для обсуждения :) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 Не сталкивался, но могу предположить.. Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sv2109 Опубліковано: 8 вересня 2014 Share Опубліковано: 8 вересня 2014 Не сталкивался, но могу предположить..Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 8 вересня 2014 Share Опубліковано: 8 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Вызов из админки, поэтому существующий экземпляр класса URL не покатит. Надо создать новый: $urlToCatalog = new Url(HTTP_CATALOG, $config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($some_route); Код не проверял P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) 1 Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Так и сделал, гонял ссылку во front, там получал ответ от контроллера с обработанной. Но как и писал, это костыль, в принципе для обработки одной ссылки сойдет Но как то костыльно выглядит. Вот и спросил, может кто-то изобрел что-то получше P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) Там в 99% нубовские вопросы, поэтому действительно сложные проблемы и приходиться обсуждать в курилке, загнали разрабов как обычно в курилку для обсуждения :) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 Не сталкивался, но могу предположить.. Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
afwollis Опубліковано: 8 вересня 2014 Share Опубліковано: 8 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Вызов из админки, поэтому существующий экземпляр класса URL не покатит. Надо создать новый: $urlToCatalog = new Url(HTTP_CATALOG, $config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($some_route); Код не проверял P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) 1 Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Так и сделал, гонял ссылку во front, там получал ответ от контроллера с обработанной. Но как и писал, это костыль, в принципе для обработки одной ссылки сойдет Но как то костыльно выглядит. Вот и спросил, может кто-то изобрел что-то получше P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) Там в 99% нубовские вопросы, поэтому действительно сложные проблемы и приходиться обсуждать в курилке, загнали разрабов как обычно в курилку для обсуждения :) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 Не сталкивался, но могу предположить.. Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Вызов из админки, поэтому существующий экземпляр класса URL не покатит. Надо создать новый: $urlToCatalog = new Url(HTTP_CATALOG, $config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($some_route); Код не проверял P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) 1 Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Так и сделал, гонял ссылку во front, там получал ответ от контроллера с обработанной. Но как и писал, это костыль, в принципе для обработки одной ссылки сойдет Но как то костыльно выглядит. Вот и спросил, может кто-то изобрел что-то получше P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) Там в 99% нубовские вопросы, поэтому действительно сложные проблемы и приходиться обсуждать в курилке, загнали разрабов как обычно в курилку для обсуждения :) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 Не сталкивался, но могу предположить.. Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 curl`ом или ajax`ом гоняешь в domain.tld/index.php?route=module/your_get_seolink_module с данными (POST), которые нужны для построения ссылки, например $route = 'product/product'; $args = '&product_id={product_id}';там делаешь $json = array(); $json['link'] = $this->url->link($this->request->post['route'],$this->request->post['args']); $this->response->setOutput(json_encode($json));в итоге получаешь нужную тебе ссылку. Так и сделал, гонял ссылку во front, там получал ответ от контроллера с обработанной. Но как и писал, это костыль, в принципе для обработки одной ссылки сойдет Но как то костыльно выглядит. Вот и спросил, может кто-то изобрел что-то получше P.S. До пользователи раздел разработки загадили, что чисто технический вопрос мы обсуждаем в курилке) Там в 99% нубовские вопросы, поэтому действительно сложные проблемы и приходиться обсуждать в курилке, загнали разрабов как обычно в курилку для обсуждения :) Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 Не сталкивался, но могу предположить.. Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 Не сталкивался, но могу предположить.. Какой именно модуль для ЧПУ используется можно получить как-то так: // код из index.php if (!$seo_type = $this->config->get('config_seo_url_type')) { $seo_type = 'seo_url'; } А зная модуль, можно попробовать его подключить напрямую и вызвать метод rewrite для нужного адреса. require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $seoUrl = new ControllerCommon . $seo_type ($this->registry); $new_url = $seoUrl->rewrite($url); Как-то так. Код примерный. Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Примерно так тоже пробовал Не покатило, ссылка будет вида /admin/.... :( Не забываем, что define('HTTP_SERVER', '..../admin/'); тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 тогда $url = str_replace('/admin', '', $url); просто, этот способ будет раз в 50 быстрее, чем если дергать контроллер каталога через аякс или курл, потому что тогда грузится весь опенкарт (все контроллеры, модели, конфиги, происходит десятки обращений к базе). Если нужно получить 1 ссылку это не проблема, но если нужно получить несколько десятков ссылок в цикле.. то процесс может подвиснуть на несколько минут. И так делал (тоже костыль получается), но тут проблема в другом, а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 markimax, мой вариант подошел? Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Надіслати Поділитися на інших сайтах More sharing options... sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sv2109 Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 а если не seo_pro и не seo_url и нет $seo_type = $this->config->get('config_seo_url_type') ? Мне надо универсальное решение для модуля, а у буржуев может стоять что угодно... это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. Надіслати Поділитися на інших сайтах More sharing options... cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV
cmd Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 Не работает route=product/product product_id=65 SEO URL этого продукта: sborka $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $correct_URL = $urlToCatalog->link($route, '&product_id=' . $this->data['product_id']); http: //.../index.php?route=product/product&product_id=65 :cry: Хм. Да... ну, есть через CURL дернуть, то ЧПУ сделает редирект :) Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам [Решено] ЧПУ для front-a из админ. части (проблема)
afwollis Опубліковано: 9 вересня 2014 Share Опубліковано: 9 вересня 2014 cmd, только если параметры GET`ом слать и что-то типа seo_pro. я потому и указал POST. Надіслати Поділитися на інших сайтах More sharing options... markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації Нужен модуль SEO URL Generator (автоматическое заполнение ЧПУ) для OpenCart 3xx Автор: Linaart, 10 серпня 2017 seo url seo чпу 7 відповідей 2 968 переглядів Linaart 10 серпня 2017 как настроить чпу для новостных страниц Автор: leedagang, 22 грудня 2016 seo чпу 1 відповідь 595 переглядів markimax 22 грудня 2016 Удаление вложенности категорий Автор: sml33, 3 серпня 2012 seo чпу 3 відповіді 1 569 переглядів defender 19 вересня 2013 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
markimax Опубліковано: 9 вересня 2014 Автор Share Опубліковано: 9 вересня 2014 это и есть универсальное решение, этот код используется в самом опенкарте для определения типа сео модуля. Абсолютно не важно что там будет, seo_url, seo_pro или seo_super_pro в каждом сео модуле есть функция rewrite которая на входе получает обычную ссылку, преобразует ее как-то (не важно как), а на выходе отдает преобразованную. Это все что нам нужно знать. Инкапсуляция + полиморфизм. насчет костыля, можно вместо жесткого удаления 'admin' взять разницу между HTTP_SERVER и HTTP_CATALOG на тот единичный случай, когда у кого-то админка находится не в 'admin' а по какому-то другому адресу. markimax, мой вариант подошел? Всем спасибо! Вопрос решен добавлением обьекта формирователя ЧПУ $urlToCatalog->addRewrite($seoUrl); // про addRewrite то забыли :) (особый респект cmd - жаль не могу поставить +) Полный код - можете пользовать в админ части $seo_type = $this->config->get('config_seo_url_type'); if (!$seo_type) { $seo_type = 'seo_url'; } require_once(DIR_CATALOG . 'controller/common/' . $seo_type . '.php'); $classSeo = 'ControllerCommon'.str_replace('_','',$seo_type); $seoUrl = new $classSeo($this->registry); $urlToCatalog = new Url(HTTP_CATALOG, $this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG); $urlToCatalog->addRewrite($seoUrl); $correct_URL = $urlToCatalog->link($route,$query); // seo_pro безжалостно "откусывает" схему и хост url, // а для админки надо, к примеру если ссылку послать по e-mail // (как же без "хоста" то пользователь перейдет по ссылке)! // думаю надо переделать эту часть seo pro как она была и как в seo url // чтобы не использовать костыль ниже $pos = strpos($correct_URL, 'http'); if ($pos === false) { $correct_URL = ($this->config->get('config_secure') ? HTTPS_CATALOG : HTTP_CATALOG).$correct_URL; } Проверено - уже работает в модуле Можно ставить [Решено] И тему перенести в "Разработки" Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts