Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
diogopuskas

Kohana, problemazito

Recommended Posts

diogopuskas

tenho aqui o meu controller,

    <?php
class template_Controller extends Controller {

    function index()
    {
        // Load the view as an object
        $view = new View('template');

        // Adding variables to the object that will be displayed in the view
        $view->title   = "Welcome to Kohana !";
        $view->heading = "My Heading";
        $view->content = "My content here.";

        // Render the view
        $view->render(TRUE);
    }
}

Tenho aqui a minha view,

<html>
    <head>
        <title><?php echo $title;?></title>
    </head>
    <body>
        <h1><?php echo $heading;?></h1>
        <p><?php echo $content;?></p>
    </body>
</html>

já li e re li a parte da documentação nesta parte, mas só que não esta a funcionar, não entendo porque :s

Fatal error: Cannot redeclare class template_Controller in C:\xampp\htdocs\myfirstkohana\application\controllers\hello.php  on line 17

Obrigado :thumbsup:

Share this post


Link to post
Share on other sites
scorch

Mostra o conteúdodo ficheiro hello.php

É lá que está o erro. :thumbsup:


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
diogopuskas

há esqueci me de referir, o controller é o hello.php e a view é o template.php

edit:já agora, a linha 17 é o ultimo } , não consigo perceber porque :s

Share this post


Link to post
Share on other sites
scorch

Tens de fechar as tags PHP.

   <?php
        class template_Controller extends Controller {

    function index()
    {
        // Load the view as an object
        $view = new View('template');

        // Adding variables to the object that will be displayed in the view
        $view->title   = "Welcome to Kohana !";
        $view->heading = "My Heading";
        $view->content = "My content here.";

        // Render the view
        $view->render(TRUE);
    }
}
?>

EDIT: E o nome do ficheiro tem de ser o mesmo da classe.

http://docs.kohanaphp.com/general/controllers#controller_naming_and_anatomy


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
scorch

Tenta renomear a classe para Hello_Controller.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
diogopuskas

Resvolvido  :wallbash:

fui dar uma grande volta .. estava a renomear os nomes todos e depois abri a view em vez do controller .. enfim, obrigado :thumbsup:

Share this post


Link to post
Share on other sites
diogopuskas

Desculpem, mas isto de estar a aprender tem as suas dúvidas  😳

http://kohanaphp.com/tutorials/page

Estou a tentar fazer esse tutorial, mas chego ali a uma parte que não percebo uma coisa,

Next we will set up the view for displaying our main content:

application/views/page/index.php

<?=$content->content?>

Wasn't that easy? :thumbsup:

Esta parte é que não estou a perceber o porque, se alguém me conseguisse explica agradecia :) Obrigado

Share this post


Link to post
Share on other sites
diogopuskas

Bem, estou a tentar fazer aquele toturial em cima, mas esta me a dar uns errozitos, supostamente estou a fazer aquilo bem, cria se o controller sem nenhuma função, depois cria se as views(header,content e o footer) e uma view para chamar os 3 .. depois é adicionado a função index ao controller que indica o caminho à view e a funcion contruct que pelo que percebi é por causa das sub paginas que vão ser criadas(no controller que não tinha nenhuma função). depois temos o index.php que não percebi bem uma coisa, porque é que tem o caminho de page/index.php , bem cria se a pagina "page" dentro das views e depois cria se a pagina que vai ser preenchida pelo content. Penso que não me esqueci de nada.

http://img704.imageshack.us/img704/4613/qqqqel.jpg

é que basicamente, o problema está aqui,

<?php

class  Page_Controller extends  Controller {
        
function  index()
{
        $this->layout->header = $this->load->view("header", array_merge($this->header, array("title" => $page->title)));
        $this->layout->content = $this->load->view("page/index", array("content" => ""));
        $this->layout->footer = $this->load->view("footer.php");
        $this->layout->render(TRUE);

if ($page = $this->page->get_page($this->location))
        {
                if (!$this->input->get("no_header"))
                        $this->layout->header = $this->load->view("header", array_merge($this->header, array("title" => "radd-cpa.org :: " . $page->title)));
                else
                        $this->layout->header = "";
                $this->layout->content = $this->load->view("page/index", array("page" => $page));

                $this->layout->render(TRUE);
        }
        else
                Kohana::show_404();

}

function  __construct()
{
        parent::__construct();

        $this->load->model("page");
        $this->header = array("menu" => $this->page->get_menu(), "title" => "example.com :: Home");

        /* Get the page (page or folder/page) */
        $base = ($this->uri->segment(2) == "edit") ? 2 : 0;

        if ($this->uri->segment((1+$base)) !== false && $this->uri->segment((2+$base)) !== false) // This is a sub page
                $this->location = array("parent" => $this->uri->segment((1+$base)), "child" => $this->uri->segment((2+$base)));
        else if ($this->uri->segment((1+$base)) !== false && $this->uri->segment((2+$base)) === false) // This is a main page
                $this->location = array("parent" => $this->uri->segment((1+$base)));
        else // This is the home page
                $this->location = array("parent" => "index");

        $this->layout = $this->load->view("layout");

        $this->layout->footer = ($this->input->get("no_header")) ? "" : $this->load->view("footer");
}

}

?>

Alguma sugestão ? Obrigado

Share this post


Link to post
Share on other sites
yoda

O tutorial que estás a usar é antigo e já não se usa.

O erro que te está a dar é na função load, que está classificada como deprecated na documentação oficial a partir da versão 2.1

Para iniciares um model, faz assim :

$this->page = new Page_Model;

edit: se precisares de ajuda, não hesites em cá vir, que deixa-me contente ver a malta a aventurar-se nessa framework :thumbsup:

Share this post


Link to post
Share on other sites
diogopuskas

Obrigado :thumbsup: e obrigado pela dica, já agora yoda, algum tutorial mais recente ? é que no site do kohana só vi mesmo este e achei 'engraçado'

Os models é que estão um bocadinho verdinhos para mim, de resto já faço algumas coisinhas.

Share this post


Link to post
Share on other sites
diogopuskas

Basicamente, o que vou ter de fazer é um site para uma empresa que crie graficos e vai buscar dados à bd, portanto queria alguma coisa relativamente ligado a isso ou parecido

relativamente aos graficos,vou usar esta library, http://pchart.sourceforge.net/ pelo que vi é bastante boa, se calhar a melhor do php.

edit: e relativamente à licença do GPL da library, falei com os monitores, eles disseram que podia, mas não foi com muito boa cara lol.

Share this post


Link to post
Share on other sites
diogopuskas

Olha, bem visto, nem sabia que o google tinha, eu até a usava, mas os meus monitores querem uma coisa, digamos, livre :wallbash:

e relativamente ao tutorial, encontras te alguma coisa? é que quanto mais depressa for, melhor! :thumbsup:

Share this post


Link to post
Share on other sites
diogopuskas

Vá por outras palavras, comerciável lol mas como a outra tem a licença GPL, fica se só por usável lol

Mas com um tutorial, fica se sempre a perceber melhor como funciona, mas eu vou vendo isso, mas se encontrares alguma coisa relevante para isto que estou a fazer posta aqui sff :)

Share this post


Link to post
Share on other sites
diogopuskas

Obrigado, vou ver mais algumas coisas então, se tiver alguma duvidazita venho aqui expor.

já agora, achas que continue o exemplo que estava a fazer? ou parto para outras coisas na documentação ?

Share this post


Link to post
Share on other sites
diogopuskas

<?php
defined('SYSPATH') OR die('No direct access allowed.');
//nome do arquivo da página principal, sem a extensão
$config["_default" rel="nofollow" target="_blank"> = 'capa'];
?>

está me a dar este erro, não sei porque ...

Parse error: syntax error, unexpected '[', expecting ')' in C:\xampp\htdocs\myfirstkohana\application\config\routes.php on line 5

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.