Integrando o SlideShowPro ao WordPress

Sei que muitos irão falar que não faz sentido usar o Slideshow Pro, por ele ser um produto pago, e gerar Feature Content em Flash, e também devido ao fato de existir inúmeras outras alternativas, tanto em Jquery como em MooTools e blá, blá, blá….

Porém, eu já utilizo o SlidShow Pro a um bom tempo, e o acho muito simples e de fácil manipulação, a grande chatice era ter que editar manualmente um arquivo XML com as informações dos imagens e URL de feature. Pois bem, este howto, irá explicar como você pode integrar ele ao WordPress, de forma que cada usuário possa inserir as imagens diretamente no post, semelhante ao conhecido Featured Content Gallery. Existe um produto comercial com essa mesma idéia, só que em forma de plugin, o  SlidePress. Vamos lá…

( 1 ) Consiga uma versão paga ou “alternativa” dos arquivos:
slideshow.fla, slideshow.html e slideshow.swf
obs: você irá precisar do Adobe Flash CS4 ou maior para editar o slideshow.fla

( 2 ) Abrindo o slideshow.fla, em seu Adobe Flash, você verá uma imagem que você terá que editar e deixar do tamanho que deseja carregar em seu projeto, no exemplo anexo a este post, o SWF será exportado no tamanho de 470×215. Então, assumindo que você tenha o mínimo de conhecimento de Flash, é só editar na aba Position and Size.

( 3 ) Ainda no Flash, você clicando no Scene 1, irá surgir a aba Component Parameters, o qual possui diversos parâmetros que podem ser configurados, porém o mais importante é a penúltima opção, XML File Path, onde é informado o nome do arquivo XML que irá ser carregado, pode deixar como esta. Essa versão não permite que seja inserido um XML remoto, como uma URL. Ao terminar de editar os parâmetros, basta dar um publish, para gerar um novo slideshow.swf, e coloque ele diretamente na pasta de seu tema (wp-content/themes/seutema).

( 4 ) No WordPress você pode criar uma categoria que irá receber todos os posts de destaque, que irá utilizar o slideshow. Faça também uma alteração, na aba Configurações/Diversas, na opção: Armazenar arquivos enviados nesta pasta, pode-se deixar a padrão: wp-content/uploads e desmaque o checkbox Organizar arquivos enviados em pastas baseadas no mês e ano.

( 5 ) Crie diretamente em seu tema uma página com template personalizado, através da tag, Template Name, com o seguinte código:

[php]
< ?php /* Template Name: Destaque */ /* header('Content-Type: text/xml'); header('Cache-Control: no-store'); echo '‘;
echo ‘

‘;

query_posts(‘cat=3’);
if ( have_posts() ) : while ( have_posts() ) : the_post();

echo ‘\r\n”;
$xml .= “\r\n”;
$xml .= “\r\n”;

query_posts(‘cat=3’);
if( have_posts() ) : while( have_posts() ) : the_post();
$xml .= “ID, ‘destaque’, true).”\” link=\”” .get_permalink(). “\” target=\”_self\”/>\r\n”;
endwhile; endif;
$xml .= “\r\n”;
$xml .= “\r\n”;
$file= fopen(“$path”, “w+”);
fwrite($file, $xml);
fclose($file);
?>
[/php]

Com o mínimo de conhecimento, você pode notar que este código é responsável por gerar um XML com os posts da categoria 3, que no caso é o ID da categoria que criei no WordPress, e que irá receber todos os posts destacados.

O primeiro bloco comentado, é para visualizar o XML na tela, que não é nosso objetivo, mas sim gravar diretamente na pasta do nosso tema ($path) um arquivo chamado output.xml, que é o mesmo nome que você viu na edição do slideshow.fla.

Não perca o ID dessa página, você irá precisa dele adiante.

( 6 ) Instale o plugin kimili que auxiliará na hora de postar o SWF diretamente na página ou post desejado. O uso deste plugin é opcional, pois você pode inserir o slideshow.swf diretamente em uma página personalizada.

( 7 ) Adicione alguns posts, dentro da categoria criada (Destaque). Insira a imagem no post, através da opção Upload/Insert (add image) :

Após inserir sua imagem (para o tamanho do .fla configurado acima, é de 477×215), você verá essa tela:

Copie o nome do arquivo inserido, no caso acima: 1.jpg e pode fechar essa janela de upload de imagem.

Nos campos personalizados, logo abaixo da edição dos posts, cole o nome do arquivo, no campo valor, e adicione como nome destaque:

( 8 ) Com o plugin kimili ativado, crie um novo post ou uma nova página que irá exibir o slideshow, e adicione o seguinte trecho de código:

Claro, trocando o id da página do iframe e a URL do slideshow.swf, para o seu caso.

Pronto, com isso você pode exibir essa página que irá mostrar o slideshow de acordo com os posts inseridos.

OBS, a pasta de seu tema, tem que ter privilégio de escrita.

http://www.featuredcontentgallery.com/

Exemplo do SlideShow funcionando: http://www.tjac.jus.br

Corel Draw X4 – Erro 24

Howto:  Corrigindo o erro 24 ao tentar abrir o Corel Draw

Problema:

Este é um erro que esta aparecendo em todas as instalações de Corel Draw em máquinas conectadas na internet, desde o dia 01 de junho de 2010, exibe um alerta indicando o erro 24 e solicita que o usuário reinstale para corrigir e não abre o aplicativo, porém, mesmo reinstalando o problema persiste.

Solução 1:  Criando um novo atalho limpo

  1. Baixe o seguinte arquivo: “RunAsDate”.
  2. Em Aplicativo selecione o arquivo do Corel x4 geralmente é este o caminho:
    (C:\Program Files\Corel\CorelDRAW Graphics Suite X4\Programs\CorelDRW.exe).
  3. Em Data/ Hora: coloque uma data anterior ao dia 01/06/10.
  4. Desmarque a opção “Avançar o tempo conforme o tem real”.
  5. Ao lado do botão “Criar Icone no Desktop” coloque um nome para o atalho que será criado.
  6. E por fim clique em “Criar Ícone no Desktop”.

Ele criara automaticamente um atalho para o CorelDraw x4 limpinho de erro!

Solução 2:  Solução definitiva

O que causa esse problema todo, é um arquivo chamado drt14.dta. Veja como resolver definitivamente este problema.

  1. Baixe o arquivo “drt14.dta“. e  substitua o arquivo antigo em:
    – Em Windows Vista ou 7:
    C:\ProgramData\Corel\CorelDRAW Graphics Suite X4 ou
    C:\Users\All Users\Corel\CorelDRAW Graphics Suite X4

    Se você tem o Windows XP vá em:
    C:\Documents and Settings\All Users\Application Data\Corel\CorelDRAW

OBS: os o arquivos podem estar ocultos!

Valeu Lupe!!

HowTo: MySQL – Como resetar um campo Auto Increament

Tenho uma tabela com uma coluna de auto-incremento para a chave primária. Ao adicionar e/ou excluir registros o valor de auto incremento irá continuar a aumentar.

problema 1:
Se eu tiver 10 registros inseridos e depois deletar 9 dos 10 registros, o próximo valor a ser inserido será 11, não 9.

Solução:
Pode-se executar a seguinte query:

[sql]ALTER TABLE tablename AUTO_INCREMENT = 1[/sql]

Isso irá redefinir o valor do auto-incremento para o maior valor definido +1, assim, o valor de auto-incremento do próximo registro a ser inserido terá início a partir 9, no exemplo dado.

Pode-se utilizar também essa técnica, quando se deseja de fato limpar todos os registros da tabela e recomeçar o auto-incremento.
[sql]
DELETE FROM tablename
ALTER TABLE tablename AUTO_INCREMENT = 1
[/sql]

Problema 2:
Se eu tivesse entrado com 10 registros, e excluido alguns como o  4 e 5 e quero inserir próximo registro como 4 não 11.

Solução:
Execute a seguinte query:
[sql]SET insert_id = 4;
INSERT INTO tablename VALUES (‘blah’, ‘…’);[/sql]

Isto irá adicionar o próximo registro na posição 4.

SET insert_id = # (onde # é o valor do auto-incremento que você quer usar).

PS.: Só é eficaz para a inserções imediatas imediatas, uma por vez.

Pra não esquecer: query_posts paginando por categoria (WordPress)

Todo mundo sabe o poder que a tag query_posts do WordPress possui, o exemplo abaixo é utilizado para paginar o resultado (pra usar o plugin wp_page_numbers ou wp_navi), pegando a categoria direto pela URL, no caso, utilizando o archive.php.

[php]
< ?php global $more; $more = 0; $numposts = 3; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts('showposts='.$numposts.'&paged='.$paged.'&cat='.get_query_var('cat')); ?>
[/php]

ou pode-se fazer assim também:

[php]
< ?php global $more; $more = 0; $numposts = 3; $categories = get_the_category(); //pega todas as categorias //echo 'primeira categoria: ' .$categories[0]->cat_ID;
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
query_posts(‘showposts=’.$numposts.’&paged=’.$paged.’&cat=’.$categories[0]->cat_ID);
?>
[/php]

Resolvendo o problema de “License has expired” – Adobe CS3

Problema: Você recebe este alerta quando tenta executar alguma aplicação da sua suite Adobe CS3, e com isso não consegue executar o aplicativo.

Porque isso acontece: Segundo a Adobe,  isso só ocorre quando você tem instalado em sua máquina uma versão beta da suite, e ai tenta instalar uma versão Full, mesmo removendo a suite, as informações de número de série fica armazenado, causando este erro.

Solução: Para resolver isso, existe duas formas:
1 – Remover a suite, e depois executar o Adobe CS3Clean Script, que irá apagar do registro todas as informações de número de série, e então irá solicitar um novo número.

2 – Sem precisar remover a suite, você pode fazer com que a mesmo solicite novamente o número de série. Esta é a solução mais indicada.

Executando a solução mais indicada:

  1. Tenha em mãos um serial válido (pegue um aqui – Mas só entre neste site caso você tenha um bom anti-virus ativo e que não seja com Internet Explorer, ou então pegue neste link ou neste outro aqui, uma lista com geradores de seriais.), e tenha conhecimento de como proceder para ativação.
  2. delete o arquivo cache.db em “c:\Program Files\Common Files\Adobe\Adobe PCD\cache\”2. execute alguma aplicação da suite, qualquer uma.3. entre com o número de série que você já pegou ou gerou4. volta até a pasta do cache.db (c:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db), e clique com direito sobre o arquivo cache.db, opção propriedades, atributos somente leitura.
  3. Clique em “Next”
  4. Agora remove ao atribuito de somente leitura do arquivo cache.db – “c:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db”
  5. Marque a opção “Never register” no formulário que finaliza a inserção do serial.
  6. Mais uma vez coloque o atributo somente leitura no arquivo cache.db – “c:\Program Files\Common Files\Adobe\Adobe PCD\cache\cache.db”
  7. Finalize

Com isso tudo vai rodar normalmente…

WP-DownloadManager – Reordenando os Registros na “Unha”

wpmanager

Quem trabalha com WordPress de forma profissional com certeza deve conhecer um plugin chamado WP-DownloadManager, do Lester Chan, um dos mais atuantes desenvolvedores de plugins para WordPress, veja alguns.

Pois bem, o Wp-DownloadManager é uma mão na roda para disponibilizar arquivos para download, permite criar categorias, ordenar a disponibilização dos arquivos e ainda faz estatísticas de download.

Tenho usado ele na intranet de um dos meus empregadores, com sucesso. Mas vamos aos problemas que precisei solucionar.

1.  Temos diversas categorias de downloads, e acertamos que a ordem que mostraríamos os arquivos aos usuários era os mais novos primeiros, ordenados pelo file_id dos arquivos, veja abaixo a tabela do plugin.

[sql]

CREATE TABLE  `wp_downloads` (
`file_id` int(10) NOT NULL auto_increment,
`file` tinytext NOT NULL,
`file_name` text NOT NULL,
`file_des` text NOT NULL,
`file_size` varchar(20) NOT NULL default ”,
`file_category` int(2) NOT NULL default ‘0’,
`file_date` varchar(20) NOT NULL default ”,
`file_updated_date` varchar(20) NOT NULL default ”,
`file_last_downloaded_date` varchar(20) NOT NULL default ”,
`file_hits` int(10) NOT NULL default ‘0’,
`file_permission` tinyint(2) NOT NULL default ‘0’,
PRIMARY KEY  (`file_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

[/sql]

Tudo estava funcionando maravilhas,  os usuários fazem o upload dos arquivos, levando em consideração que os mais antigos devem ser inseridos primeiro, e ai será exibido como planejamos, ficando assim:

277/2009 – Designa Comissão Especial …..
» 42.5 KiB – 5 downloads – 02 de novembro de 2009

276/2009 – Designa Comissão Especial encarregada de elaborar …..
» 41.0 KiB – 3 downloads – 05 de novembro de 2009

275/2009 – Designa o servidor ….l
» 43.0 KiB – 2 downloads – 10 de novembro de 2009

O problema é que como a intranet atual foi migrada de uma versão anterior, onde não existia um CMS, vários arquivos foram inseridos a esmo, e que ao serem exibidos não correspondem a lista descrescente por nome, como no exemplo acima.

Embora que sistema permita mudar isso facilmente, isso não era possível de se fazer, pois iria afetar todas as outras categorias, pois as mudanças de ordenação são globais.

Vejamos a solução:

Primeiro foi dado um Select na tabela WP_DOWNLOADS para retonar o último FILE_ID.

[sql]

SELECT max(file_id) FROM  wp_downloads

[/sql]

retornou: 969

Com o uso de um contador, é possível simular uma contagem sequencial, veja:

[sql]

set @contador:=970;
SELECT (@contador:=@contador+1), wp_downloads.* FROM `wp_downloads` WHERE `file_category`= 10 order by `file_name` asc

[/sql]

Ou seja, a idéia é fazer com que os valores desse SELECT sequencial possa ser aplicado na coluna file_id da tabela wp_downloads.

Com a ajuda de meu amigo Edcley Firmino – o papa do SQL -,  chegamos a decisão de fazer uma Procedure utilizando RowID. Veja como ficou:

[sql]

BEGIN

DECLARE vcontador INT;
declare b,vfile_id int;
DECLARE cursor_1 CURSOR FOR SELECT file_id
FROM wp_downloads WHERE file_category= 10
order by file_name ASC;

DECLARE EXIT HANDLER FOR NOT FOUND SET b=1;
OPEN cursor_1;
set vcontador := 970;
REPEAT
FETCH cursor_1 INTO
vfile_id;
update wp_downloads
set file_id = vcontador
where file_id = vfile_id;
set vcontador := vcontador + 1;

UNTIL b=1 END REPEAT;
CLOSE cursor_1;

END

[/sql]

Pronto, ao executar-mos essa procedure, todos os registros da coluna File_ID foram atualizados, e então foi possível voltar a exibir corretamente os arquivos em ordem decrescente.

Funciona maravilhosamente bem… é isso.

Howto: Corrigindo Charset – LAOP (Linux+Apache+Oracle+PHP)

Howto:  Corrigindo Charset – LAOP (Linux+Apache+Oracle+PHP)
=============================================

Vamos ao cenário:

“Eu possuo um servidor Debian com Apache, PHP, e Client do Oracle 9i entre outras coisas. Na hora de mandar as informações para o banco se a informação contiver acentuação ela grava com erro no banco por exemplo:
Se eu quiser gravar joão no banco fica: joco

Eu ja fiz o teste e realizei um insert direto na base através do sql plus e não deu problema os acentos aparecem, o problema acontece apenas quando eu envio a informação através de uma página PHP.  E o mesmo acontece quando tenta recuperar a informação do Banco.

Tentei mudar o charset da página com:
[html][/html]

Mas mesmo assim as informações apareciam com caracteres estranhos.

Para Acentuação:
Adicione as seguinte linhas no arquivo: /usr/local/apache2/bin/envvars

[html]NLS_LANG=”portuguese_brazil.we8iso8859p1″
export NLS_LANG[/html]

O arquivo envvars pode estar em outro local, depedendo de como foi realizada a instalação, em um dos meus servidores o aquivo estava em:  /etc/apache2/envvars

Provavelmente se as linhas forem adicionadas no /etc/profile o problema também se resolva, porém não testei…

Após isso é so reiniciar o Apache e testar.

Bloqueando tecla Enter

Howto: Como Bloquear a tecla Enter em Formulários.
==================================================================

[code=html]


[/code]

Howto: Executar dumps extensos com phpMyAdmin

===================================================
Howto: Executar dumps extensos com phpMyAdmin
===================================================

Aqui está um truque simples e conveniente que eu uso muitas vezes para fazer o Dump de scripts  MySQL, contornando as restrições de limites do PHP/Apache  (file upload).

O exemplo abaixo foi realizado utilizando o Vertrigo, mas o procedimento é o mesmo para uma instalação Linux.

1. Vá até o diretório onde esta instalado o seu phpMyAdmin e crie uma pasta chamada “upload”.  Cole qualquer (pode ser vários) scripts SQL que você gostaria de rodar nesta pasta. Desculpe o nome desfocado, mas é por razões de segurança.

screenshot_upload1

2. Abra o arquivo de configuração do phpMyAdmin (config.inc.php). Você o encontrará na raiz da pasta  do diretório phpMyAdmin.
screenshot_config_location1
3.  Edite o config.inc.php na linha do diretório upload, como mostrado abaixo e salve.

screenshot_edit

4. Agora, quando você entrar no phpMyAdmin, você verá uma guia nova listando todos os arquivos que você tenha inserido no diretório  “upload”, criado na etapa 1 acima.
timthumb
Portanto, da próxima vez que você tentar transferir um script SQL grande para um servidor remoto,  tente o truque acima e, em seguida, faça upload dos SQL´s via FTP para dentro da pasta “upload” criada por você e selecione-o a partir da lista que phpMyAdmin apresenta… funciona que é uma maravilha..