Объединяем предыдущие наработки

Объединяем предыдущие наработки

115
0
ПОДЕЛИТЬСЯ

Насколько вы помните, наша регистрационная ссылка передает название выбранного события регистрационной форме посредством специальной переменной (через запрос GET). На текущий момент никакого стандартного способа отлова значения этой переменной в панели администрирования cforms не существует, однако на этот случай имеется специальный “взлом” cforms, который позволит нам удостовериться, что мы можем передавать произвольные переменные в форму.

Cforms II может принимать небольшие, заключенные в фигурные скобки шаблонные названия переменных. К примеру, добавление переменной {Title} выведет нам заголовок записи или страницы, на которой находится форма. Нам необходимо передать заголовок записи с другой страницы (чтобы не добавлять вручную форму ко всем записям рубрики Event), поэтому мы создадим собственный шаблон переменной для плагина cforms II.

В папке с плагином cforms II находится файл lib_aux.php. Откроем его и найдем строку 421, в которой должен стоять следующий код: … $m = str_replace( ‘{BLOGNAME}’, …

Добавим после него:

...
$m = str_replace( '{Event}', esc_attr($_GET['evnt']), $m );
...

Теперь в панели администрирования cforms мы можем установить в поле Event нашей регистрационной формы переменную {Event}. Также нужно удостовериться в том, что это поле доступно только для чтения.

Также я хотел бы, чтобы название события отображалось и в заголовке формы, для внесения большей ясности в процесс регистрации. Заголовок не является частью cforms, однако является частью шаблона страницы. Откроем в каталоге с темой файл registration-page.php и после тега the_title(), стоящего приблизительно в 41 строке, добавим следующий код:

...
<h2><?php the_title(); ?> for: <?php $evnt = esc_attr($_GET['evnt']); 
echo $evnt;?></h2>
...

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

Подведем небольшие итоги: у нас есть страница Event, позволяющая зарегистрироваться на предстоящие события, а также форма, загружаемая в модальном окне. Мы выполнили огромную работу! Давайте еще немного усовершенствуем наш проект.

НЕТ КОММЕНТАРИЕВ

ОСТАВЬТЕ ОТВЕТ