Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Архитектура приложения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: посоветуйте, как лучше сделать
Panoptik
Отправлено: 18 Ноября, 2013 - 14:37:31
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




Приветствую

столкнулся с дилеммой, есть большой проект, в нем различные разделы в виде модулей
к примеру есть 2 модуля /admin && /manager. для определенных действий тех и иных пользователей по ролям. интерфейсы у этих 2-х модулей одинаковы, но контент другой, к примеру у пункты меню частично отличаются и функциональность также.

вобщем проблема в том, что некоторый функционал частично совпадает, примерно, на 30-50%
но в больших формах есть некоторые различия к примеру у админа доступны дополнительные поля.
городить if else не хочется поэтому решил разделить всё отдельно, хотя макет остался тот же (верстка, файлы стилей и скрипты) но разметка форм хранится в разных файлах. и вот у меня есть огромная форма, которую я вынужден дублировать, но меня просто выворачивает от таких действий

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


-----
Just do it
 
 Top
tato
Отправлено: 19 Ноября, 2013 - 02:00:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Если много ифов получается, то делать "дубликат", если парочка, то можно и один.
Можно часть в виджеты перенести, например генерацию меню, что бы в шаблон вставить, что-то такое widget( 'Menu', $params ); и все, а уже в самом виджете рулить по обстановке.

(Отредактировано автором: 19 Ноября, 2013 - 02:40:10)



-----
просто ?: сложно
 
 Top
caballero
Отправлено: 19 Ноября, 2013 - 02:47:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
всё в одном модуле и разграничивать весь вывод исходя из ролей

да
ты вместо ифов получил дубликат формы.
лично я в своих проектах вообще админку отдельно не делаю

есть отдельные страницы доступные админу который логинится как обычный юзер
для контента который должен редактировать админ просто добавляю соответствующи кнопки на том же списке.
и т.д.

jklgflkergh
барышня, у вас что парня нет что вы такая злюка? Девушка должна быть доброй, милой ласковой а вы как неотесаный мужлан. Огорчение
(Добавление)
я так понял что в тут зарегались пока админы спят

(Отредактировано автором: 19 Ноября, 2013 - 02:49:22)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
RomAndry Администратор
Отправлено: 19 Ноября, 2013 - 05:09:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




caballero пишет:
jklgflkergh
барышня, у вас что парня нет что вы такая злюка? Девушка должна быть доброй, милой ласковой а вы как неотесаный мужлан.

недотрах =)
 
My status
 Top
Panoptik
Отправлено: 19 Ноября, 2013 - 16:52:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




tato пишет:
Можно часть в виджеты перенести, например генерацию меню, что бы в шаблон вставить, что-то такое widget( 'Menu', $params ); и все, а уже в самом виджете рулить по обстановке.
собственно всё что можно вынести в виджеты вынесено
общие функции контроллеров вынесены в хелперы

caballero пишет:
лично я в своих проектах вообще админку отдельно не делаю

и это
caballero пишет:
есть отдельные страницы доступные админу который логинится как обычный юзер

ну тут в принципе это тоже дополнительные страницы

осталась только проблема с макетами, так как в модулях в моем случае (Yii) они находятся в разных папках и к ним довольно сложно обращаться, но это уже вопрос для гугла

всем спс за объективное мнение


-----
Just do it
 
 Top
caballero
Отправлено: 19 Ноября, 2013 - 17:02:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




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


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tato
Отправлено: 20 Ноября, 2013 - 03:11:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Panoptik пишет:
так как в модулях в моем случае (Yii)

Что ж Вы сразу не сказали, что на Yii (=

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

Так же в конфиге приложения можно задать директорию где лежат представления модуля
PHP:
скопировать код в буфер обмена
  1.  
  2. 'modules' => array(
  3.     'MyModule' => array(
  4.         'layoutPath' => 'protected/views'
  5.     )
  6. )
  7.  


Что бы обратится к представлению из другого контроллера используем два слеша:
PHP:
скопировать код в буфер обмена
  1.  
  2. $this->render( '//site/_login_form' );
  3.  


-----
просто ?: сложно
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB