Desenvolvimento Web – DevHouse Internet Software Development House http://localhost:8080 Desenvolvimento de Sistemas para Internet e Mobile Tue, 23 Jun 2026 08:58:43 +0000 pt-BR hourly 1 https://wordpress.org/?v=4.8.14 Configurando HTTPS no Wildfly http://localhost:8080/configurando-https-no-wildfly/ http://localhost:8080/configurando-https-no-wildfly/#comments Mon, 04 May 2015 15:29:26 +0000 http://www.devhouse.com.br/?p=790 Esta configuração é apenas para habilitar o https em uma máquina de desenvolvimento com o Servidor de Aplicação Wildfly. Não fui a fundo na questão de segurança já que não sou eu que administro o servidor onde vai rodar a aplicação. Portanto não use isto em ambiente de produção.

Estou usando o Wildfly 8.2.0.Final.

  1. A primeira coisa a fazer é entrar no diretório da instalação do Wildfly, na pasta ./standalone/configuration/  e executar o seguinte comando:
    keytool -genkeypair -alias serverkey -keyalg RSA -keysize 2048 -validity 7360 -keystore localhost.keystore -keypass mypassword -storepass mypassword -dname "cn=Server Administrator,o=Acme,c=GB"
  2. Edite o arquivo ./standalone/configuration/standalone.xml e adicione o seguinte xml dentro de security-realms:
    <security-realm name="UndertowRealm">
    	<server-identities>
    		<ssl>
    			<keystore path="localhost.keystore" relative-to="jboss.server.config.dir" keystore-password="mypassword"/>
    		</ssl>
    	</server-identities>
    </security-realm>
  3. Em seguida adicione a linha abaixo dentro de subsystem undertow -> server
    <https-listener name="https" socket-binding="https" security-realm="UndertowRealm"/>

    Veja como ficou a entrada completa:

    <subsystem xmlns="urn:jboss:domain:undertow:1.2">
    	<buffer-cache name="default"/>
    	<server name="default-server">
    		<http-listener name="default" socket-binding="http"/>
    		<https-listener name="https" socket-binding="https" security-realm="UndertowRealm"/>
    		<host name="default-host" alias="localhost">
    			<location name="/" handler="welcome-content"/>
    			<filter-ref name="server-header"/>
    			<filter-ref name="x-powered-by-header"/>
    		</host>
    	</server>
    	<servlet-container name="default">
    		<jsp-config/>
    		<websockets/>
    	</servlet-container>
    	<handlers>
    		<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
    	</handlers>
    	<filters>
    		<response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
    		<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
    	</filters>
    </subsystem>

 

Pronto, reinicie o servidor e acesse https://localhost:8443.

]]>
http://localhost:8080/configurando-https-no-wildfly/feed/ 14
Copiar / Download de um site inteiro com WGET [ripar] http://localhost:8080/copiar-download-de-um-site-inteiro-com-wget-ripar/ http://localhost:8080/copiar-download-de-um-site-inteiro-com-wget-ripar/#respond Sat, 11 Oct 2014 08:44:03 +0000 http://www.devhouse.com.br/?p=765 Para copiar um site inteiro, incluindo fotos, arquivos js e css usando o wget no Linux execute o seguinte comando:

 

$ wget \
     --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains exemplo.com \
     --no-parent \
     -e robots=off \
     --load-cookies=cookies.txt \
         exemplo.com/blog

o parâmetro –domains informa ao wget para só baixar arquivos daquele domínio.
O último diz de qual raiz copiar. Nesse caso eu só copiaria os arquivos, recursivamente, do /blog do site exemplo.com.

A explicação dos parâmetros segue abaixo. Depois eu traduzo:

–recursive: download the entire Web site.

–domains website.org: don’t follow links outside website.org.

–no-parent: don’t follow links outside the directory tutorials/html/.

–page-requisites: get all the elements that compose the page (images, CSS and so on).

–html-extension: save files with the .html extension.

–convert-links: convert links so that they work locally, off-line.

–restrict-file-names=windows: modify filenames so that they will work in Windows as well.

–no-clobber: don’t overwrite any existing files (used in case the download is interrupted and
resumed).

]]>
http://localhost:8080/copiar-download-de-um-site-inteiro-com-wget-ripar/feed/ 0
Acessar dbAdapter ou outra resource do bootstrap de qualquer lugar da aplicação [Zend Framework 1] http://localhost:8080/acessar-dbadapter-ou-outra-resource-do-bootstrap-de-qualquer-lugar-da-aplicacao-zend-framework-1/ http://localhost:8080/acessar-dbadapter-ou-outra-resource-do-bootstrap-de-qualquer-lugar-da-aplicacao-zend-framework-1/#respond Tue, 30 Sep 2014 12:27:24 +0000 http://www.devhouse.com.br/?p=757 $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap'); $resource = $bootstrap->getPluginResource('db'); $adapter = $resource->getDbAdapter();

 

]]>
http://localhost:8080/acessar-dbadapter-ou-outra-resource-do-bootstrap-de-qualquer-lugar-da-aplicacao-zend-framework-1/feed/ 0
Habilitando Syntax Highlighting no Nano http://localhost:8080/habilitando-syntax-highlighting-no-nano/ http://localhost:8080/habilitando-syntax-highlighting-no-nano/#respond Mon, 29 Sep 2014 18:29:06 +0000 http://www.devhouse.com.br/?p=750 Estou desenvolvendo um software em PHP e testando algumas modificações direto no servidor. Para editar os arquivos php eu uso o nano (não me acostumei ao vi). Então senti falta de cores no código para facilitar a compreensão e tirar um pouco a monotonia do monocromático. E funciona via ssh!

Veja se os arquivos de highlight estão no diretório /usr/share/nano/

$ ls /usr/share/nano/
asm.nanorc     fortran.nanorc   man.nanorc     ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    mgp.nanorc     patch.nanorc   sh.nanorc
c.nanorc       groff.nanorc     mutt.nanorc    perl.nanorc    tcl.nanorc
cmake.nanorc   html.nanorc      nano-menu.xpm  php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

No meu caso todos os arquivos estavam lá exceto o php.nanorc. Justo o que eu precisava. Então peguei da net. Segue ele na íntegra:

## PHP Syntax Highlighting
syntax "php" "\.php[2345s~]?$"
color white start="<\?(php|=)?" end="\?>"
# Functions
color brightblue "([a-zA-Z0-9_-]*)\("
# Constructs
color brightblue "(class|extends|goto) ([a-zA-Z0-9_]*)"
color green "[^a-z0-9_-]{1}(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|endif|foreach|endforeach|@|while|public|private|protected|return|true|false|null|TRUE|FALSE|NULL|const|static|extends|as|array|require|include|require_once|include_once|define|do|continue|declare|goto|print|in)[^a-z0-9_-]{1}"
color brightblue "[a-zA-Z0-9]+:"
# Variables
color white "\$[a-zA-Z_0-9$]*|[=!<>]"
color white "\->[a-zA-Z_0-9$]*|[=!<>]"
# Special Characters
color yellow "[.,{}();]"
color yellow "\["
color yellow "\]"
color yellow "[=][^>]"
# Numbers
color magenta "[+-]*([0-9]\.)*[0-9]+([eE][+-]?([0-9]\.)*[0-9])*"
color magenta "0x[0-9a-zA-Z]*"
# Special Variables
color brightblue "(\$this|parent::|self::|\$this-\>)"
# Bitwise Operations
color magenta "(\;|\||\^){1}"
# And/Or/SRO/etc
color green "(\;\;|\|\||::|=>|->)"
# Online Comments
color brightyellow "(#.*|//.*)$"
# STRINGS!
color red "('[^']*?')|(\"[^\"]*?\")"
# Inline Variables
color white "\{\$[^}]*\}"
# PHP Tags
color red "(<\?(php)?|\?>)"
# General HTML
color red start="\?>" end="<\?(php|=)?"
# trailing whitespace
color ,green "[^[:space:]]{1}[[:space:]]+$"
# multi-line comments
color brightyellow start="/\*" end="\*/"

Gravei o arquivo php.nanorc em uma pasta do meu usuario mesmo. Depois precisei criar um arquivo .nanorc e incluir o caminho para os arquivos de sintaxe:

$ nano ~/.nanorc
include /usr/share/nano/sh.nanorc
inclue ~/php.nanorc

E pronto, é só editar um arquivo php:

nano-syntax-highlight

Nano com Syntax Highlight

]]>
http://localhost:8080/habilitando-syntax-highlighting-no-nano/feed/ 0
Impedir que um Script PHP seja executado ao mesmo tempo no Cron http://localhost:8080/impedir-que-um-script-php-seja-executado-ao-mesmo-tempo-no-cron/ http://localhost:8080/impedir-que-um-script-php-seja-executado-ao-mesmo-tempo-no-cron/#respond Mon, 29 Sep 2014 18:11:53 +0000 http://www.devhouse.com.br/?p=748 Estou construindo um script de sincronia de banco de dados que deve rodar de 5 em 5 minutos na cron do linux. O problema é que ele pode acabar durando mais do que cinco minutos então pesquisando uma forma de evitar que o script seja executado novamente antes que o anterior termine encontrei a solução no link abaixo e coloco aqui com pequenas alterações:

http://abhinavsingh.com/blog/2009/12/how-to-use-locks-in-php-cron-jobs-to-avoid-cron-overlaps/

Crie um arquivo chamado CronHelper.php e adicione o código abaixo (eu coloquei na mesma pasta do meu script cron):

<?php
define('LOCK_DIR', __DIR__ . '/');
define('LOCK_SUFFIX', '.lock');

class CronHelper {
    private static $pid;

    function __construct() {
        
    }

    function __clone() {
        
    }

    private static function isrunning() {
        $pids = explode(PHP_EOL, `ps -e | awk '{print $1}'`);
        if (in_array(self::$pid, $pids)) {
            return TRUE;
        }
        return FALSE;
    }

    public static function lock() {
        global $argv;
        
        $path_parts = pathinfo($argv[0]);

        $lock_file = LOCK_DIR . $path_parts['basename'] . LOCK_SUFFIX;

        if (file_exists($lock_file)) {
            //return FALSE;
            // Is running?
            self::$pid = file_get_contents($lock_file);
            if (self::isrunning()) {
                error_log("==" . self::$pid . "== Já está em progresso...");
                return FALSE;
            } else {
                error_log("==" . self::$pid . "== O job anterior foi interrompido abruptamente...");
            }
        }

        self::$pid = getmypid();
        file_put_contents($lock_file, self::$pid);
        error_log("==" . self::$pid . "== Trava adquirida, processando o job...");
        return self::$pid;
    }

    public static function unlock() {
        global $argv;

        $lock_file = LOCK_DIR . $argv[0] . LOCK_SUFFIX;

        if (file_exists($lock_file)) {
            unlink($lock_file);
        }

        error_log("==" . self::$pid . "== Soltando a trava...");
        return TRUE;
    }

}

Para utilizado coloque todo o código do cron dentro do if:

<?php
require 'CronHelper.php';

if(($pid = cronHelper::lock()) !== FALSE) {
    /*
     * O código do seu cron job vai aqui!
     */

    cronHelper::unlock();
}

?>
]]>
http://localhost:8080/impedir-que-um-script-php-seja-executado-ao-mesmo-tempo-no-cron/feed/ 0
Enviando via GMail com PHPMailer http://localhost:8080/enviando-via-gmail-com-phpmailer/ http://localhost:8080/enviando-via-gmail-com-phpmailer/#respond Mon, 29 Sep 2014 17:30:08 +0000 http://www.devhouse.com.br/?p=742 A biblioteca PHPMailer é bem completa e de uso muito comum entre programadores PHP. Então a dica é como configurá-la para enviar emails usando o SMTP do GMail.

require_once 'PHPMailer/PHPMailerAutoload.php';
    
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587; 
$mail->Username = "envio@email.com.br";  
$mail->Password = "********";           
$mail->SetFrom("envio@email.com.br", "CronJob");
$mail->Subject = "Uma excecao ocorreu.";
$mail->Body = $text;
$mail->AddAddress($to);
if(!$mail->Send()) {
    echo 'Mail error: '.$mail->ErrorInfo; 
    return false;
} else {
    echo 'Message sent!';
    return true;
}
]]>
http://localhost:8080/enviando-via-gmail-com-phpmailer/feed/ 0
elFinder, um Gerenciador de Arquivos para o WordPress http://localhost:8080/gerenciadores-de-arquivos-para-o-wordpress/ http://localhost:8080/gerenciadores-de-arquivos-para-o-wordpress/#comments Sun, 03 Jun 2012 20:05:14 +0000 http://www.devhouse.com.br/?p=243 logo do elfinder

Mais uma vez surge uma necessidade ao escrever artigos para este blog e resolvi compartilhar com vocês.

Eu uso o plugin SyntaxHighlighter Evolved para dar colorido aos códigos postados neste blog mas estava tendo um problema com o tema que estou usando. O tema coloca o atributo box-shadow no css para a tag <code> que também é usada pelo SyntaxHighlighter e dai já viu a bagunça.

A correção é simples: editar o css do SyntaxHighlighter Evolved e colocar box-shadow: none; para a tag <code>.

Até ai tudo bem. Tranquilo. Só que é uma mudança rápida e simples e eu não queria ter que abrir um programa de ftp, baixar o arquivo, alterar e enviar novamente. Para pequenas alterações em arquivos assim é bem prático ter um gerenciador de arquivos web a mão.

Na minha época do Joomla eu usava o eXtplorer, um ótimo gerenciador de arquivos escrito em PHP com frontend em ExtJS. Temos um post dedicado exclusivamente a ele:


Como explicado no post, o eXtplorer até possui um plugin para o WordPress mas ele não funciona na versão 3.3.2.

Procurando mais alternativas encontrei um plugin chamado wp-FileManagerque só de olhar o screenshot já me fez recusá-lo. Me desculpem o preconceito mas a minha experiência diz que, salvo excessões, programas com interface “tosca” como a deste plugin, não são atualizados com frequência ou é muito amador.

wp-FileManager

wp-FileManager, você instalaria?

elFinder
Despois de descartar o wp-FileManager, sem ao menos instalar ele para testar, finalmente encontrei um ótimo substituto ao eXtplorer. O elFinder inclusive possui praticamente as mesmas features do outro, que são:


  • Operações comuns em arquivos armazenados em servidores remotos (copiar, mover, upload, criar arquivo/pasta, renomear, etc)
  • Dois tipos de visualização: lista e ícones
  • Alta performance nas partes de cliente e servidor
  • Upload de múltiplos arquivos
  • Métodos padrão de agrupamento de seleção de arquivos usando mouse ou teclado
  • Menu de contexto
  • “Hot Keys” para a maioria das ações
  • Mover/Copiar arquivos usando Drag & Drop
  • Trabalho com arquivos compactados
  • Preview para a maioria dos tipos de arquivos
  • Editar arquivos de texto e redimensionar imagens
  • “Lugares” para os favoritos
  • Calculo de tamanho de diretórios
  • Criação de thumbnails para arquivos de imagens rodando em background
  • Facil integração com editores web (elRTE, CKEditor, TinyMCE)
  • Configuração de direitos de acesso flexível, tipos de arquivos permitidos para upload, interface de usuário entre outros
  • Extensível
  • API de cliente/servidor simples baseada em JSON

Instalei no WordPress 3.3.2, apesar de uma alerta dizendo que não tinha sido testado ainda para esta versão mas tudo funcionou bem. Gostei do plugin e recomendo!

Alguns Screenshots

visão de icones

Visão de Ícones

Visão de Lista

Visão de Lista

upload de arquivos

Upload de arquivos

Redimensionamento de imagens

Redimensionamento de imagens

Preview de arquivo

Preview de arquivo

Edição de arquivo de texto

Edição de arquivo de texto

Menu de contexto

Menu de contexto


O elFinder não é mais encontrado na busca de plugins dentro da administração do WordPress mas você pode baixar o zip e instalar manualmente. Instalei com sucesso na versão 3.4.2. Baixe neste link.


É isso! Espero que achem útil como eu achei.

]]>
http://localhost:8080/gerenciadores-de-arquivos-para-o-wordpress/feed/ 4
eXtplorer, um gerenciador de arquivos em PHP http://localhost:8080/extplorer-um-gerenciador-de-arquivos-em-php/ http://localhost:8080/extplorer-um-gerenciador-de-arquivos-em-php/#comments Sun, 03 Jun 2012 10:24:04 +0000 http://www.devhouse.com.br/?p=252 eXtplorer Logo

Muitas vezes é preciso fazer pequenas alterações em arquivos ou corrigir permissões e ter a possibilidade de fazer isso através do browser, sem ter que instalar e configurar um cliente ftp, é ótimo!

O eXtplorer é um ótimo gerenciador de arquivos escrito em PHP com frontend ajax criado usando o EXTJS*. Possui alguns bugs aqui e ali mas considerando que é gratuito não importa. Em falar nisso sua licensa pode ser tanto Mozilla Public License (MPL 1.1) ou GNU General Public License (GNU/GPL) com um pequeno detalhe: se você escolher distribuir um software, com o extplorer incluso, sob a MPL você não poderá incluir o ExtJS. Ou seja, terá que criar outra interface.

Deixando o papo chato de licensa de lado, suas principais características são:

  • Copiar e mover arquivos e diretórios usando Drag & Drop
  • Árvore de diretórios dinâmica com carregamento sob demanda de subdiretórios
  • Edição de arquivos (com destaque de sintaxe graças ao EditArea)
  • Renomear, apagar ou criar novos arquivos e diretórios
  • Acesso de arquivos usando FTP ou diretamente (PHP) para sobrepor problemas de permissão de arquivos
  • Upload e Download de arquivos
  • Compactação de Descompactação de arquivos (Zip, Tar, Tar/GZ, Tar/BZ)
  • Gerenciamento de usuários com diferentes níveis de permissão como “somente leitura”, “edição” e “admin”
  • Facil instalação

Eu uso o eXtplorer em sites Joomla a mais de cinco anos e desde então este software tem me ajudado muito em tarefas rápidas em arquivos de sites remotos. Inclusive o eXtplorer tem um plugin para o WordPress, chamado wp-eXtplorer, que a princípio serviria como um wrapper para o eXtplorer dentro do WordPress mas o mesmo não instalou na versão 3.3.2. O plugin nem completou a instalação e foi exibida a mensagem:

Fazendo o download do pacote de instalação de http://downloads.wordpress.org/plugin/wp-extplorer.zip...

Descompactando o pacote...

Instalando o plugin...

O pacote não pôde ser instalado. Nenhum plugin válido foi encontrado.

A instalação do plugin falhou.

Veja os screenshots abaixo:

Instalação do wp-eXtplorer

Erro na instalação do wp-eXtplorer

O plugin para o Joomla funciona bem pois é desenvolvido pelos próprios desenvolvedores do eXtplorer.

Alguns screenshots:


Formulario de Login

Login do Extplorer

Extplorer

Extplorer

menu de contexto

Menu de contexto

editor de texto

Editor de Texto

Compressão de Arquivo

Compressão de Arquivo


Instalação:


Conforme mencionado na lista de features do software ele possui 3 tipos de instalação. Vamos cobrir aqui apenas as instalações manual e com pacote Debian. Sendo que não aconselho a utilização do pacote debian pois o mesmo não tem necessidade e vem com o arquivo de usuários zerado. Acredito até que vem zerado pois o eXtplorer vem com o usuário admin e senha admin em hard code no arquivo .htusers.php o que representa uma falha de segurança para o sistema.
Inclusive é de extrema importância a troca da senha após o primeiro logon no eXtplorer.

Instalação Manual

  1. Faça o download do arquivo compactado neste link.
  2. Descompacte o arquivo no seu computador.
  3. Envie os arquivos via ftp para o seu servidor web ou copie na pasta /var/www local.
  4. Ajuste as permissões.
    • Caso o servidor seja remoto você precisa dar permissão de leitura e escrita para o usuario do apache na pasta extplorer/ftp_tmp. Por exemplo:
      $ chmod 777 ./explorer/ftp_tmp
    • Caso a instalação seja no seu servidor local de desenvolvimento você verá a seguinte mensagem ao tentar executar o software:
      Warning: require_once(/var/www/extplorer/libraries/standalone.php): failed to open stream: Permission denied in /var/www/extplorer/index.php on line 44 Fatal error: require_once(): Failed opening required '/var/www/extplorer/libraries/standalone.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/extplorer/index.php on line 44

      Para corrigir digite o seguinte comando no shell:

      $ sudo chown -R www-data /var/www/extplorer/
  5. Aponte o browser para http://<SERVIDOR>/extplorer e use login: admin e senha: admin.
    Troque a senha imediatamente!

Instalação via pacote Debian


Como disse anteriormente não recomendo esta instalação e estou colocando aqui apenas a título de curiosidade. Este teste foi feito no Linux Mint Debian Edition.

  1. Entre no shell e digite o seguinte comando:
    $ sudo apt-get update
    $ sudo apt-get install extplorer
  2. Após o download e a instalação será preciso recriar o conteúdo do arquivo .htusers.php que se encontra no diretório /etc/extplorer.
    $ cd /etc/extplorer
    $ sudo nano .htusers.php

    O arquivo está vazio, portanto insira o seguinte código que foi extraido da versão 2.1.0 RC 5 em 03/06/2012.

    <?php
    /** @version $Id: .htusers.php 135 2009-01-27 21:57:15Z ryu_ms $ */
    /** ensure this file is being included by a parent file */
    if( !defined( '_JEXEC' ) && !defined( '_VALID_MOS' ) ) die( 'Restricted access' );
    
    $GLOBALS["users"]=array(
    array("admin","21232f297a57a5a743894a0e4a801fc3",empty($_SERVER['DOCUMENT_ROOT'])?realpath(dirname(__FILE__).'/..'):$_SERVER['DOCUMENT_ROOT'],"",1,"",7,1),
    ); ?>
  3. Por último crie um link simbólico para o eXtplorer dentro do diretório do www do apache:
    sudo ln -s /usr/share/extplorer/ extplorer
  4. Aponte o browser para http://<SERVIDOR>/extplorer e use login: admin e senha: admin.
    Troque a senha imediatamente!


É isso pessoal!

* EXTJS é uma ótima framework para criação de aplicativos ricos para internet (RIA). Uma boa opção de substituição ao Adobe Flex. Já desenvolvi algumas aplicações usando EXTJS e recomendo!

]]>
http://localhost:8080/extplorer-um-gerenciador-de-arquivos-em-php/feed/ 12
Como traduzir um template do WordPress http://localhost:8080/como-traduzir-um-template-do-wordpress/ http://localhost:8080/como-traduzir-um-template-do-wordpress/#respond Wed, 30 May 2012 05:17:03 +0000 http://www.devhouse.com.br/?p=201 Se você instalou algum template (tema) para o WordPress e percebeu que algumas palavras estão em inglês ou outra língua, mesmo que o seu WordPress seja em português você precisa fazer a tradução do tema.

Os arquivos de localização do WordPress utilizam o GetText, uma biblioteca do projeto GNU para fazer internacionalização de software. Os arquivos do GetText tem a extensão .po e .mo.

Para editar estes arquivos é necessário um editor especial. Existem alguns editores para este tipo de arquivo. O GTed é um plugin do Eclipse e me parece ser muito completo apesar de que não o conheço.

Para este tutorial vamos usar o Poedit, um pequeno editor dedicado para este fim. Existem versões para MAC OS X, Windows e Linux. Caso você não use linux faça o download do editor no site: http://www.poedit.net.

Caso use Linux execute os seguintes comandos no shell:

$ sudo apt-get update
$ sudo apt-get install poedit
$ poedit

O último comando abrirá o poedit:

Tela do Poedit

Internacionalização usando o Poedit


Encontre o arquivo .po original. Neste exemplo o arquivo está em:

wp-content/themes/twentyeleven/languages/pt_BR.po.

Leve em consideração que o twentyeleven é o nome do template que estou usando e que ele já vem em português.

Após encontrado o arquivo crie uma cópia do mesmo renomeando usando o código da língua e pais da tradução. Para português brasileiro pt_BR, para português de portugual pt_PT, para inglês, en_US.

Abra o arquivo que você criou com o poedit e agora é só traduzir. A coluna original string está a string na sua versão original que também é exibida na primeira caixa de texto abaixo da tabela. Na segunda coluna da tabela estão as strings traduzidas que você insere na caixa de texto mais abaixo da tela.

Você pode usar as teclas tab e as setas para navegar mais facilmente entre os itens do poedit.

 

Depois é só salvar e pronto!

]]>
http://localhost:8080/como-traduzir-um-template-do-wordpress/feed/ 0
Trabalhando com absolute path em imagens e links de posts do WordPress http://localhost:8080/trabalhando-com-absolute-path-em-imagens-e-links-de-posts-do-wordpress/ http://localhost:8080/trabalhando-com-absolute-path-em-imagens-e-links-de-posts-do-wordpress/#respond Wed, 30 May 2012 04:04:12 +0000 http://www.devhouse.com.br/?p=172 Estou iniciando o desenvolvimento deste blog que você lê e no momento uso ele no meu ambiente de desenvolvimento. Tenho apache2, php e mysql instalado no meu Linux Mint Debian e o
WordPress está rodando em localhost. A primeira vez que fui testar o site em outra maquina da rede usei o IP da máquina servidor, www.devhouse.com.br e percebi que o CSS e nenhuma imagem estava funcionando.
O CSS foi resolvido editando as configurações do site e alterando de para em “Endereço do WordPress” nas configurações gerais conforme a figura abaixo:

Configurações Gerais do WordPress

Configurações Gerais do WordPress.


Após a alteração o site apareceu corretamente mas as imagens nos posts não. Procurando na internet verifiquei que é uma característica do WordPress para SEO e facilitar a vida de alguns plugins. O problema que veja é imagine se um dia eu resolver mudar de domínio? Imagina o problema que seria depois de anos de publicação ter que alterar todos os posts? Bom é isso mesmo que teremos que fazer mas de uma forma mais facil: rodando um pequeno comando sql no banco do WordPress.

Você pode abrir o phpMyAdmin, o MySQL Workbench ou via linha de comando. Execute a seguinte sentença SQL:

update wp_posts set post_content = replace(post_content,'','')


Substitua “” pelo seu endereço.

Caso você não tenha acesso ao banco de dados pode instalar o plugin Search and Replace que tem como função buscar strings em todo o site e fazer a substituição.


É isso!

]]>
http://localhost:8080/trabalhando-com-absolute-path-em-imagens-e-links-de-posts-do-wordpress/feed/ 0