Sem categoria

Upload em Drupal 7

É possível adicionar imagem para ser usada com qualquer destaque num Tipo de Conteúdo, adicionando um Campo do tipo Imagem. O que não temos por padrão é uma opção para inserir uma imagem no corpo do conteúdo ou mesmo subir um arquivo de qualquer formato para referência na postagem.

Duas soluções que testei foram os módulos IMCE e Media. O IMCE tem mais recurso e por isso o formulário tem mais opções e para alguns casos não é uma boa solução. O Media é mais simples e direto e em dois projetos optei usar ele integrado ao TinyMCE (integrado ao módulo WYSIWYG).

No Drupal 7 não consegui usar a versão mais recente do TinyMCE (atualmente está na versão 4.4.3) e tive que usa a versão 3.5.8 (há mais recente do release).

Padrão
Sem categoria

Migrando SPIP para WordPress

Alguns anos atrás tive que migrar um site feito em SPIP para WordPress e documentei o processo no meu wiki. Tentei reutilizar essa documentação hoje e não deu certo, isso porque o importação no WordPress é a partir de um arquivo XML que o SPIP exportava por padrão nas versões 1.9 e 2.0 e não versão acima de 3.x o sistema de backup nativo do SPIP gera um arquivo .sqlite.

Fiz uma pesquisa e encontrei uma excelente solução: FG SPIP to WordPress. Essa solução importa as matérias (transformar em posts), as imagens do logotipo das matérias (virando Imagem Destacada) e as Seções (tornando-se Categorias).  Resolveu perfeitamente o meu problema.

No caso de necessidade de importar os usuários também a solução é usar o plugin Migrate SPIP Users.

Faltou uma solução para migrar comentários e palavras-chaves. Mas aí é outro assunto.

Padrão
Sem categoria

Erro view.inc on line 19

Deu problema no servidor e resolvi instalar todos os sites em Apache, ao invés de Nginx, como tenho feito há anos. Uma solução temporário, depois volto para o Nginx. O lance que ao rodar um Drupal 7 voltou o erro

[Thu Sep 01 20:54:26.343487 2016] [:error] [pid 29562] [client 191.249.153.58:33026] PHP Fatal error: Cannot redeclare class view in /var/www/html/drupal/sites/all/modules/views/includes/view.inc on line 19

Aí encontrei uma dica no fórum do Drupal que sugerindo que removesse o php5-xcache e rodei o comando apt-get remove php5-xcache e resolveu 🙂

 

 

Padrão
Sem categoria

Limpando tabela de dados MySQL

Recentemente tive que limpar o banco de dados de uma aplicação de um cliente e usei um TRUNCATE em todas as tabelas, tipo isso

TRUNCATE TABLE `atividades`;

e não sobrou nada 🙂

Mas no caso da tabela usuários eu tive problema, pois tinha manter os registros do tipo administrador. Então fiz assim

delete from usuarios where tipo='redator' or tipo = 'visitante' or tipo = '';

Remove usuários do tipo redador, ou visitante e ou vazio (deixando vazio entre aspas simples)… e assim administrador era poupado.

Outra forma de remover todos, exceto administrador é assim

delete from usuarios where tipo !='administrador';

 

Padrão
Sem categoria

Feito em Drupal

Depois de anos brigando com o Drupal, rejeitando mesmo, tive que fazer as pazes com ele. Acabei pegando um freelance e desenvolvi o novo portal da Fundação Perseu Abramo, isso em 2015. Foi um mês de trabalho, entendo como funciona a customização de tema e módulos. Depois que a gente conhece a ferramenta fica mais fácil de gostar dela, né?

Alguns outros sites que rodam sob Drupal, aproveitando que está rolando Olimpiadas no Brasil, o site do evento é feito em Drupal, o Jogos Olímpicos Rio 2016. O site foi feito pelo pessoal da Chuva-Inc, que tem um portfolio bem legal, além de devolverem bastante código para comunidade. Outro portal que eles desenvolverem em Drupal é o da Unicamp.

Outros websites feito em Drupal (só para vê o quando deu para criar tema personalizado):

Na página do projeto Drupal há vários outros estudos de casos.

Padrão
Sem categoria

PHP Fatal error: Unsupported operand types in block.admin.inc on line 38

Tenho fechado alguns freelance para atualizar Drupal 6 para 7, pois em 24 de fevereiro de 2016 encerrou o suporte para o release 6.x e daí em diante não terá qualquer atualização e o aconselhado é atualizar para o release 7 ou 8.

Vou documentar por aqui os problemas que tive e como fiz para resolver, de repente ajudar alguém 🙂

Nesse caso restaurei o projeto localmente e fui estudar como estava organizando os Blocos, mas a página abrir /admin/build/block aparecia toda branca. Olhando o log havia o erro:

[Wed Aug 17 21:52:54.703125 2016] [:error] [pid 20047] [client ::1:39508] PHP Fatal error:  Unsupported operand types in /var/www/html/drupal/modules/block/block.admin.inc on line 38, referer: http://localhost/drupal/?q=admin/build

e olhando a linha do arquivo em questão temos:

$block_regions = system_region_list($theme_key) + array(BLOCK_REGION_NONE => '<'. t('none') .'>');

O projeto estava rodando em Drupal 6.26 e tentei atualizar para versões acima, mas do mesmo release para não quebrar módulos sem antes eu estudar melhor o que foi desenvolvido. Mas não adiantou nada.

Buscando solução pela web acabei achando um post do fórum alemão e ajudou indiretamente no problema: nele sugerem que há um problema na configuração das regiões na configuração do tema. Resolvi então trocar o tema padrão e deu certo! Consegui acessar a página administrativa de Blocos, embora tenha que trabalhar com o tema do projeto desabilitado.

Padrão
Sem categoria

Adicionando localização de menu em WordPress

Se você precisa adicionar uma nova localização do WordPress é só acrescentar no arquivo functions.php algo como

if (function_exists('add_theme_support')) {
    add_theme_support('loja');
}

e depois no template você coloca

<?php     wp_nav_menu( array('menu' => 'loja',
    ));
?>

Depois você cria um novo menu em Aparência > Menu e em Gerenciar Posições você vincula o novo menu a localização Loja.

Mais informações em https://codex.wordpress.org/Navigation_Menus

Padrão
Sem categoria

Limitando visualização do conteúdo só na home do WordPress e Woocommerce

Sempre aparece a necessidade de determinado conteúdo ser apresentado somente na home do site em WordPress. Esses dias precisei fazer isso num projeto em Woocommerce (uma solução para loja virtual em WordPres), e duas soluções são:

<?php if ( is_home() || is_front_page() ) : ?>
<h2>Aparece só na Home</h2>
<?php endif ?>
<?php wp_reset_query(); ?>

e para Woocommerce

<?php if ( is_shop() || is_front_page() ) : ?>
<h2>Aparece só na Home</h2>
<?php endif ?>
<?php wp_reset_query(); ?>
Padrão