SitemapHelper

12 views
Skip to first unread message

Hugo Fabricio

unread,
Aug 29, 2012, 7:42:49 AM8/29/12
to spaghe...@googlegroups.com
Bom dia pessoal,

Alguém já utilizou o SitemapHelper do Klawdyo?

https://github.com/klawdyo/New-Spaghetti-Core/blob/master/lib/helpers/SitemapHelper.php

Tenho que criar ele em  uma view e toda vez que quiser gerar, acessar esta view para ser criado, ou a medida que o site é atualizado ele gera automaticamente?

Grato

José Cláudio Medeiros de Lima

unread,
Aug 29, 2012, 8:09:27 AM8/29/12
to spaghe...@googlegroups.com
Tu joga ele numa view. Se tu usar só o parse, então ele é atualizado a cada acesso, como as demais páginas. Nesse caso tu pode criar uma reescrita de url pra ele ficar sendo chamado a partir de uma url site.com/sitemap.xml.

Se você preferir usar o save(), aí não precisa de uma view específica, nem da reescrita, pois ele já salvará o arquivo em /public/sitemap.xml, mas vc vai precisar forçar a atualização a cada período de tempo, ou  a cada inclusão no banco de dados, etc. Lembrando que precisar ter acesso de escrita na pasta.

2012/8/29 Hugo Fabricio <m...@hugofabricio.com>

Hugo Fabriicio

unread,
Aug 29, 2012, 8:19:37 AM8/29/12
to spaghe...@googlegroups.com
Obrigado Klawdyo.
--
Atenciosamente,
Hugo Fabricio
Web Designer | +55 83 8898-0131
www.hugofabricio.com

Djalma Araújo

unread,
Aug 29, 2012, 8:22:55 AM8/29/12
to spaghe...@googlegroups.com
Klawdyo,
ainda usas spaghetti?

2012/8/29 Hugo Fabriicio <m...@hugofabricio.com>



--
Djalma Araújo
Software Engineer - Brazil
Liferay, Inc.
Enterprise. Open Source. For Life.

José Cláudio Medeiros de Lima

unread,
Aug 29, 2012, 8:31:49 AM8/29/12
to spaghe...@googlegroups.com
Uso. Mas só como hobby, atualmente.

2012/8/29 Djalma Araújo <djalma...@gmail.com>

Djalma Araújo

unread,
Aug 29, 2012, 8:32:34 AM8/29/12
to spaghe...@googlegroups.com
O que tem usado, como linguagem hoje e frameworks?

2012/8/29 José Cláudio Medeiros de Lima <kla...@gmail.com>

José Cláudio Medeiros de Lima

unread,
Aug 29, 2012, 8:42:59 AM8/29/12
to spaghe...@googlegroups.com
Rapaz... saí da área de programação e virei servidor público. hehehe Resumindo.
Só tenho programado pra passar o tempo mesmo. Ultimamente venho fazendo umas modificações no Spaghetti pra suportar um Core único para vários projetos, cache, algumas classes e helpers. Mas como estou um pouco afastado então não tenho muito compromisso... vou fazendo conforme vai dando vontade, saca?
Mas é isso mesmo.
Cadê o cara que há 1 ano atrás disse q ia botar o fórum no ar "em uma semana"?

2012/8/29 Djalma Araújo <djalma...@gmail.com>

Toni Agne | Garagee - Soluções WEB

unread,
Aug 29, 2012, 8:47:54 AM8/29/12
to spaghe...@googlegroups.com
Daew gurizada, pra variar, pra nós todos nunca sobra tempo suficiente pra botar em prática o que desejamos, muitas idas e vindas não consegui concluir, mas ainda quero fazer o forum, tem um amigo nosso que tomou conta ai dos arquivos fontes do site talvez consiga em tempo mais hábil q o meu terminar lá.

Qualquer novidade posto aqui pra nós.

abraços.

José Cláudio Medeiros de Lima

unread,
Aug 29, 2012, 8:59:33 AM8/29/12
to spaghe...@googlegroups.com
Porque não usa o fórum original? https://github.com/spaghettiphp/spaghettiphp-forum
Só precisa incluir um Captcha pra evitar spam.

2012/8/29 Toni Agne | Garagee - Soluções WEB <toni...@gmail.com>

Toni Agne | Garagee - Soluções WEB

unread,
Aug 29, 2012, 9:02:12 AM8/29/12
to spaghe...@googlegroups.com
Bahh, até nem tinha conhecimento destes arquivos.

Vou providenciar a adaptação.

Abraços.

Hugo Fabriicio

unread,
Aug 29, 2012, 9:06:03 AM8/29/12
to spaghe...@googlegroups.com
Alguém ainda tem o banco de dados do forum?

José Cláudio Medeiros de Lima

unread,
Aug 29, 2012, 9:09:30 AM8/29/12
to spaghe...@googlegroups.com
Que banco? A estrutura ou os dados propriamente ditos?
Se for só a estrutura, tá lá no github, no diretório "db"

2012/8/29 Hugo Fabriicio <m...@hugofabricio.com>

Toni Agne | Garagee - Soluções WEB

unread,
Aug 29, 2012, 9:09:55 AM8/29/12
to spaghe...@googlegroups.com
Eu tenho aqui ! 

Mas acho q ta no github também pelo q vi.

Hugo Fabriicio

unread,
Aug 29, 2012, 9:13:47 AM8/29/12
to spaghe...@googlegroups.com
Os dados do antigo.


Em 29 de agosto de 2012 10:09, Toni Agne | Garagee - Soluções WEB <toni...@gmail.com> escreveu:
Eu tenho aqui ! 

Mas acho q ta no github também pelo q vi.



Hugo Fabriicio

unread,
Aug 29, 2012, 10:55:36 PM8/29/12
to spaghe...@googlegroups.com
Boa noite Pessoal,

Klawdyo, estou fazendo um teste aqui.


- Controller

<?php
/**
 * 
 * SitemapController
 * 
 */

class SitemapController extends AppController {

    // Not related to the model
public $uses = array();

// Helpers
public $helpers = array('Sitemap');

    // Index
public function index() {

        // Não renderiza o layout
        $this->layout = false;

}

}

View 

<?php
$this->Sitemap
        ->addPages(array('/', '/programacao', '/faqs', 'testimonials'), 'daily', 1)
        ->addPages(array('/contato'), 'never', 0.3);

//Cria o xml e exibe na tela
echo $this->Sitemap->parse();

Estou utilizando a versão 2 e chamando no link http://execut.com.br/sitemap

Poderia me dar uma força, por gentileza?

José Cláudio Medeiros de Lima

unread,
Aug 30, 2012, 11:06:33 AM8/30/12
to spaghe...@googlegroups.com
Rapaz.. aparentemente o helper não está sendo carregado. Tem que ver aí porque isso não está acontecendo.
O erro que está acontecendo é esse:

<br />
<b>Fatal error</b>: Call to a member function addPages() on a non-object in <b>/home/exec2107/public_html/app/views/sitemap/index.htm.php</b> on line <b>3</b><br />

Esse erro está dizndo que o método 'addPages' na linha 3 não está sendo chamado a partir de um objeto válido, ou seja, "this->Sitemap" não é um objeto, ou seja, o helper não foi carregado corretamente.

Veja se você colocou na pasta correta. Veja se outros helpers estão sendo carregados. 


2012/8/29 Hugo Fabriicio <m...@hugofabricio.com>

Hugo Fabriicio

unread,
Aug 30, 2012, 11:33:01 AM8/30/12
to spaghe...@googlegroups.com
Retirei o $this-> e deu certo.

$sitemap->addPages(array('/'), 'daily', 1); //30% de prioridade
echo $sitemap->parse();

Hugo Fabriicio

unread,
Aug 30, 2012, 11:34:47 AM8/30/12
to spaghe...@googlegroups.com
Obrigado Klawdyo.

Hugo Fabriicio

unread,
Aug 30, 2012, 11:56:18 AM8/30/12
to spaghe...@googlegroups.com
Klawdyo, ela é só para versão 3 do spaghetti né?

José Cláudio Medeiros de Lima

unread,
Aug 30, 2012, 12:44:24 PM8/30/12
to spaghe...@googlegroups.com

É... A versão 0.2 era assim mesmo... Os exemplos que estão na classe levam em conta versões mais recentes.

José Cláudio Medeiros de Lima

unread,
Aug 30, 2012, 12:47:15 PM8/30/12
to spaghe...@googlegroups.com

Ele funciona em todas as versões. Os exemplos na classe é que levam em conta as versões mais recentes.

Hugo Fabriicio

unread,
Aug 30, 2012, 12:54:56 PM8/30/12
to spaghe...@googlegroups.com
Estou testando o addModel

e ele me diz que não encontrou o Loader.

José Cláudio Medeiros de Lima

unread,
Aug 30, 2012, 1:20:17 PM8/30/12
to spaghe...@googlegroups.com

Humm.. Esqueci desse detalhe. A class Loader só apareceu no 0.3. No que você usa tem um semelhante, só não lembro agora.
Amanhã eu te falo, pois estou só com celular hoje.
Valeu.

Hugo Fabriicio

unread,
Aug 30, 2012, 1:40:03 PM8/30/12
to spaghe...@googlegroups.com
Muito obrigado Cláudio.

José Cláudio Medeiros de Lima

unread,
Aug 30, 2012, 2:03:10 PM8/30/12
to spaghe...@googlegroups.com

Tu usa ClassRegistry::getInstance(); no lugar do Loader.

Cláudio Medeiros

unread,
Aug 31, 2012, 12:10:18 PM8/31/12
to spaghe...@googlegroups.com
Resolveu com o ClassRegistry::getInstance()?

2012/8/30 José Cláudio Medeiros de Lima <kla...@gmail.com>

Hugo Fabriicio

unread,
Aug 31, 2012, 1:09:53 PM8/31/12
to spaghe...@googlegroups.com
Boa tarde Cláudio,

Infelizmente não.

Hugo Fabriicio

unread,
Aug 31, 2012, 1:13:15 PM8/31/12
to spaghe...@googlegroups.com
PHP Fatal error:  Call to undefined method ClassRegistry::all()

Cláudio Medeiros

unread,
Aug 31, 2012, 5:52:17 PM8/31/12
to spaghe...@googlegroups.com
Esse método não existe não.
Você deve usar algo assim, supondo que seu model chama-se "Imoveis"

O que você deve entender é que o Spaghetti teve várias modificações durante o tempo e que elas não constumavam respeitar a compatibilidade com as anteriores. Portanto, em 4 versões, tivemos 4 formas diferentes de chamar instâncias de classses, conforme você pode ver abaixo.

Versão 0.1 do Spaghetti
$results = ClassRegistry::init('Imoveis', 'Model'); //v 0.1

Versão 0.2 do Spaghetti
$results = ClassRegistry::load('Imoveis', 'Model'); //v 0.2

Versão 0.3 do Spaghetti
$results = Loader::instance('Model', 'Imoveis');  //v 0.3

Versão 0.3 do Spaghetti já mudando pra 0.4, antes de acabar
$results = Model::load('Imoveis');  //v 0.4

No seu caso, supondo que você usa o 0.2, você vai lá no método addModel() do helper SitemapHelper e, na primeira linha deste método, você vai ter 
$results = Loader::instance('Model', $model)->all($params);

É só você alterar, substituindo por
$results = ClassRegistry::load($model, 'Model')->all($params);

Aguardo o retorno.

Cláudio.



2012/8/31 Hugo Fabriicio <m...@hugofabricio.com>

Hugo Fabriicio

unread,
Aug 31, 2012, 6:07:57 PM8/31/12
to spaghe...@googlegroups.com
Cláudio, nem sei como lhe agradecer pela a ajuda.

Só restou um erro o String::insert, esta chamada tem na versão 2.0?

Se for possível sanar outra dúvida, eu posso tbm retornar dados de outras tabelas relacionada com a que defini?

Cláudio Medeiros

unread,
Aug 31, 2012, 6:54:28 PM8/31/12
to spaghe...@googlegroups.com
Você pode adicionar vários models ao seu sitemap. No entanto, não relacionados. A não ser que a sua versão do Spaghetti suporte relacionamento. A versão que eu uso só suporta 'recursion'.

Quanto ao String::insert(), ele é da versão 0.3. Se quiser pode usar a minha versão dele, ou a versão original.




2012/8/31 Hugo Fabriicio <m...@hugofabricio.com>

Hugo Fabriicio

unread,
Aug 31, 2012, 6:58:36 PM8/31/12
to spaghe...@googlegroups.com
Certo, muito obrigado Cláudio.

Hugo Fabriicio

unread,
Aug 31, 2012, 7:04:29 PM8/31/12
to spaghe...@googlegroups.com
Qual a versão que suporta relacionamento Cláudio, a 3?

Cláudio Medeiros

unread,
Aug 31, 2012, 7:09:46 PM8/31/12
to spaghe...@googlegroups.com
Que eu saiba, nenhuma.

2012/8/31 Hugo Fabriicio <m...@hugofabricio.com>

Cláudio Medeiros

unread,
Aug 31, 2012, 7:11:27 PM8/31/12
to spaghe...@googlegroups.com
Tem um início de relacionamento com joins no 0.3, mas que na época que eu testei não funcionava. Mas não sei dizer se houve algum avanço após isso.

2012/8/31 Cláudio Medeiros <kla...@gmail.com>

Hugo Fabriicio

unread,
Aug 31, 2012, 7:13:45 PM8/31/12
to spaghe...@googlegroups.com

Hugo Fabriicio

unread,
Aug 31, 2012, 7:19:05 PM8/31/12
to spaghe...@googlegroups.com
A tabela de Imoveis e relacionada com categorias, bairros, cidades, estados, tipos.

Cláudio Medeiros

unread,
Aug 31, 2012, 7:23:04 PM8/31/12
to spaghe...@googlegroups.com
Eu sei que tem esses relacionamentos aí com 'recursion'. Mas quando eu digo que não tem relacionamento, eu me refiro aos relacionamentos com 'join'.

A solução para você é definir os 'loc' como '/imovel/:id', e fazer um redirecionamento 301 para o endereço completo, usando o $this->redirect('/endereco/completo', 301) dentro da sua action. Ficaria quase como um encurtamento de url. Seria até mais fácil de divulgar urls fora do site.

2012/8/31 Hugo Fabriicio <m...@hugofabricio.com>

Hugo Fabriicio

unread,
Aug 31, 2012, 7:26:28 PM8/31/12
to spaghe...@googlegroups.com
Certo Claudio, obrigado por sanar as minhas dúvidas e por me dar algumas dicas.
Reply all
Reply to author
Forward
0 new messages