• 1
  • 10 RepliesReplies
  • 7624 ReadTimes Read
  • 41 PointsPoints

Topic: [Home Portal] ¿Cómo crear un nuevo bloque?

Usuario: manix
Rango: User Extremo
Mensajes: 437
Points: 214
Perfil: View Profile
Pais:
cr
[Home Portal] ¿Cómo crear un nuevo bloque?
September 30, 2012 - 12:10 12:10
¿Cómo agregar un nuevo bloque?

Acá les dejo una pequeña explicación de cómo hacer su propio bloque. Este ejemplo es el más básico, y su único propósito es aprender las bases para hacer algo mucho más complejo. Empecemos...

Escenario
Crear un bloque que tenga el mensaje de "Hola SMFSimple". A este bloque lo llamaremos HelloBlock.

Requitos
- El archivo del bloque debe llevar el mismo nombre que la clase (la parte que dice class HelloBlock)
- Crear un funcion llamada show(), que se encarga de ejecutar el bloque
- La variable SYSKEY debe llevar el nombre del bloque

Procedimiento

1. Crear un archivo llamado HelloBlock.php dentro del directorio Sources/ssp/
2. Completamos todos los requisitos para que el contenido quede de la siguiente forma:

Code: [Select]
<?

class HelloBlock extends Block{
   
    const SYSKEY = 'HelloBlock';
   
    function __construct()
    {
    }

    public function show()
    {       
        echo 'Hola a SMFSimple!'; 
    }   
}

Tomen encuenta que en el título de la clase tenemos la frase extends Block. Esto quiere decir que HelloBlock es "algo" de tipo bloque y es una manera de que el portal reconozca que este bloque esta hecho a la manera que él ocupa que sea. Adicionalmente hay una funcion llamada __construct(), que sirve para contruir el bloque con configuraciones por defecto, pero en este caso no hay y por lo tanto esta vacio.

3. Registrar el bloque en el "Cargador de bloque"
¿Por qué es importante registrar el bloque en el cargador de bloques? Suponga que quiere hacer un bloque que se conecta a la base de de datos, si por alguna razón el administrador activa el bloque varias veces en el portal, este cargador inteligentemente se conecta solo una vez y evita de esta manera hacer uso de recursos innecesariamente.

3.1 Abrir el archivo Sources/ssp/BlockLoader.php

3.2 Buscar:
Code: [Select]
include ('Block.php');
y agregar después (hace el include del block recien creado):
Code: [Select]
include ('HelloBlock.php');
3.3 Buscar:
Code: [Select]
$this->blocks[LinkSharing::SYSKEY] = new LinkSharing();
y después agregar (registra el block a la gama de los demas bloques):
Code: [Select]
$this->blocks[HelloBlock::SYSKEY] = new HelloBlock();
4. Agregar el bloque al <select> en la seleccion del bloque, para ello abrimos el archivo Sources/SMFsimpleHomePortal_bloks.php

4.1 Buscar:
Code: [Select]
HorizontalMenu::SYSKEY => $txt['sshp_menuhorperson_sjk'],
Y agregar después:
Code: [Select]
HelloBlock::SYSKEY => 'Bloque de saludo',

5. Asociar la selección del usuario con el bloque correspondiente
Para ello vamos a editar el archivo Sources/SMFsimpleHomePortal.php

5.1 Buscar:
Code: [Select]
?>
Y antes poner:
Code: [Select]
function HelloBLock(){
echo BlockLoader::instance()->loadBlock(HelloBlock::SYSKEY);
}

Noten qué importante es el nombre del bloque (HelloBlock), ya que sirve para todo. Cuando hagan su propio bloque solo tienen que cambiarle el nombre a todas las ediciones que acabamos de hacer. Estoy seguro que deben de haber dudas, pero gracias a ellas iré depurando este tutorial.

Apéndice

¿Cómo hacer cambiar el texto del <select> para muchos idiomas?
En lugar de poner:
Code: [Select]
HelloBlock::SYSKEY => 'Bloque de saludo',
Podrían poner :
Code: [Select]
HelloBlock:YSKEY => '$txt['variable de lenguaje'],Recuerden que las variables del lenguaje estan declaradas en los archivos de idiomas.
soporte privado: manfredjb@hotmail.com
You do not have permission to give points
point 41 Points

Users who gave points in this topic » Lean (20 Pts) » Cesar (10 Pts) » Losox (10 Pts) » rogerscrack (1 Pts) 

Usuario: Lean
Rango: Fundador
Mensajes: 6782
Points: 236
Perfil: View Profile
Pais:
ar
Re:¿Cómo crear un nuevo bloque?
Reply #1 September 30, 2012 - 12:21 12:21
Mejor explicado imposible. Excelente tutorial, los usuarios que estan un poco avanzados en programacion que quieran hacer bloques con php te estaran muy agradecidos!
+20

Usuario: Cesar
Rango: Friend de SMFSimple
Mensajes: 1227
Points: 254
Mi web: http://www.genomapc.com
Perfil: View Profile
Pais:
ar
Re:¿Cómo crear un nuevo bloque?
Reply #2 September 30, 2012 - 12:44 12:44
grande manix muy buen tuto :D! +10!

Usuario: Losox
Rango: Excelente User
Mensajes: 874
Points: 109
Perfil: View Profile
Pais:
mx
Re:¿Cómo crear un nuevo bloque?
Reply #3 September 30, 2012 - 02:06 14:06
Exelente contenido, mejor explicado imposible.

Usuario: Lambo
Rango: Excelente User
Mensajes: 94
Points: 64
Mi web: http://foro.breackerz.com
Perfil: View Profile
Pais:
mx
Re:¿Cómo crear un nuevo bloque?
Reply #4 December 12, 2012 - 01:22 13:22
Bueno andaba tratando de crear un nuevo bloque~ Pero me salia un error entonces yo pensaba que algo hacia mal o algo parecido... Entonces hice tu tuto de manera identica a como lo pones, y me sale el mismo error que es este:

Code: [Select]
Fatal error: Class 'Block' not found in /home/breacker/public_html/foro/Sources/ssp/HelloBlock.php on line 3
Porque me sale este error? Los pasos los segui correctamente...

Usuario: manix
Rango: User Extremo
Mensajes: 437
Points: 214
Perfil: View Profile
Pais:
cr
Re:¿Cómo crear un nuevo bloque?
Reply #5 December 12, 2012 - 02:13 14:13
Bueno andaba tratando de crear un nuevo bloque~ Pero me salia un error entonces yo pensaba que algo hacia mal o algo parecido... Entonces hice tu tuto de manera identica a como lo pones, y me sale el mismo error que es este:

Code: [Select]
Fatal error: Class 'Block' not found in /home/breacker/public_html/foro/Sources/ssp/HelloBlock.php on line 3
Porque me sale este error? Los pasos los segui correctamente...

En el archivo HelloBlock busca la línea:
Code: [Select]
class HelloBlock extends Block
y antes de ella pon:
Code: [Select]
include ("Block.php");

Usuario: Lambo
Rango: Excelente User
Mensajes: 94
Points: 64
Mi web: http://foro.breackerz.com
Perfil: View Profile
Pais:
mx
Re:¿Cómo crear un nuevo bloque?
Reply #6 December 12, 2012 - 03:06 15:06
Bien ahora me sale este mensaje...

Code: [Select]
Fatal error: Cannot redeclare class Block in /home/breacker/public_html/foro/Sources/ssp/Block.php on line 13

Usuario: manix
Rango: User Extremo
Mensajes: 437
Points: 214
Perfil: View Profile
Pais:
cr
Re:¿Cómo crear un nuevo bloque?
Reply #7 December 12, 2012 - 03:26 15:26
Bien ahora me sale este mensaje...

Code: [Select]
Fatal error: Cannot redeclare class Block in /home/breacker/public_html/foro/Sources/ssp/Block.php on line 13

Ok, el problema parece no ser tuyo, sino mio. Deja todo como lo tenías antes, voy a volver a hacer el tutorial nuevamente porque de pronto yo tenía otras configuraciones que no tenían que contemplase.  Quédate pendiente para hoy en la noche.

Usuario: Lambo
Rango: Excelente User
Mensajes: 94
Points: 64
Mi web: http://foro.breackerz.com
Perfil: View Profile
Pais:
mx
Re:¿Cómo crear un nuevo bloque?
Reply #8 December 12, 2012 - 03:29 15:29
Vale amigo muchas gracias  :P

Usuario: manix
Rango: User Extremo
Mensajes: 437
Points: 214
Perfil: View Profile
Pais:
cr
Re:¿Cómo crear un nuevo bloque?
Reply #9 December 19, 2012 - 04:59 16:59
Vale amigo muchas gracias  :P

Listo, el tutorial tenia un error en el paso #3, repitelo y me dices como te va.

Usuario: Lambo
Rango: Excelente User
Mensajes: 94
Points: 64
Mi web: http://foro.breackerz.com
Perfil: View Profile
Pais:
mx
Re:¿Cómo crear un nuevo bloque?
Reply #10 December 20, 2012 - 03:37 15:37
Bien ahora si ya pude hacer el bloque!  ;D  Ahora debo de experimentar hasta que me salga como quiero xD Gracias

 

TAGS



top

Smfsimple.com es un sitio destinado a brindar un servicio de soporte y herramientas para foros realizados con el sistema de foros gratuito simplemachines.org. Contamos con un selecto equipo de desarrolladores y conocedores del sistema, sus foros estaran en buenas manos.
This site is not affiliated with or endorsed by Simple Machines