Автор Тема: Нахождение элемента подкатегории гл. гор. меню посредством JQ  (Прочитано 1076 раз)

08 Февраль 2017, 11:14:57
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
выполнение php-кода в шаблонах включил, код повешен в footer.tpl корневого каталога темы. сейчас попробовал в шаблоне такой код:
{php}
   echo  "<script> $('[href=\"https://mircom/svetodiodnye-lenty\"]').href = 'https://vk.com'; </script>";
{/php}
однако эффекта 0, консоль ошибок не выдаёт тоже
08 Февраль 2017, 11:18:20
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Не на всех серверах разрешено выполнение php кода в smarty.
Такое через literal делают, а не с php.
08 Февраль 2017, 11:23:48
Ответ #2
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
здесь всё разрешено :D
ну, мне php в любом случае понадобится, поскольку чтобы убрать циклическую ссылку, мне нужно получить текущий урл, его я получаю таким образом:
{$base_dir}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}в "боевом" режиме код выглядит примерно так:
{php}
echo "<script> var page = '{$base_dir}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}'; "
. "$('[href=\"http://localhost/svetodiodnye-lenty\"]').href = 'https://vk.com'; </script>";
{/php}
08 Февраль 2017, 11:31:48
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
{literal}...{/literal}{$base_dir}{literal}...или настраивай smarty под свои требования.
08 Февраль 2017, 12:09:17
Ответ #4
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
08 Февраль 2017, 12:44:04
Ответ #5
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
спасибо за совет - код стал выглядеть чище, но проблема основная всё ещё осталась - не находит нужный элемент.
{literal}
 <script>
    // будет использовано впоследствии. var page = "{/literal} {$base_dir}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''} {literal}";
    $('[href="http://localhost/svetodiodnye-lenty"]').href = 'https://vk.com';
 </script>
{/literal}
08 Февраль 2017, 12:50:55
Ответ #6
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
08 Февраль 2017, 13:50:22
Ответ #7
08 Февраль 2017, 14:25:05
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Можно, но ненужно. Облегчать поиск нужно. И сам же пишешь "код стал выглядеть чище". А сделаешь правильно, станет еще чище.
Если хочешь по атрибуту, то так
$("a[href='http://localhost/svetodiodnye-lenty']")...
08 Февраль 2017, 16:46:59
Ответ #9
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
здесь некак облегчить поиск, ибо единственное отличие этого элемента меню от других - href.
и я ведь так же и написал выше в примере, только кавычки в другом порядке)
08 Февраль 2017, 16:50:23
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Так, да не так. У тебя же не находит элемент. А у меня находит. И еще мой код быстрее, чем твой на порядок.
08 Февраль 2017, 17:04:33
Ответ #11
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
действительно, я сегодня более невнимательный, чем обычно :/
всё работает, как я и задумывал.
вот таким незамысловатым кодом убираю циклические ссылки в подкатегориях/категориях на сайте:
{literal}
 <script>
    var page = "{/literal}{$base_dir}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}{literal}";
    $('a[href="' + page + '"]').removeAttr('href');
    console.log(page);
 </script>
{/literal}