Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - xtremer

Páginas: [1]
1
PHP / [Ayuda] Arrays
« en: 26 de Marzo de 2012, 05:41:30 am »
Estoy haciendo un metodo para imprimir el Primer, y Ultimo nodo de un Array, y elegir Key o Value, para luego usar un condicional if()
El que hice es funcional, pero capaz se puede hacer una mejor manera..

Código: [Seleccionar]
# $get_node = array
# $get_type = Key o Value
# $get_position = Primer o Ultimo nodo

private function FilterArray($get_node, $get_type, $get_position)
{
if($get_position=="first"){
$node=array_slice($get_node, 0); // Obtengo primer nodo
}
else if($get_position=="last"){ // O este First, o es Last nomas
$node=array_slice($get_node, -1); // Obtengo el ultimo nodo
}
if($get_type=="key"){
$node=key($node); // Obtengo la key del nodo
}
else if($get_type=="value"){ // O es Key, o es Value nomas
$node=current($node); // Obtengo el value del nodo
}

return $node;
}

Y luego por ej. lo uso como:

Código: [Seleccionar]
$lastNode=$this->FilterArray($this->fields, 'key', 'last');

foreach($node as $key=>$value){
$this->query.=$key;
if($field!=$lastNode){ $this->query.=","; }
}

Haciendo que agregue , a todos menos al ultimo..

Ventaja que tengo a diferencia de antes:
No usar count($array) para contar cuantos nodos hay, ni $var++ dentro de un bucle for() o foreach()  para saber si es el Primero o Ultimo nodo, y dsp uso un if()
Solo llamo al metodo, y utilizo un if(), mejorando la sintaxis de mi codigo


Para aquellos que no lo sabian, espero que les sirva como aporte :)
Espero que me puedan ayudar si saben como mejorar el script, gracias.

2
PHP / Re:Archivos .po
« en: 20 de Marzo de 2012, 16:49:56 pm »
Si ahora lo estoy haciendo el archivo .php
Pero lo veo mas organizado que este en un archivo .po, tal como las plantillas las hice en extension .tpl , y porque ademas me gustaria aprender algo nuevo, y no ir siempre por lo mismo.

Algunos juegos online traducen con .po , algunos plugins de wordpress traducen con .po, entre otros que seguramente no conosco xD.

La idea seria, si puedo mejorar mi proyecto teniendo las cosas separadas como debe, por .php .tpl .po me pareceria mas organizado y correcto, o bueno eso creo yo

3
PHP / Archivos .po
« en: 20 de Marzo de 2012, 16:22:11 pm »
Estoy haciendo un proyecto, y me había creado un sistema de templates
similar al de phpbb en el que colocas  {username} o {list_products} , y
tener un .php con un nodo de palabras que representan cada variable
encerrada por llaves, y mostrarlos en distintos templates de extension .tpl

Pero ahora me surge la situación de avanzar aun mas con esto, e integrarle
un sistema de translate con archivos de extensión .po , que me parece que
es lo mas correcto y organizado.

Estoy averiguando sobre el tema, pero aun no encuentro nada, si alguien
podría ayudarme me haría un gran favor :)


Estoy abierto a ideas por si si saben otra forma mejor que un sistema de
translate con archivos .po,

Espero que me puedan ayudar,
Gracias,
Saludos

4
PHP / Expresiones Regulares
« en: 13 de Marzo de 2012, 15:43:22 pm »
Estoy hace un par de semanas intentando entender bien el tema de las expresiones regulares.

Uno de los casos que quiero terminar de entender por logica y no por mecanica y memoria es:
#\{(.*?)\}#

Esa expresion la estoy usando para un sistema de plantillas propia, y que enconcontre en un tutorial xD,
# lo uso como separador es igual que usar /
\ lo uso para avisar que quiero voy a ingresar un signo, y que busque ese signo

. lo uso como comodin, para saltear lo que haya dentro de las llaves {} , por lo q pueden ingresar cualquier cosa, letras numeros signos

* es 0 o mas veces que se repita los caracteres
? es 0 o 1 vez que se repita los caracteres
*? es 0 o 1 o mas veces que se repita los caracteres

.*?
Que todos los caracteres se puedan repetir 0,1, o mas veces

Esta bien lo que digo hasta ahi?


Tambien queria saber del +?
porque realiza lo mismo que *?
aunque el + era 1 o mas veces


Espero que me puedan corregir porfavor,

Gracias,
Saludos

5
(POO) Programación Orientada a Objetos / PHP sistema de plantillas
« en: 10 de Marzo de 2012, 04:12:27 am »
Estoy intentando realizar un sistema de plantillas como phpbb con php.

Y encontre un sistema de plantillas similar a phpbb pero desactualizado :(
Del codigo que entiendo es hasta la parte de la expresion regular, de ahi para abajo no entiendo...
Podria alguien darme una mano porfavor?

El sistema funciona perfectamente lo que no entiendo es como funciona logicamente, para yo poder hacerlo desde 0%
Código: [Seleccionar]
function muestra(){
                if (!($this->fd = @fopen($this->tpl_file, 'r'))) {
                        sostenedor_error('error al abrir la plantilla ' . $this->tpl_file);
                } else{
                        $this->template_file = fread($this->fd, filesize($this->tpl_file));
                        fclose($this->fd);
                        $this->mihtml = $this->template_file;
                        $this->mihtml = str_replace ("'", "\'", $this->mihtml);
                        $this->mihtml = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->mihtml);
                        reset ($this->vars);
                        while (list($key, $val) = each($this->vars)) {
                                $$key = $val;
                        }
                        eval("\$this->mihtml = '$this->mihtml';");
                        reset ($this->vars);
                        while (list($key, $val) = each($this->vars)) {
                                unset($$key);
                        }
                        $this->mihtml=str_replace ("\'", "'", $this->mihtml);
                        echo $this->mihtml;
                }
        }

Metodo que pasa las variables a reemplazar:
Código: [Seleccionar]
$Contenido->asigna_variables(array(
        "variable" => "holaMundo "
));

No paso url de la fuente xq es de otra comu, y capaz lo consideran spam, pero si lo googlean lo encuentran.

Gracias, espero que me puedan ayudar!
Saludos

Páginas: [1]