Mostrando postagens com marcador yii. Mostrar todas as postagens
Mostrando postagens com marcador yii. Mostrar todas as postagens

quinta-feira, 2 de agosto de 2012

GoogleMaps - Um problema extremely annoying!

Veja bem,

Estava eu trablahando com uma googlemaps API e o mapa não aparecia de jeito nenhum.
400 linhas de script e nada.
Testei fora do framework Yii o qual uso, e funcionava, dentro do Yii não funcionava.
3 horas depois, descobri que é necessário colocar esta linha.

"google.maps.event.addDomListener(window, 'load', initialize);";

Mas que pertubação!

Et c'est tout!

A bientôt.

domingo, 24 de junho de 2012

Yii - Acessando parâmetros

Veja bem,
crie parâmetros e acesse.

Forma de acesso
Yii::app()->params->[seu parâmetro]

Onde os parâmetros são definidos

config\main.php

    'params' => array( // this is used in contact page
        'seuparametro' => 'valor do seu parâmetro',

    );


And that's it.

Yii - Redirecionamento de páginas.

Veja bem,
este é um exemplo de redirecionamento de páginas:


$url = Yii::app()->createUrl('targetVote/create');    
$this->redirect($url);

* Utilizei esta construção para redirecionar a primeira tela do site. Como e um site de votação, a primeira tela já vai direto para action create da entidade targetVote.

sábado, 16 de junho de 2012

Cannot modify header information - headers already sent by (output started at /home/indcepco/public_html/home/index.php:2)

Veja bem, esse erro é uma M!!!!!!!!!


Cannot modify header information - headers already sent by (output started at /home/indcepco/public_html/home/index.php:2)


Como resolvi.


Descobri um arquivo php, que tinha um espaço em branco no início.


Ou seja,


antes da cláusula <?php, tinha um enter.


E o tempo que demorei para descobir isso?

quinta-feira, 7 de junho de 2012

Yii - Captcha não funciona

Veja bem,

o captcha do yii está com "pobrema na popriedade".
Assim, não perca seu tempo (como eu) querendo fazer o captcha funcionar. Ao invés disso, useo recaptcha do google.
Para maiores informações acesse
http://www.yiiframework.com/forum/index.php/topic/6508-cwebapplication-xxxxx-not-defined/

That's it.

sábado, 2 de junho de 2012

Yii - Bug que vai derreter seu cérebro - Trying to get property of non-object

Veja bem,

Se você define no MySql um campo como decimal (9,7) o gii do yii gera a seguinte regra
array('latitude, longitude', 'length', 'max'=>9).

Quando você executa o método save do model você receberá este erro


2012/06/03 01:59:58 [error] [php] Trying to get property of non-object (C:\xampp\htdocs\indcep\protected\models\TargetVote.php:182)
Stack trace:
#0 C:\xampp\htdocs\indcep\protected\controllers\TargetVoteController.php(163): TargetVote->save()
#1 C:\xampp\htdocs\yii\framework\web\actions\CInlineAction.php(50): TargetVoteController->actionCreate()
#2 C:\xampp\htdocs\yii\framework\web\CController.php(309): CInlineAction->runWithParams()
#3 C:\xampp\htdocs\yii\framework\web\filters\CFilterChain.php(134): TargetVoteController->runAction()
#4 C:\xampp\htdocs\yii\framework\web\filters\CFilter.php(41): CFilterChain->run()
#5 C:\xampp\htdocs\yii\framework\web\CController.php(1146): CAccessControlFilter->filter()
#6 C:\xampp\htdocs\yii\framework\web\filters\CInlineFilter.php(59): TargetVoteController->filterAccessControl()
#7 C:\xampp\htdocs\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter()
#8 C:\xampp\htdocs\yii\framework\web\CController.php(292): CFilterChain->run()
#9 C:\xampp\htdocs\yii\framework\web\CController.php(266): TargetVoteController->runActionWithFilters()
#10 C:\xampp\htdocs\yii\framework\web\CWebApplication.php(276): TargetVoteController->run()
#11 C:\xampp\htdocs\yii\framework\web\CWebApplication.php(135): CWebApplication->runController()
#12 C:\xampp\htdocs\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
#13 C:\xampp\htdocs\indcep\index.php(15): CWebApplication->run()
REQUEST_URI=/indcep/index.php?r=targetVote/create
in C:\xampp\htdocs\indcep\protected\models\TargetVote.php (182)
in C:\xampp\htdocs\indcep\protected\controllers\TargetVoteController.php (163)
in C:\xampp\htdocs\indcep\index.php (15)

decimal (9,7) significa 9 casas decimais no total com 7 casas decimais possíveis a direita.
Ou seja
'max'=>9 faz sentido.
Porém o yii não leva em conta o ponto decimal e o sinal para dizer se é positivo ou negativo.

Ou seja, o correto é
'max'=>11 

Ain't that a bitch?

domingo, 27 de maio de 2012

Classe de validação : CValidator

Veja bem,

Se você está que nem eu, desenvolvendo com yii já deve ter chegado a questão das classes de validação. Se não chegou, vai chegar.

No meu caso construí uma classe de validação para CEP.

Primeiro passo:

Na classe Model


    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('code',
                    'required'),
            array(
                'code','cep'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array(
                'id, code, noise, accessibility, neighborhood, afforestation, violence',
                'safe',
                'on' => 'search'),
            );
    }

//Segundo passo criar a classe de validação..........


class cep extends CValidator
{ //início da Classe

    public function validateAttribute($object, $attribute)
    {
        $message = utf8_encode("não é válido ou não existe.");
        if (!$this->validaCEP($object->$attribute)) {
            $message = $this->message !== null ? $this->message : Yii::t('cep',
                '{attribute} ' . $message);
            $this->addError($object, $attribute, $message);
        }

    }


    public function clientValidateAttribute($object, $attribute)
    {
        return "";

    }

    private function validaCEP($cep)
    {
        $cep = trim($cep);
        if (!is_numeric($cep)) {
            return false;
        }
        if (strlen($cep) != 8) {
            return false;
        }
       
        $content = $this->get_data("utilitario/lercep.php?cep=$cep");
        $content = trim($content);
       
        if (strlen($content) == 0)
        {
            return false;
        }
               
        return true;

    }

    function get_data($url)
    {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

} //fim da Classe


Para mais detalhes acesse este link
http://abelcorreadias.blogspot.com.br/2012/01/criando-um-validator-para-o-campo-cpf.html

PS: utilitario/lercep.php não é um php mágico que acesse o cep de algum site como república virtual ou mesmo o site do correio. Estou acessando minha própria base de CEP. Atenção: a base de CEP do correio é gigantesca.

Fatal error: Call to undefined function curl_init()

Veja bem,

estava eu trabalhando com o yii (framework php) e tomei este erro
Fatal error: Call to undefined function curl_init()
Obs: Estou usando o XAMPP

Como resolve?

Acesse o arquivo php.ini
xxxxxx\php\php.ini
descomente
;extension=php_curl.dll
tira o ponto e vírcula
extension=php_curl.dll
Reinicia a máquina.

Voilà!

domingo, 6 de maio de 2012

yii - Funcionou

Consegui instalar e fazer funcionar o yii.

yii - Problemas na hora de gerar o test drive.


C:\>C:\xampp\htdocs\yii\framework\yiic webapp C:\xampp\htdocs\testdrive
'"php.exe"' is not recognized as an internal or external command,
operable program or batch file.

http://www.yiiframework.com

Solução

Estou utilizando windows como S.O.
Desta forma, basta alterar o framework\yiic.bat

O meu yiic. bat ficou assim


cd c:\xampp\php
@echo off

rem -------------------------------------------------------------
rem  Yii command line script for Windows.
rem
rem  This is the bootstrap script for running yiic on Windows.
rem
rem  @author Qiang Xue <qiang.xue@gmail.com>
rem  @link http://www.yiiframework.com/
rem  @copyright Copyright &copy; 2008 Yii Software LLC
rem  @license http://www.yiiframework.com/license/
rem  @version $Id: yiic.bat 2485 2010-09-19 17:07:11Z qiang.xue $
rem -------------------------------------------------------------

@setlocal

set YII_PATH=%~dp0

if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe

"%PHP_COMMAND%" "%YII_PATH%yiic" %*

@endlocal

----------------------------------------------------------------------------------------------------

Pequena explicação

cd c:\xampp\php -> é caminho onde está o php