COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

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


BuslikDrev

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 продолжу думать (искать).

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

  • 7 months later...

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

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

В seo_pro.php

Над этим:

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

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

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


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

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

Join the conversation

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

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

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