BuslikDrev Опубликовано: апреля 14, 2018 Жалоба Поделиться Опубликовано: апреля 14, 2018 Всем добрый день, кто знает может ли попасть в индекс эта ссылка в скрипте? Скрытый текст <script type="text/javascript"><!-- $('input[name^=\'manufactursfilter\']').on('click', function() { manufactursfilter = []; $('input[name^=\'manufactursfilter\']:checked').each(function(element) { manufactursfilter.push(this.value); }); if (manufactursfilter != 0) { location = 'http://site.by/index.php?route=product/category&path=34_44&manufacturer_id=' + manufactursfilter.join('_'); } else if (manufactursfilter = []) { location = 'http://site.by/mp3-players/test12/' + manufactursfilter.join('_'); } }); //--></script> Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
markimax Опубликовано: апреля 14, 2018 Жалоба Поделиться Опубликовано: апреля 14, 2018 Вообще Google научился давно исполнять JS скрипты Ссылки так точно "выкусит" и проиндексирует (причем возможно в нелицеприятном виде 'http://site.by/index.php?route=product/category&path=34_44&manufacturer_id=") ajax хорошо индексирует А вот как поведет по .on('click', ... не известно. Может "кликнуть" и проиндексировать содержимое Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: апреля 14, 2018 Автор Жалоба Поделиться Опубликовано: апреля 14, 2018 17 минут назад, markimax сказал: Вообще Google научился давно исполнять JS скрипты Ссылки так точно "выкусит" и проиндексирует (причем возможно в нелицеприятном виде 'http://site.by/index.php?route=product/category&path=34_44&manufacturer_id=") ajax хорошо индексирует А вот как поведет по .on('click', ... не известно. Может "кликнуть" и проиндексировать содержимое Делаю фильтр и обеспокоился, не удаётся сделать там нормальную ссылку, но когда нажимаешь на производителя, то ссылка нормальная на деле: Код кнопки: <input id="checktyre" type="checkbox" name="manufactursfilter[]" value="<?php echo $manufacturer['manufacturer_id']; ?>" checked="checked" /> Если не применять &manufacturer_id а другое название, тогда ссылка тоже нормальная но не так как бы хотелось. Скрытый текст Первый вариант в контроллере: $filtermanufacturer = str_replace('amp;', '', $this->url->link('product/category', 'path=' . $get_path . '&filtermanufacturer=' . $url)); В шаблоне: location='https://site.by/ctegory/?filtermanufacturer='+manufactursfilter.join(',',$('input[type=checkbox]:checked').length); В браузере: https://site.by/ctegory/?filtermanufacturer=22,11,22 Второй вариант в контроллере: $filtermanufacturer = str_replace('amp;', '', $this->url->link('product/category', 'path=' . $get_path . '&manufacturer_id=' . $url)); В шаблоне: location='https://site.by/index.php?route=product/category&path=34_44&manufacturer_id='+manufactursfilter.join(',',$('input[type=checkbox]:checked').length); В браузере: https://site.by/category/manufacturer.html Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
markimax Опубликовано: апреля 14, 2018 Жалоба Поделиться Опубликовано: апреля 14, 2018 Ссылка вызова фильтрация должна совпадать с ссылкой категории + параметры Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: апреля 15, 2018 Автор Жалоба Поделиться Опубликовано: апреля 15, 2018 17 часов назад, markimax сказал: Ссылка вызова фильтрация должна совпадать с ссылкой категории + параметры Так уже делал как и в стандартном фильтре, но проблема в том, что тогда ссылка получается такой: Скрытый текст Третий вариант в контроллере: $data['action'] = str_replace('amp;', '', $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url)); В шаблоне до обработки браузером: location = '<?php echo $action; ?>&manufacturer_id=' + manufactursfilter.join('<?php if ($type_filter == 1) {echo ',';} else {echo '_';} ?>',$('input[type=checkbox]:checked').length); В шаблоне после обработки браузером: location='https://site.by/category/&manufacturer_id='+manufactursfilter.join('_',$('input[type=checkbox]:checked').length); В браузере url: https://site.by/manufacturer/category.html У меня созрел 4й вариант, формировать всю ссылку в контроллере (я так сделал формирование мета-title) т.к. фильтр обновляет страницу - можно осуществить его и тогда должна быть нормальная ссылка: Скрытый текст Четвёртый вариант в контроллере: $data['action'] = str_replace('amp;', '', $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&manufacturer_id=' . $manufacturer_id . $url)); В шаблоне до обработки браузером: location = '<?php echo $action; ?>'; В шаблоне после обработки браузером: location='https://site.by/category/manufacturer.html; В браузере url: https://site.by/category/manufacturer.html То есть полноценно будет формироваться ссылка через $this->url->link() Не вариант, буду думать, скорее нужно вмешиваться в seo_pro и seo_url. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: апреля 16, 2018 Автор Жалоба Поделиться Опубликовано: апреля 16, 2018 Вопрос решил так по третьему более рабочему варианту с ковырянием seo_pro (вместо manufacturer_id применил свой): Скрытый текст Также сделал, чтобы были прямые ссылки в окошках, но я запаривался, чтобы можно было выбрать несколько производителей с красивыми ссылками из фильтра при работе совместно с модулем подкатегории для производителей. Третий вариант pro в контроллере: $data['action'] = str_replace('&', '&', $this->url->link('product/category', 'path=' . $get_path . $url)); В шаблоне до обработки браузером: location = '<?php echo $action; ?>&filter_manufacturers=' + manufactursfilter.join('_',$('input[type=checkbox]:checked').length); В шаблоне после обработки браузером: location='https://site.by/category/&filter_manufacturers='+manufactursfilter.join('_',$('input[type=checkbox]:checked').length); В браузере url: https://site.by/category/manufacturer.html в seo_pro.php <file path="catalog/controller/{common,startup}/seo_pro.php"> <operation> <search trim="false" index="0"> <![CDATA[} elseif (isset($this->request->get['path'])) {]]> </search> <add position="replace"> <![CDATA[} elseif (isset($this->request->get['path']) && isset($this->request->get['filter_manufacturers'])) { $this->request->get['route'] = 'product/category' . (isset($this->request->get['path']) && isset($this->request->get['filter_manufacturers']) ? '&path=' . $this->request->get['path'] : ''); } elseif (isset($this->request->get['path'])) {]]> </add> </operation> <operation> <search trim="false" index="0"> <![CDATA[case 'product/category':]]> </search> <add position="replace"> <![CDATA[case 'product/category' . (isset($this->request->get['path']) && isset($this->request->get['filter_manufacturers']) ? '&path=' . $this->request->get['path'] : ''): if (isset($data['path'])) { $category = explode('_', $data['path']); $category = end($category); $data['path'] = $this->getPathByCategory($category); if (!$data['path']) return $link; } break; case 'product/category':]]> </add> </operation> <operation> <search trim="false" index="0"> <![CDATA[case 'path':]]> </search> <add position="replace"> <![CDATA[case 'filter_manufacturers': $filter_manufacturers = explode('_', $value); foreach ($filter_manufacturers as $manufacturer) { $queries[] = 'manufacturer_id=' . $manufacturer; } unset($data[$key]); $postfix = 1; break; case 'path':]]> </add> </operation> </file> Но почему при &manufacturer_id оно меняется местами с &path продолжу думать (искать). Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: декабря 5, 2018 Автор Жалоба Поделиться Опубликовано: декабря 5, 2018 Вопрос с manufacturer_id решил так: Скрытый текст В seo_pro.php Над этим: if(empty($queries)) { $queries[] = $route; } Добавить это: if (isset($this->request->get['path']) && isset($this->request->get['manufacturer_id'])) { sort($queries); } То есть задал сортировку параметрам при работе фильтра производителей в категориях. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.