From d30d70afd95653bb356603612db6519d6e6ebead Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Sat, 3 Dec 2011 12:30:25 +0000 Subject: improved i18n --- .../Controllers/AcquisitioncardsController.php | 2 +- h-source/Application/Include/hardware.php | 1 + h-source/Application/Include/languages.php | 1 + .../Application/Models/AcquisitioncardsModel.php | 4 +- h-source/Application/Models/BluetoothModel.php | 6 +-- h-source/Application/Models/EthernetcardsModel.php | 4 +- .../Application/Models/FingerprintreadersModel.php | 4 +- h-source/Application/Models/GenericModel.php | 35 ++++++++++++++++ h-source/Application/Models/ModemsModel.php | 4 +- h-source/Application/Models/NotebooksModel.php | 4 +- h-source/Application/Models/PrintersModel.php | 2 + h-source/Application/Models/ScannersModel.php | 2 + h-source/Application/Models/SdcardreadersModel.php | 4 +- h-source/Application/Models/SoundcardsModel.php | 4 +- h-source/Application/Models/ThreegcardsModel.php | 7 +--- h-source/Application/Models/VideocardsModel.php | 2 + h-source/Application/Models/WebcamsModel.php | 2 + h-source/Application/Models/WifiModel.php | 4 +- .../Application/Views/Threegcards/catalogue.php | 4 +- h-source/Application/Views/Wifi/catalogue.php | 4 +- h-source/Application/Views/page.php | 2 +- h-source/Library/Call.php | 3 +- h-source/Library/Controller.php | 1 - h-source/Library/Form/Entry.php | 1 + h-source/Library/Form/Form.php | 2 + h-source/Library/Form/Select.php | 2 +- h-source/Library/Helper/List.php | 10 +++-- h-source/Library/Html/Form.php | 46 +++++++++++++--------- h-source/Library/Model/Base.php | 25 ++++++++++-- h-source/Library/Params.php | 14 +++++-- h-source/Library/Theme.php | 15 ++++--- 31 files changed, 145 insertions(+), 76 deletions(-) diff --git a/h-source/Application/Controllers/AcquisitioncardsController.php b/h-source/Application/Controllers/AcquisitioncardsController.php index 4e320d9..08e99f0 100644 --- a/h-source/Application/Controllers/AcquisitioncardsController.php +++ b/h-source/Application/Controllers/AcquisitioncardsController.php @@ -82,7 +82,7 @@ class AcquisitioncardsController extends GenericController ); $this->mod->setWhereQueryClause($whereArray); - + parent::catalogue($lang); } diff --git a/h-source/Application/Include/hardware.php b/h-source/Application/Include/hardware.php index e5dccea..4a651f6 100644 --- a/h-source/Application/Include/hardware.php +++ b/h-source/Application/Include/hardware.php @@ -31,6 +31,7 @@ class Hardware public static $translations = array( "amd64" => 'x86-64/amd64', + "PC-Card" => 'PCMCIA/PC-Card', ); public static $regExpressions = array( diff --git a/h-source/Application/Include/languages.php b/h-source/Application/Include/languages.php index cbaf6bb..6f1fac4 100644 --- a/h-source/Application/Include/languages.php +++ b/h-source/Application/Include/languages.php @@ -334,6 +334,7 @@ class Lang /*0286*/"October" => "ottobre", /*0287*/"November" => "novembre", /*0288*/"December" => "dicembre", + /*0289*/"not-specified" => "non specificato", ), 'es' => array ( diff --git a/h-source/Application/Models/AcquisitioncardsModel.php b/h-source/Application/Models/AcquisitioncardsModel.php index ab04fed..147aa94 100644 --- a/h-source/Application/Models/AcquisitioncardsModel.php +++ b/h-source/Application/Models/AcquisitioncardsModel.php @@ -42,9 +42,7 @@ class AcquisitioncardsModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,compatibility,comm_year,interface'); diff --git a/h-source/Application/Models/BluetoothModel.php b/h-source/Application/Models/BluetoothModel.php index 82aab59..022c889 100644 --- a/h-source/Application/Models/BluetoothModel.php +++ b/h-source/Application/Models/BluetoothModel.php @@ -42,11 +42,9 @@ class BluetoothModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); - $this->createPopupWhere('vendor,bluetooth_works,comm_year,interface'); + + $this->setPopupFunctions(); $this->diffFields = array( 'vendor' => gtext("vendor"), diff --git a/h-source/Application/Models/EthernetcardsModel.php b/h-source/Application/Models/EthernetcardsModel.php index 1727f71..08dc997 100644 --- a/h-source/Application/Models/EthernetcardsModel.php +++ b/h-source/Application/Models/EthernetcardsModel.php @@ -42,9 +42,7 @@ class EthernetcardsModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,ethernet_card_works,comm_year,interface'); diff --git a/h-source/Application/Models/FingerprintreadersModel.php b/h-source/Application/Models/FingerprintreadersModel.php index 8e3f8da..7a2f3e8 100644 --- a/h-source/Application/Models/FingerprintreadersModel.php +++ b/h-source/Application/Models/FingerprintreadersModel.php @@ -42,9 +42,7 @@ class FingerprintreadersModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,fingerprint_works,comm_year,interface'); diff --git a/h-source/Application/Models/GenericModel.php b/h-source/Application/Models/GenericModel.php index 9a619fd..002149b 100644 --- a/h-source/Application/Models/GenericModel.php +++ b/h-source/Application/Models/GenericModel.php @@ -66,4 +66,39 @@ class GenericModel extends Model_Tree { $this->_popupWhere[$field] = 'type="'.$this->type.'" and deleted="no" and cleared="no"'; } } + + //set the fuction to be applied upon each popup name + public function setPopupFunctions() + { + foreach ($this->_popupItemNames as $name => $field) + { + $this->_popupFunctions[$name] = $this->getTranslationFunction($name); + } + } + + public function getPopupLabel($viewArgs) + { + $html = null; + foreach ($viewArgs as $field => $value) + { + $html .= "
$value
\n"; + } + return $html; + } + + //get the translation function + public function getTranslationFunction($fieldName) + { + $fieldsFunc = array( + "vendor" => "betterVendor", + "interface" => "translate", + ); + + if (array_key_exists($fieldName,$fieldsFunc)) + { + return $fieldsFunc[$fieldName]; + } + + return "gtext"; + } } \ No newline at end of file diff --git a/h-source/Application/Models/ModemsModel.php b/h-source/Application/Models/ModemsModel.php index 5417524..92571d2 100644 --- a/h-source/Application/Models/ModemsModel.php +++ b/h-source/Application/Models/ModemsModel.php @@ -42,9 +42,7 @@ class ModemsModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,compatibility,comm_year,interface'); diff --git a/h-source/Application/Models/NotebooksModel.php b/h-source/Application/Models/NotebooksModel.php index cc1b9eb..ce158a1 100644 --- a/h-source/Application/Models/NotebooksModel.php +++ b/h-source/Application/Models/NotebooksModel.php @@ -41,9 +41,7 @@ class NotebooksModel extends GenericModel { 'subtype' => gtext("subtype"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,compatibility,comm_year,subtype'); diff --git a/h-source/Application/Models/PrintersModel.php b/h-source/Application/Models/PrintersModel.php index 74cc0af..355bb67 100644 --- a/h-source/Application/Models/PrintersModel.php +++ b/h-source/Application/Models/PrintersModel.php @@ -41,6 +41,8 @@ class PrintersModel extends GenericModel 'comm_year' => gtext("year"), 'interface' => gtext("interface"), ); + + $this->setPopupFunctions(); $this->createPopupWhere('vendor,compatibility,comm_year,interface'); diff --git a/h-source/Application/Models/ScannersModel.php b/h-source/Application/Models/ScannersModel.php index 430142d..4710503 100644 --- a/h-source/Application/Models/ScannersModel.php +++ b/h-source/Application/Models/ScannersModel.php @@ -44,6 +44,8 @@ class ScannersModel extends GenericModel $this->createPopupWhere('vendor,compatibility,comm_year,interface'); + $this->setPopupFunctions(); + $this->diffFields = array( 'vendor' => gtext("vendor"), 'model' => gtext('model name'), diff --git a/h-source/Application/Models/SdcardreadersModel.php b/h-source/Application/Models/SdcardreadersModel.php index f580d87..85950a5 100644 --- a/h-source/Application/Models/SdcardreadersModel.php +++ b/h-source/Application/Models/SdcardreadersModel.php @@ -42,9 +42,7 @@ class SdcardreadersModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,sd_card_works,comm_year,interface'); diff --git a/h-source/Application/Models/SoundcardsModel.php b/h-source/Application/Models/SoundcardsModel.php index cda9c99..7137d79 100644 --- a/h-source/Application/Models/SoundcardsModel.php +++ b/h-source/Application/Models/SoundcardsModel.php @@ -42,9 +42,7 @@ class SoundcardsModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,sound_card_works,comm_year,interface'); diff --git a/h-source/Application/Models/ThreegcardsModel.php b/h-source/Application/Models/ThreegcardsModel.php index 4a89a97..88ae580 100644 --- a/h-source/Application/Models/ThreegcardsModel.php +++ b/h-source/Application/Models/ThreegcardsModel.php @@ -41,11 +41,8 @@ class ThreegcardsModel extends GenericModel 'wifi_works' => gtext("does it work?"), 'interface' => gtext("interface"), ); - - $this->_popupFunctions = array( - 'vendor' => 'betterVendor', - 'interface' => 'betterVendor', - ); + + $this->setPopupFunctions(); $this->createPopupWhere('vendor,wifi_works,comm_year,interface'); diff --git a/h-source/Application/Models/VideocardsModel.php b/h-source/Application/Models/VideocardsModel.php index 2e9a3ee..961340e 100644 --- a/h-source/Application/Models/VideocardsModel.php +++ b/h-source/Application/Models/VideocardsModel.php @@ -43,6 +43,8 @@ class VideocardsModel extends GenericModel ); $this->createPopupWhere('vendor,video_card_works,comm_year,interface'); + + $this->setPopupFunctions(); $this->diffFields = array( 'vendor' => gtext("vendor"), diff --git a/h-source/Application/Models/WebcamsModel.php b/h-source/Application/Models/WebcamsModel.php index a59da6e..0942bcb 100644 --- a/h-source/Application/Models/WebcamsModel.php +++ b/h-source/Application/Models/WebcamsModel.php @@ -47,6 +47,8 @@ class WebcamsModel extends GenericModel ); $this->createPopupWhere('vendor,webcam_works,comm_year,interface'); + + $this->setPopupFunctions(); $this->diffFields = array( 'vendor' => gtext("vendor"), diff --git a/h-source/Application/Models/WifiModel.php b/h-source/Application/Models/WifiModel.php index 12dedc2..0b6d6c2 100644 --- a/h-source/Application/Models/WifiModel.php +++ b/h-source/Application/Models/WifiModel.php @@ -42,9 +42,7 @@ class WifiModel extends GenericModel 'interface' => gtext("interface"), ); - $this->_popupFunctions = array( - 'interface' => 'betterVendor', - ); + $this->setPopupFunctions(); $this->createPopupWhere('vendor,wifi_works,comm_year,interface'); diff --git a/h-source/Application/Views/Threegcards/catalogue.php b/h-source/Application/Views/Threegcards/catalogue.php index a0962e4..6b17e55 100644 --- a/h-source/Application/Views/Threegcards/catalogue.php +++ b/h-source/Application/Views/Threegcards/catalogue.php @@ -28,7 +28,7 @@
viewArgs['vendor']);?>
viewArgs['comm_year']?>
viewArgs['wifi_works']?>
-
viewArgs['interface']?>
+
viewArgs['interface'])?>
viewArgs['sort-by']?>
@@ -67,7 +67,7 @@
:
-
+
diff --git a/h-source/Application/Views/Wifi/catalogue.php b/h-source/Application/Views/Wifi/catalogue.php index a1bf725..3ea9380 100644 --- a/h-source/Application/Views/Wifi/catalogue.php +++ b/h-source/Application/Views/Wifi/catalogue.php @@ -28,7 +28,7 @@
viewArgs['vendor']);?>
viewArgs['comm_year']?>
viewArgs['wifi_works']?>
-
viewArgs['interface']?>
+
viewArgs['interface'])?>
viewArgs['sort-by']?>
@@ -67,7 +67,7 @@
:
-
+
diff --git a/h-source/Application/Views/page.php b/h-source/Application/Views/page.php index e59aa87..e879d0e 100644 --- a/h-source/Application/Views/page.php +++ b/h-source/Application/Views/page.php @@ -79,7 +79,7 @@
:
-
+
diff --git a/h-source/Library/Call.php b/h-source/Library/Call.php index 29a3046..c75508b 100755 --- a/h-source/Library/Call.php +++ b/h-source/Library/Call.php @@ -232,12 +232,13 @@ function rewrite($url) { foreach (Route::$map as $key => $address) { + $oldKey = $key; $key = str_replace('\/','/',$key); $key = str_replace('/','\/',$key); if (preg_match('/^'.$key.'/',$url)) { $nurl = preg_replace('/^'.$key.'/',$address,$url); - return array($nurl,$key); + return array($nurl,$oldKey); // return preg_replace('/^'.$key.'/',$address,$url); } } diff --git a/h-source/Library/Controller.php b/h-source/Library/Controller.php index 742e89d..5a9ec79 100755 --- a/h-source/Library/Controller.php +++ b/h-source/Library/Controller.php @@ -55,7 +55,6 @@ class Controller { protected $scaffold = null; //the reference to the scaffold object function __construct($model, $controller, $queryString = array()) { - $this->controller = $controller; $this->modelName = $model; $this->_queryString = $queryString; diff --git a/h-source/Library/Form/Entry.php b/h-source/Library/Form/Entry.php index a17ac5e..8136dda 100755 --- a/h-source/Library/Form/Entry.php +++ b/h-source/Library/Form/Entry.php @@ -32,6 +32,7 @@ abstract class Form_Entry { public $labelString = null; //label of the form public $labelClass = null; //the class of the tag of the label public $options = array(); //options (if the entry is a \n"; + $returnString .= "\n"; + $returnString ="\n"; return $returnString; } @@ -95,12 +105,12 @@ class Html_Form { //$name: the name of the input //$className: the class name of the input //$idName: name of the id - static public function fileUpload($name, $value, $className = null, $idName = null) + static public function fileUpload($name, $value, $className = null, $idName = null, $attributes = null) { $strClass = isset($className) ? "class='".$className."'" : null; $idStr = isset($idName) ? "id='".$idName."'" : null; - $returnString ="\n"; + $returnString ="\n"; return $returnString; } @@ -110,13 +120,13 @@ class Html_Form { //$option: option of the checkBox (string or number) //$className: the class name of the checkBox (string) //$idName: name of the id - static public function checkbox($name, $value, $option, $className = null, $idName = null) + static public function checkbox($name, $value, $option, $className = null, $idName = null, $attributes = null) { $strClass = isset($className) ? "class='".$className."'" : null; $idStr = isset($idName) ? "id='".$idName."'" : null; $str = (strcmp($value,$option) === 0) ? "checked = 'checked'" : null; - return "\n"; + return "\n"; } //return the HTML of a hidden entry @@ -131,24 +141,24 @@ class Html_Form { //$name: name of the password entry (string) //$value: the value of the password entry (string or number) //$idName: name of the id - static public function password($name, $value, $className = null, $idName = null) + static public function password($name, $value, $className = null, $idName = null, $attributes = null) { $strClass = isset($className) ? "class='".$className."'" : null; $idStr = isset($idName) ? "id='".$idName."'" : null; - return "\n"; + return "\n"; } //return the HTML of a textarea //$name: name of the textarea (string) //$value: the value of the textarea (string or number) //$idName: name of the id - static public function textarea($name, $value, $className = null, $idName = null) + static public function textarea($name, $value, $className = null, $idName = null, $attributes = null) { $strClass = isset($className) ? "class='".$className."'" : null; $idStr = isset($idName) ? "id='".$idName."'" : null; - return "\n"; + return "\n"; } //return the HTML of a radio button @@ -158,7 +168,7 @@ class Html_Form { //$className: the class name of the radio button //$position: position of the strings of the radio with respect to the "circles". It can be before or after //$idName: name of the id - static public function radio($name, $value, $options, $className = null, $position = 'after', $idName = null) + static public function radio($name, $value, $options, $className = null, $position = 'after', $idName = null, $attributes = null) { $strClass = isset($className) ? "class='".$className."'" : null; $idStr = isset($idName) ? "id='".$idName."'" : null; @@ -189,7 +199,7 @@ class Html_Form { } $str= (strcmp($value,$optionValue) === 0) ? "checked='checked'" : null; - $returnString .= "$before$after\n"; + $returnString .= "$before$after\n"; } return $returnString; diff --git a/h-source/Library/Model/Base.php b/h-source/Library/Model/Base.php index c89abcd..57d769a 100755 --- a/h-source/Library/Model/Base.php +++ b/h-source/Library/Model/Base.php @@ -236,7 +236,7 @@ abstract class Model_Base //method to create the where clause of the select query from the $this->where array //$level: level of the ricorsion //$whereClauseLevel: array containing the field=>value statements of the where clause. If $whereClause = null than $this->where is considered - public function createWhereClause($level = 0, $whereClauseLevel = null) + public function createWhereClause($level = 0, $whereClauseLevel = null, $operator = null) { $whereClause = null; $whereClauseArray = array(); @@ -247,7 +247,19 @@ abstract class Model_Base { if (is_array($value)) { - $newValue = $this->createWhereClause($level+1, $value); + if (strstr($field,"OR")) + { + $op = " OR "; + } + else if (strstr($field,"AND")) + { + $op = " AND "; + } + else + { + $op = null; + } + $newValue = $this->createWhereClause($level+1, $value, $op); if (isset($newValue)) $whereClauseArray[] = $newValue; } else @@ -283,7 +295,14 @@ abstract class Model_Base } } //get the logic operator at the current level - $logicOper = isset($this->logicalOperators[$level]) ? ' '.$this->logicalOperators[$level].' ' : ' AND '; + if (isset($operator)) + { + $logicOper = $operator; + } + else + { + $logicOper = isset($this->logicalOperators[$level]) ? ' '.$this->logicalOperators[$level].' ' : ' AND '; + } $whereClause = !empty($whereClauseArray) ? implode($logicOper,$whereClauseArray) : null; $whereClause = (isset($whereClause) and $level>0) ? '('.$whereClause.')' : $whereClause; return $whereClause; diff --git a/h-source/Library/Params.php b/h-source/Library/Params.php index 001040e..488c8b2 100644 --- a/h-source/Library/Params.php +++ b/h-source/Library/Params.php @@ -26,11 +26,14 @@ if (!defined('EG')) die('Direct access not allowed!'); class Params { - public static $allowedDb = array('Mysql','Mysqli','None'); //allowed database type + //allowed database type + public static $allowedDb = array('Mysql','Mysqli','None'); - public static $allowedSanitizeFunc = 'sanitizeAll,sanitizeDb,sanitizeHtml,forceInt,forceNat,none,md5,sha1'; //allowed sanitize functions + //allowed sanitize functions + public static $allowedSanitizeFunc = 'sanitizeAll,sanitizeDb,sanitizeHtml,forceInt,forceNat,none,md5,sha1'; - public static $allowedHashFunc = array('md5','sha1'); //allowed hash functions + //allowed hash functions + public static $allowedHashFunc = array('md5','sha1'); //conventional null value for the value of the field in the createWhereClause method of the Model class public static $nullQueryValue = false; @@ -46,9 +49,12 @@ class Params public static $htmlentititiesCharset = DEFAULT_CHARSET; //list of symbols used in the statements of the where clause of the select queries - public static $whereClauseSymbolArray = array('<','>','!=','<=','>=','in(','not in('); + public static $whereClauseSymbolArray = array('<','>','!=','<=','>=','in(','not in(','like'); //is the mbstring extension enabled? public static $mbStringLoaded = false; + //subfolder of the View folder where to look for view files + public static $viewSubfolder = null; + } \ No newline at end of file diff --git a/h-source/Library/Theme.php b/h-source/Library/Theme.php index 45cace4..a001631 100755 --- a/h-source/Library/Theme.php +++ b/h-source/Library/Theme.php @@ -75,19 +75,22 @@ class Theme { public function render() { extract($this->_data); + //find the View subfolder where to look for view files + $subfolder = isset(Params::$viewSubfolder) ? Params::$viewSubfolder . DS : null; + foreach ($this->_viewFiles as $file) { - if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS . ucwords($this->controller) . DS . $file . '.php')) { - include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS . ucwords($this->controller) . DS . $file . '.php'); + if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS .$subfolder. ucwords($this->controller) . DS . $file . '.php')) { + include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS .$subfolder. ucwords($this->controller) . DS . $file . '.php'); } else { - include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS . $file . '.php'); + include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS .$subfolder. $file . '.php'); } } if (isset($this->_lastView)) { - if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS . ucwords($this->controller) . DS . $this->_lastView . '.php')) { - include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS . ucwords($this->controller) . DS . $this->_lastView . '.php'); + if (file_exists(ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS .$subfolder. ucwords($this->controller) . DS . $this->_lastView . '.php')) { + include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS .$subfolder. ucwords($this->controller) . DS . $this->_lastView . '.php'); } else { - include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS . $this->_lastView . '.php'); + include (ROOT . DS . APPLICATION_PATH . DS . 'Views' . DS .$subfolder. $this->_lastView . '.php'); } } -- cgit v1.2.3