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

Advertisement: