terça-feira, 13 de maio de 2014

PHP mascara - PHP mask

Usar para qualquer tipo de mascara que deseje exemplos abaixo com data, cep, cnpj e cpf
Use with any kind of mask you wish like zip code and dates. 

<?php

function mask($val, $mask)
{
 $maskared = '';
 $k = 0;
 for($i = 0; $i<=strlen($mask)-1; $i++)
 {
   if($mask[$i] == '#')
   {
      if(isset($val[$k]))
       $maskared .= $val[$k++];
   }
   else
 {
     if(isset($mask[$i]))
     $maskared .= $mask[$i];
     }
 }
 return $maskared;
}

?>
Forma de Adicionar a máscara
<?php
$cnpj = "11222333000199";
$cpf = "00100200300";
$cep = "08665110";
$data = "10102010";

echo mask($cnpj,'##.###.###/####-##');
echo mask($cpf,'###.###.###-##');
echo mask($cep,'#####-###');
echo mask($data,'##/##/####');

?>
Retirado de http://blog.clares.com.br/php-mascara-cnpj-cpf-data-e-qualquer-outra-coisa/

sábado, 1 de fevereiro de 2014

WordPress WP-Pool - Editor pode ver pesquisa

Thank's in advance to http://familypress.net/2009/02/27/wp-polls-for-non-admins/


Em wp-pool.php dentro da função 'add_submenu_page' adicone o seguinte:

// começo
global $current_user;

    if (!current_user_can('administrator')) {
        add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
        add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
}
    else {
add_submenu_page('wp-polls/polls-manager.php', __('Manage Polls', 'wp-polls'), __('Manage Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-manager.php');
add_submenu_page('wp-polls/polls-manager.php', __('Add Poll', 'wp-polls'), __('Add Poll', 'wp-polls'), 'manage_polls', 'wp-polls/polls-add.php');
add_submenu_page('wp-polls/polls-manager.php', __('Poll Options', 'wp-polls'), __('Poll Options', 'wp-polls'), 'manage_polls', 'wp-polls/polls-options.php');
add_submenu_page('wp-polls/polls-manager.php', __('Poll Templates', 'wp-polls'), __('Poll Templates', 'wp-polls'), 'manage_polls', 'wp-polls/polls-templates.php');
add_submenu_page('wp-polls/polls-manager.php', __('Uninstall WP-Polls', 'wp-polls'), __('Uninstall WP-Polls', 'wp-polls'), 'manage_polls', 'wp-polls/polls-uninstall.php');

  }
//final

E depois no final da pagina em:

// Set 'manage_polls' Capabilities To Administrator
$role = get_role('editor');



quarta-feira, 6 de novembro de 2013

PHP arredondar dizima centavos - round fractional cents

Para dividir um valor em X vezes nem sempre dá um numero inteiro, sendo assim criei uma fórmula para calcular o valor e cobrar a diferença (a maior ou a menor) na ultima parcela:

Exemplo prático 1:

Total: 4128
Parcelas=7
Valor quebrado antes do programa= 589,7142857142

Depois de rodar o programa teremos:

Parcela 1:  589.71
Parcela 2:  589.71
Parcela 3:  589.71
Parcela 4:  589.71
Parcela 5:  589.71
Parcela 6:  589.71
Parcela 7:  589.74

Ou seja na parcela 7 há 0,03 centavos a mais para fechar o valor quebrado (589,7142857142).

Exemplo prático 2:

Total: 56000
Parcelas= 12
Valor quebrado antes do programa= 4666,66666666666667

Depois de rodar o programa teremos:

Parcela 1:   4666.67
Parcela 2:   4666.67
Parcela 3:   4666.67
Parcela 4:   4666.67
Parcela 5:   4666.67
Parcela 6:   4666.67
Parcela 7:   4666.67
Parcela 8:   4666.67
Parcela 9:   4666.67
Parcela 10:  4666.67
Parcela 11: 4666.67
Parcela 12: 4666.63

Ou seja na parcela 12 há 0,04 centavos a menos para fechar o valor quebrado (4666,66666666666667).

<?php

$total_pagamento="4128.00";
$parcelas="7";
$valor_quebrado=round(($total_pagamento/$parcelas),2);
$valor_quebrado_total=round($total_pagamento-($valor_quebrado*$parcelas),2);

for ($i=1;$i<=$parcelas;$i++) {
            if ($i==$parcelas) $valor_quebrado=$valor_quebrado+$valor_quebrado_total;
            echo "Parcelamento $i:  $valor_quebrado<br/>";
}

?>

quarta-feira, 9 de outubro de 2013

Gmail - não enviar para caixa de SPAM

Para que isso não ocorra tem um procedimento simples no Gmail:
  1. Entre no Webmail/Gmail;
  2. Clique no icone roda de engrenagem (fica a direita) e escolha configurações;
  3. No menu horizontal clique em Filtros;
  4. Clique em Criar novo filtro;
  5. Vai abrir uma janela, no campo de: coloque e-mail *@empresa_que_quer_liberar.com.br (o asterisco significa todos os emails dessa empresa);
  6. Clique em Criar Filtro com esta pesquisa;
  7. Na proxima tela clique em nunca enviar para SPAM;
  8. Clique em Criar Filtro.

segunda-feira, 19 de agosto de 2013

MySQL pesquisar as mesmas colunas em tabelas diferentes sem duplicar

A idéia aki é puxar valores de uma mesma coluna que está em duas tabelas diferentes sem duplicar.
Por exemplo: eu tenho SANTOS na TABELA1 e na TABELA2  e tenho MANAUS na TABELA1 e tenho SUAPE na TABELA2.

O resultado será:
  • Manaus
  • Santos
  • Suape

<select name='Porto' id='Porto'>
<?php
  $sql='';$err='';$linha='';
  $sql=mysql_query("
(select DISTINCT PORTO from TABELA1 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
                    UNION
 (select DISTINCT PORTO from TABELA2 where O_Q_VC_QUISER='REPOSTA Q PRECISAR')
                    order by PORTO // notem q o order by fica fora do select
                    ");
 
  $err=mysql_error();
  if ($err) echo "<option>$err</option>";
  while ($linha=mysql_fetch_array($sql)):
    $porto=$linha['PORTO'];
    echo "<option value='$porto'>$porto</option>\n";
  endwhile;
?>
</select>

quarta-feira, 1 de maio de 2013

Webmail e Google Docs

Tutorial do Google Docs:

http://www.youtube.com/watch?v=zcCyxJG0o6g

Na video-aula acima de apenas 7 minutos vcs aprendem a criar e manter os documentos na "nuvem", ensina até o recurso para verificar as revisões que foram feitas no arquivo original.

O Google Docs faz pesquisa tanto pelo nome do documento quanto pelo texto dentro do documento.

Tutorial Webmail

Criar Marcadores

Adicionar Cores aos marcadores:

Criar uma regra para sempre que receber um e-mail ele apareça com o Marcador/Cor escolhido:
  • Clicar no botão de Engrenagem no canto superior Direito da tela;
  • Escolher Configurações;
  • No menu horizontal escolher Filtros;
  • Clicar em Criar Filtro;
  • No primeiro campo coloque *@email da empresa -> exemplo: *@laweb.com.br (o asterisco é muito importante) apenas uma dica se o e-mail for gmail ou hotmail o melhor é colocar assim luis@gmail.com(pq o asterisco indica TODOS e vc não qr todos os emails @gmail com a mesma cor/marcador)
  • Clique em Criar filtro com esta pesquisa;
  • Na próxima tela marque -> Aplicar o marcador (e escolha o marcador), marque também Nunca enviar para SPAM;
  • Marque Também aplicar o filtro a XX correspondentes...
  • Clique em criar filtro.

terça-feira, 5 de fevereiro de 2013

Gmail selecionar/apagar e-mails por tamanho ou por data - Gmail select/delete many e-mails by size or by date



Faça a pesquisa por datas:

after:2005/01/01 before:2010/12/31 

pesquisa por tamanho (maior que 2 MBs e de um ano atrás):

larger:2m older_than:1y

Depois basta clicar no selecionar todas e no ícone da lixeira.



terça-feira, 11 de dezembro de 2012

Ubuntu instalando OCI8 para rodar no PHP

 Prerequisites:
sudo apt-get install build-essential
sudo apt-get install php5-dev php-pear libaio1

Then download the Oracle Instant Client from Oracle (you will need to create an account).
You will need the Basic (58MB) and SDK (600K) -- baixe as versões ZIP. The Basic Lite version does not work.
Vc precisará saber se seu servidor é AMD ou Intel e se é 32 ou 64 bits, clique aqui para conferir os comandos
crie a pasta lib se ela não existir
cd /usr/local/lib
sudo unzip <location-of-instant-client-basic>
sudo unzip <location-of-instant-client-sdk>
cd instantclient_11_2
sudo ln -s libclntsh.so.11.1 libclntsh.so
renomeie a pasta  instantclient_11_2
mv instantclient_11_2 instantclient

The symbolic link is needed during the compilation step later.
sudo pecl install oci8

You will be prompted for the location of the library:
instantclient,/usr/local/lib/instantclient

no meu caso eu apenas dei [enter] para ele localizar automaticamente, da maneira acima não funcionou.

PHP5 Instructions


You should now create a new oci8.ini file which will be included when loading php.ini (Editing the php.ini is discouraged):
nano /etc/php5/conf.d/oci8.ini

this will create a blank file; add to this file:
extension=oci8.so


Confira a instalação rodando phpinfo() no servidor.

segunda-feira, 10 de dezembro de 2012

MySQL select a partir de


No select abaixo teremos emails a partir da letra G

SELECT email, id
FROM `TABELA`
WHERE LOWER( LEFT( email, 1 ) ) NOT
IN (

'a', 'b', 'c', 'd', 'e', 'f'
)
ORDER BY email


Aki apenas letras:

SELECT `empresa`
FROM `TABELA`
WHERE empresa NOT
REGEXP '^[0-9]+$'


E aki apenas numeros:

SELECT * FROM table WHERE columnName REGEXP '^[0-9]+$'

sábado, 8 de dezembro de 2012

Exim4 configuração

Arquivo update.conf:

dc_eximconfig_configtype='smarthost' # veja as configurações detalhadas abaixo
dc_other_hostnames='COLOQUE AQUI O HOSTNAME SECUNDARIO'
dc_local_interfaces='127.0.0.1'
dc_readhost='COLOQUE AQUI O HOSTNAME PRINCIPAL'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='COLOQUE AQUI SEUS IPS'
dc_smarthost='COLOQUE AQUI SEU SMARTHOST' # se vc não souber pergunte para o seu provedor de acesso (é o servidor de smtp do seu provedor)
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'


Geralmente o "problema" esta nesta variavel dc_eximconfig_configtype em caso de duvida pergunte ao seu provedor de acesso qual deve usar.

Não esquecer de mudar:

de www-data para o e-mail desejado:
vi /etc/email-addresses

hostname desejado
vi /etc/hosts
vi /etc/hostname

Não esquecer de tirar totalmente o sendmail:
sudo apt-get --purge remove sendmail-base sendmail-cf sendmail-doc

Descrição das variaveis acima:

CFILEMODE
The octal file mode of the generated file.
dc_eximconfig_configtype
The main configuration type. One of internet, smarthost, satellite, local, exim3manual or none.
dc_hide_mailname
Boolean option that controls whether the local mailname in the headers of outgoing mail should be hidden. (Only effective for smarthost and satellite.
dc_mailname_in_oh
Internal use only Boolean option that is set by the maintainer scripts after adding the contents of /etc/mailname to the dc_other_hostnames list. This is a transition helper since it wouldn't otherwise be possible to see whether that domain name has been removed from dc_other_hostnames on purpose.
ue4c_keepcomments
Boolean option that controls whether update-exim4.conf strips the comments from the target configuration file (default) or leaves them in. This can be overridden by the command line options --keepcomments and --removecomments.
dc_localdelivery
name of the default transport for local mail delivery. Defaults to mail_spool if unset, use maildir_home for delivery to ~/Maildir/. This setting does not correspond to a Debconf question and needs to be set manually.
dc_local_interfaces
Used as the value for Exim's main configuration option local_interfaces.
dc_minimaldns
Boolean option to activate some option to minimize DNS lookups, if set to true a macro DC_minimaldns is defined.
dc_other_hostnames
is used to build the local_domains hostlist, together with localhost. This is the list of domains for which this machine should consider itself the final destination.
dc_readhost
For smarthost and satellite it is possible to hide the local mailname in the headers of outgoing mail and replace it with this value instead, using rewriting.
dc_relay_domains
is used to populate the relay_to_domains domainlist, a list of domains for which we accept mail from anywhere on the Internet but which are not delvered locally, e.g. because this machine serves as secondary MX for these domains.
dc_relay_nets
A list of machines (hostlist) for which we serve as smarthost. Used to populate the relay_from_hosts hostlist. Please note that in the default configuration, 127.0.0.1 and ::::1 are always permitted to relay since /usr/lib/sendmail is available anyway and relay control doesn't make sense here.
dc_smarthost
List of hosts to which all outgoing mail is passed to and that takes care of delivering it. Multiple hosts are colon separated. Each of the hosts is tried, in the order specified (See exim specification, chapter 20.5). All deliveries go out to TCP port 25. Specifying different ports is not (yet) possible due to upstream restrictions. Used as value of the DCsmarthost macro.
dc_use_split_config
Boolean option that controls whether update-exim4.conf uses /etc/exim4/exim4.conf.template (false) or the multiple files below /etc/exim4/conf.d (true) as input.

Linux bash file returns unexpected token `$'do\r''

open file in vi edit with   vi filename.sh   command; type in vi  :set ff=unix  command; save file with  :wq It will save the file with unix...