Как сделать кнопку в drupal

Drupal Русскоязычное сообщество

Задача такая: надо прикрепить к ноде (или к товару) такое поле, которое будет отображаться на странице в виде кнопки «Спросить о товаре». При нажатии на кнопку будет вылазить окошко, или открываться отдельная страница (это не принципиально) с формой, куда пользователь печатает свой вопрос, нажимает на «Отправить» и этот вопрос улетает куда-то в систему. Потом админ или владелец магазина может где-то в админке прочитать все эти вопросы, так же эти вопросы должны дублироваться на почту кому-нибудь. А самое главное, чтобы к каждому этому вопросу была прикреплена ссылка на товар, о котором идёт речь (ну или что-то чтобы можно было автоматически сгенерировать эту ссылку)

В общем где-то я находил, что подобные вещи делаются при помощи связки Webform модуля с какими-то аргументами откуда-то. Что-то такое. Но подробностей я не смог пока что найти.
Можете проконсультировать в этом плане или поделиться полезными ссылками?

Комментарии

Через комментарии не?

Через комментарии не?

Ссылку на товар можно организовать при помощи Entity reference

надо чтобы комментарий уходил почтой

а как сделать кнопку?

Еще надо сделать чтобы комменты не публиковались без проверки. В разрешениях и в настройках комментариев смотрите.

Какую кнопку? На «Оставить комментарий» бекграунд с текстом навесьте.

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

Ваша задача вывести в ноде ссылку на добавление комментария. Можете?
Либо передвинуть эту ссылку повыше средствами CSS.

Через вебформу делай. Проверенно норм работает.

так, я разобрался вроде с этим. делаю через вебформу

другой вопрос.. хотелось бы всё это окончательно приукрасить и чтобы webform этот открывался в диалоговом окне прямо на странице ноды.. типа какой-то финт с ajax там должен присутствовать наверное.. как с этим быть?

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

помогите, пожалуйста с этим. может мне стоит открыть отдельный топик?

%server[HTTP_REFERER] не надежен, я по другому немного делал, к ссылкам добавлял гет переменную, например pid=артикул, и а потом засовывал в форму через %get[pid], т.е. ссылки на «задать вопрос» были вида my.com/ask?pid=A435 в принципе туда через токены впихнуть можно почти все что угодно.

%server[HTTP_REFERER] не надежен

об этом я кстати уже успел подумать. спасибо за подсказку. сейчас так и сделаю. как раз можно будет несколько параметров передать: помимо ссылки на продукт, ещё и его SKU, например.. а что делать с другим вопросом, который у меня возник? в смысле по поводу вебформы в диалоговом окне

в смысле по поводу вебформы в диалоговом окне

Источник

Drupal Русскоязычное сообщество

Вашему вниманию предлагается статья, в которой описывается способ встраивания стандартного функционала форм Drupal в редактор BUEditor для удобного добавления ссылок на внутренние материалы сайта.

Как сделать кнопку в drupal

Инструменты

Предыстория

Кстати, бился с поиском до последнего, т.к. не сторонник, чтобы на сайте был такой hand-made. Но готовых решений нет и был вынужден изменить своим же принципам.

Hands on

Первым делом надо сделать свой модуль (назвал его callbacks), в который войдет основной функционал, а именно:

callbacks.info

name = callbacks module
core = «6.x»
version = «6.x-1.1»

callbacks.module

/**
* Defines a form.
*/
function callbacks_link_form () <

JS часть. Файлик js/callbacks.js

CSS часть. Файлик css/callbacks.css

.callbacks-nid <
float : left ;
>

.callbacks-title <
float : left ;
>

.callbacks-alias <
color : #333 ;
font-size : 0.9em ;
clear : both ;
margin-bottom : 5px ;
font-weight : bold ;
>

.callbacks-type <
float : right ;
font-size : 0.8em ;
>

.callbacks-button <
float : right ;
>

Тут самая скука, расставить цвета и отступы.

Вторым делом добавить php-кнопку в BUEditor.

Выглядит форма таким образом:
Как сделать кнопку в drupal

А результат ее использования не менее красив:
Как сделать кнопку в drupal

Комментарии

hook_init() + генерация формы, очень интересно, очень.
Синкора негодуэ.
Не лучше было бы делать drupal_get_form() в кнопке или форму аяксом гнать?

drupal_get_form() в кнопке серьезно конфликтует с другими модулями (date) и убивает весь сайт. Лучше использовать любой вариант с кэшированной переменной, содержащей форму, а hook_init() было решением, которое заработало как раз после первого варианта с кнопкой. Суть не в этом.

Спасибо! По-моему, очень интересно.

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

Drupal 6.22, Bueditor-6.x-2.4

Он перегружает страницу, потому что стандартное действие формы не переназначено из js файла. Проверь правильно ли подключился js сценарий, где submit action заменяется на вставку в текстовое поле.

Все сделал как написано, но при нажатии на кнопку вставить ссылку страница перезагружается и ссылка не вставляется, помогите, буду благодарен.
Drupal 6.22, Bueditor-6.x-2.4

Источник

Drupal Русскоязычное сообщество

Я так понимаю что на картинках выше поверх картинки приделаны кнопки. Как это делается? С помощью какого модуля?

Как сделать кнопку в drupal

Как сделать кнопку в drupal

Комментарии

Фон вёрсткой, а потом что то вроде этого
p > a href = «https://www.drupal.org/download» > img alt = «» src = «/sites/default/files/inline/images/download.gif» style = «height: 95px; width: 300px;» / > / a > / p >

А если я в баннер положу картинку, а не версткой? И на нее приделать? Может какие модули есть? Допустим на друпал орг и другие есть подобные схемы, вряд ли там все верстка. На главной только эти картинки, поэтому скорее всего тоже какие-то регионы, которые отключаются на других страницах.

Представьте себе, что не все программисты Как сделать кнопку в drupal

Алгоритм хотя бы примерный можно?

Ну просто делаете ссылке border, display:block, фон и отступы по вкусу.

Я не сильно большой спец в друпале. Как сделать то, что вы описали? Можно алгоритм?

Смотрите код страницы.

Такую «кнопку» можно сделать абсолютно не в Друпале, а даже в простом html.
Учебник html css есть, например, тут. (htmlbook)

Т.е. модуля для этого нет, все это делается руками? Так? Т.е. на друпал.орг каждая такая кнопка сделана руками, так?

Но html и css знать всё равно надо.

Модуль для этого не нужен.
Кнопки относятся к темизации и дизайну.

Т.е. на друпал.орг каждая такая кнопка сделана руками, так?

СКедитор у меня стоит. Можете подробно расписать что да как?

Павел!
Вам уже тут больше никто отвечать не будет.
Вам уже подробно разжевали.

Вы задаёте вопросы не по Друпалу, а по элементарной вёрстке.

Попробуйте вначале любую кнопку поставить на страницу «Хэлло, мир!»

После этого Вы сами поймёте, как эту кнопку поставить на страницу Друпала.

Круто. А как потом на картинку наложить? Если я ее в баннер запихну тему Корпорейт?

Да в общем у меня CKeditor обрезанный стоял. Я недавно перешел на 7-ку и вообще им не пользовался. Поэтому я вообще ничего сам не понимал кто что мне говорит.
Поставил полный с возможность создания кнопок, с возможностью вставки кода и так далее. Буду пробовать. Спасибо.

Источник

Drupal Русскоязычное сообщество

Модуль реализует подключение социальных кнопок с использованием сервиса http://share42.com

Как сделать кнопку в drupal

Комментарии

хм, спасибо. В свое время не дотумкал как поставить на шестерку

оно того, может проще код яндекса «поделиться» взять?

ну тут панелька просто вверх-вниз скользит.

оно того, может проще код яндекса «поделиться» взять?

на d.org планируете?

а, понял, это панелька

оно того, может проще код яндекса «поделиться» взять?

Ну и вообще. поведенческие факторы ведь интересны яндексу Как сделать кнопку в drupal

Скажите, подключаю к контенту, панелька есть, подключаю к шапке, нет. как сделать чтобы была?

все разобрался, необходимо в шаблон темы добавить регион «Header»

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

Для чего нужны exclude и include. Что они регулируют в разделе uri, для чего нужны Logical operator и окно uri (что дают вписанные туда ссылки).

Для чего нужны exclude и include

Что они регулируют в разделе uri

для чего нужны Logical operator

что дают вписанные туда ссылки

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

Блок с кнопками прикрепляется к странице и настраивается на странице настроек.

Как же поставить его с другой стороны страницы? Например справа. В настройках этого нет.

Вы ответили, что это можно сделать с помощью theme_preprocess_page. Можно поподробней? Думаю, что не одному мне это будет интересно.

Вроде все сделал, установил. не работает.

необходимо в шаблон добавиь переменную header

Точно такая же проблема. Интересно почему никто не ответил Как сделать кнопку в drupalКопаться в скрипте просто нет времени.

Собственно, без модуля все неплохо работает. Но я решил его добавить, в итоге не вижу его среди блоков. В общем-то, я думал, что модуль для этого и сделан, чтобы было проще менять положение. Собираюсь вставить горизонтально расположенные кнопки в один из столбцов футера. Подскажите, может, я чего-то очевидного не заметил

Эти кнопки не являются блочным типом, если нужны блочные то используйте addthis

Источник

Drupal Русскоязычное сообщество

Здравствуйте, подскажите пожалуйста. Вот у меня есть своя форма. И есть две кнопки. По нажатию на первую кнопку, отправляются начальные данные в базу данных, а по нажатию на вторую, должны взяться из этой базы данных только что добавленный значения, рассчитаться, и обратно вставиться в базу данных.
Собственно первая кнопка работает хорошо, все введенные данные уходят в БД. Но когда происходит нажатие на вторую кнопку, форма пытается отправиться, так как кнопка submit. Как сделать так, что бы эта кнопка не отправляла форму, а просто выполняла функцию? Заранее благодарю.

Лучший ответ

2. Названия функциям следует давать более безопасные и понятные, хорошей практикой считается начинать с названия модуля:

3. Если нужно вывести более чем 1 форму на странице, можно выводить ее как часть рендер-массива. Коллбек страницы предназначен для возврата рендер-массива, не нужно в нем рендерить элементы:

function webformizi_main_page () <
$output = array();

$output [ ‘main_form’ ] = drupal_get_form ( ‘webformizi_main_form’ );
$output [ ‘secondary_form’ ] = drupal_get_form ( ‘webformizi_secondary_form’ );

Комментарии

Так делайте батон, а не сабмит.

Или может вам аякс нужен?

В каком плане он не должен отправлять форму??

Вам нужно просто не в FORMNAME_submit реализовывать логику сохранения в БД, а в коллбеке нужного сабмита.

Ну когда происходит нажатие на вторую кнопку, форм пытаются отправиться, а получать данные формы мне не нужно во второй кнопке. Во второй кнопке мне нужно получить данные из БД, сделать расчёт исходя из полученных данных, и записать в базу данных что посчиталось. И функции разные же, на одной кнопке функция просто записывает в БД, а вторая берёт из БД

Так а какое тогда отношение имеет кнопка к форме??

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

Понятно. А подскажите пожалуйста, как отдельно сделать тогда кнопку? Просто ведь я создаю страницу

А потом возвращаю форму

2. Названия функциям следует давать более безопасные и понятные, хорошей практикой считается начинать с названия модуля:

3. Если нужно вывести более чем 1 форму на странице, можно выводить ее как часть рендер-массива. Коллбек страницы предназначен для возврата рендер-массива, не нужно в нем рендерить элементы:

function webformizi_main_page () <
$output = array();

$output [ ‘main_form’ ] = drupal_get_form ( ‘webformizi_main_form’ );
$output [ ‘secondary_form’ ] = drupal_get_form ( ‘webformizi_secondary_form’ );

Разобрался, спасибо большое. Собственно сделал вот так:

Создал кнопку вот так

А затем добавил в рендер-массив

Большое спасибо за помощь

Сделайте независимую кнопку от формы и повесьте на нее коллбек. через js скорее всего. Но, имхо, чего-то «мудрите», т.к. все равно вам нужны значения из формы и вывод. это судя по названиям кнопок.

Ну во второй кнопке значения из формы не нужны, тут просто по нажатию кнопки «Высчитать поверку», берём из БД только что добавленные значения и считаем, а потом обратно записываем результат в БД

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *