[zope-pt] Re: Definindo um page template a um diretório
Então galera, graças a valiosa ajuda do Rodrigo e conforme prometi, vou passar aqui como consegui resolver este problema: Antes de iniciar, alerto que utilizei um Set Access Rule para poder utilizar um skin para front-end e outro para back-end, que pode ser conferido na seguinte URL: http://plone.org/documentation/how-to/select-skin-by-url A minha estrutura ficou semelhante a esta: {root_folder}/portal{folder}/site{plone_site com portal-skin} e {root_folder}/portal{folder}/admin{acess_rule que muda a skin para portal-skin-admin} 1) Criei as duas skins que precisava usando o DIYPloneStyle através do comando: front-end: # python generator.py -p portal-skin back-end: # python generator.py -p portal-skin-admin * no diretório Products/DIYPloneStyle/bin (ele vai gerar os produtos em {caminho_do_plone}/Products/{nome_da_skin}. * Instale as skins e restarte o zope. * confira a pilha de diretórios através da aba "Properties" da ferramenta portal_skins. Caso você tenha instalado algum produto anterior a instalação destas skins, a pilha de tais skins poderão não vir a conter as camadas de produtos instalados anteriormente e possivelmente apresentar erros no portal. 2) Customizei a skin do front-end conforme as especificações do projeto e fiz leves customizações na skin do back-end. 3) Para as seções que no front-end eram totalmente customizadas, eu tive que criar Page Templates específicos para tais seções e atribuir essas Page Templates como "Exibição" em "folder", "document" e "Plone Site" que no meu caso eram necessárias modificar completamente o page template respectivo. 3.1) Isso você pode fazer através da ferramenta portal_types Ex.: /portal/site/portal_types/Document (página) e em "Available view methods" adicione a exibição (ZPT) que deseja estar disponível para aquele objeto de conteúdo selecionado, que em um de meus casos, se chamava videos (não coloque o .PT), onde deverá existir o page template videos.pt no diretório portal-skin_templates (de seu produto skin gerado pelo DIYPloneStyle). 3.2 Você também pode definir visões através dos arquivos XML que estão localizados no diretório portal-skin/profile/types, conforme o exemplo a seguir: Arquivo: Document.xml (deve-se criar os arquivos que terão as visões): - Salve o arquivo e restarte o Zope. Assim você poderá definir page templates customizados para páginas, diretórios e quaisquer outros objetos de conteúdo disponíveis no Plone. E para finalizar, como fazer para que os Page templates customizados do Front-End não alterem no Back-end? Simples, basta criar os mesmos page templates respectivos que foram criados no Front-End, e seu conteúdo deve chamar o main-template.pt ou possuir um conteúdo customizado diferente do front-end. Mais uma vez, obrigado Rodrigo! Através desta solução pude pensar em outras formas de resolver outros problemas que vinha enfrentado aqui. Espero que isto possa ajudar a outras pessoas.
Re: [zope-pt] Re: Definindo um page template a um diretório
2008/6/11 André Domarques <[EMAIL PROTECTED]>: > Opa Rodrigo, > > primeiramente, obrigado pela resposta! Por nada, depois escreve sobre isso em algum lugar e manda aqui pro povo mais webdesigner da lista ;) > Concordo contigo que customizar o visual do plone via ZMI é um caos a > parte :(, especialmente deste projeto que estou trabalhando. Uma vez um gestor de projeto falou o seguinte: "A dor purifica!" ... se servir de consolo =D > Nesta solução em particular, em ambos os temas eu utilizo o > DIYPloneStyle, como em todos os meus projetos. O tutorial que você se > refere no plone.org é o do DIYPloneStyle? Porque eu praticamente já ví > tudo sobre temas na documentação oficial do Plone, rsrsrsrs. Boa zero meia =D > Eu fiquei curioso na solução que você propôs a seguir, mas confesso > que ainda não visualizei como implementá-la: Steps: 1- Tema1 (com template zope_pt.pt) 2- Tema2 (com template zope_pt.pt) 3- Em uma pasta vc vai no menu exibição e pode escolher um template correto? Este menu monta a seguinte URL (no caso de visão sumária): selectViewTemplate?templateid=folder_summary_view vc pode usar isto pra setar o zope_pt ao invés do folder_summary_view (esqueça o uso de index_html, acabamos de exterminar alguns de uns 3 projeto, são pessimos!). Ex.: selectViewTemplate?templateid=zope_pt E em casa tema o zope_pt deve existir, se no tema principal ele nao tem personalizacao alguma , otimo, uma linha chamando o main_template resolve ;) Vc tbm pode fazer isso programaticamente usando o setLayout(), na instalação do produto por exemplo. E ainda tem uma maneira de colocar mais opções ali naquele menu, para que o próprio usuário faça esta escolha. Mais estou correndo aqui em pleno valentines day, e não vou poder pesquisar isto. >> Com vários temas, você pode usar o recurso de setar um tema através de >> uma access rule (script python com "super poderes"). E neste caso, os >> arquivos ficam completamente separados, vc tem independencia de temas >> e consegue fazer com que um nao afete os outros, e vice-versa. >> >> Para setar o teu template para se tornar a exibicao padrao de uma >> canal (contexto/pasta), vc pode user o setLayout, na instalacao do teu >> produto/tema vc instancia o objeto portal >> (portal_url.getPortalObject()) e dispara o metodo, ex.: >> >> portal.setLayout("pagina_inicial") >> >> onde, pagina_inicial eh o teu template, que em file system seria o >> pagina_inicial.pt ... >> > > Quanto a setar uma exibição padrão para uma pasta em particular, a uns > tempos atrás eu tinha feito algo semelhante, mas será que isso não vai > comprometer também a visão no outro template, no caso o do admin? Então, o q da questão aqui é o seguinte, a tua escolha de template (visão sumária por exemplo) fica gravada no objeto, e independente do tema, quando encontrada a propriedade layout no objeto, o template será procurado. Solução, ter com o template nos 2 temas, um personalizando conforme suas necessidades, e o outro, chamando o main_template normalmente, sem preencher nenhum slot. Melhor agora? > Só para se ter idéia, tem uma parte do site que o bloco central de > conteúdo (colunas laterais e área de conteúdo) é completamente > substituida por um flash que ocupa todo o espaço. Outra parte do site, > o layout interno é totalmente customizado. > > Com a tua dica acima, acho que resolve, contanto que as páginas só > sejam modificadas com o template do front-end. > > Brigadão! Nada! > Ps.: Se eu conseguir implementar com a dica acima, eu posto aqui para > que outras pessoas possam utilizá-la tbm. Promessa eh dívida hein? Abraços > --- Em zope-pt@yahoogrupos.com.br, "Rodrigo Castardo" > <[EMAIL PROTECTED]> escreveu >> >> André deixa eu sugerir uma solução ... >> >> Primeiro, não faça personalização de templates e afins via ZMI (custom >> ou afins), use um tema para isto. No Plone.org tem um tutorial >> passo-a-passo, que inclusive mandei na lista algum tempo atras (nao >> posso procurar para vc agora), que vai tornar td mto facil. >> >> Dica: DIYPloneStyle >> >> Com vários temas, você pode usar o recurso de setar um tema através de >> uma access rule (script python com "super poderes"). E neste caso, os >> arquivos ficam completamente separados, vc tem independencia de temas >> e consegue fazer com que um nao afete os outros, e vice-versa. >> >> Para setar o teu template para se tornar a exibicao padrao de uma >> canal (contexto/pasta), vc pode user o setLayout, na instalacao do teu >> produto/tema vc instancia o objeto portal >> (portal_url.getPortalObject()) e dispara o metodo, ex.: >> >> portal.setLayout("pagina_inicial") >> >> onde, pagina_inicial eh o teu template, que em file system seria o >> pagina_inicial.pt ... >> >> Se quiser fazer pela PMI, pode usar o menu exibicao e trocar o nome do >> template que ele usa na url para o pagina_inicial por exemplo. Nao me >> recordo agora, e de cabeca, como registrar seu template como uma opcao >> ali ... >> >> Tem esta saida que te sugeri, cons
[zope-pt] Re: Definindo um page template a um diretório
Opa Rodrigo, primeiramente, obrigado pela resposta! Concordo contigo que customizar o visual do plone via ZMI é um caos a parte :(, especialmente deste projeto que estou trabalhando. Nesta solução em particular, em ambos os temas eu utilizo o DIYPloneStyle, como em todos os meus projetos. O tutorial que você se refere no plone.org é o do DIYPloneStyle? Porque eu praticamente já ví tudo sobre temas na documentação oficial do Plone, rsrsrsrs. Eu fiquei curioso na solução que você propôs a seguir, mas confesso que ainda não visualizei como implementá-la: > Com vários temas, você pode usar o recurso de setar um tema através de > uma access rule (script python com "super poderes"). E neste caso, os > arquivos ficam completamente separados, vc tem independencia de temas > e consegue fazer com que um nao afete os outros, e vice-versa. > > Para setar o teu template para se tornar a exibicao padrao de uma > canal (contexto/pasta), vc pode user o setLayout, na instalacao do teu > produto/tema vc instancia o objeto portal > (portal_url.getPortalObject()) e dispara o metodo, ex.: > > portal.setLayout("pagina_inicial") > > onde, pagina_inicial eh o teu template, que em file system seria o > pagina_inicial.pt ... > Quanto a setar uma exibição padrão para uma pasta em particular, a uns tempos atrás eu tinha feito algo semelhante, mas será que isso não vai comprometer também a visão no outro template, no caso o do admin? Só para se ter idéia, tem uma parte do site que o bloco central de conteúdo (colunas laterais e área de conteúdo) é completamente substituida por um flash que ocupa todo o espaço. Outra parte do site, o layout interno é totalmente customizado. Com a tua dica acima, acho que resolve, contanto que as páginas só sejam modificadas com o template do front-end. Brigadão! Ps.: Se eu conseguir implementar com a dica acima, eu posto aqui para que outras pessoas possam utilizá-la tbm. --- Em zope-pt@yahoogrupos.com.br, "Rodrigo Castardo" <[EMAIL PROTECTED]> escreveu > > André deixa eu sugerir uma solução ... > > Primeiro, não faça personalização de templates e afins via ZMI (custom > ou afins), use um tema para isto. No Plone.org tem um tutorial > passo-a-passo, que inclusive mandei na lista algum tempo atras (nao > posso procurar para vc agora), que vai tornar td mto facil. > > Dica: DIYPloneStyle > > Com vários temas, você pode usar o recurso de setar um tema através de > uma access rule (script python com "super poderes"). E neste caso, os > arquivos ficam completamente separados, vc tem independencia de temas > e consegue fazer com que um nao afete os outros, e vice-versa. > > Para setar o teu template para se tornar a exibicao padrao de uma > canal (contexto/pasta), vc pode user o setLayout, na instalacao do teu > produto/tema vc instancia o objeto portal > (portal_url.getPortalObject()) e dispara o metodo, ex.: > > portal.setLayout("pagina_inicial") > > onde, pagina_inicial eh o teu template, que em file system seria o > pagina_inicial.pt ... > > Se quiser fazer pela PMI, pode usar o menu exibicao e trocar o nome do > template que ele usa na url para o pagina_inicial por exemplo. Nao me > recordo agora, e de cabeca, como registrar seu template como uma opcao > ali ... > > Tem esta saida que te sugeri, considero ela a mais elegante para este cenário. > > Abraços > > > > 2008/6/11 André Domarques <[EMAIL PROTECTED]>: > > Olá pessoal! > > > > Estou necessitando definir algumas page templates como padrão em > > diretórios específicos. Uso o plone 2.5 e estou trabalhando num site > > altamente complexo quanto ao seu layout e estou tendo dificuldades em > > trabalhar algumas questões, que comento a seguir: > > > > Para piorar/melhorar a minha situação, estou utilizando a técnica de > > definir skins específicos pela URL através do Zope (visto na > > documentação oficial do plone). I.e. www.site.com.br/admin (skin de > > back-end - admin) e www.site.com.br/ (skin do front-end - customizado). > > > > Uma vez que a skin de "front-end" está bastante customizado (o que > > inviabilizou a gerência do portal através deste skin), defini uma skin > > para garantir a gerência do conteúdo através da skin padrão do plone. > > O problema é que em alguns diretórios, eu tive que inserir um page > > template (main_template) para que pudesse ter um layout interno > > (contéudo) diferenciado. Com isso, o main_template modifica não > > apenas o "front-end", mas também o back-end (skin default do plone) e > > não permite o acesso a gerência dos objetos de conteúdo de tal diretório. > > > > Alguns diretórios eu consegui mudar o visual através da própria tag de > > modificação de classes (css) constante no do main_template > > (geral), mas isso não me satisfaz totalmente, uma vez que o site é > > bastante complexo quanto a modificação da disposição dos elementos > > visuais no portal, ou seja, em algumas partes do site, o template é > > totalmente customizado, tanto no css quanto no xhtml. > > > > Ví numa