Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2011, 10:33
Avatar de ColdFusion
ColdFusion
 
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 15 años, 5 meses
Puntos: 9
Integrar estas funciones a PHP OO

Estoy creando una clase que llevará todas las funciones usadas en mi web, pero estas funciones no las logro hacer funcionar


Código PHP:
function ini_emoticonos() {
    global 
$emoticonos$wp_smiliessearch;
 
$emoticonos = array(':)'=>'feliz.png',':]'=>'feliz.png',':O'=>'asombro.png',':o'=>'asombro.png',':0'=>'asombro.png',':D'=>'risa.png',';)'=>'ojito.png',';-)'=>'ojito.png',':('=>'trizte.png',':-('=>'trizte.png','8)'=>'anteojos.png','8-)'=>'anteojos.png',":'("=>'llorando.png',':/'=>'indeciso.png',":*"=>'beso.png',':P'=>'lengua.png',':p'=>'lengua.png','-.-'=>'desepcion.png',':|D'=>'dinero-boca.png','>_<'=>'enojado.png',"':|"=>'sudor.png',':}'=>'halo.png');
 if (
count($emoticonos) == 0) {
        return;
    }
    
krsort($emoticonos);

$wp_smiliessearch '/(?:\s|^)';

$subchar '';

foreach ( (array) 
$emoticonos as $smiley => $img ) {
        
$firstchar substr($smiley01);
        
$rest substr($smiley1);

        
// new subpattern?
        
if ($firstchar != $subchar) {
            if (
$subchar != '') {
                
$wp_smiliessearch .= ')|(?:\s|^)';
            }
            
$subchar $firstchar;
            
$wp_smiliessearch .= preg_quote($firstchar'/') . '(?:';
        } else {
            
$wp_smiliessearch .= '|';
        }
        
$wp_smiliessearch .= preg_quote($rest'/');
    }

    
$wp_smiliessearch .= ')(?:\s|$)/m';
}
 
function 
translate_smiley($smiley) {
    global 
$emoticonos;

    if (
count($smiley) == 0) {
        return 
'';
    }

    
$smiley trim(reset($smiley));
    
$img $emoticonos[$smiley];
    
//$smiley_masked = esc_attr($smiley);

    
$srcurl url_web()."imagenes/emoticonos/$img";

    return 
" <img src='$srcurl' alt='$smiley' class='wk-emoticono' /> ";
}

function 
ajustar_emoticonos($text) {
    global 
$wp_smiliessearch;
    
$output '';
    if (!empty(
$wp_smiliessearch) ) {
        
// HTML loop taken from texturize function, could possible be consolidated
        
$textarr preg_split("/(<.*>)/U"$text, -1PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between
        
$stop count($textarr);// loop stuff
        
for ($i 0$i $stop$i++) {
            
$content $textarr[$i];
            if ((
strlen($content) > 0) && ('<' != $content{0})) { // If it's not a tag
                
$content preg_replace_callback($wp_smiliessearch'translate_smiley'$content);
            }
            
$output .= $content;
        }
    } else {
        
// return default text.
        
$output $text;
    }
    return 
$output;

Dejenme explicarles que hace cada funcion
ini_emoticonos();
Inicia las variables usadas en las otras dos funciones

translate_smiley();
Remplaza cada ;) :) :( en en el enlace para las imagenes de los emotes

ajustar_emoticonos();
lo que hace es obtener el texto al cual remplazar las vars y establecer los iconos

Intente pasarlas a la clase pero creo que el error lo tuve aqui
Código PHP:
$content preg_replace_callback($wp_smiliessearch'translate_smiley'$content); 
P.S. este es el codigo que uso, cuando intente pasarla a la clase estableci:
$wp_smiliessearch y $emoticonos como variables privadas y use siempre $this->

Alguien puede ayudarme a pasar estas funciones para que trabajen correctamente en una clase.. lo agradeceria mucho!