@iceman2112

Делаю виджет-баннеры. Как правильно реализовать схему в БД и другие мелкие вопросы для новичка yii?

Задание учебное.
Вообщем смысл такой, на одну страницу выводятся 4 баннера (слева, справа, снизу и сверху). Все это делает один action одного контроллера (который для баннера можно и поменять, но это пока не сильно важно)
На экшен передаются get параметры, по которым контроллер определяет какие могут быть показаны баннеры, и выбирает "достойные" (т.е., к примеру, у кого меньше было показов)

Вопросы № 1:
Так как баннеры могут быть 3х видов - картинка со ссылкой, flash, html-code. Я сделал для хранения всего этого дела 3 таблицы бд -
a) banner (id, type, position, controller, action, shows, и колонки с параметрами, по которым экшен фильтрует баннеры)
б) 2 таблицы -banner_img (id, banner_id, image, url) и banner_code (id, banner_id, code) для image баннеров и flash + html соответственно. они цепляются 1 к 1 к таблицу banner.
Т.е. я смотрю type у баннер и беру данные из соответствующей таблицы.
Я новичок вообще в программировании, поэтому прошу оценить данную схему для задачи.

Вопрос № 2:
Нужно считать показа баннеров. Я не знаю где это сделать или после того как контроллер выбрал какие баннеры куда "лягут", делать shows++ и save. Или же в самом баннере в run()?

Вопрос № 3
В какой директории хранить картинки для баннеров, ведь редактировать я их буду и в backend и в frontend, Значит нужно хранить в common? И как тогда получить src для тэга img из ,скажем frontend. Ведь Url::toRounte(['/common/web/banners']) выдаст - frontend/web/common/......

Вопрос № 4:
Это такой вопрос, который лучше бы уточнить, у того, кто дал мне это задание, но сейчас его нету пока, поэтому кто сможет, выскажите мнение. Почему то указано, что нужно для каждого места для баннера написать свой виджет, т.е. 4 штуки - TopBanner, RightBanner и т.п.
Вообще ума не приложу зачем 4? Можно же запилить 1 виджет, который будет работать с моделью Banner, и разметить вьюху на 4 части, и вызвать его в каждом блоке с разными моделями? Или же это придумано, чтобы я во вьюхе просто стартовал все 4 баннеры, а они сами уже "вставали" на свои места, исходя из css настроек внутри?
  • Вопрос задан
  • 2522 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы