Localizar e substituir em grandes arquivos com sed

Hoje precisei localizar e substituir todas as ocorrencias de uma string dentro de um arquivo muito grande de um dump de um banco de dados MySQL de uma loja magento que mudou de domínio. Normalmente eu fazia isso com o Notepad++ que tem o melhor desempenho nessa tarefa em comparação com outros editores como Sublime Text, Dreamweaver, Bloco de Notas, etc. Porém alguma coisa estava saindo errado no processo e eu não estava conseguindo importar o banco. E como o arquivo era muito pesado não tinha possibilidade de eu encontrar a linha com erro e corrigir.

Então encontrei um comando que substitui lá no linux, chamado sed. Isso salvou minha vida e do cliente que estava atendendo.

O comando é bem simples, no meu caso, como queria mudar um domínio por outro, o comando que executei foi:

$ sed -i 's/dominioantigo.com/novodominio.com/g' database.sql

Como é uma expressão regular, recomendo escapar todos os símbolos presentes na string. No meu caso como o único símbolo era um ponto, e mesmo ele sendo um coringa nas expressões regulares, não achei que poderia prejudicar e no fim deu tudo certo, mas o correto seria eu ter executado este comando:

$ sed -i 's/dominioantigo\.com/novodominio\.com/g' database.sql

É uma solução prática para muitas tarefas, mas acho que o que mais acontece por aí que exige essa tarefa é mudança de domínio.

Instalando e ativando a extensão PHP mCrypt no Ubuntu

Alguns frameworks como o Magento precisam dessa extensão.

Mãos à obra!

Obter permissões de root

sudo su

Instalando as bibliotecas necessárias

apt-get install php5-mcrypt

Ativando a extensão

php5enmod mcrypt

Reiniciando o apache

service apache2 restart

Feito!

Adicionando suporte ao jQuery no Magento

Neste artigo vou ensinar como adicionar suporte ao jQuery no Magento.

O Magento já possui suporte ao Scriptaculous, porém ele não é de todo perfeito e caso você queira plugins adicionais que utilizem o jQuery como base você vai precisar do jQuery.

Os arquivos necessários para realização dessa tarefa são:

  1. Versão atual do jQuery
  2. Versão atual do Scriptaculous

Você vai reparar que o Magento já possúi o Scriptaculous, porém as versões mais antigas desse script não foram criadas pensando em compatibilidade com outros scripts e dariam conflito com o jQuery caso você não atualize.

Com os scripts nas mãos faça o seguinte:

Atualizando o Scriptaculous

Copie todos os arquivos do Scriptaculous para /js/scriptaculous/ substituindo todos os arquivos existentes.

Adicionando o jQuery

Abra o arquivo /app/design/frontend/default/seuTema/layout/page.xml

Logo abaixo dos outros scripts adicione a seguinte linha:

[code] <action method=”addJs”><script>jquery.js</script></action>[/code]

Ficando assim:

Agora coloque o seu jQuery na pasta /js/ com o nome jquery.js

O caminho completo seria /js/jquery.js

Agora abra o arquivo do jquery e adicione ao final do arquivo a linha:

[code]jQuery.noConflict();[/code]

Ficando assim:

jquery-no-magento-3

 

Agora vá na administração do seu Magento e atualize o cache para que tudo entre em funcionamento.

Pronto, você adicionou o jQuery no seu Magento.

Para utilizar o jQuery dê preferência pela sintaxe:

[code]jQuery(‘objeto’).acao();[/code]

ao invés de

[code]$(‘objeto’).acao();[/code]

É isso.

Abraços.

Migrando o Magento para outro servidor

Diferente do que muitos pensam migrar o Magento é bem tranquilo. Você só precisa se preocupar com algumas coisas.

 

Passos:

  • Preparando os arquivos para Upload

Extraia uma cópia nova do seu Magento em uma pasta, e depois adicione os arquivos dos seus módulos adicionais e traduções, exceto os instalados pelo Magento Connect.

Por exemplo, modulo de pagamento do pagseguro, tema e a tradução para o português do Brasil.

Se você instalou um plugin adicional como um lightbox pelo Magento Connect você deverá instalar de novo quando o Magento estiver online, se fizer upload dele poderá dar problema.

No final você terá: Magento + tradução + módulo de pagamento pagseguro + tema, vamos chamar esse pacote de pacote de upload.

Eu recomendo que você compacte esses arquivos de preferência com o tar.bz2 que pode ser descompactado pelo painel da sua hospedagem.

 

  • Preparando o banco de dados

A parte do banco de dados será uma surpresa pra você, pois é mais fácil do que você imagina.

Simplesmente faça uma exporte o seu banco de dados local completo (dados + estrutura).

Eu não aconcelho compactar ele, pode dar erro de codificação.

Terminamos com o banco de dados.

 

  • Começando a instalação

No seu novo servidor siga esses passos:

  1. Faça upload dos seu pacote de upload e descompacte caso tenha compactado
  2. Crie um banco de dados para o Magento, um usuário com login e senha e relacione esse usuário ao banco de dados
  3. Acesse o banco de dados e importe os dados do seu Magento que você exportou logo acima
  4. Agora acesse o endereço do Magento para começar a instalação
  5. Não se esqueça de dar permissão de escrita nas pastas que o Magento pede
  6. Siga os passos da instalação como de costume e quando pedir a chave de criptografia informe a mesma que você salvou quando instalou o Magento pela primeira vez

 

  • Terminando a migração

Agora você já tem o Magento migrado e funcionando com seu banco de dados completo.

O que falta agora são poucas coisas.

  1. Instale os plugins que você havia instalado no seu Magento local pelo Magento Connect
  2. Faça upload do conteudo da pasta media do seu magento local para o magento online, pode compactar da mesma forma se preferir. A pasta media é responsável pelas fotos dos produtos
  3. Faça o mesmo com a pasta skin sem preocupações. A pasta skin é responsável pelas modificações na aparência do Magento
  4. Agora é a hora de upar suas modificações da pasta app. Nessa hora eu recomendo que você só faça upload dos arquivos que você modificou. Tome cuidado com a pasta app/etc e a app/core, se fizer o upload completo dessas pastas é bem provavel que seu Magento não funcione mais.

 

Pronto, você migrou com sucesso o seu magento.

Todas as modificações que você havia feito no painel administrativo, como configurar formas de pagamento, páginas cms, catalogos e produtos estarão todos na sua loja que agora é online.

Não atropele os passos, faça exatamente como eu fiz aqui, pois eu fiz desse jeito e deu certo pra mim então dará para você também.

Boa sorte!

Quantidade de novos produtos na home

Uma das minhas primeiras dores de cabeça com essa primeira loja virtual que estou montando foi como alterar a quantidade de produtos novos exibidos na home.

Para isso abra o arquivo: app/code/core/Mage/Catalog/Block/Product/New.php

E altere a constante abaixo para o valor que preferir.

const DEFAULT_PRODUCTS_COUNT = 5;

    É simples assim.

    Exibindo produtos na home do Magento

    Tenho certeza que a primeira coisa que você quis foi exibir produtos na home do Magento.

    Para isso basta ir em: admin>cms>páginas>home

    E em conteúdo adicionar:

    {{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/product/new.phtml"}}
    

    ou

    {{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/list.phtml"}}
    

    ou

    {{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" category_id="3" template="catalog/product/list.phtml"}}
    

    Esses três código fazem respectivamente:

    • Exibe os novos produtos, aqueles que você marca como novos dentro de uma determinada data.
    • Exibe uma lista com todos os produtos.
    • Exibe uma lista dos produtos de uma determinada categoria, neste caso a categoria de id 3.

    Executando código PHP em uma página CMS no Magento

    Este tutorial tem como objetivo ensinar de forma fácil como utilizar uma página phtml no seu magento para que você possa fazer suas próprias programações nele sem nenhuma gambiarra.

    Vantagens:

    • Um .phtml aceita programação PHP
    • Aceita também funções nativas do Magento

    Compatibilidade:

    • Todas as versões

    Passos:

    1 – Entre na administração do magento e acesse:

    • Sistema > CMS > Páginas

    2 – Crie uma nova página clicando em Criar Página:

    3 – Digite as informações necessárias na primeira etapa (Informações da Página)

    4 – Navege até Conteudo. Em Conteúdo coloque o seguinte código:

    {{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="cms/suapagina.phtml"}}
    

    Obs.: Não altere quaisquer informações no código ou poderá não funcionar. Mude apenas o nome do arquivo (suapagina).

    5 – O arquivo deve estar em:

    • app/design/frontend/base/default/template/cms/suapagina.phtml

    6 – Para acessar a página você deve digitar o endereço do site + o que você colocou em Nome na URL lá na primeira etapa.

    Caso tenha colocado algo como minha-pagina então você teria que acessar simplesmente:

    • www.seusite.com.br/pastadomagento/sua-pagina/

    ou (caso você não configurou seu htaccess)

    • www.seusite.com.br/pastadomagento/index.php/sua-pagina/

    ou (caso sua loja seja a raiz do site)

    • www.seusite.com.br/sua-pagina/

    7 – Onde colocar os códigos PHP?

    No arquivo .phtml que você criou.