Desenvolvi uma aplicação de média dimensão em php sem usar nenhuma framework, mas neste momento preciso de reestruturar a mesma e estou a tentar usar a framework Yii, mas estou com algumas dúvidas sobre se usar uma framework é a melhor opção.
Na minha aplicação todos os utilizadores tem layouts diferentes, isto porque é uma aplicação para dar suporte à avaliação dos colaboradores numa empresa. Já pensei em utilizar módulos para cada um dos utilizadores, uma vez que são distintos.
Outra dúvida é como faço para encaminhar cada utilizador para o respectivo módulo depois do login? Utilizo login para alguns utilizadores atravês da base de dados, mas a maior parte efectua login no servidor da empresa atravês do active directory.
Se me poderem dar uma linha de orientação!!!!!!!!!
Com a Yii dá para usar diferentes layouts. A questão de ser por utilizador ou por qualquer outro critério é como o programador quiser. Após o login o programador faz como quer. No meu caso costumo usar a página inicial da Yii e mostrar os menus aos quais o user tem acesso. Mas pode ser feito o que for preciso. A questão do AD é para fazer single sign-on numa Intranet? Caso contrário não vejo relação…
A questão dos módulos é meramente organizativa. Por exemplo pode haver um modulo para tratar a parte de segurança, ou um modulo para tratar questões de reports…
A organização por módulos tem a vantagem de se poderem reutilizar os módulos noutra aplicação. De resto, para a questão do AD tanto faz a aplicação ser por módulos ou não. Eu, embora reconheça que as coisas ficam mais organizadas, nem nunca costumo usar módulos…
Comecei a desenvolver a minha aplicação sem módulos. Tinho o login que é criado ao criar a aplicação e criei um novo controller, model e view para a página do Admin e um novo layout. O meu problema está que ao fazer login como Admin ele vai para a página do Admin e carrega também a página do login, não atribuindo o layout definido para a página Admin. Os meus ficheiros são os seguintes:
AdminModel.php
<?php
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
class AdminModel extends CActiveRecord
{
/**
* Returns the static model of the specified AR class.
* Please note that you should have this exact method in all your CActiveRecord descendants!
* @param string $className active record class name.
* @return Colaborador the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
AdminController.php
<?php
class AdminController extends Controller
{
public $layout='//layouts/mainAdmin.php';
public function action()
{
$model=new AdminModel;
$this->render('indexAdmin',array('model'=>$model));
}
}
indexAdmin.php
<?php
$this->pageTitle=Yii::app()->name;
echo ‘Hello admin’; só para testar
mainAdmin.php onde está o layout definido
e no Controller.php definido o novo layout da seguinte forma:
Estou completamente perdida com esta framework. Como é que faço para criar uma view especifica para o admin?
Todos os meus tipos de utilizadores vão ter ambientes diferentes, mas não sei como implementar. Criei uma view para o admin, com o controller e model mas não consigo redireccionar após login na BD. Diz que o SiteController não encontra a view.
Por favor ajudem-me estou a ficar sem tempo para desenvolver a aplicação!!
Não entendo bem o que está a tentar fazer. Mas se quer utilizer uma view específica para um dado utilizador deve simplesmente fazer um if e perguntar qual o user logado e depois fazer o render da view respetiva.
Não sei se isto ajudou muito. Se quiser pode adicionar o meu Skype (jorge_sequeira5475) e procurarei entender melhor.
O administrador gere o sistema, o colaborador só vai poder preencher um formulário com a sua auto-avaliação e visualizar mais tarde o formulário sem poder fazer alterações, o responsável tem as mesmas funções do colaborador com o acréscimo que ele tem de avaliar os seus colaboradores e pode visualizar as avaliações do mesmo.
O training é um acesso exclusivo à equipa de formação da empresa onde podem retirar um relatório especifico e alterar informação sobre a formação existente na BD.
O meu problema é como eu monto esta aplicação com a framework, se for o admin a fazer login vai para um sitio (este login é feito na base assim como o do training) se for um colaborador utiliza como login as credênciais existentes num servidor da empresa(active directory) e vai para outra área.