PHP Classes

File: examples/productqueryBox.lib

Recommend this page to a friend!
  Classes of philippe thomassigny   Box Model   examples/productqueryBox.lib   Download  
File: examples/productqueryBox.lib
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Box Model
Create Web applications based on boxes
Author: By
Last change:
Date: 12 years ago
Size: 1,946 bytes
 

Contents

Class file image Download
<?php // Gets the list of products of the category // entry: min, num // exit: list // params: category of products class productqueryBox extends Box { public function __construct() { parent::__construct(); $this->addInput('CATEGORY', Box::STRING); $this->addInput('min', Box::INTEGER); $this->addInput('num', Box::INTEGER); $this->addOutput('list', Box::VECTORRECORD); } public function run() { // Simulates a connection to a database and gets back // 5 products if 'main' category, 3 products if 'other' category $min = trim($this->getInputData('min')); $num = trim($this->getInputData('num')); $CATEGORY = trim($this->getInputData('CATEGORY')); if ($CATEGORY != 'main' && $CATEGORY != 'other') { $CATEGORY = 'main'; } // Here we should make a query like // select count(*) from products where category = '$CATEGORY' limit $num offset $min; if ($CATEGORY == 'main') { $products = array( array('{key}' => 1, '{name}' => 'Trousers', '{price}' => 12.5), array('{key}' => 2, '{name}' => 'Skirt', '{price}' => 11.5), array('{key}' => 3, '{name}' => 'Bicycle', '{price}' => 99.9), array('{key}' => 4, '{name}' => 'Ball', '{price}' => 5), array('{key}' => 5, '{name}' => 'Jewel', '{price}' => 125) ); } else { $products = array( array('{key}' => 1, '{name}' => 'Trousers', '{price}' => 12.5), array('{key}' => 2, '{name}' => 'Skirt', '{price}' => 11.5), array('{key}' => 6, '{name}' => 'Skateboard', '{price}' => 24.9) ); } // we filter num, min if needed, to simulate limit and offset $npr = array(); $item = 0; foreach($products as $p) { if ($item++ < $min) continue; $npr[] = $p; if ($item >= $min + $num) break; } $products = $npr; $this->setOutputData('list', $products); } } ?>