CodeIgniter – “Scaps” no form_dropdown

Creio que mais pessoas já precisaram ter uma opção de um “form_dropdown()” desabilitada… mas como pode-se ver no código abaixo(retirado de: CodeIgniter/system/helpers/form_helper.php linha 364):

/**
 * Checkbox Field
 *
 * @access  public
 * @param   mixed
 * @param   string
 * @param   bool
 * @param   string
 * @return  string
 */
if ( ! function_exists('form_checkbox'))
{
    function form_checkbox($data = '', $value = '', $checked = FALSE, $extra = '')
    {
        $defaults = array('type' => 'checkbox', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);

        if (is_array($data) AND array_key_exists('checked', $data))
        {
            $checked = $data['checked'];

            if ($checked == FALSE)
            {
                unset($data['checked']);
            }
            else
            {
                $data['checked'] = 'checked';
            }
        }

        if ($checked == TRUE)
        {
            $defaults['checked'] = 'checked';
        }
        else
        {
            unset($defaults['checked']);
        }

        return "<input "._parse_form_attributes($data, $defaults).$extra." />";
    }
}

Não foi previsto isto. Então só nos resta fazer na “mão grande” mesmo, algo como:

    echo '<select id="category" name="category">';
    echo '<option selected disabled>Choose a category...</option>';
    foreach ( $categories as $key => $categorie )
    {
        echo '<option value="'.$key.'">'.$categorie.'</option>';
    }
    echo '</select>';

Valeu!

PHP – Enviar e-mail com o PHPMailer

<?php
include('PHPMailer/class.phpmailer.php');

// Instancia o PHPMailer
$PHPMailer = new PHPMailer();

// Obtém os dados do email
$PHPMailer->SetFrom('from@mail.com', 'NOME DA PESSOA QUE RECEBERÁ O E-MAIL');
$PHPMailer->AddAddress('to@mail.com', 'NOME DA PESSOA QUE ENVIOU O E-MAIL');
$PHPMailer->Subject = 'ASSUNTO';
$PHPMailer->MsgHTML('MENSAGEM');

// Envia o email
$enviou = $PHPMailer->Send();
if ( $enviou )
{
    echo 'Email enviado com sucesso.';
}
else
{
    echo 'Falha ao enviar email.';
}
?>

Use com moderação 😉

PHP – Enviar e-mail com o mail()

<?php
$from = 'from@mail.com';
$fromName = 'NOME DA PESSOA QUE RECEBERÁ O E-MAIL';
$to = 'to@mail.com';
$toName = 'NOME DA PESSOA QUE ENVIOU O E-MAIL';
$subject = 'ASSUNTO';
$message = 'MENSAGEM';

$headers .= 'To: '.$toName.' <'.$to.'>' . chr(13) . chr(10);
$headers .= 'From: '.$fromName.' <'.$from.'>' . chr(13) . chr(10);

$enviou = mail($to, $subject, $message, $headers);
if ( $enviou )
{
    echo 'Email enviado com sucesso.';
}
else
{
    echo 'Falha ao enviar email.';
}
?>

Use com moderação 😉

PHP – Compactar arquivos

Este script compacta o diretório onde ele se econtra:

<?php
$directory = dirname(__FILE__); //diretorio para compactar
$zipfile = 'backup.zip'; // nome do zip gerado

// Array de arquivos
$filenames = array();

// Lê os arquivos
browse($directory);

// cria zip, adiciona arquivos...
$zip = new ZipArchive();
if ( $zip->open($zipfile, ZIPARCHIVE::CREATE) !== TRUE )
{
    exit("Não pode abrir: <$zipfile>\n");
}

foreach ($filenames as $filename)
{
    $file = $filename;
    $arquivo = substr($file, -3);
    $zip->addFile($filename,$filename);
}

echo "Total de arquivos: <b>" . $zip->numFiles . "</b>\n";
echo "Status:" . $zip->status . "\n";
$zip->close();

function browse($dir)
{
    global $filenames;
    if ($handle = opendir($dir))
    {
        while (false !== ($file = readdir($handle)))
        {
            if ($file != "." && $file != ".." && is_file($dir.'/'.$file))
            {
                $filenames[] = $dir.'/'.$file;
            }
            else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file))
            {
                browse($dir.'/'.$file);
            }
        }
        closedir($handle);
    }

    return $filenames;
}
?>

PHP – Extrair arquivos .ZIP

<?php
/**
 * Executar este arquivo equivale a clicar com o botão direito do mouse >> extrair
 * aqui em TODOS os .ZIP do diretório em que se encontra este script 😉
 */

// Obtém o diretório atual
$zip_dir = dirname(__FILE__);

// Procura arquivos .zip
echo 'Procurando arquivos .zip'.'<br />';
$arquivos = (array)glob("{*zip}", GLOB_BRACE);

// Sai extraindo tudo que tem pra extrair
foreach ($arquivos as $arquivo )
{
    echo 'Encontrado arquivo '.$arquivo . '<br />';
    $zip = new ZipArchive();
    if ( $zip->open($arquivo) )
    {
        echo 'Lendo arquivo '.$arquivo . '<br />';
        echo "Descompactando para $zip_dir" . '<br />';
        $zip->extractTo($zip_dir);
        $zip->close();
    }
    else
    {
        echo 'Não foi possível abrir o arquivo '.$arquivo.'.'.'<br />';
    }
}
?>