News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Tutorial Crear Mods. [Modificaciones].Creación de Mods.

Started by Edurg, June 24, 2007, 11:10:00 AM

Previous topic - Next topic

Edurg

En este tuto vamos a aprender a:

1 Las variables obligatorias para crear un MOD como search position, CDATA ...

2 Creando Un Mod.

--------------------------------------------------------------------------------------------------------

Bueno vamos a empezar.

1 Las variables.

<id> =  la variable <id> es para clasificar... pon ahi tu usuario y  mod quedaria asi: <id>tuusuario:TuMOD</id>

<version> = sirve para obtener la versión de tu Mod, por ejemplo puedes poner <version>1.00</version>

<edit file> = sirve para indicar el archivo que se va a editar por ejemplo: <edit file>
$themedir/Register.template.php
</edit file>


$dir = Las direcciones se pueden indicar así, entre otras:
$sourcedir = La carpeta sources
$themedir = La carpeta themes


<search for> = Sirve para dar la orden de buscar algo ... por ejemplo:
<search for>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>';
</search for>


<add before> = Añadir algo después del texto buscado, esto va despues de la variable search...
<add before>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>
</add before>

<add after> = Añadir antes del texto  buscado, esto va despues de la variable search...
<add after>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>
</add after>

<replace> = Remplazar el texto buscado, esto va despues de la variable search ...
<replace>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>
</replace>



2 Creando un Mod:

Pues con todo lo aprendido podríamos juntarlo ... Para el ejemplo de un mod creado he puesto el de elejir el lenguaje en el registro, creado por mí.

1 Tendríamos que crear 2 archivos (para este Mod) Uno llamado por ejemplo Install.mod Y otro package-info.xml.

2 Tendríamos que poner en el Install.mod La <id> de nuestro Mod quedaría asi:
<id>
edurg:LangRegistration
</id>


Luego pondríamos la versión de nuestro Mod y quedaría asi:
<id>
edurg:LangRegistration
</id>

<version>
1.2.1
</version>


Después agregaríamos el archivo a editar y quedaría.. :
<id>
edurg:LangRegistration
</id>

<version>
1.2.1
</version>
<edit file>
$themedir/Register.template.php
</edit file>


Luego meteríamos la variable search for para buscar el texo que queramos remplazar o agregar texto después de ese y quedaría asi:
<id>
edurg:LangRegistration
</id>

<version>
1.2.1
</version>
<edit file>
$themedir/Register.template.php
</edit file>

<search for>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>';
</search for>


Luego pondríamos si queremso remplazar, añadir despues el texto o antes y quedaría:
<id>
edurg:LangRegistration
</id>

<version>
1.2.1
</version>
<edit file>
$themedir/Register.template.php
</edit file>

<search for>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>';
</search for>

<replace>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>
</replace>


Y repetimos los pasos de buscar y añadir o remplazar para hacer mas modificaciones y ya tendríamos hecho el Install.mod:
<id>
edurg:LangRegistration
</id>

<version>
1.2.1
</version>
<edit file>
$themedir/Register.template.php
</edit file>

<search for>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>';
</search for>

<replace>
<td width="40%">
<b>', $txt[82], ':</b>
</td>
<td>
<input type="password" name="passwrd2" size="30" tabindex="', $context['tabindex']++, '" />
</td>
</tr>
</replace>
<edit file>
$themedir/Register.template.php
</edit file>

<search for>
if ($context['visual_verification'])
{
echo '
<tr valign="top">
</search for>

<add before>

<td width="40%">
<b>', $txt[1000], ':</b>
                  </td>
                  <td>
<select name="lngfile">';

                            foreach($context['languages'] as $language)
         echo '
               <option value="', $language['filename'], '">', $language['name'], '</option>';

         echo '</select>
                  </td>
               </tr>';
</add before>
<edit file>
$languagedir/index.spanish.php
</edit file>

<search for>
$txt[40] = 'Nombre de usuario no existente.';
</search for>

<add before>
$txt[1000] = 'Elija el idioma';
</add before>
<edit file>
$languagedir/index.turkish.php
</edit file>

<search for>
$txt[22] = 'Son mesaj';
</search for>

<add before>
$txt[1000] = 'Dil seçin';
</add before>
<edit file>
$languagedir/index.english.php
</edit file>

<search for>
$txt[151] = 'No messages...';
</search for>

<add before>
$txt[1000] = 'Choose the language ';
</add before>


Y ahora solo nos falta el package-info.xml, así que manos a la obra.
Ponemos la versión del xml y el Tipo de Doc...
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">


Después pondríamos el nombre de usuario y el mod + unas cosas mas ...
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
<id>edurg:LanguageOnRegistration</id>


Luego pondríamos el nombre, versión y tipo:
<name>Lenguaje en el registro</name>
<version>1.2.4</version>
<type>modification</type>


Después agregaríamos para que versiones se va a instalar y el readme del Mod:
<install for="1.1 RC2, 1.1 RC3, 1.1, 1.1.1-1.1.2">
<readme type="inline">
Version 1.1+ Install
Este Mod Añade El lenguage en el registro...
Copyright 2007 by edurg @ www.forodescarga.com
</readme>


Luego el formato de la instalación y cerramos el install con un </INSTALL> ...
<modification format="boardmod">Install.mod</modification>
</install>

Esta vez es la desistalación y ponemos para que se va a desisntalar (Poner lo mismo de lo que se instala) y el formato de la modificación Y la finalización del documento (</package-info>)..
<uninstall for="1.1 RC2, 1.1 RC3, 1.1, 1.1.1-1.1.2">
<modification format="boardmod" reverse="true">Install.mod</modification>
</uninstall>
</package-info>


Y todo Junto quedaría asi:
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">

<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
<id>edurg:LanguageOnRegistration</id>
<name>Lenguaje en el registro</name>
<version>1.2.4</version>
<type>modification</type>
<install for="1.1 RC2, 1.1 RC3, 1.1, 1.1.1-1.1.2">
<readme type="inline">
Version 1.1+ Install
Este Mod Añade El lenguage en el registro...
Copyright 2007 by edurg @ www.forodescarga.com
</readme>
<modification format="boardmod">Install.mod</modification>
</install>
    <uninstall for="1.1 RC2, 1.1 RC3, 1.1, 1.1.1-1.1.2">
<modification format="boardmod" reverse="true">Install.mod</modification>
</uninstall>
</package-info>


Y luego solo quedaría hacer un .zip con el winrar sería asi:

Seleccionas los archivos creados, Le das con el botón derecho y le das a añadir al archivo ... Y elijes .zip (Rar no lo soporta el manejador de paquetes) Y ya tenes creado el Mod.

Espero que le hayan servido ya postearé mas y mejores, cualquier duda en este post ...

Saludos!

Por cortesia de:

http://www.solotemazos.x10.mx/
http://www.solotemazosonline.es















MrAnderson.cl

Excelente... Debiera quedar como "pegado"...

Saludos


HotJoint


Edurg

Gracias... Y creo que lo que dijo mr anderson Sobre lo de que la gente no quiere que sepa como hacer mods Yo si quiero qeu la gente sepa y  ha algunos le ayude por msn para como correjir un mod para su versión .. Eso tambien pondré la guía aunque no sea muy bueno pero ... jeje, Pero creo que no es que quieran ocultar como hacer un mod Si no que no tienen ganas de hacer la guia ...

Saludos!

manumar

Nove..que pedazo de tuto..la verdad es que te lo has trabajo Edurg!
Muy buen trabajo tio, eres un crack!

Siguiendo esos pasos cualquiera puede haceer un mod.. ;)

Ahora nos toca trabajar a los demás

lonrot

Muy bien, le verdad hacen falta tutos asi y en español

Apllicmz

Gostei mais alguem pode me explicar em Portugues...
Quero tambem criar alguns MODS..





ehliot

Bueno tengo una duda que em surgio al ver algunos mods y quisiera saber cual de estos 2 codigos es el correcto y el que deberia usar:
-------------1er codigo
<search position="after"><![CDATA[?>]]></search>
-------------
y la otra es :
-------------2do codigo
<search position="after"><![CDATA[
?>]]></search>
-------------
la duda me surge que el TP usa el 2do codigo sin embargo el primero busca mejor ya q el 2do codigo tiene un enter que no se ve y el primero deja el ?> sin enter y esto afecta si quisieramos instalar un mod con el 1er codigo mas no si usaramos el 2do en fin :P

PD: Ahora estoy trabajanod con la 2da regla ya q es la mejor pero la primero trae incompatibilidad con algunos mods ejemplo :arcade 2.0.9 con gallery lite 1.8


ehliot

Bueno tengo una gran y pequeña duda y es que digamos quisiera colocar una variable en un array
MOD1
<operation>
<search position="before"><![CDATA[$current_action = 'admin';
if (in_array($context['current_action'], array(]]></search>
<add><![CDATA['gallery',]]></add>
</operation>

y tambien quisiera colocar otra variable en el mismo array osea :
MOD2
<operation>
<search position="before"><![CDATA[$current_action = 'admin';
if (in_array($context['current_action'], array(]]></search>
<add><![CDATA['arcade',]]></add>
</operation>

Al parecer ambos se instalan sin ningun error pero a la hora de la desinstalacion del primer mod instalado bota error ya q busca la variable igual como la metio pero como el segundo mod ingreso su variable modifico al primer mod la unica solucion que puede haber para desinstalar sin ningun error es desisntalar el segundo mod y luego el primer mod ahora quisiera saber como hago para no desinstalar el primero sin tener que desisntalar el segundo(osea le ultimo mod añadido) en pocas palabras un codigo que verifique si algun mod modifico esa linea y que no la destruya.

PD:Y que no sea manualmente como sucede con las variables de traduccion :D


bigo

mas facil que todo esto es usar SMFModCreator, programa para hacer mod...

lo adjunto... lo baje en una pagina china o japonesa :P
Devuelta pero sin pagina :P

Mis Mod:
multiples bbcode - Nuevo  MessagePreview - firma por defecto

marccos_or

Saludos.

Soy nuevo en SMF   me gusto.

Anteriormente usaba el Vbulletin pero me acabo de migrar a SMF el martes pasado.
En Vbulletin se puden crear bbc personalizados, ya tenia como 6 bbc, y al migrar a SMF solo me salen las etiquetas que hice.

Quisiera saber si este tutorial me sirve para crear mis propis BBC o que necesito hacer si alguin me ayuda por favor..........


bigo

Quote from: marccos_or on September 19, 2007, 10:43:13 PM
Saludos.

Soy nuevo en SMF   me gusto.

Anteriormente usaba el Vbulletin pero me acabo de migrar a SMF el martes pasado.
En Vbulletin se puden crear bbc personalizados, ya tenia como 6 bbc, y al migrar a SMF solo me salen las etiquetas que hice.

Quisiera saber si este tutorial me sirve para crear mis propis BBC o que necesito hacer si alguin me ayuda por favor..........
mandame un mp y te digo como.. yo e creado artos bbcodes
Devuelta pero sin pagina :P

Mis Mod:
multiples bbcode - Nuevo  MessagePreview - firma por defecto

raixd


Pathwarden

La verdad es que yo también estoy perdida... Tengo un mod de phpbb que quiero "integrar" en smf ya que no lo encuentro creado... Y no sé mucho de programación, así que, aunque comprendo las directrices del tutorial, no sé como hacerlo para crear el condenado mod.
¿Alguien sabría explicarmelo "para tontos"? :)

bigo

Devuelta pero sin pagina :P

Mis Mod:
multiples bbcode - Nuevo  MessagePreview - firma por defecto

oxlo

Quote from: bigo on September 17, 2007, 05:02:39 PM
mas facil que todo esto es usar SMFModCreator, programa para hacer mod...

lo adjunto... lo baje en una pagina china o japonesa :P


Hola.

No me funciona el archivo, ¿podrías revisarlo?.

Saludos.

Gargadon

#21
Busqué en Google y me encontré con la página del proyecto ;D : http://sourceforge.net/projects/smfmc/

Habrá que probarlo...

EDITO: No me ha funcionado. Me funcionó más la creación manual.

Tengo una duda. Lo que pasa es que en el MOD, quiero que se instale en el idioma English, el Spanish y El Spanish_es, pero quisiera que las modifcaciones para Spanish y Spanish_es no se realizaran si el administrador no ha instalado esos packs de idiomas. ¿Saben cómo puedo hacer eso? Para que no salga algo como esto:

Execute Modification     ./Themes/default/languages/Modifications.spanish_es.php     File not found
Todoenuno Fansubhttp://www.teufansub.net
El proyecto Daisuke Yanamihttp://gargadon.teufansub.net
Digimon Wars Online (en construcción)http://digimonrpg.teufansub.net



Faver

Yo ya tengo mi mod hecho.
Como hago si quiero que aparesca aca? http://custom.simplemachines.org/mods/


:S Esa es mi duda, gracias. xD

oxlo

Quote from: Faver on April 14, 2008, 01:10:53 AM
Yo ya tengo mi mod hecho.
Como hago si quiero que aparesca aca? http://custom.simplemachines.org/mods/


:S Esa es mi duda, gracias. xD

Hola.

Comentalo con un moderador.

Saludos.

Faver



Gargadon

Intenté la creación manual, y me salió algo de prueba: Un MOD que agrega el avatar del usuario en SSI.php, además de un link para ver su perfil y otro para ver los últimos mensajes no vistos.

Es algo simple, pero fue lo primero que me salió (en TeUF solo hice la modificación de prueba, y en el package que probé en un foro SMF 1.1.4 nuevo he arreglado algunas cosas), sobre todo porque no sé nada de PHP y todo fue realizado con el método "echando a perder se aprende".

PD: Es para 1.1.4. No he intentado nada parecido para 2.0
Todoenuno Fansubhttp://www.teufansub.net
El proyecto Daisuke Yanamihttp://gargadon.teufansub.net
Digimon Wars Online (en construcción)http://digimonrpg.teufansub.net



JCS

hola, tengo una duda con un mod xD, me toco crearlo .mod porque no pude con .xml, cuando voy a agregar algo pongo

<add><![CDATA[

pero dentro de lo que quiero agregar hay un CDATA, entonces se cierra el primer CDATA xD, si me pudiran decir como agregar CDATA dentro del CDATA sin que se cierre el primero se los agradeceria ^^
Dont PM me for support, unless I ask you to do that

OtaKumi
Hacks-Park

1van10

muchas gracias por el tuto, me gusta mucho el tuto


Distriker

Hola, me gustaria saber que archivo tendria que editar para que se añada algo en la cabecera del foro??

Pienso que habria que modificar la plantilla, el problema es que cada tema tiene su nombre de carpeta.

Saludos

JCS

esa pregunta debería ir en el foro de temas y diseño, diciendo que es lo que quiere hace exactamente y que theme usa

Salu2
Dont PM me for support, unless I ask you to do that

OtaKumi
Hacks-Park

jires

Que buena informacion, lastima que porque que veo hay que saber algo de html y php, pero se agradece de todas formas

salu2

lucas-ruroken

Quote from: jires on July 12, 2009, 09:02:54 PM
Que buena informacion, lastima que porque que veo hay que saber algo de html y php, pero se agradece de todas formas

salu2
PUedes tmb ver el tutorial qe tengo en mi firma ;)
Adk Portal 3.1 is coming....

Design your universe!

.LORD.

Quote from: jires on July 12, 2009, 09:02:54 PM
Que buena informacion, lastima que porque que veo hay que saber algo de html y php, pero se agradece de todas formas

salu2

Es inevitable, pero dependiendo de lo que vayas a hacer necesitarás saber más o menos.

Y además de saber de xhtml y php también debes conocer las funciones de SMF.

Pero no es nada que no puedas aprender si se le dedica algo de tiempo.

Catarro

He instalado el MOD "ignore_another_user", pero ¿como lo hago funcionar?, Se ha instalado satisfactoriamente pero no me aparecen las opciones para utilizarlo por ninguna parte. Mi foro lo tengo en español y el mod está solo para inglés. ¿Tiene algo que ver?.
No sé como hacerlo puesto que se compone de tres archivos XML:
-english
-install11
-package-info
En este caso ¿como lo modifico?

enik

Hola el que dice english tienes copiarlo y pegarlo con el nombre de tu idioma (spanish ,spanish_es etc) y luego abrirlo y traducirlo.

Y despues cuelgalo en tu host.

saludos

mirahalo

el archivo -english.xml  ese archivo contiene los strings de texto necesarios para que funcione el mod, abrelo y en donde dic esto:

<file name="$languagedir/Modifications.english.php">

$txt['ignoringuser'] = 'You are ignoring this user.';
$txt['showmepost'] = 'Show me the post.';

estas lineas, traducelas y ponlas en tu archivo /themes/default/languages/Modificationes. tu idioma.php

esas son las unicas lineas que hay que traducir, tambien, ya le envié la traducción a el autor del mod para que lo incluya en la proxima version.

@enik   la solucion que planteas servuria para archivos php, peor este es un archivo xml propio de el mod y tiene que ser tratado de manera diferente.

enik

Si una disculpa no me fije que el archivo esta dentro del install o el package sorry para la otra lo checo directamente antes de dar la respuesta  :P  ;D

ciao.


bribonmadrid

Quote from: bigo on September 17, 2007, 05:02:39 PM
mas facil que todo esto es usar SMFModCreator, programa para hacer mod...

lo adjunto... lo baje en una pagina china o japonesa :P

MI antivirus dice q puede hacerme pupita...  :o :o

Andrés David


camus360s

Gracias, excelente tutorial. Siempre había tenido dudas sobre como crear las ordenes que se le dan a los Mod's para buscar y sustituir código.

Directo a favoritos.

daviloco

Quote from: bigo on December 25, 2007, 03:00:48 PM
cual es ese mod??

Jajaja son explicaciones men de como crear un mod no esta creando un mod el sino explicando paso a paso como se crearia uno y que cosas usar...



Visita mi web y encuentra mas aportes...

SMF 2.0.2 | Adk Portal 2.0 « Elysium Edition » ®
Orange Theme by Skinmod.eu

Facebook: https://www.facebook.com/MDWarez
Twitter: https://twitter.com/midescargawarez


Advertisement: