Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть таблица состоящая из двух полей: id, title. (например статьи)

1 - статья 1

2 - статья 2

10 - статья 10

Нужно, что бы на странице, при отображения title появлялась кнопка "Добавить в слежение" или "Убрать из слежения" (в зависимости от состояния).

Если у текущего пользователя статья не добавлена в слежение, то "Добавить в слежение".

Если у текущего пользователя статья добавлена в слежение, то "Убрать из слежения".

При нажатии на кнопку Добавить в слежение идет аяксовый запрос - сохраняет за текущем пользователем статью на слежение.

При нажатии на кнопку Убрать из слежения идет аяксовый запрос - удаляется привязка текущего пользователя и статьи.

У пользователя должна быть страница управления добавленными в слежение статьями:

* удалить статью из слежения (ajax)

* создать группу (для объединения отслеживаемых статей), ajax

* переместить статью в другую группу

! Если статье не задана группа, то группа по умолчанию называется "Выбранные"

Дополнительный функционал.

Нужно написать две функции:

* метод getFillGroupsForSelect() - должен вернуть массив для элемента '#type' = 'select'. Массив должен состоять из групп, у которых есть хоть один добавленный сайт, для текущего пользователя. Будет использоваться для вставки в формы.

* метод getArticlesIDsByGroup($groupKey) - должен вернуть строку, в которой перечислены id статей (через запятую) принадлежавшие группе $groupKey. Будет использоваться с оператором IN() в SQL запросе.

! Если пользователь не авторизован, то сохранять информацию о выбранных статьях в куки. Группы в таком случае не создаются, а все статьи попадают в группу "Выбранные"

жду заявок. =)

13 лет назад
eugene_m
Евгений 
44 годаБеларусь
18 лет в сервисе
Был
13 лет назад
11 отзывов
Выбранный исполнитель
romass
Роман 
39 летУкраина
16 лет в сервисе
Был
10 лет назад
13 лет назад
$200
3 дня
Из минусов по проекту: - при сдаче проекта найдены ошибки. Из плюсов по проекту: + Хорошие знания Drupal + Работа выполнена в срок. + Согласился на выполнение не описанных пунктов в ТЗ. Будем сотрудничать. Совету дня: запасать 10-20% времени на задачи которые будут возникать по ходу - даже при самом жестком планировании трудно всё заметить сразу. Как в общем-то и вышло с проектом.
Очень доволен сотрудничеством с Евгением. Никаких проблем с оплатой - все на высшем уровне.