Документация

Автономные и серверные виджеты

XHTML-файл виджета всегда загружается на Яндекс. Если функциональная часть виждета расположена в блоке <body>, то виджет называется автономным. Если же она хранится на стороннем сервере (путь к телу виджета указан в свойстве src) - то серверным.

Автономные виджеты

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

Любая информация, содержащаяся в теге <body>, должна быть валидным XHTML.

Пример:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:widget="http://wdgt.yandex.ru/ns/"  >
  <head>
    <meta name="title" content="Hello, world!" />
    <meta name="description" content="Выводит строку Hello, world!" />
  </head>
  <body>   
      <p>Hello, world!</p>    
  </body>
</html>

Рисунок 1. Схема взаимодействия автономных виджетов

Серверные виджеты

Тело серверных виджетов загружается со стороннего сайта. Блок <body> таких виджетов должен быть пустым, а адрес источника загрузки - указан в свойстве src:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:widget="http://wdgt.yandex.ru/ns/" >
  <head> 
    <meta name="title" content="Hello, world!" />
    <meta name="description" content="Выводит строку Hello, world!" />   
    <meta name="src" content="http://example.com/helloworld.html" />
  </head>
  <body>
  </body>
</html>
Примечание. Любое содержимое тега <body> серверного виджета будет проигнорировано.

Для того чтобы достичь такой же функциональности, как у только что описанного автономного виджета, указанный файл http://example.com/helloworld.html должен содержать следующее:

<html>
  <head>
  </head>
  <body>
    <p>Hello, world!</p>
  </body>
</html>

Используя данный подход, можно сделать свою страницу виджетом, затратив минимум усилий. Для этого лишь необходимо подставить нужный параметр в свойство src.

Код тела виджета может быть написан на любом серверном языке программирования, результатом работы которого является HTML. Чтобы переписать приведенный пример на PHP, нужно:

  1. Указать в свойстве src ссылку на php-файл:
    <meta name="src" content="http://example.com/helloworld.php" />
  2. По указанному адресу разместить файл с кодом на PHP:
    <html>
     <head>
     </head>
     <body>
      <?php echo '<p>Здравствуй, мир!</p>'; ?>
     </body>
    </html>

Рисунок 2. Схема взаимодействия серверных виджетов

Разработчикам, имеющим свой хостинг, следует иметь в виду, что попадание виджета в каталог Яндекса существенно увеличит трафик и нагрузку на сервер хостинга.

виджеты