Formatando texto em minúsculo e maiúsculo com PHP
No dia a dia de um programador volta e meia precisamos de algumas coisas relativamente simples, porém que não lembramos, afinal é praticamente impossível lembrar todas as funções da linguagem. Pensando nisto resolvi criar uma categoria aqui no blog chamada “dicas rápidas PHP” para publicar dicas e funções simples mas que quebram um “galhão”.
Pra começar vamos lembrar funções para formatação de texto, tudo em maiúsculo, minúsculo, só a primeira letra em maiúsculo, formatando dados de um array e etc…
Formatando texto para maiúsculo e minúsculo
echo strtolower("TEXTO"); // resultado: texto echo strtoupper("texto"); // resultado: TEXTO echo ucwords("texto"); // Texto
Convertendo array para maiúsculo ou minúsculo
function arraytoupper(array $array, $round = 0){ return unserialize(strtoupper(serialize($array))); } function arraytolower(array $array, $round = 0){ return unserialize(strtolower(serialize($array))); }
Uma observação, na hora de formatar o texto para maiúsculo ou minúsculo é levada em consideração o local atual, se você tentar formatar o Ç para minúsculo e o locale não for pt-Br não vai funcionar, então lembre-se de usar:
setlocale(LC_ALL, 'pt_BR');
É isso ai pessoal, até a próxima.
Histórias de busu
Era sábado, mais ou menos 15 horas e o sol resolveu voltar a castigar, lá estava eu, sentado no ônibus, tentando imaginar porque o cliente que passou a semana inteira insistindo que uma reunião presencial era muito importante para o projeto, simplesmente não apareceu, quando reparo que algumas cadeiras a frente tinha um cara comendo a marmita e jogando no chão os temperos, provavelmente não era muito fã de tomates.
Fiquei imaginando o que levou aquele cara a resolver comer a comida, requentada pelo sol, provavelmente azeda, dentro do ônibus. O que pode ter impedido de comer antes? A fome era tão grande assim que ele não poderia deixar pra comer em casa? E porque diabos o FDP esta sujando o “busão”, será que em casa ele joga o que não quer comer no chão ou separa no cantinho do prato?
Não sou de me meter na vida alheia e normalmente essas coisas não me chamariam tanta atenção, mas realmente fiquei inquieto com a situação e tenho certeza que não fui o único, pois realmente era uma cena de dar nojo ver aquele cidadão comer, isso sem falar no mal cheiro que exalava daquele pote de sorvete utilizado para armazenar a comida.
Alguém precisava orientar aquele rapaz, então levantei e calmamente sugeri que ele deixasse para comer quando chegasse em casa. Com a sutiliza nata de um elefante ele recomendou que eu voltasse ao meu lugar, então pedi que pelo menos parasse de jogar restos de comida no ônibus porque a sujeira e mal cheiro estavam me incomodando, então ele sorriu, meteu a mão na comida e em seguida limpou na minha camisa.
Puts, o cara limpou a mão na minha camisa!
Respirei fundo por um momento, olhei bem nos olhos dele, mordi os dentes e voltei pro meu lugar.
Quando o dono da marmita desceu do ônibus o pessoal começou a falar sem parar… “que absurdo”, “falta de educação”, “respeito” e blá blá blá, mas a verdade é que terminei me lascando por conta da minha boca grande.
Utilizando o filtro post_where do WordPress
Estava trabalhando em um projeto que usa o WordPress como gerenciador de conteúdo e enquanto buscava uma luz para resolver um problema descobri o filtro post_where. O filtro post_where do WordPress serve para alterar a cláusula WHERE da consulta que é enviada ao banco de dados, somando-a aos if’s e is_ da vida é possível fazer uma porrada de coisa, vamos ver um exemplo.
Revista digital priorizando assinantes
Você vai desenvolver uma revista digital, não pretende cobrar para liberar acesso ao conteúdo, porém deseja incentivar os visitantes a se cadastrarem fornecendo o conteúdo antecipadamente, ou seja, usuários não cadastrados só terão acesso ao conteúdo 5 dias depois de publicado, enquanto os usuários cadastrados terão acesso imediato.
1 2 3 4 5 6 7 8 9 10 | function post_delay( $where ) { if(is_admin() || current_user_can('read')){ return $where; } $dias = 5; $dias = (get_option('gmt_offset') * 3600) - ($dias * 24 * 60 * 60); $where .= " AND post_date < '" . gmdate( 'Y-m-d H:i:s', ( time() + $dias ) ) . "'"; return $where; } add_filter( 'posts_where', 'post_delay' ); |
Com a função acima apenas administradores e usuários com privilégio mínimo de leitura poderão ver os posts logo após publicado, os outros só após 5 dias.
Lançamento do blog da DMI
A layout do blog da DMI, agência que trabalho, foi totalmente reformulado.
O gerenciador de conteúdo é WordPress, navega lá, vê se curti.
Incluindo link/ atalho para editar posts no seu tema WordPress
Hoje um cliente me perguntou se seria possível incluir um link para editar um post nas páginas do site dele. O motivo é simples, tanto quanto a solução, as vezes estamos visitando nosso site e nos deparamos com um erro de digitação ou algo que precisa ser corrigido no texto, entrar na página administrativa, procurar o post e editar não é das tarefas mais difíceis do mundo, mas estamos aqui pra facilitar a vida do cliente, então porque não gerar um link que leve o cliente diretamente para a página de edição do post?
Se eu criasse o link no tema, sem nenhum tipo de deste, este apareceria para todos os visitantes. Alguns podem dizer que não seria um problema visto que se alguém não logado no WordPress clicar no link editar não conseguirá porque o WP vai checar que este não esta logado e negará o acesso.
Ok, do ponto de vista técnico realmente não teria problema, mas em termos visuais e estratégicos não é interessante mostrar o link editar para os visitantes, então antes de exibir o link é necessário verificar se o usuário esta logado, para isto usei o método is_user_logged_in() que serve para testar se o usuário esta logado.
O código ficou mais ou menos assim:
<?php if(is_user_logged_in()){ ?> <a href="<?php bloginfo('url');?>/wp-admin/edit.php?p=< ?php the_ID(); ?>">Edit Post</a> <?php } ?> }
Este código deve ser utilizado dentro do loop.
No meu projeto o link deveria aparecer para qualquer usuário, então checar se o usuário esta logado é suficiente, mas no projeto de vocês pode haver a necessidade de restringir a exibição apenas para usuários de determinados grupos, se for o caso sugiro a utilização do método current_user_can();.
O método current_user_can() serve para checar se o usuário logado faz parte de determinado grupo de usuários. Os grupos basicamente são:
- administrator
- editor
- contributor
- subscriber
Se você quiser que apenas usuários do grupo administradores vejam o link altere o código para:
<?php if(current_user_can('administrator')){ ?> <a href="<?php bloginfo('url');?>/wp-admin/edit.php?p=< ?php the_ID(); ?>">Edit Post</a> <?php } ?> }
O bacana é que essa é uma dica simples, facilita bastante a vida do usuário e, de quebra, trabalha com 2 métodos extremamente úteis do WordPress, em diversas situações você vai precisar verificar se o usuário esta logado ou se faz parte de determinado grupo.
Até mais pessoal, o que acharam da dica? Pretendo escrever mais dicas para desenvolvimento WordPress, é do interesse? Que tipo de conteúdo, nesta linha, vocês esperam?
Novos atributos para links que interagem com telefones
Atualmente quando vamos desenvolver um site não podemos mais limitar a visão para computador e notebook, em tempos de mobilidade e convergência digital o acesso pode ser a através do celular, ipad, iphone, whatever, e precisamos estar preparados para garantir a melhor experiência de navegação para o usuário independente de qual dispositivo ele esta acessando.
Entre os diversos esforços para tornar a navegação multi plataforma o mais confortavel possível para os usuários eu gostaria de destacar uma bem simples e que pode fazer toda a diferença, trata-se de um método (ou seria padrão), descrito no método descrito no RFC 3966, para reconhecer automaticamente números de telefones em páginas HTML e facilitar a ligação.
Vamos imaginar que você esta visitando a loja virtual Mulher, Cerveja & Futebol com seu iphone e resolveu entrar em contato a moda antiga, você não quer acessar o formulário de contato, você encontrou o número do telefone da loja e quer simplesmente ligar pra lá. Não seria bom poder simplesmente clicar no número do telefone exibido no site para iniciar a ligação?
Oh Yeah, é disso que eu estava falando, o mailto não esta mais sozinho. agora você pode montar links que, acessado através de determinado dispositivo executam ações que tornam a experiência muito agradavel, veja os exemplos abaixo:
Link para iniciar uma ligação
<a href='tel:557188888888'>Me liga</a>
Link para envio de SMS
<a href='sms:557188888888'>Mande um torpedo</a>
Como exibir o total de posts – WordPress
Sei que já faz tempo que não apareço por aqui, estou trabalhando em dois lugares agora e em um deles já cheguei a virar a noite, também vieram alguns problemas de saúde e o resultado final disso tudo foi o abandono do blog.
Neste post quero mostrar como exibir o número total de posts retornados no query_posts do WordPress, pode parecer bobo mas saber o total de posts é util em diversas ocasiões.
Exibindo o total de posts
<?php echo $wp_query->post_count; ?>
Até a próxima pessoal.
Saudades e loucura
Ao olhar pela janela eu não vi aquela velha árvore, não vi os guris que normalmente passavam naquele horário a caminho da escola e lembrei que esta manhã não foi o vendedor de pamonha que me acordou gritando pela rua.
Senti falta…
Senti falta de não #tomar (@leobaiano) o café da manhã antes de sair pro trabalho, senti falta da bronca que mainha provavelmente me daria pela bebedeira do final de semana e dos 4 andares de escada que eu desceria cedo e subiria a noite.
Porque hoje pequenas coisas que eu nunca nem havia reparado, rotinas, pessoas, lugares, degraus, fazem escorrer uma lágrima de saudades pelo meu rosto?
Deve ser por isso que muitos desejam poder voltar no tempo, saudades, arrependimento, será que Herbert me deixaria usar a sua?
Nem espere um final ou um parágrafo que dê sentido a esse texto porque não vai rolar.
Lista de comandos do Gmail
Eu tenho o costume de marcar como não lida as mensagens, do e-mail, que necessitam de uma resposta ou ação minha e que ainda não cumpri. Hoje eu resolvi tirar um tempinho para rever todas as mensagens não lidas da minha caixa de e-mail e tive a maior dificuldade para encontra-las, porque minha ignorância não permitiu descobrir como listar apenas as mensagens não lidas.
Apelei para o twitter e os amigos @gersons e @geisasantos logo vieram com a solução. Eu imaginava que existia um ícone para filtrar as mensagens, mas a solução que encontrei foi através de comandos digitados na caixa de busca, pesquisando no Google encontrei uma tabela com diversos comandos do Gmail e achei bacana compartilhar.
Comandos do Gmail
| Operador | Configuração | Exemplo(s) |
|---|---|---|
| from: | Utilizado para especificar o remetente | Exemplo – from:ana Significado – Mensagens de Ana |
| to: | Utilizado para especificar um destinatário | Exemplo – to:daniel Significado – Todas as mensagens que foram enviadas ao Daniel (por você ou outra pessoa) |
| subject: | Pesquisar palavras na linha do assunto | Exemplo – subject:jantar Significado – Mensagens que contêm a palavra “jantar” no assunto |
| OR | Pesquisar mensagens que correspondam ao termo A ou ao termo B* *OR deve estar em caixa alta |
Exemplo – from:ana OR from:daniel Significado – Mensagens de Ana ou de Daniel |
| - (hífen) |
Utilizado para excluir mensagens de sua pesquisa | Exemplo – jantar -filme Significado – Mensagens que contêm a palavra “jantar”, mas não contêm a palavra “filme” |
| label: | Pesquisar mensagens por marcador* *Não existem operadores de pesquisa para mensagens não marcadas |
Exemplo - from:ana label:amigos Significado – Mensagens de Ana que contêm o marcador “amigos”Exemplo - from:daniel label:minha-família Significado – Mensagens de Daniel que contêm o marcador “Minha Família” |
| has:attachment |
Pesquisar mensagens com anexo | Exemplo – from:daniel has:attachment Significado – Mensagens de Daniel que contêm um anexo |
| filename: | Pesquisar um anexo por nome ou tipo | Exemplo – filename:deverdefísica.txt Significado – Mensagens com um anexo chamado “deverdefísica.txt” Exemplo – label:trabalho filename:pdf |
| ” “ (aspas) |
Utilizadas para pesquisar uma frase exata* *Não há distinção entre letras maiúsculas e minúsculas |
Exemplo – “estou com sorte” Significado – Mensagens que contêm a frase “estou com sorte” ou “Estou com sorte” Exemplo – subject:”jantar e filme” |
| ( ) |
Utilizado para agrupar palavras Utilizado para especificar termos que não devem ser excluídos |
Exemplo – from:ana(jantar OR filme) Significado – Mensagens de Ana que contêm a palavra “jantar” ou “filme” Exemplo – subject:(jantar filme) |
| in:anywhere | Pesquisa mensagens em qualquer lugar da sua conta* *Por padrão, as mensagens das seções Spam e Lixeira são excluídas das pesquisas |
Exemplo – in:anywhere assunto:filme Significado – Mensagens nas seções Todos os e-mails, Spam e Lixeira que contêm a palavra “filme” |
| in:caixa de entrada in:lixeira in:spam |
Pesquisar mensagens nas seções Caixa de Entrada, Lixeira ou Spam | Exemplo – in:lixeira from:ana Significado – Mensagens de Ana que estão na Lixeira |
| is:starred is:unread is:read |
Pesquisar mensagens marcadas com uma estrela, não lidas ou lidas | Exemplo – is:read is:starred from:Daniel Significado – Mensagens de Daniel que foram lidas e estão marcadas com uma estrela |
| cc: bcc: |
Utilizado para especificar destinatários nos campos cc: ou bcc: * *Pesquisas no campo bcc: não podem recuperar as mensagens enviadas a você pelo campo Bcc (Cco) |
Exemplo – cc:daniel Significado – Mensagens que foram copiadas para Daniel |
| after: before: |
Pesquisar mensagens enviadas durante um período* *As datas devem estar no formato aaaa/mm/dd. |
Exemplo – after:2004/04/16 before:2004/04/18 Significado – Mensagens enviadas depois de 16 de abril de 2004, mas antes de 18 de abril de 2004.* *Mais precisamente: Mensagens enviadas em 17 de abril de 2004. |
| is:bate-papo | Pesquisar mensagens de bate-papo | Exemplo – ischat:macaco Significado – Qualquer mensagem de bate-papo com a palavra “macaco”. |
Fonte: Ajuda do Gmail
Inversão de valores, o mundo esta ao contrario e ninguém reparou
Um amigo de infância esta me devendo uma grana a quase um ano, algumas vezes procurei saber quando ele iria pagar, cada vez uma conversa diferente e no final das contas o tempo vai passando e ele continua me devendo.
Eu não ligava muito, não que eu seja rico e não precise do dinheiro, mas como ele é meu amigo, o valor não é tão alto e blá blá blá. Acontece que outro dia estávamos conversando e enquanto ele “chorava miséria” eu observava a guria, de mini saia, na esquina ao lado do bar onde conversávamos, era muito mais proveitoso observá-la torcendo para que o vento fizesse seu trabalho e me proporcionasse uns minutos de esplendor que ouvir toda aquela lamentação, mas então ele falou algo que chamou minha atenção.
“Também tem um dinheiro que estou devendo a fulano e todo mes tenho que pagar X pra ele…”.
Pera lá, caralho, quem é fulano??? Fulano era um carinha que trabalhava com ele e emprestou o cartão de crédito pra comprar sei lá que porra pro caralho da casa de sei lá o que, tô nem ai…
Então fiquei pensando, esse puto já me deve uma grana a quase um ano e nunca se preocupou em pagar, nunca tentou parcelar a divida pra ficar mais leve, sempre aquela desculpa de não tenho e agora vem me dizer que tem pra pagar pro cara lá? Como é isso?
Demonstrei minha indignação com o fato e a explicação me deixou mais chateado ainda, ele disse que eu era gente boa, amigo de infância e tal, já o outro cara ele conhecia a pouco tempo e por isso não poderia falhar.
Este caso e alguns outros que lembrei vivenciar me fizeram perceber a inversão de valores que vivemos hoje no que diz respeito a consideração. Se você é gente boa ganha desculpas esfarrapadas, enrolação, sacanagem e etc… Se você é gente ruim todo mundo te trata com consideração, respeito e compromisso.
No lado profissional, se você é um chefe “brother” a galera quase nunca entrega o trabalho no prazo e se sentem no direito de fazer qualquer tipo de piada envolvendo sua pessoa, já se é um chefe “miseravão” entregam o trabalho antes do prazo e respeitam ao máximo.
No lado sentimental, quantas vezes viu alguém dizer que mulher/ homem gosta de homem/ mulher que não presta? É uma frase típica e nasceu por causa da inversão de valores, se você é bonzinho de mais, não se importa que ela saia com as amigas, da dinheiro pra ir no salão, empresta cartão de crédito e etc… ela vai te dar corno. Você vai tomar nas costas parceiro, porque é assim que é… atualmente é assim que as pessoas retribuem quando você é bacana.
O que falei acima serve tanto para homens quanto para mulheres…
Se eu sou gente boa deveria ser o primeiro da lista de pagamento e não ficar de fora da porra da lista como parece ser o caso. Se eu sou legal com ela e confio plenamente ela deveria ser a melhor esposa do mundo e cuidar para nunca trais minha confiança, se sou um chefe bacana a galera deveria me ajudar a fazer o trabalho o quanto antes, não o contrario.
Essa inversão de valores me incomoda bastante.
Me incomoda mesmo…
Uma letra de racionais diz que “a atitude do mal influência a minoria boa” e essa é a mais pura verdade, conheço diversos exemplos de pessoas boas que se deram mal em diversas situações, não são raros os casos onde filhos da puta se aproveitam da bondade alheia pra tirar vantagem.
A mãe de um amigo que cedeu o espaço que usava como deposito em casa para uma mãe de família que estava sendo enxotada e depois precisou mandar desmembrar a casa e fazer um contrato passando o antigo deposito para a tal mãe de família porque se não o fizesse teria que vender a casa toda e dividir o dinheiro.
O caso da mulher que deu moradia pra uma adolescente grávida que tinha sido expulsa de casa pela mãe e no final das contas respondeu processo judicial porque a pilantrinha alegou que trabalhava pra ela.
Quando alguém aparecer precisando de ajuda vou me lembrar desses casos e o que acham que vou fazer?
O mundo esta ao contrario e ninguém reparou.

