XOOPS RMCommon Utilities  2.1.8.91RC
 All Classes Namespaces Files Functions Variables
utilities.php
Go to the documentation of this file.
1 <?php
2 // $Id: utilities.php 1016 2012-08-26 23:28:48Z i.bitcero $
3 // --------------------------------------------------------------
4 // Red México Common Utilities
5 // A framework for Red México Modules
6 // Author: Eduardo Cortés <i.bitcero@gmail.com>
7 // Email: i.bitcero@gmail.com
8 // License: GPL 2.0
9 // --------------------------------------------------------------
10 
12 {
16  function get(){
17  static $instance;
18  if (!isset($instance)) {
19  $instance = new RMUtilities();
20  }
21  return $instance;
22  }
29  public function make_url($ruta){
30  $ruta = str_replace(ABSPATH, ABSURL, $ruta);
31  return $ruta;
32  }
38  public function delete_file($filepath){
39  if ($filepath == '') return false;
40 
41  if (!file_exists($filepath)) return true;
42 
43  return unlink($filepath);
44 
45  }
52  public function get_count($table, $cond=''){
53  $db =& EXMDatabase::get();
54  $sql = "SELECT COUNT(*) FROM $table";
55  if ($cond!='') $sql .= " WHERE $cond";
56  list($num) = $db->fetchRow($db->query($sql));
57  return $num;
58  }
67  public function getVersion($includename = true, $module='', $type=0){
68  global $xoopsModule, $xoopsConfig;
69 
70  //global $version;
71  if ($module!=''){
72 
73  if($xoopsModule->dirname()==$module){
75  } else {
76  $mod = new XoopsModule();
77  }
78 
79  }
80 
81  $mod->loadInfoAsVar($module);
82  $version = $mod->getInfo('rmversion');
83  $version = is_array($version) ? $version : array('number'=>$version, 'revision'=>0, 'status'=>0, 'name'=>$mod->getInfo('name'));
84 
85  if ($type==1){
86  return $version;
87  }
88 
89  $rtn = '';
90 
91  if ($includename){
92  $rtn .= (defined($version['name']) ? constant($version['name']) : $version['name']) . ' ';
93  }
94 
95  $rtn .= $version['number'];
96 
97  if ($version['revision'] > 0){
98  $rtn .= '.' . $version['revision'] / 100;
99  } else {
100  $rtn .= '.0';
101  }
102 
103  switch($version['status']){
104  case '-3':
105  $rtn .= ' Alfa';
106  break;
107  case '-2':
108  $rtn .= ' Beta';
109  break;
110  case '-1':
111  $rtn .= ' RC';
112  break;
113  case '0':
114  break;
115  }
116 
117  return $rtn;
118  }
119 
120  public function format_version($version, $name = false){
121  $rtn = '';
122 
123  if ($name){
124  $rtn .= (defined($version['name']) ? constant($version['name']) : $version['name']) . ' ';
125  }
126 
127  // New versioning
128  if(isset($version['major'])){
129  $rtn .= $version['major'];
130  $rtn .= '.'.$version['minor'];
131  $rtn .= '.'.($version['revision']/10);
132  switch($version['stage']){
133  case -3:
134  $rtn .= ' alfa';
135  break;
136  case -2:
137  $rtn .= ' beta';
138  break;
139  case -1:
140  $rtn .= ' RC';
141  break;
142  default:
143  $rtn .= ' production';
144  break;
145  }
146  return $rtn;
147  }
148 
149  $rtn .= $version['number'];
150 
151  if ($version['revision'] > 0){
152  $rtn .= '.' . ($version['revision'] / 100);
153  } else {
154  $rtn .= '.0';
155  }
156 
157  switch($version['status']){
158  case '-3':
159  $rtn .= ' alfa';
160  break;
161  case '-2':
162  $rtn .= ' beta';
163  break;
164  case '-1':
165  $rtn .= ' final';
166  break;
167  case '0':
168  break;
169  }
170 
171  return $rtn;
172  }
173 
180  public function module_config($modname, $option=''){
182 
183  static $rmModuleConfigs;
184 
185  if (isset($rmModuleConfigs[$modname])){
186 
187  if($option!='' & isset($rmModuleConfigs[$modname][$option])) return $rmModuleConfigs[$modname][$option];
188 
189  return $rmModuleConfigs[$modname];
190 
191  }
192 
193  if (isset($xoopsModuleConfig) && (is_object($xoopsModule) && $xoopsModule->getVar('dirname') == $modname && $xoopsModule->getVar('isactive'))) {
194  $rmModuleConfigs[$modname] = $xoopsModuleConfig;
195  if($option != '' && isset($xoopsModuleConfig[$option])) {
196  return $xoopsModuleConfig[$option];
197  } else {
198  return $xoopsModuleConfig;
199  }
200  } else {
201  $module_handler =& xoops_gethandler('module');
202  $module = $module_handler->getByDirname($modname);
203  $config_handler =& xoops_gethandler('config');
204  if ($module) {
205  $moduleConfig =& $config_handler->getConfigsByCat(0, $module->getVar('mid'));
206  $rmModuleConfigs[$modname] = $moduleConfig;
207  if($option != '' && isset($moduleConfig[$option])) {
208  return $moduleConfig[$option];
209  } else {
210  return $moduleConfig;
211  }
212  }
213  }
214  }
215 
219  private function hexToRGB($color){
220  // Transformamos el color hex a rgb
221  if ($color[0] == '#')
222  $color = substr($color, 1);
223 
224  if (strlen($color) == 6)
225  list($r, $g, $b) = array($color[0].$color[1],
226  $color[2].$color[3],
227  $color[4].$color[5]);
228  elseif (strlen($color) == 3)
229  list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
230  else
231  list($r,$g,$b) = array("FF", "FF", "FF");
232 
233  $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
234  return array('r'=>$r,'g'=>$g,'b'=>$b);
235  }
236 
240  public function randomString($size, $digit = true, $special = false, $upper = false, $alpha = true){
241  $aM = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
242  $am = "abcdefghijklmnopqrstuvwxyz";
243  $d = "0123456789";
244  $s = "?@#\$%&()=???!.:,;-_+*[]{}";
245 
246  $que = array();
247  if ($alpha) $que[] = 'alpha';
248  if ($digit) $que[] = 'digit';
249  if ($special) $que[] = 'special';
250 
251  $rtn = '';
252 
253  for ($i=1;$i<=$size;$i++){
254  $op = $que[rand(0, count($que) - 1)];
255  switch($op){
256  case 'alpha':
257  $what = $upper ? $aM : (rand(0, 1)==0 ? $aM : $am);
258  $rtn .= substr($what, rand(0, strlen($what)-1), 1);
259  break;
260  case 'digit':
261  $rtn .= substr($d, rand(0, strlen($d)-1), 1);
262  break;
263  case 'special':
264  $rtn .= substr($s, rand(0, strlen($s)-1), 1);
265  break;
266  }
267  }
268 
269  return $rtn;
270 
271  }
272 
276  public function add_slash($string){
277  $string = rtrim($string, "/");
278  return $string.'/';
279  }
280 
286  public function formatBytesSize($size){
287 
288  $kb = 1024;
289  $mb = $kb * 1024;
290  $gb = $mb * 1024;
291 
292  if ($size<$kb){
293  return sprintf(__('%s b','rmcommon'), $size);
294  } elseif ($size<$mb){
295  return sprintf(__('%s kb','rmcommon'), number_format($size / $kb, 2));
296  } elseif ($size<$gb){
297  return sprintf(__('%s MB','rmcommon'), number_format($size / $mb, 2));
298  } else {
299  return sprintf(__('%s GB','rmcommon'), number_format($size / $mb, 2));
300  }
301 
302  }
303 
310  $path = str_replace('\\', '/', $path);
311  if (substr($path, 0, strlen($path) - 1)!='/'){
312  $path .= '/';
313  }
314  $dir = opendir($path);
315  while (($file = readdir($dir)) !== false){
316  if ($file == '.' || $file=='..') continue;
317  if (is_dir($path . $file)){
318  self::delete_directory($path . $file);
319  } else {
320  @unlink($path . $file);
321  }
322  }
323  closedir($dir);
324  @rmdir($path);
325  }
326 
332  public function image_manager($name, $id='', $default=''){
333 
334  $id = $id=='' ? $name : $id;
335 
336  if($default!=''){
337  $img = new RMImage();
338  $img->load_from_params($default);
339  }
340 
341  $ret = '<div id="'.$id.'-container" class="rmimage_container">';
342  $ret .= '<div class="thumbnail">';
343  if($default!='' && !$img->isNew()){
344  $ret .= '<a href="'.$img->url().'" target="_blank"><img src="'.$img->get_smallest().'" /></a>';
345  $ret .= '<input type="hidden" name="'.$name.'" id="'.$id.'" value="'.$default.'" />';
346  $ret .= '<br /><a href="#" class="removeButton removeButton-'.$id.'">'.__('Remove Image','rmcommon').'</a>';
347  } else {
348  $ret .= '<input type="hidden" name="'.$name.'" id="'.$id.'" value="" />';
349  }
350  $ret .= '</div>';
351  $ret .= '<span class="image_manager_launcher button buttonGreen btn btn-success">'.__('Image manager...',
352  'rmcommon').'</span>';
353  $ret .= '</div>';
354 
355  $tpl = RMTemplate::get();
356 
357  $tpl->add_head_script('var imgmgr_title = "'.__('Image Manager','rmcommon').'"'."\n".'var mgrURL = "'.RMCURL.'/include/tiny-images.php";');
358  $tpl->add_local_script('image_mgr_launcher.js', 'rmcommon', 'include');
359 
360  return $ret;
361  }
362 
363 }