View com javascript --- como chamar um método???

67 views
Skip to first unread message

Valdinei F. Lima

unread,
Nov 9, 2009, 5:35:16 PM11/9/09
to symfo...@googlegroups.com
Boa noite pessoal,

Bom... eu estou criando um projeto novo e tentando usar ExtJS. Eu
criei um modelo chamado principal e na view da principal, eu coloquei
o código abaixo e funcionou. Só que antes de usar o symfony, ou seja
em modo precedural, eu conseguia fazer o JS abaixo chamar uma tela que
estava escrita em php. O meu problema é que agora usando o symfony eu
não sei como fazer essa chamada. Vejam abaixo no código, que existe um
comentário -> ****** AQUI EU CHAMARIA UM SCRIPT PHP ******* , no lugar
deste comentário eu chama outro arquivo PHP que como uma view.

Então vem a pergunta: Eu criei uma outra view no symfony, que chama
menu. Como eu faço a chamada desta view que eu criei aqui neste código?


<script type="text/javascript">
Ext.onReady(function(){

Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

var viewport = new Ext.Viewport({
layout: 'border',
items: [

new Ext.BoxComponent({
region: 'north',
height: 80
}), {
region: 'south',
html: ****** AQUI EU CHAMARIA UM SCRIPT PHP *******
split: true,
height: 120,
minSize: 120,
maxSize: 120,
collapsible: true,
collapsed: true,
title: 'Monitoramento de alertas',
margins: '0 5 5 5'
}, {
region: 'west',
id: 'west-panel',
title: 'MENU DE NAVEGAÇÃO',
split: true,
width: 200,
minSize: 175,
maxSize: 400,
collapsible: false,
margins: '0 0 0 5',
layout: {
type: 'accordion',
animate: true,
fill: false
},
items: [{
title: 'Documentações',
border: false,
iconCls: 'icoDocumentacoes'
}, {
title: 'Base de Conhecimentos',
border: false,
iconCls: 'icoBaseConhecimentos'
}, {
title: 'Ferramentas',
border: false,
iconCls: 'icoFerramentas'
}, {
title: 'Configurações',
border: false,
iconCls: 'icoConfiguracoes'
}]
},

new Ext.TabPanel({
region: 'center',
deferredRender: false,
margins: '0 5 0 0',
activeTab: 0,
items: [{
contentEl: 'areadetrabalho',
title: 'Área de Trabalho',
autoScroll: true
}]
})]
});

});
</script>

Alan Candido

unread,
Nov 9, 2009, 8:46:04 PM11/9/09
to symfo...@googlegroups.com
Ola Valdiney,

Você não chama "view" direto. Isso é feito sempre via uma "action" que estara definida no arquivo "actions.class.php" do modulo em questão e esta "action" é chamada através de uma rota definida em "routing.yml".

Em "****** AQUI EU CHAMARIA UM SCRIPT PHP *******" ficaria algo como similar a:

html: /cliente/index

Onde: client/index é um rota que aponta para o módulo cliente e ação index, ou seja será executado o método executeIndex definido em actions.class.php do módulo cliente.


2009/11/9 Valdinei F. Lima <valdin...@bbtools.com.br>



--
Boa Sorte e a Paz do Senhor,

[:>} Alan Cândido ><>

Analista de Pesquisa e Desenvolvimento
DBA, Work-flow, Datawarehouse e Portal
Intranet, Extranet e Internet
Acompanhe dicas e outras informações em
http://paradesenvolvedores.blogspot.com/

Valdinei F. Lima

unread,
Nov 10, 2009, 5:24:17 AM11/10/09
to symfo...@googlegroups.com
entendi...
valeu pela ajuda

Valdinei F. Lima

unread,
Nov 10, 2009, 6:58:06 AM11/10/09
to symfo...@googlegroups.com
tentei fazer o que o Alan disse, mas não tive sucesso.

Vamos lá.

Eu tenho uma APP(sc) e dois módulos criados(console e login). Eu coloquei o módulo console como padrão:

routing.yml
-----------------------
homepage:
  url:   /
  param: { module: console, action: index }
-----------------------

View deste modulo(console) contém o script ExtJS que eu coloquei abaixo neste email. E dentro deste código ExtJS eu fiz a chamada do módulo login a fim de teste e não funcionou. Segue a parte do código onde eu coloquei a chamada:

modules/CONSOLE/template/indexSuccess.php
------------------------
    <script type="text/javascript">
    Ext.onReady(function(){

        Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

        var viewport = new Ext.Viewport({
            layout: 'border',
            items: [

            new Ext.BoxComponent({
                region: 'north',
                height: 80
            }), {
                region: 'south',
                url: '/login/index', <------- CHAMADA PARA O MODULO DE LOGIN
------------------------


Na view do login eu coloquei apenas um texto pra ver se o modulo vou chamado.

modules/LOGIN/template/indexSuccess.php
------------------------
<p>tela de login</p>
------------------------

Só que desta forma não consegui ver o texto da view de login.
faltou fazer alguma coisa?


Abraços
Reply all
Reply to author
Forward
0 new messages