BuslikDrev

Индексируются ли ссылки в скриптах js?

Recommended Posts

Всем добрый день, кто знает может ли попасть в индекс эта ссылка в скрипте?

Скрытый текст

<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>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще Google научился давно исполнять JS скрипты
Ссылки так точно "выкусит" и проиндексирует (причем возможно в нелицеприятном виде 'http://site.by/index.php?route=product/category&path=34_44&manufacturer_id=")
ajax хорошо индексирует

А вот как поведет по .on('click', ...  не известно. Может "кликнуть" и проиндексировать содержимое

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос решил так по третьему более рабочему варианту с ковырянием seo_pro (вместо manufacturer_id применил свой):

Скрытый текст

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

 

Третий вариант pro

в контроллере:

$data['action'] = str_replace('&amp;', '&', $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 продолжу думать (искать).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос с manufacturer_id решил так:

Скрытый текст

В seo_pro.php

Над этим:

        if(empty($queries)) {
            $queries[] = $route;
        }

Добавить это:

        if (isset($this->request->get['path']) && isset($this->request->get['manufacturer_id'])) {
            sort($queries);
        }


То есть задал сортировку параметрам при работе фильтра производителей в категориях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу