<?php /** CrugeUtil funciones variadas que se usan durante toda la aplicacion. @author: Christian Salazar H. <christiansalazarh@gmail.com> @salazarchris74 @license protected/modules/cruge/LICENSE */ class CrugeUtil extends CComponent { public static function config() { return Yii::app()->getModule('cruge'); } public static function factory() { return Yii::app()->getModule('cruge')->factory; } /* crea una URL normalizada relativa al action UiController */ public static function uiaction($actionName, $params = array()) { return Yii::app()->createUrl('/' . self::config()->id . '/ui/' . $actionName, $params); } public static function passwordGenerator() { return substr(self::hash(rand() . rand()), 0, 8); } /* normaliza el nombre de la tabla anexandole el prefijo y aplicando mapping */ public static function getTableName($tableName) { $prfx = self::config()->tableprefix; $_tableName = trim(strtolower($tableName)); if (isset(self::config()->maptables[$_tableName])) { $_tableName = self::config()->maptables[$_tableName]; } return $prfx . $_tableName; } public static function isPhpFile($filename) { return "php" === strtolower(trim(strrev(substr(strrev(trim($filename)), 0, 3)))); } public static function getClassNameFromPhp($filename) { $noext = trim(substr(strrev(trim($filename)), 4, strlen(trim($filename)) - 4)); $k = 0; for ($i = 0; $i < strlen($noext); $i++) { if (($noext[$i] == '\\') || ($noext[$i] == '/')) { $k = $i; } if ($k > 0) { break; } } if ($k == 0) { $k = strlen($noext); } return strrev(substr($noext, 0, $k)); } public static function now() { return time(); } public static function makeExpirationDateTime($minutesPlus) { return time() + ($minutesPlus * 60); } public static function isExpired($expirationdate) { return !(self::now() <= $expirationdate); } public static function getIpAddress() { return Yii::app()->request->userHostAddress; } /** toma una tira de valores: "1, azul\n2, rojo\n3, verde" y devuelve un array asi: ar[1] = azul ar[2] = rojo ar[3] = verde */ public static function explodeOptions($listValues) { $lista = explode("\n", $listValues); $ar = array(); foreach ($lista as $item) { $k = explode(",", $item); $val = ""; $text = ""; if (count($k) == 2) { $val = trim($k[0]); $text = trim($k[1]); } else { $val = "0"; $text = trim($k[0]); } $ar[$val] = $text; } return $ar; } /** * Devuelve el hash del valor en el parĂ¡metro $value * @param $value * @return string */ public static function hash($value) { $algo = self::config()->hash; return hash($algo, $value); } }