Ir para o conteúdo

raviel28

Cadastrado: 14 Set 2010
Offline Última atividade: Dez 13 2010 16:23
-----

#327 Detectar Browser Via Wordpress

Postado por raviel28 em 19 outubro 2010 - 12:36

Esse código não é novo, mas ainda continua sendo um dos mais importantes para WordPress.

O codigo simplesmente detecta o nome do browser do visitante e o adiciona à função body_class(). Dessa forma, você pode corrigir possíveis bugs em browsers específicos. Essa função tem de ser copiada e colada no seu arquivo functions.php.

add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
    global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;

    if($is_lynx) $classes[] = 'lynx';
    elseif($is_gecko) $classes[] = 'gecko';
    elseif($is_opera) $classes[] = 'opera';
    elseif($is_NS4) $classes[] = 'ns4';
    elseif($is_safari) $classes[] = 'safari';
    elseif($is_chrome) $classes[] = 'chrome';
    elseif($is_IE) $classes[] = 'ie';
    else $classes[] = 'unknown';

    if($is_iphone) $classes[] = 'iphone';
    return $classes;
}



#306 Case Insensitive Str_Replace

Postado por raviel28 em 15 outubro 2010 - 23:27

Bem intuitivo e simples

<?php

function replacestring($search,$replace,$subject) {
    $srchlen=strlen($search);    // lenght of searched string
    
    while ($find = stristr($subject,$search)) {    // find $search text in $subject - case insensitiv
        $srchtxt = substr($find,0,$srchlen);    // get new search text 
        $subject = str_replace($srchtxt,$replace,$subject);    // replace founded case insensitive search text with $replace
    }
    return $subject;
}

?>

Exemplo simples de uso:

$a="Hello world, hello world, hello World, HelLo WOrld";

echo replacestring("hello","Hi",$a);



#303 Compartilhar No Facebook

Postado por raviel28 em 15 outubro 2010 - 23:11

Simples link para o seu usuário poder compartilhar o que ele está lendo.

<a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>" title="Share on Facebook" target="blank">Share on Facebook</a>



#294 Exibir Datas No Formato "twitter"

Postado por raviel28 em 15 outubro 2010 - 11:57

Exibir datas no formato "há 10 dias" ficou popular, seguindo o padrão do Twitter.

Existem várias dicas complexas para fazer isso em WordPress, mas o próprio WordPress tem uma funcionalidade interna para fazer algo parecido: human_time_diff().

Copie o código abaixo no loop das suas postagens e pronto.

Posted <?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; ?>



#31 Class para redimensionar imagens em c#

Postado por raviel28 em 17 setembro 2010 - 22:38

Um código bem interessante criado pelo usuário do Lab Design do Fórum iMasters.

O método upload talvez nao seja tão importante mas o resize com certeza é.

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web;
using System.Web.UI.WebControls;

namespace webAdmin
{

/// <summary>
/// Faz o upload e sobrepõe se ja existir caso a flagh override eseja true
/// </summary>
public class Images {


public Boolean upLoad(FormView _formView, string _control, string _path, Boolean _override) {

String pathImage = HttpContext.Current.Server.MapPath(_path);

FileUpload _upload = (FileUpload)_formView.FindControl(_control);

String path = pathImage + _upload.FileName;

if(_upload.HasFile)
{
if (!File.Exists(path) || _override) {
// To enable this sample, grant Write permission to the ASP.NET process account
// for the Images subdirectory and uncomment below lines of code.
try {
_upload.SaveAs(path);
return true;
}
catch {
return false;
}
}
}
return false;
}





/// <summary>
/// Redimensiona imagem
/// scrPath = path da imagem original
/// destPath = path para a nova imagem
/// caso o destPath seja igual ao scrPath, a nova imagem substitui a anterior
/// </summary>

public static void Resize(string srcPath, string destPath, int nWidth, int nHeight) {

string temp;
// abre arquivo original
System.Drawing.Image img = System.Drawing.Image.FromFile(srcPath);
int oWidth = img.Width; // largura original
int oHeight = img.Height; // altura original

// redimensiona se necessario
if(oWidth > nWidth || oHeight > nHeight)
{

if(oWidth > oHeight)
{
// imagem horizontal
nHeight = (oHeight * nWidth) / oWidth;
}
else
{
// imagem vertical
nWidth = (oWidth * nHeight) / oHeight;
}
}

// cria a copia da imagem
System.Drawing.Image imgThumb = img.GetThumbnailImage(nWidth, nHeight, null, new System.IntPtr(0));

if(srcPath == destPath)
{
temp = destPath + ".tmp";
imgThumb.Save(temp, ImageFormat.Jpeg);
img.Dispose();
imgThumb.Dispose();
File.Delete(srcPath); // deleta arquivo original
File.Copy(temp, srcPath); // copia a nova imagem
File.Delete(temp); // deleta temporário
}
else
{
imgThumb.Save(destPath, ImageFormat.Jpeg); // salva nova imagem no destino
imgThumb.Dispose(); // libera memoria
img.Dispose(); // libera memória
}
}
}
}

Exemplo de chamada.
1) Esse arquivo Imagem.cs deve ficar na pasta App_Code do projeto ou se preferir, compilar e colocar a dll na pasta bin.

// faz upload dos arquivos de imagens
// este metodo está code-behind de uma pagina e gerenciamento de arquivos (upload e exclusão)

// o manipulador do form chama esse metodo passando o controle com o arquivo uploaded, qual a pasta para ser gravada e se pode sobrepor
//caso já tenha uma cópia na pasta com o mesmo nome.
// o metodo verifica se existe um arquivo no controle
// verifica se o tipo de arquivo é valido e se for, grava na pasta.
// Eu tenho uma pasta no provedor chamada thumbs e caso no metodo o nome da pasta seja a de thumbs
// é chamado o class para redimensionar a imagem neste caso, width máximo 100px e height máximo 100px
// o class verifica o formato da imagem, se horizontal ou vertical
// por exemplo se a imagem for horizontal, o width será 100px e o height proporcional
// se a imagem for vertical, o heigth assume 100px e o width proporcional porém não ultrapassando o limite de 100px.

public void upLoadImages(FileUpload upLoadFile, string path, Boolean flash) {
// arquivos imagens do html
if (upLoadFile.HasFile) {
string tipo = upLoadFile.PostedFile.ContentType;
if (tipo == "image/pjpeg" || tipo== "image/gif" || tipo=="image/x-png") {
upLoadFile.SaveAs(path + upLoadFile.FileName);
if (path==thumbsDir) {
//cria thumb DataBind imagem enviada
webAdmin.Images.Resize(path + upLoadFile.FileName, path + upLoadFile.FileName, 100, 100);
}
}
else if (flash && tipo=="application/x-shockwave-flash")
upLoadFile.SaveAs(upLoadFile.FileName);
else
upLoadError.Text = "Arquivo Inválido. Somente arquivos de imagens são permitidos!";
}
}



#10 Calculo de Frete com os Correios

Postado por raviel28 em 15 setembro 2010 - 11:08

Oi amigos.

Publico abaixo um código excelente escrito pelo Roberto Borsatti, o usuário "borsatti" do Fórum iMasters. Todos os créditos são dele.

Já utilizei vários códigos para fazer o calculo de frete e esse foi o melhor que encontrei.

Tem Pac,Sedex,Sedex 10,Sedex Hoje,Sedex a Cobrar e etc. Para ver funcionando, clique aqui.

Arquivos

classe.php

calculo.php



#3 Converter formato de data para yyyy-mm-dd

Postado por raviel28 em 14 setembro 2010 - 23:50

Pequeno script que converte o formato de data dd-mm-yyyy ou dd/mm/yyyy para data SQL yyyy-mm-dd.


#!/usr/bin/env python
# date2SQL.py -- search text file for dates formatted
# MM-DD-YYYY or MM/DD/YYYY or MM.DD.YYYY and create
# new file converting these to SQL style YYYY-MM-DD.
#
# Dealing with M/D/YYYY is a little more work yet...

import sys, re

file = open(sys.argv[1])
newfile = open(sys.argv[1]+'.SQLdates', "w")

regex = re.compile('[\d][\d][\./-][\d][\d][\./-][\d][\d][\d][\d]')

line = file.readline()
while line:
if regex.search(line):
datelist=regex.findall(line)
for n in range(len(datelist)):
date=datelist[n][0:10]
newdate=date[6:10]+'-'+date[0:2]+'-'+date[3:5]
line=re.sub(date, newdate, line)
newfile.write(line)
else: newfile.write(line)
line = file.readline()

file.close()
newfile.close()