Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2013, 18:30
underwebinfo
 
Fecha de Ingreso: septiembre-2012
Ubicación: Buenos aires
Mensajes: 110
Antigüedad: 12 años, 2 meses
Puntos: 9
Sonrisa [Aporte] Class Paginador & Upload

Código PHP:
Ver original
  1. # Mysql
  2.     class Cm_mysql{
  3.        
  4.         # Conexion
  5.         public function Conectar(){
  6.            
  7.             $Conexion = mysql_connect('localhost', 'root', '');
  8.             mysql_select_db('db',$Conexion);
  9.        
  10.         }
  11.        
  12.         # Consulta
  13.         public function Consulta($Consulta){
  14.            
  15.             return mysql_query($Consulta);
  16.            
  17.         }
  18.        
  19.         # Reg_Num
  20.         public function Reg_Num($Consulta){
  21.        
  22.             return mysql_num_rows($Consulta);
  23.        
  24.         }
  25.        
  26.         # Assoc
  27.         public function Assoc($Consulta){
  28.        
  29.             return mysql_fetch_assoc($Consulta);
  30.        
  31.         }
  32.        
  33.         # String Search
  34.         public function Con_Like($Consulta,$Por,$Text){
  35.        
  36.             return mysql_query($Consulta.' WHERE '.$Por.' LIKE '.'"'.$Text.'"');
  37.        
  38.         }
  39.        
  40.     }
  41.  
  42.  
  43.     # Convert
  44.     class Cm_Convert{
  45.         # Certifica Valor existente, Convierte a int
  46.         public function ParseValInt($GetPost){
  47.                
  48.             if(isset($GetPost) && $GetPost!==''){
  49.                
  50.                 $Devuelve = intval($GetPost);
  51.                 return $Devuelve;
  52.                
  53.             }else{
  54.                
  55.                 $Devuelve = 0;
  56.                 return $Devuelve;
  57.                
  58.             }
  59.         }
  60.     }
  61.  
  62.  
  63.  
  64. # --- Paginador
  65. class Cm_Paginador{
  66.    
  67.     # --- Configuracion
  68.     var $Posicion,$Botones,$Base,$Article,$Order,$Mysql,$Query,$Exect,$Cant,$Paginas,$Comming,$Consulta,$Estructura;
  69.    
  70.     # --- Mysql
  71.     public function _Mysql($Mysql,$base,$article,$orden,$Posicion){
  72.        
  73.         # --- Mysql
  74.         $this->Base  = $base;
  75.         $this->Order = $orden;
  76.         $this->Article = $article;
  77.         $this->Mysql    = $Mysql;
  78.         $this->Posicion = $Posicion;
  79.         $this->Mysql->Conectar();
  80.         $this->Query = "SELECT * FROM ".($this->Base);
  81.         $this->Exect = $this->Mysql->Consulta($this->Query);
  82.        
  83.         # --- Condicionales
  84.         $this->Cant     = $this->Mysql->Reg_Num($this->Exect);
  85.         $this->Paginas  = ceil($this->Cant/$this->Article);
  86.         $this->Comming  = $this->Article*$this->Posicion;
  87.         $Desde          = $this->Posicion*$this->Paginas;
  88.    
  89.         # --- Consulta
  90.         $this->Consulta = $this->Mysql->Consulta($this->Query.' ORDER BY id '.$orden.' LIMIT '.$Desde.' , '.$this->Cant);
  91.    
  92.     }
  93.    
  94.     # --- Estructura
  95.     public function _Estructure($estructure){
  96.        
  97.         $this->Estructura = $estructure;
  98.        
  99.     }
  100.    
  101.     # --- Devolucion
  102.     public function _Devolucion(){
  103.        
  104.                
  105.         while($Campo = $this->Mysql->Assoc($this->Consulta)){
  106.            
  107.             $str = $this->Estructura;  
  108.            
  109.             foreach($Campo as $clave => $valor) {
  110.                    
  111.                 $str = str_replace('{'.$clave.'}',$valor,$str);
  112.                
  113.                
  114.             }
  115.            
  116.             echo $str;
  117.  
  118.         }
  119.        
  120.  
  121.     }
  122.    
  123.     # --- Navegacion
  124.     public function _Navegacion($botones){
  125.        
  126.         # Vars
  127.         $this->Botones = $botones;
  128.        
  129.         if(($this->Botones)>=3){
  130.            
  131.             // next
  132.             if((($this->Posicion)+1)>1 && ($this->Paginas)>1){
  133.                
  134.                 echo '<input type="button" onClick="Paginacion('.($this-Posicion).')" value="next">';
  135.                
  136.             }
  137.            
  138.             // numbers
  139.             for($i = 1;$i<$this->Botones;$i++){
  140.            
  141.                 if($i<$this->Paginas){
  142.                    
  143.                     echo '<input type="button" value="'.$i.'" onClick="Paginacion('.$i.')">';
  144.                        
  145.                 }
  146.            
  147.             }
  148.            
  149.             // prev
  150.             if((($this->Posicion)+1)<($this->Paginas)){
  151.                
  152.                 echo '<input type="button" onClick="Paginacion('.(($this->Posicion)+2).')" value="prev">';
  153.                
  154.             }
  155.    
  156.         }
  157.        
  158.         if(($this->Botones)<=2){
  159.        
  160.                    
  161.             // next
  162.             if((($this->Posicion+1))>1 && ($this->Paginas)>1){
  163.                
  164.                 echo '<input type="button" onClick="Paginacion('.($this->Posicion).')" value="next">';
  165.                    
  166.             }
  167.    
  168.             // prev
  169.             if((($this->Posicion)+1)<($this->Paginas)){
  170.                    
  171.                 echo '<input type="button" onClick="Paginacion('.(($this->Posicion)+2).')" value="prev">';
  172.                    
  173.             }
  174.                            
  175.         }
  176.        
  177.     }
  178.    
  179. }
  180.  
  181.  
  182.  
  183.  
  184.     # Upload
  185.     class Cm_Upload{
  186.        
  187.         # Forma de uso
  188.         # $Upload->UploadConfig($Name,$Path);
  189.         # $Upload->_Type();
  190.         # $Upload->_MinSize();
  191.         # $Upload->_MaxSize();
  192.         # $Upload->_UploadSave();
  193.        
  194.         # Configuracion
  195.         protected   $_Name      = NULL;
  196.         protected   $_Path      = NULL;
  197.         private     $_Type      = NULL;
  198.         private     $_MinSize   = NULL;
  199.         private     $_MaxSize   = NULL;
  200.        
  201.         # Privates & Condicionales
  202.         private     $_Extencion     = NULL;
  203.         private     $states         = 0;
  204.        
  205.         # Constructor
  206.         public function UploadConfig($Name,$Path){
  207.            
  208.             $this->_Name        = $Name;
  209.             $this->_Path        = $Path;
  210.            
  211.         }
  212.        
  213.         # Convertor Bytes
  214.         private function _ConvertBytes($size){
  215.             if (is_int($size) || ctype_digit($size)) {
  216.                 return (int) $size;
  217.             }
  218.    
  219.             $tipo = strtolower(substr($size, -1));
  220.             $size = (int) $size;
  221.    
  222.             switch ($tipo) {
  223.                 case 'g': //Gigabytes
  224.                     $size *= 1073741824;
  225.                     break;
  226.                 case 'm': //Megabytes
  227.                     $size *= 1048576;
  228.                     break;
  229.                 case 'k': //Kilobytes
  230.                     $size *= 1024;
  231.                     break;
  232.                 default :
  233.                     $size = -1;
  234.                    
  235.             }
  236.    
  237.             return $size;
  238.         }
  239.        
  240.         # MinSize
  241.         public function _MinSize($int){
  242.             $this->_MinSize = $this->_ConvertBytes($int);
  243.            
  244.         }
  245.        
  246.         # MaxSize
  247.         public function _MaxSize($int){
  248.            
  249.             $this->_MaxSize = $this->_ConvertBytes($int);
  250.            
  251.         }
  252.        
  253.         # Type
  254.         public function _Type($array){
  255.            
  256.             if(!is_array($array)){
  257.                
  258.                 $array = explode(',',$array);
  259.                
  260.             }
  261.            
  262.             $this->_Type = $array;
  263.            
  264.         }
  265.        
  266.         # Extencion
  267.         private function _Extencion(){
  268.            
  269.             $var = explode('.',$_FILES[$this->_Name]['name']);
  270.             $this->_Extencion = strtolower(end($var));
  271.  
  272.         }
  273.        
  274.         # Validador
  275.         private function _Validator(){
  276.            
  277.             # MinSize
  278.             if($this->_MinSize!==NULL && $_FILES[$this->_Name]['size'] < $this->_MinSize){
  279.                                
  280.                 echo 'El archivo es inferior a los '.$this->_MinSize.' bytes';
  281.                 $this->states = 0;
  282.                    
  283.             }
  284.                
  285.             # MaxSize
  286.             if($this->_MaxSize!==NULL && $_FILES[$this->_Name]['size'] > $this->_MaxSize){
  287.                
  288.                 echo 'El archivo es mayor a los '.$this->_MaxSize.' bytes';
  289.                 $this->states = 0;
  290.                    
  291.             }
  292.                
  293.             # Extencion
  294.             if($this->_Extencion!==NULL && !in_array($this->_Extencion,$this->_Type)){
  295.            
  296.                     echo 'El archivo no es valido.';
  297.                     $this->states = 0;
  298.                
  299.                 }
  300.                
  301.             # Escribir Carpeta
  302.             if($this->_Path!==NULL && !is_writable($this->_Path)){
  303.                
  304.                 echo 'Lo sentimos pero no tienes permisos para escribir en '.$this->_Path;
  305.                 $this->states = 0;
  306.             }
  307.                
  308.             $this->states = 1;     
  309.         }
  310.        
  311.         # UploadSave
  312.         public function _UploadSave($name){
  313.            
  314.             # Extencion
  315.             $this->_Extencion();
  316.            
  317.             # Validador
  318.             $this->_Validator();
  319.            
  320.             # Verificacion
  321.             if(intval($this->states)==1){
  322.                
  323.                 if(move_uploaded_file($_FILES[$this->_Name]['tmp_name'],$this->_Path.'/'.$name.'.'.$this->_Extencion))
  324.                     echo 1;
  325.                 else
  326.                     echo 0;
  327.             }
  328.         }
  329.        
  330.     }



Forma de uso

Código PHP:
Ver original
  1. # Upload
  2.     $Upload->UploadConfig('Foto','Carpeta'); # nombre $_FILES[nombre], Carpeta
  3.     $Upload->_Type('jpg,png,gif,bmp'); # tipos
  4.     $Upload->_MinSize('12k'); # k, m, g
  5.     $Upload->_MaxSize('2m'); # k, m, g
  6.     $Uploaded = $Upload->_UploadSave('Producto'.$Rand); # Parametro: Nombre
  7.  
  8.     # Paginator
  9.     $Page = $Convert->ParseValInt($_POST['Page']);
  10.    
  11.     echo '<div class="Titulos"><h1>Titulo</h1> <h1><img src="../../Nayla/Imagenes/Ui/linedpaper32.png">Pie</h1> <h1><img src="../../Nayla/Imagenes/Ui/gear32.png">Acciones</h1></div>';
  12.  
  13.     $Paginator->_Mysql(new Cm_mysql,'Albums',5,'DESC',$Page);
  14.     $Paginator->_Estructure('<div class="Album" id="Album_{id}"><h1>{Titulo}</h1><p>{MinPie} ...</p><span><a href="http://laentreviasrock/Albums/{Slug}" title="Acceder al evento (seras redireccionado)" class="Ver"></a><input type="button" title="Agregar fotos al album." class="Agregar"><input type="button" title="Acceder a editar el evento." class="Editar"><input type="button" title="Eliminar el evento" class="Eliminar"></span></div>');
  15.     $Paginator->_Devolucion();
  16.     $Paginator->_Navegacion(5);

El que sepa adaptarlo el upload de simple a multiple también me serviria mucho, ya estoy medio quemado con el upload :p