DOCUMENTAÇÃO FABULA FRAMEWORK Site: http://fabula.scorninpc.com Forum: http://fabula.scorninpc.com/forum Documentação Online: http://fabula.scorninpc.com/documentacao Download Fabula Framework: http://fabula.scorninpc.com/download/viewcategory/3 Copyright © 2010 Bruno Pitteli Gonçalves. All Rights Reserved Banco de Dados MySQL Descrição: Cria a conexão com o banco de dados Escopo: resource Fabula::MySQL( $server, $username, $password, $database, $logFile = NULL ); Parametros: $server $username $password $database $logFile String String String String String Endereço do servidor MySQL Usuário do servidor MySQL Senha do usuário do servidor MySQL Base de dados à selecionar MySQL Caminho+nome do arquivo de log de bad queryes Exemplos: <?php $objDB = Fabula::MySQL("localhost", "root", "", "meusistema"); echo $objDB->GetOne("SELECT email FROM colaboradores LIMIT 5, 1"); SQLite Descrição: Cria a conexão com o banco de dados SQLite Escopo: resource Fabula::SQLite( $file, $logFile = NULL ); Parametros: $file String Caminho para o arquivo do banco de dados $logFile String Caminho+nome do arquivo de log de bad queryes Exemplos: <?php $objDB = Fabula::SQLite("database.sqlite", "sqlite.log"); echo $objDB->GetOne("SELECT nome FROM usuarios LIMIT 1"); AutoExecute Descrição: Executa insert e update no banco de dados Requisitos: MySQL, SQLite Escopo: bool DataBase->AutoExecute( $table, $record, $method, $where = NULL ); Parametros: $table String $record $method $where Tabela que se aplica a mudança Array Vetor com as informações a serem inseridas ou atualizadas String Modo [insert, update] String Condição que se aplica o metodo update Exemplos: <?php $objDB = Fabula::MySQL("localhost", "root", "", "meusistema"); $info['nome'] = "Meu usuario"; $info['email'] = "meuusuario @ meuemail.com"; $result = $objDB->AutoExecute("colaboradores", $info, "insert"); unset($info); $info['nome'] = "Outro nome"; $result = $objDB->AutoExecute("colaboradores", $info, "update", "email = 'meuusuario @ meuemail.com'"); Execute Descrição: Executa uma query no banco de dados Requisitos: MySQL, SQLite Escopo: resource DataBase->Execute( $sql ); Parametros: $sql String Query à ser executada Exemplos: <?php $objDB = Fabula::MySQL("localhost", "root", "", "meusistema"); $result = $objDB->Execute("SELECT nome, email FROM colaboradores"); while($result->EOF) { echo $result->Fields["nome"] . "\t\t" . $result->Fields[1] . "\n"; $result->MoveNext(); } GetOne Descrição: Busca o valor da primeira coluna, primeira linha de uma query Requisitos: MySQL, SQLite Escopo: string DataBase->GetOne( $sql ); Parametros: $sql String Query à executar Exemplos: <?php $objDB = Fabula::MySQL("localhost", "root", "", "meusistema"); echo $objDB->GetOne("SELECT Count(*) FROM colaboradores"); InsertID Descrição: Busca o ultimo valor inserido em uma chave primaria Requisitos: MySQL, SQLite Escopo: int DataBase->InsertID( ); Parametros: Exemplos: <?php $objDB = Fabula::MySQL("localhost", "root", "", "meusistema"); $info['nome'] = "Meu usuario"; $info['email'] = "meuusuario @ meuemail.com"; $return = $objDB->AutoExecute("colaboradores", $infos, "insert"); echo $objDB->InsertID(); MultipleExecute Descrição: Executa varias queries no banco de dados Requisitos: MySQL, SQLite Escopo: bool DataBase->MultipleExecute( $sql ); Parametros: $sql String Queries à serem executadas, separadas por ; e/ou \n Exemplos: <?php $objDB = Fabula::MySQL("localhost", "root", "", "meusistema"); $sql = file_get_contents("arquivo.sql"); $result = $objDB->MultipleExecute($sql); DIALOGS Alert Descrição: Mostra alertas Escopo: void Fabula::Alert( $strMessage, $strTitle, $stockImage = Gtk::STOCK_DIALOG_WARNING ); Parametros: $strMessage String Mensagem do box $strTitle String Titulo do box $stockImage Contant Opcional Constante GTK da imagem do box Exemplos: <?php Fabula::Alert( "Não foi possivel encontrar o arquivo!", "Erro!", Gtk::STOCK_DIALOG_ERROR ); ChooseFile Descrição: Cria dialogos para seleção de diretório ou arquivos Escopo: string Fabula::ChooseFile( $splashScreen, $filters = NULL, $type = Gtk::FILE_CHOOSER_ACTION_OPEN ); Parametros: $strTitle String Titulo do box $filters Array Conteúdo do filtro $type GtkFileChooser Tipo do box Exemplos: <?php $folder = Fabula::ChooseFile("Selecione um diretório", NULL, Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER); $file = Fabula::ChooseFile("Selecione uma imagem", array("*.jpg", "*.bmp")); MsgBox Descrição: Mostra e obtem retorno de alertas Escopo: int constant Fabula::MsgBox( $strMessage, $strTitle, $buttons = array(Gtk::STOCK_OK, Gtk::RESPONSE_OK), $stockImage = Gtk::STOCK_DIALOG_WARNING ); Parametros: $strMessage $strTitle $buttons $stockImage String Mensagem do box String Titulo do box Array Opcional Botões do box Contant Opcional Constante GTK da imagem do box Exemplos: <?php $res = Fabula::MsgBox( "Deseja remover o aquivo?", "Confirmação!", array(Gtk::STOCK_YES, Gtk::RESPONSE_YES, Gtk::STOCK_NO, Gtk::RESPONSE_NO),Gtk::STOCK_DIALOG_QUEST ); if($res == Gtk::RESPONSE_YES) { unlink($file); } splashCreate Descrição: Cria diálogos de splash Escopo: GtkWindow Fabula::splashCreate( $imagePath ); Parametros: $imagePath String Caminho para a imagem do splash Exemplos: <?php $splash = Fabula::splashCreate("images/splash.png"); for($i=0; $i<=9999999; $i++) // TESTE PARA O SPLASH PERMANECER EM TELA while(gtk::events_pending()) gtk::main_iteration(); Fabula::splashHide($splash); splashHide Descrição: Esconde diálogos de splash http://fabula.scorninpc.com/administrator/index.php?option=com_content# Escopo: void Fabula::splashHide( $splashScreen ); Parametros: $splashScreen GtkWindow SplashScreen criado com splashCreate() Exemplos: <?php $splash = Fabula::splashCreate("images/splash.png"); for($i=0; $i<=9999999; $i++) // TESTE PARA O SPLASH PERMANECER EM TELA while(gtk::events_pending()) gtk::main_iteration(); Fabula::splashHide($splash); MENUS menuLoadXML Descrição: Cria menus a partir de um XML Escopo: void Fabula::menuLoadXML( $file, $mainObject = NULL ); Parametros: $file String Caminho do arquivo XML $mainObject Object Opcional Objeto onde esta os métodos do XML Exemplos: <?xml version="1.0" encoding="ISO-8859-1"?> <menubar name="mnuBar"> <menu name="file" title="Arquivo"> <menuitem name="mnuOpen" title="Abrir" onclick="mnuOpen_onclick" /> <menuitem name="mnuExit" title="Sair" onclick="mnuExit_onclick" /> </menu> </menubar> <?php require_once("trunk/Fabula.class.php"); // Classe de testes class Teste { // Armazena os widgets da classe public $widgets = array(); // Construtor public function __construct() { // Cria a janela $this->widgets['frmMain'] = new GtkWindow(); $this->widgets['frmMain']->set_size_request(200, 200); $this->widgets['frmMain']->add($vbox = new GtkVBox()); $this->widgets['frmMain']->connect_simple("destroy", array($this, "frmMain_unload")); // Cria o menu $this->widgets['mnuBar'] = Fabula::menuLoadXML("mainmenu.xml", $this); $vbox->pack_start($this->widgets['mnuBar']['object'], FALSE, FALSE); // Adiciona qualquer coisa na segunda parte $vbox->pack_start(new GtkFixed(), TRUE, TRUE); $this->widgets['frmMain']->show_all(); Gtk::main(); } // Encerra a aplicação public function frmMain_unload() { Gtk::main_quit(); exit(0); } // Menu mnuOpen public function mnuOpen_onclick() { echo Fabula::ChooseFile("Abrir"); } // Menu mnuExit public function mnuExit_onclick() { $this->frmMain_unload(); } } new Teste(); METODOS loadXMLConfig Descrição: Carrega configurações de um XML Escopo: void Fabula::loadXMLConfig( $file ); Parametros: $file String Caminho do arquivo XML Exemplos: <?xml version="1.0" encoding="ISO-8859-1"?> <config> <session name="database"> <option name="host" value="192.168.1.1" /> <option name="username" value="root" /> <option name="password" value="" /> <option name="name" value="myDB" /> </session> <session name="containers"> <option name="debug" value="FALSE" /> <option name="console" value="FALSE" /> <option name="explorer" value="TRUE" /> </session> </config> <?php require_once("/home/scorninpc/Projetos/projetos/Fabula/trunk/Fabula.class.php"); // Carrega as configurações $config = Fabula::loadXMLConfig("config.xml"); // Classe de testes class Teste { public function __construct() { // Mostra var_dump($GLOBALS['config']); } } new Teste(); TREEVIEW treeviewHighLight Descrição: Cria o efeito zebrado em treeviews Escopo: void Fabula::treeviewHighLight( $widget, $colorA, $colorB ); Parametros: $widget $colorA $colorB GtkTreeView GtkTreeview à aplicar o efeito zebrado Cor HEX Cor em hexadecimal da primeira linha Cor HEX Cor em hexadecimal da segunda linha Exemplos: <?php $model = new GtkListStore(GObject::TYPE_STRING); $trvPartners = new GtkTreeView($model); $render = new GtkCellRendererText(); $column = new GtkTreeViewColumn("Cód.", $render, "text", 0); $trvPartners->append_column($column); Fabula::treeviewHighLight($trvPartners, "#EDEDED", "#FFFFFF"); $model->append(array('TESTE')); $model->append(array('TESTE')); $model->append(array('TESTE')); $model->append(array('TESTE')); WIDGETS DeskAlert Descrição: Mostra alertas no estilo MSN Escopo: int constant Fabula::DeskAlert( ); Métodos e propriedades: set_size_request($width, $height) Método Seta o tamanho do dialog show() Método Mostra o dialog hide() Método Esconde o dialog initial Propriedade Seta a altura inicial do dialog Exemplos: $alert = Fabula::DeskAlert(); $alert->set_size_request(300, 100); $alert->show(); GtkLabel Descrição: Cria um GtkLabel, alinhado à esquerda Escopo: void Fabula::GtkLabel( $text ); Parametros: $file String Texto do label Exemplos: <?php require_once("trunk/Fabula.class.php"); // Classe de testes class Teste { // Armazena os widgets da classe public $widgets = array(); // Construtor public function __construct() { // Cria a janela $this->widgets['frmMain'] = new GtkWindow(); $this->widgets['frmMain']->set_size_request(200, 200); $this->widgets['frmMain']->add($vbox = new GtkVBox()); $this->widgets['frmMain']->connect_simple("destroy", array($this, "frmMain_unload")); // Adiciona um fixed $vbox->pack_start($fix = new GtkFixed(), TRUE, TRUE); // Cria o label $this->widgets['lblTest'] = Fabula::GtkLabel("ok"); $fix->put($this->widgets['lblTest'], 8, 8); // Mostra a janela $this->widgets['frmMain']->show_all(); Gtk::main(); } // Encerra a aplicação public function frmMain_unload() { Gtk::main_quit(); exit(0); } } new Teste(); minimizablePanel Descrição: Cria paineis minimizáveis Escopo: int constant Fabula::minimizablePanel( ); Métodos e propriedades: set_tab_pos($pos) Método Seta a posição das abas insert($widget, $label) Método Insere uma aba ao painel Exemplos: $hbox = new GtkHBox(); $hbox->pack_start($panel1 = Fabula::minimizablePanel(), FALSE, FALSE); $hbox->pack_start(new GtkTextView(), TRUE, TRUE); $hbox->pack_start($panel2 = Fabula::minimizablePanel(), FALSE, FALSE); $panel1->set_tab_pos(Gtk::POS_LEFT); $panel2->set_tab_pos(Gtk::POS_RIGHT); newButtonFromImage ** Método temporário ** Descrição: Cria um GtkButton, com imagem a partir de um arquivo Escopo: void Fabula::newButtonFromImage( $image, $label = NULL ); Parametros: $image String Caminho para o arquivo de imagem $label String Opcional Texto para o botão Exemplos: <?php require_once("trunk/Fabula.class.php"); // Classe de testes class Teste { // Armazena os widgets da classe public $widgets = array(); // Construtor public function __construct() { // Cria a janela $this->widgets['frmMain'] = new GtkWindow(); $this->widgets['frmMain']->set_size_request(200, 200); $this->widgets['frmMain']->add($vbox = new GtkVBox()); $this->widgets['frmMain']->connect_simple("destroy", array($this, "frmMain_unload")); // Adiciona um fixed $vbox->pack_start($fix = new GtkFixed(), TRUE, TRUE); // Cria o botão $this->widgets['btnTest'] = Fabula::newButtonFromImage("icons/camera.png", "camera"); $fix->put($this->widgets['btnTest'], 8, 8); // Mostra a janela $this->widgets['frmMain']->show_all(); Gtk::main(); } // Encerra a aplicação public function frmMain_unload() { Gtk::main_quit(); exit(0); } } new Teste();