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

Дата публикации:Март 15, 2011

Насколько вы помните, наша регистрационная ссылка передает название выбранного события регистрационной форме посредством специальной переменной (через запрос 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, позволяющая зарегистрироваться на предстоящие события, а также форма, загружаемая в модальном окне. Мы выполнили огромную работу! Давайте еще немного усовершенствуем наш проект.

Поделиться

Оставить комментарий

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

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.