76

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:
rebenn сказал:

Скажите, версия скрипта актуальна?

Версия скрипта актуальна.

Для анализа ситуации нужны хоть какие-то данные, хотя бы что возвращает скрипт /search/request.php (можно посмотреть в Firebug).

Спасибо вам и firebug, заработало! Однако в файле test.php не нашёл примера

Для добавления поля поиска на любых других страницах вашего сайта, воспользуйтесь примером формы из файла (search/test.php)

Как у вас http://php-myadmin.ru/search/ поиск по разделам сайта.
Подскажите как вставить на сайт страницу результатов поиска: дело в том, что www.site.ru/search не доступен, по причине конфигурации ЧПУ, но есть возможность создать страницу search.html и на ней выводить результаты. 
Ещё не работает "поиск на лету", с чем это связано?

77

Re: Скрипт поиска по сайту на основе Яндекс.XML

rebenn сказал:

Однако в файле test.php не нашёл примера

Там есть пример. Никуда он не мог деться.

rebenn сказал:

поиск по разделам сайта

Это вам надо самому сделать, сейчас скрипт ищет только по всему домену. Различие только в передаче радиокнопки и формирования соответствующего запроса. Например, у нас сделано так:
Поиск по домену: запрос << (domain:php-myadmin /+1 domain:ru)
Поиск по сайту: запрос << host:php-myadmin.ru
Поиск по форуму: запрос << host:forum.php-myadmin.ru

rebenn сказал:

Подскажите как вставить на сайт страницу результатов поиска

Пример показан в test.php.

rebenn сказал:

Ещё не работает "поиск на лету", с чем это связано?

Это у вас работать не будет. Выпадающие подсказки не связаны с Яндекс.XML и формируются совершенно отдельным образом.

78 (изменено: rebenn, 2011-10-23 19:05:28)

Re: Скрипт поиска по сайту на основе Яндекс.XML

Спасибо за подсказки. Я также изменил скрипт как вы описывали здесь, но смотрю лимит в 1000 остался и "Количество запросов сегодня" - растёт?

79

Re: Скрипт поиска по сайту на основе Яндекс.XML

rebenn сказал:

но смотрю лимит в 1000 остался

Надо связываться с модераторами Яндекса. Я здесь ничего сделать не могу.

80

Re: Скрипт поиска по сайту на основе Яндекс.XML

Добрый день.
Подскажите пожалуйста,  как сделать с переключением, поиск по сайту и поиск по региону?

81

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

Добрый день.
Подскажите пожалуйста,  как сделать с переключением, поиск по сайту и поиск по региону?

Может Вы поможете сделать это платно?

82

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

Подскажите пожалуйста,  как сделать с переключением, поиск по сайту и поиск по региону?

Я не понял на счет поиска по региону.

Переключение делается не сложно. Пример, как это реализовано у нас.
1) Добавляем на страницу радиокнопки:

    <label><input type="radio" name="part" id="search_part_domain" value="domain" checked="checked" />общий</label>
    <label><input type="radio" name="part" id="search_part_site" value="site" />по сайту</label>
    <label><input type="radio" name="part" id="search_part_forum" value="forum" />по форуму</label>

2) В функцию Search_onsubmit() (файл search.js) добавляем отправку выбранной радиокнопки.

    var part = 'domain';

    if (document.getElementById('search_part_site').checked) {
        part = 'site';
    } else if (document.getElementById('search_part_forum').checked) {
        part = 'forum';
    }
// далее...
        AjaxRequest('xml_case=search&query=' + encodeURIComponent(text.value) + '&part=' + part
            + '&page=' + page, 'Insert_Search');

3) Готовим массив в файле config.php. Теперь он имеет несколько более сложную структуру: domain - это поиск и по корневому домену и по всем поддоменам.

$aLocal['host'] = array(
    'domain' => '(rhost:ru.php-myadmin | rhost:ru.php-myadmin.*)',
    'site'   => 'host:php-myadmin.ru',
    'forum'  => 'host:forum.php-myadmin.ru'
);

4) Редактируем файл request.php.

// Проверяем наличие переменной $_POST['part'].
if (isset($_POST['query'], $_POST['xml_case'], $_POST['part'])
        && strlen($_POST['query']) > 2 && $_POST['xml_case'] == 'search'
        && array_key_exists($_POST['part'], $aLocal['host'])) {
    $aLocal['page'] = (isset($_POST['page']) && preg_match('/[1-9]\d{0,9}/', $_POST['page']))
        ? $_POST['page'] - 1 : 0;
    $aLocal['query'] = $_POST['query'];
    $sPost = '<?xml version="1.0" encoding="utf-8"?>' . "\n"
           . '<request>' . "\n"
           .   '<query>' . htmlspecialchars($aLocal['query'])
           .     ' &lt;&lt; ' . $aLocal['host'][$_POST['part']] . '</query>' . "\n"
           .   '<groupings>' . "\n"
           .     '<groupby attr="" mode="flat" groups-on-page="10" docs-in-group="1" />' . "\n"
           .   '</groupings>' . "\n"
           .   '<page>' . $aLocal['page'] . '</page>' . "\n"
           . '</request>';
    if ($sContents = L_cURL($sPost, $aLocal)) L_XML($sContents, $aLocal);
}

83

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:

Я не понял на счет поиска по региону.

Мне нужно только две вкладки, по сайту и если человек там ничего не нашел, поиск по региону) Так возможно?

84

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

Мне нужно только две вкладки, по сайту и если человек там ничего не нашел, поиск по региону) Так возможно?

Сделайте две радиокнопки, или вкладки. Скажите хоть в чем у вас затруднения.

Про поиск по региону я не понял. Попробуйте объяснить с примером.

85

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:
conard сказал:

Мне нужно только две вкладки, по сайту и если человек там ничего не нашел, поиск по региону) Так возможно?

Сделайте две радиокнопки, или вкладки. Скажите хоть в чем у вас затруднения.

Про поиск по региону я не понял. Попробуйте объяснить с примером.

вот так
http://s-posad.su/search/test.php

86

Re: Скрипт поиска по сайту на основе Яндекс.XML

Тогда делаем так:
1) Добавляем на страницу радиокнопки:

    <label><input type="radio" name="part" id="search_part_site" value="site" />по сайту</label>
    <label><input type="radio" name="part" id="search_part_region" value="region" />по региону</label>

2) В функцию Search_onsubmit() (файл search.js) добавляем отправку выбранной радиокнопки.

    var part = 'site';

    if (document.getElementById('search_part_region').checked) {
        part = 'region';
    }
// далее...
        AjaxRequest('xml_case=search&query=' + encodeURIComponent(text.value) + '&part=' + part
            + '&page=' + page, 'Insert_Search');

3) Готовим массив в файле config.php. Теперь он имеет несколько более сложную структуру.

// 10752 - код региона http://search.yaca.yandex.ru/geo.c2n
// 11000000 - смещение http://help.yandex.ru/search/?id=1111369
$aLocal['host'] = array(
    'region' => 'cat:' . (10752 + 11000000),
    'site'   => 'host:php-myadmin.ru' // Пропишите ваш домен.
);

4) Редактируем файл request.php.

// Проверяем наличие переменной $_POST['part'].
if (isset($_POST['query'], $_POST['xml_case'], $_POST['part'])
        && strlen($_POST['query']) > 2 && $_POST['xml_case'] == 'search'
        && array_key_exists($_POST['part'], $aLocal['host'])) {
    $aLocal['page'] = (isset($_POST['page']) && preg_match('/[1-9]\d{0,9}/', $_POST['page']))
        ? $_POST['page'] - 1 : 0;
    $aLocal['query'] = $_POST['query'];
    $sPost = '<?xml version="1.0" encoding="utf-8"?>' . "\n"
           . '<request>' . "\n"
           .   '<query>' . htmlspecialchars($aLocal['query'])
           .     ' &lt;&lt; ' . $aLocal['host'][$_POST['part']] . '</query>' . "\n"
           .   '<groupings>' . "\n"
           .     '<groupby attr="" mode="flat" groups-on-page="10" docs-in-group="1" />' . "\n"
           .   '</groupings>' . "\n"
           .   '<page>' . $aLocal['page'] . '</page>' . "\n"
           . '</request>';
    if ($sContents = L_cURL($sPost, $aLocal)) L_XML($sContents, $aLocal);
}

87

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:

host:php-

У меня ничего не получается))) Как мне узнать почту платной консультации????)

88

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

У меня ничего не получается))) Как мне узнать почту платной консультации????)

Свяжитесь по Skype. http://php-myadmin.ru/contacts/consultation.html

89

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:
conard сказал:

У меня ничего не получается))) Как мне узнать почту платной консультации????)

Свяжитесь по Skype. http://php-myadmin.ru/contacts/consultation.html

Спасибо большое за помощь. А как можно увидеть популярные запросы?

90

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

А как можно увидеть популярные запросы?

Популярные запросы выводятся на соответствующей странице: http://xml.yandex.ru/top.xml

Немного о запуске статистики популярных запросов можно посмотреть здесь: http://webmaster.ya.ru/replies.xml?item_no=11226

91

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:
conard сказал:

А как можно увидеть популярные запросы?

Популярные запросы выводятся на соответствующей странице: http://xml.yandex.ru/top.xml

Немного о запуске статистики популярных запросов можно посмотреть здесь: http://webmaster.ya.ru/replies.xml?item_no=11226

Там
Информация о показах отсутствует
А Количество запросов сегодня    14
Количество запросов за все время использования    359
В чем может быть дело?

92

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

В чем может быть дело?

Возможно статистика аккумулируется. Точно не могу сказать. Можно попробовать задать вопрос через обратную связь, там снизу есть ссылка.

93

Re: Скрипт поиска по сайту на основе Яндекс.XML

Спасибо, вопрос я отправил.

94

Re: Скрипт поиска по сайту на основе Яндекс.XML

conard сказал:

Спасибо, вопрос я отправил.

Все правильно. Вот что ответил яндекс. Насколько мы видим, поиск установлен недавно. "Популярные запросы" еще не посчитались, нужно подождать.

95

Re: Скрипт поиска по сайту на основе Яндекс.XML

Помогите разобраться начал изучать web программирование появился вопрос может и глупый не судите строго ,например я написал сайт магазина пользователь заходит на сайт и например заказывает банку молока куда этот запрос должен идти чтобы чтобы продавец увидел что заказана банка молока? как это делается? в интернете читал про CSM как я понял с ее помощбю можно это сделать но если я сам хочу без CSM с какой стороны подходить хотя бы сам принцып?

96

Re: Скрипт поиска по сайту на основе Яндекс.XML

kuba1981 сказал:

как это делается?

Обычно данные заказа пишутся в базу данных. Данные заказа включают в себя идентификатор товара (артикул, если хотите) и контактные данные покупателя.

Вопрос очень общий, поэтому ничего более конкретного подсказать не могу.

97 (изменено: master, 2012-06-16 11:29:05)

Re: Скрипт поиска по сайту на основе Яндекс.XML

Здравствуйте!
Большое спасибо за скрипт, очень помогли.
есть вопрос: как дописать к ссылкам target='_blank'?
а то не удобно, открывается в том же окне

98

Re: Скрипт поиска по сайту на основе Яндекс.XML

master сказал:

как дописать к ссылкам target='_blank'?

Файл search.js, функция Insert_Search(), после строки:

oA.className = 'search_title_a';

Добавьте:

oA.target = '_blank';

99

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut сказал:

oA.target = '_blank';

спасибо Вам огромное!!!

100

Re: Скрипт поиска по сайту на основе Яндекс.XML

появился еще вопрос.
почему результаты поиска яндекс.hml и яндекс разные?