Здравствуйте!
Есть учебный сайт.
При заполнении данных в форме, таких как "предмет" и "уровень" и после нажатия кнопки "подобрать репетитора", юзер должен оказываться на странице ../предмет/уровень
Подскажите пожалуйста, как такое сделать?
Здравствуйте!
Есть учебный сайт.
При заполнении данных в форме, таких как "предмет" и "уровень" и после нажатия кнопки "подобрать репетитора", юзер должен оказываться на странице ../предмет/уровень
Подскажите пожалуйста, как такое сделать?
Комментарии
Слишком размытое описание, нужно больше подробностей.
Я делал сайт по поиску репетиторов и хочу вам сказать, что без хорошего разработчика тут не обойтись. Хотя многие вещи, особенно в семерке можно сделать контрибом.
Да.
Надо для начала хотя бы знать: какой алгоритм "подбора репетитора"
Алгоритм такой, юзер к примеру ищет репетитора по математике, выбирает предмет Математика, затем уровень, Начальный например. И начинает заполнять форму.
В которой также укажет предмет и уровень.
Страница, на которую он попадет далее, должна иметь вид:
.../tutors/Maths/beginner
Вот моя задача сделать, чтобы такой адрес генерировался:
.../tutors/[subject]/[level]
Понятнее-)
Тогда, если, как Вы пишите, "красивость" url не имеет значения и url может иметь такой вид:
/tutors/111/222
где 111 и 222 - идентификаторы соответствующих сущностей: предмет и уровень
значит создаете правило Rules
1.Событие - после сохранения материала
2.Условие:
- материал имеет тип того материала, форму которого пользователь заполняет.
3.Действие: перейти на url составленный из токенов материала, тип которого указан в предыдущем шаге(2).
Pathauto + настройка токенами полей (admin/config/search/path/settings).
> юзер должен оказываться на странице ../предмет/уровень
Сделать переход на страницу по событию через rules
Страницу сделайте через Panels как страницу с двумя аргументами - айдишник предмета и айдишник уровня соответственно. Эти же аргументы передадите во вьюсы на странице.
Сам переход из формы - сделайте небольшую кастомную форму с двумя селектами и по отправке формы выполните переход наподобие
<?php
drupal_goto('/teacher-select/' . $form_state['values']['subject'] . '/' . $form_state['values']['label']');
?>
Если хотите красивые урлы для таких страниц, то pathauto вам не поможет, но алиас можно сгенерировать на лету во время отправки формы. Вернее сперва проверить, существует ли он, и если нет, то создать.
Задача не столько в красивых урлах, сколько в пути, с которого юзер пришел к моей странице. То есть если о пришел с предмета математика, то в моем урл тоже должна быть математика.
Спасибо за ответы!
Если еще будут вопросы, опишу задачу более подробно.
Я вообще не могу понять, в чём у вас проблема, ведь задача совершенно тривиальная. Предлагаю такой алгоритм:
0. Забыть всю ту ерунду, что написали выше про Rules.
1. Создаёте страницу вьюс с двумя контекстными фильтрами - предмет и сложность.
2. Создаёте блок вьюс для отображения ссылок на уровни на страницах предметов. Поскольку количество уровней сложности величина небольшая и относительно постоянная, то предположим, есть три уровня сложности: простой, не очень простой и сложноватый. И у них айдишники, предположим 10, 11, 12 соответственно. Последовательность создания блока вьюс:
2.1. Блок должен выводить термины таксономии (ну или чем там у вас сделаны предметы, если нодами, то ноды типа предмет).
2.2. В блок передаём контекстный фильтр ID термина таксономии из URL.
2.3. Выводим единственное поле ID термина и скрываем его вывод.
2.4. Выводим поле "Пользовательский текст" и пишем туда что-то наподобие
<a href="/tutors/[токен-айдитшника-текущего-термина]/11">Не очень простой</a>
<a href="/tutors/[токен-айдитшника-текущего-термина]/12">Сложноватый</a>
3. Размещаем этот блок на страницах предметов.
4. Наслаждаемся результатом.