• Welcome to Simple Machines Community Forum. Please login or sign up.
September 24, 2021, 11:22:58 AM

News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord


[TUTORIAL] Chat y cosas adicionales en tu theme sin mod's

Started by Dhayzon, April 08, 2020, 07:06:43 PM

Previous topic - Next topic

Dhayzon

Algo hermoso que descubrí hace mucho tiempo  y  que apenas  días atras le tome importancia y   lo entendí al 100%  jaja

se trata de que crear paginas directamente en tu theme  sin hacer mods ni nada y  las genialidades que se pueden hacer son muchas

Casos de uso

Quiero crear una Api rest  solo para que  me devuelva los  top  users 

La url seria

https://localhost/index.php?action=Api;sa=Toptuser;



me devolvería algo como esto ( top user   para el ejemplo) - pudes sacar 30 o lo quieras

{

    "id": 78,

    "nombre": "Juan",

    "post": 100000,

}



esto combinado con ajax puedo hacer pequeños módulos interesantes 


OTRO CASO DE USO


Si quiero crear un chat

la url seria por ejemplo

https://localhost/index.php?action=chat;


y al entrar   se mostraría tu foro  con el header y footer pero con tu chat en el medio


Normalmente esto podría hacerse con mods, pero esto nos da más libertades

¿VEAMOS COMO SE HACE?



PARA UN CHAT SIGUE ESTO PASOS

editaremos   el archivo index.template.php del theme que estés usando (todos lo tienen)

1:Buscar la linea  (utiliza la función buscar de tu  editor de codigo favorito)

$settings['require_theme_strings'] = false;

2:Agregar despues


if (@$_REQUEST['action'] == 'chat')
$settings['catch_action'] = array(
'template' => 'ThemeChat',
);


3:Guardar  Ahora visualiza https://localhost/index.php?action=chat;

deberia salir un error de plantilla, no te asustes, Continuemos


4. Crea un nuevo archivo y ponle   de nombre ThemeChat.template.php (estamos  creando una nueva plantilla) (obviamente dentro de la carpeta del theme que estés usando)

5. si lo probamos aun tendremos un error

6. en el archivo  ThemeChat.template.php pega este código



<?php
function template_main(){
    global 
$context;
      
$context['page_title'] = 'my chat';

       echo
'

  aqui puedo poner el código iframe de cualquier chat , 

'
;

}
?>




una vez que termines hacer eso  ya puedes actualizar y debe aparecer el contenido que pusimos en ThemeChat.template.php


eso es todo

Ventajas

-puedes hacer y deshacer  no tenderas problemas con el núcleo de  smf
-acceso a SSI:php para   usar sus funciones predeterminadas
-puede hacer experimentos sin afectar otras secciones  de tu foro
-paginas ilimitadas puedes crear las que  quieras 

RockLee

Lo movi a tutoriales que me parece va mejor ;) ademas parece bastante bueno y simple, voy hacer algunas pruebas a ver que tal. Gracias por aportarlo @Dhayzon.


Saludos!
¡Regresando como cual Fenix! ~ Bomber Code © 2020
Ayudas - Aportes - Tutoriales - Y mucho mas!!!

jemaral

Hola, me interesa este asunto.

He probado en mi foro y es como dices.

Ahora bien, ¿qué código iframe puedo utilizar para disponer de chat realmente?

Gracias!

Dhayzon

Quote from: jemaral on April 11, 2020, 10:11:55 PM
Hola, me interesa este asunto.

He probado en mi foro y es como dices.

Ahora bien, ¿qué código iframe puedo utilizar para disponer de chat realmente?

Gracias!

hay varios chaats gratuitos como cbox.ws  o  chatango tambien el antiguo  XAT  esos son chat de terceros  realmente un chat efectivo  realtime integrado con los usuarios de tu sitio  te lo da cbox.ws pero solo en su opcion premiiun,


por la misma arquitectura  de smf que usa php y mysql  un chat nativo  no seria lo ideal



Diego Andrés

Interesante, me recuerda a Daniiel que siempre quería meter json todos lados jajaja  :P
Muy bueno ver un post de esto, es bastante útil dependiendo la situación y si se agrega un poco de javascript mejor aún  :laugh:

SMF Tricks - Free & Premium Responsive Themes for SMF.

gohanjaja

Muchas gracias por tu aporte, me pareció una muy buena idea de implementarlo.

Siendo este tu caso:
{

    "id": 78,

    "nombre": "Juan",

    "post": 100000,

}


Necesitas algún source en especial ?? O lo trabajas con SSI.php?

Diego Andrés

Eso es la información que el navegador devuelve en formato json

SMF Tricks - Free & Premium Responsive Themes for SMF.

Danielㅤ

Hola, aunque si bien eso muestra el navegador, pero no está estructurado así, sino de ésta otra forma:

{"id": 78, "nombre": "Juan", "post": 100000}

Todo en una sola línea, incluso aunque sean muchas keys y values.


Saludos

Diego Andrés

Es exactamente lo mismo, pero si usas el inspector te mostrará los elementos como los pone dhayzon

SMF Tricks - Free & Premium Responsive Themes for SMF.

Dhayzon

Quote from: gohanjaja on May 09, 2020, 06:41:42 PM
Muchas gracias por tu aporte, me pareció una muy buena idea de implementarlo.

Siendo este tu caso:
{

    "id": 78,

    "nombre": "Juan",

    "post": 100000,

}


Necesitas algún source en especial ?? O lo trabajas con SSI.php?

se usa  solo ssi  nada dee source

Quote from: Daniel user on May 09, 2020, 08:54:15 PM
Hola, aunque si bien eso muestra el navegador, pero no está estructurado así, sino de ésta otra forma:

{"id": 78, "nombre": "Juan", "post": 100000}

Todo en una sola línea, incluso aunque sean muchas keys y values.


Saludos

eso depende de como codeas  en tu backend es una cosa trivial ,  JSON_PRETTY_PRINT

Advertisement: