Archive for lipiec, 2007
Koniec prac jak makaron
No i znowu długo nic nie pisałem :) SparkleWorks jest prawie ukończone. Pracuje sie na nim całkiem przyjemnie, a nawet bardziej niż całkiem :> Koniec prac jeszcze nie nastąpił i wiele jest jeszcze do poprawienia, ale 2 projekt już na nim kończę :) Do opublikowania sie jeszcze nie nadaje, bo w niektórych miejscach, aż wstyd kod pokazać taki śmietnik jest :| Ale kiedyś myślę znajdę czas i zapnę wszystko na ostatni guzik :D Wtedy pewnie ujrzy światło dzienne... Ale kiedy to nastąpi, to tego nie wiedzą nawet najstarsi górale ;)
Na koniec mały przyklad. Pamiętam jak w Symfony męczyłem sie jak połączyć repopilacje formularza z validatorami. W SparkleWorks to zabawa.
Kontroler:
-
<?php
-
class ShipmentCompaniesModule extends swAppController
-
{
-
-
public function executeAdd()
-
{
-
$this->oShipmentCompany = null;
-
$this->sAction = 'Create';
-
}
-
-
-
-
public function executeEdit()
-
{
-
$oShipmentCompaniesQuery = new Shipment_companiesModel();
-
$this->oShipmentCompany = $oShipmentCompaniesQuery->getByPK( $this->request()->Get( 'id', 'Int' ) );
-
-
$this->sAction = 'Update?id='.$this->oShipmentCompany->getId();
-
$this->setView( 'Add' );
-
}
-
-
-
public function executeCreate()
-
{
-
$oShipmentCompaniesQuery = new Shipment_companiesModel();
-
$oShipmentCompaniesQuery->setInfo( $this->request()->Post( 'info', 'String' ) );
-
$oShipmentCompaniesQuery->setName( $this->request()->Post( 'name' ) );
-
$oShipmentCompaniesQuery->setTelephone( $this->request()->Post( 'telephone', 'Int' ) );
-
$oShipmentCompaniesQuery->insert();
-
-
return 'Nowa firma wysyłkowa została utworzona.';
-
}
-
-
-
-
public function executeUpdate()
-
{
-
$oShipmentCompaniesQuery = new Shipment_companiesModel();
-
$oShipmentCompaniesQuery->addWhere( Shipment_companiesModel::ID, $this->request()->Get( 'id', 'Int' ) );
-
$oShipmentCompaniesQuery->setInfo( $this->request()->Post( 'info', 'String' ) );
-
$oShipmentCompaniesQuery->setName( $this->request()->Post( 'name' ) );
-
$oShipmentCompaniesQuery->setTelephone( $this->request()->Post( 'telephone', 'Int' ) );
-
$oShipmentCompaniesQuery->update();
-
-
return 'Zmiany zostały zapisane.';
-
}
-
}
-
?>
Szablon:
Validator:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<validators enabled="true" module="ShipmentCompanies" action="Create" method="POST" errorAction="ShipmentCompanies/Add" foreign="false">
-
-
<name type="string">
-
<minlenght>3</minlenght>
-
<maxlenght>255</maxlenght>
-
<lenghterror>Musi miec dlugosc od {{minLenght}} do {{maxLenght}} znaków.</lenghterror>
-
</name>
-
-
<info type="string">
-
<minlenght>5</minlenght>
-
<lenghterror>Musi miec dlugosc od {{minLenght}} znaków.</lenghterror>
-
</info>
-
-
<telephone type="int">
-
<typeerror>Muszą być same liczby</typeerror>
-
<minlenght>8</minlenght>
-
<lenghterror>Telefon jest za krótki. Min długość to {{minLenght}} znaków.</lenghterror>
-
</telephone>
-
-
</validators>
Proste nie :D
9 comments