Технологии

Решено

Здравствуйте, нельзя включить модуль webform в меню модулей drupal - вопрос №1935071

апрель 27, 2016 г.

  • Всего ответов: 1

  • Victor - аватарка

    Victor

    5-й в

    Если я правильно вас понял то это модуль — создание формы заказа товара. Если так, то попробуйте сделать вот так -

    После установки должен появиться контент тип Webform. Создайте материал типа Webform, назовите его Форма заказа товара (или как Вам будет удобно). После создания Вы будете перенаправлены на страницу настройки материала веб-формы.

    Нам необходимо создать два поля под наименование товара и его количество, для этого понадобятся два textfield (текстовые поля).

    В поле наименования нужно написать %get[product]

    В поле цены значение по умолчанию поставим «1».

    Также добавим text field для е-мейла и еще text area для пожеланий и предпочтений клиентов.

    %get[product] — аналогично php-переменной $_GET['product'], которая получает значение из URL.

    Форма готова, теперь надо сделать ссылку к этой форме, да и еще к этой ссылке приписать параметр product, в котором будет записано наименование товара. Оформим эту ссылку в виде отдельного блока, который будет размещаться внизу ноды каждого товара.

    Для выполнения следующих операций необходимо включить встроенный модуль PHP filter, который позволяет вставлять пхп-код прямо в блок или материал. После включения этого модуля должен появиться новый формат ввода PHP code.

    Создадим новый блок и выбирем формат ввода PHP code. В текст блока вставим следующее

    ?

    1

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;"><a href="<?php print base_path(); ?>node/6?product=<?php print drupal_get_title(); ?>"></span>
    <span style="font-size: 10.0pt;">заказать</span>
    <span style="font-size: 10.0pt;">тоавар</span>
    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;"></a></span>

     

    , где node/6 адрес ноды веб-формы заказа товара.

    функция drupal_get_title() возвращает заголовок ноды, в нашем случае заголовком ноды является наименование товара, функция base_path() — возвращает путь к корню сайта (например drupalbook.ru/). Теперь нужно разместить блок в регион Содержимое (Content). И задать следующую видимость блока в пхп-режиме (PHP mode):

    ?

    1

    2

    3

    4

    5

    6

    7

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">$types['tovar'] = 1;</span>

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">$match</span>
    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">= false;</span>

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">if</span>
    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">((arg(0) == 'node') && is_numeric(arg(1))) {</span>

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">  $node</span>
    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">= node_load(arg(1)); </span>

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">  $match</span>
    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">= isset($types[$node->type]); } </span>

    <span lang="EN-US" style="font-size: 10.0pt; mso-ansi-language: EN-US;">  </span>
    <span style="font-size: 10.0pt;">return</span>
    <span style="font-size: 10.0pt;">$match; </span>

    <span style="font-size: 10.0pt;">}</span>

    Здесь tovar машинное имя контент типа Товар.

    Наша форма заказа товара готова.

    апрель 27, 2016 г.
    Ответ понравился автору
    Лучший ответ по мнению автора

Похожие вопросы

Решено

вход на сайт через пароль

март 8, 2010 г.

Технологии