• 1
  • 6 RepliesReplies
  • 19279 ReadTimes Read
  • 10 PointsPoints

Topic: Package SDK: package-info.xml [Explicacion]

Usuario: 4kstore
Rango: Moderador Global
Mensajes: 4916
Points: 8111
Mi web: http://www.smfsimple.com
Perfil: View Profile
Pais:
ar
Package SDK: package-info.xml [Explicacion]
January 16, 2013 - 04:31 04:31
Hola amigos y alumnos  :P
Hoy voy a intentar explicar un poco de que se trata este archivo package-info.xml que traen todos los mods que instalamos y que de ahora en mas vamos a crear, es lo basico de un mod por eso creo yo que es bueno entender esto antes de seguir.

Este archivos es lo que lee primero el administrador de paquetes de SMF cuando va a instalar un mod, podemos ver la importancia que tiene desde este punto.
El archivo contiene toda la informacion necesaria para saber de que debe hacer el administrador de paquetes para instalar correctamente el mod, solo eso.

El archivo tiene una extension .xml y no es el motivo de este tema hablar sobre esto a pesar de que es muy importante, les recomiendo la lectura detenida de este articulo: http://www.desarrolloweb.com/manuales/manual-introduccion-xml.html


Veamos entonces, en el archivo hay que respetar una cierta estructura definida por SMF.
Algunas definiciones que debemos tener en cuenta:


elemento: Instruccion para decirle al manejador de paquetes que hay que hacer, Ejemplo: <install></install>
atributos: Un valor adicional para describir un elemnto
enlinea: Codigo o porcion de codigo que se escribe en el mismo archivo en vez de ser llamado desde otro fuera del xml
archivo: El archivo o la direccion de este archivo a ser usado en vez utilizar codigo en linea.
direccion: La direccion del archivo o carpeta al cual se hace referencia.


A lo largo de la creacion del archivo, SMF nos proporciona variables que nos ayudaran a ahorrar codigo y hacer el paquete lo mas general posible (esto nos permitira mejor funcionamiento ante diversas situaciones).
Las variables disponibles son:

$sourcedir: El directorio que contiene los archivos fuentes (generalmente es la carpeta /Sources)
$boarddir: El directorio donde encontramos el archivo index.php
$avatardir: El directorio donde encontramos los avatares (generalmente es la carpeta /avatars)
$themedir: El directorio donde encontramos los distintos themes (generalmente es la carpeta /Themes)
$imagesdir: El directorio de imagenes de cada tema  (generalmente es la carpeta /Themes/{temaelegido}/images)
$languagedir: El directorio donde esta la carpeta de lenguajes (generalmente es la carpeta /Themes/default/languages)
$smileysdir: El directorio de los smileys (generalmente es la carpeta /Smileys)


Vemos que es mucho mas facil y productivo escribir la variable y no toda la direccion, ademas de evitar futuros conflictos ya que los usuarios podrian cambiar los nombres de los directorios por X motivo y nuestros mods no les funcionarian si "ponemos las rutas comunes".

Veamos ahora la estructura que tiene algun archivo package-info.xml
  • <package-info></package-info>
  • <id></id>
    • Contiene el id del paquetes, debe respetar el siguiente formato: [usuario]:[nombre_del_paquete]. Por ejemplo: 4kstore:Nuevo_Mod
  • <name></name>
    • Contiene el nombre del paquete, no respeta ningun formato asi que podriamos ponerlo como querramos ejemplo: <name>Nuevo Mod</name>
  • <type></type>
    • El tipo de paquete, hay tres opciones: - "avatar", "language", or "modification".
  • <version></version>
    • La version actual del paquete, es recomendable utilizar numeros y que vayan ascendiendo cuando lanzamos nuevas versiones.
  • <install></install>, <upgrade></upgrade>, and <uninstall></uninstall>
    • La accion que se va a realizar cuando se ejecute el paquete, puede ser instalar, actualizar o desinstalar, los atributos son los mismos para las 3 acciones.
    • Atributos:
      • for: Para que version de SMF, si queremos especificar que es para varias version utilizamos una coma "," y si queremos crear un rango de version utilizamos el guion medio "-"
        Ejemplos: 1 version: <install for="2.0.1"> Muchas versiones: <install for="2.0 RC4, 2.0 RC4"> Rango de versiones: <install for="2.0 - 2.0.3">
      • from: Solo utilizamos este atributo cuando hacemos un upgrade; nos permite saber desde que version estamos actualizando. Ejemplo: <upgrade from="1.1.17">
    • Elementos:
      • <readme></readme> o <readme /> (para leer un archivo desde afuera)
        • Nombre del archivo readme
        • Opcional: Si
        • Atributos:
          • lang: A que lenguaje esta dirigido el readme, si se omite este atributo el readme se lee en cualquier lenguaje; es opcional
          • parsebbc: Si queremos utilizar BBC en nuestro readme; es opcional y por defecto esta en falso;
          • type: "inline" o "file"; por defecto es "file"; es opcional
      • <code></code> o <code /> (para ejecutar codigo desde un archivo solamente)
        • Nombre de un archivo .PHP que sera ejecutado
        • En SMF 2.0.X, se utiliza <database></database> ejemplo: <database>install_db.php</database>
        • Opcional: Si
        • Atributos:
          • type: "inline" o "file"; por defecto es "file"; es opcional
      • <modification></modification> o <modification />
        • Instrucciones que hay que realizar, generalmente tenemos un archivo modification.xml el cual tiene todas las instrucciones del mod, pero desde aqui le decimos al administrador de paquetes que debe realizar esas modificaciones.
        • Opcional: Si
        • Atributos:
          • type: "inline" o "file"; por defecto es "file"; es opcional
          • reverse: Hacer las modificaciones en orden inverso, generalmente para desinstalar o restaurar algo a su estado original; "true" o "false"; por defecto "false", opcional
          • format: siempre se utiliza "xml" por lo que no es muy necesario escribirlo ya que por defecto esta como: "xml"; es opcional
      • <create-dir />
        • Crear un nuevo directorio
        • Opcional: Si
        • Atributos:
          • name: El nombre del directorio
          • destination: la ruta donde queremos crear nuestro nuevo directorio
      • <create-file />
        • Crea un archivo totalmente en blanco (vacio)
        • Opcional: Si
        • Atributos:
          • name: El nombre del nuevo archivo
          • destination: la ruta donde queremos crear nuestro nuevo archivo
      • <require-dir />
        • Solicita una carpeta que tengamos en el zip y con ella todos los archivos contenidos.
        • Opcional: Si
        • Atributos:
          • from: La ruta de la carpeta (dentro del zip)
          • name: El nombre de la carpeta (dentro del zip)
          • destination: La ruta donde queremos colocar la carpeta
      • <require-file />
        • Solicita un archivo que este dentro de nuestro paquete .zip para poder copiarlo en alguna carpeta del foro
        • Opcional: Si
        • Atributos:
          • from: La ruta donde se encuentra nuestro archivo en el zip (OJO: la ruta es desde el zip y no desde nuesta pc)
          • name: El nombre del archivo
          • destination: La carpeta o directorio donde queremos mover nuestro archivo
      • <move-dir />
        • Mover todo una carpeta entera desde nuestro zip, También se puede utilizar para cambiar el nombre de un directorio
        • Opcional: Si
        • Atributos:
          • from: La ruta de la carpeta (dentro del zip) que queremos mover
          • name: El nombre de la carpeta
          • destination: La carpeta o directorio donde queremos mover nuestra carpeta
      • <move-file />
        • Mover un archivo, tambien es utilizado para renombrar los archivos dentro de nuestro foro
        • Opcional: Si
        • Atributos:
          • from: La ruta donde se encuentra nuestro archivo en el zip (OJO: la ruta es desde el zip y no desde nuesta pc)
          • name: El nombre del archivo
          • destination: La carpeta o directorio donde queremos mover nuestro archivo
      • <remove-dir />
        • Eliminar una carpeta y todos los archivos contenidos en ella
        • Opcional: Si
        • Atributos:
          • name: el nombre y la ruta de la carpeta a eliminar
      • <remove-file />
        • Elimina un archivo
        • Opcional: Si
        • Atributos:
          • name: el nombre y la ruta del archivo a eliminar
      • <redirect></redirect> o <redirect />
        • Redireccionar a una ruta despues de: install/upgrade/uninstall.
        • Opcional: Si
        • Atributos:
          • url: La url donde queremos direccionar, es obligatorio este atributo y son aceptadas las variables: "$boardurl", "$scripturl", y "$session_id"
          • type: inline o file. Algun texto que queramos poner antes de hacer la redireccion.
          • timeout: El tiempo que tenemos entre la instalacion y la redireccion para leer los comentarios. Por defecto 5 segundos


Como vemos con elementos y atributos bien declarados le decimos al instalador de paquetes que debe hacer para instalar correctamente nuestra modificacion.

Tienen miles de ejemplos en todos los mods pero estaria bueno que los revisen sobre todo a los de SMFSIMPLE para que vean las distintas alternativas y se saquen dudas sobre porque hacemos ciertas cosas.

Espero que les sirva y como siempre tienen abiertos los comentarios para sacarse dudas.
Saludos



Fuentes de lectura: http://wiki.simplemachines.org/smf/Package-info.xml

You do not have permission to give points
point 10 Points

Users who gave points in this topic » Lean (10 Pts) 

Usuario: Lean
Rango: Fundador
Mensajes: 6782
Points: 236
Perfil: View Profile
Pais:
ar
Re: Package SDK: package-info.xml [Explicacion]
Reply #1 January 16, 2013 - 10:13 10:13
Espectacular! ! Explicado perfectamente como siempre.  Gran maestro!!!

Enviado desde mi Galaxy S3 usando tapatalk 2.

Usuario: hsocapitolio
Rango: Nuevo Usuario
Mensajes: 47
Points: 3
Mi web: http://www.descargadinero.com/
Perfil: View Profile
Re:Package SDK: package-info.xml [Explicacion]
Reply #2 January 16, 2013 - 11:03 11:03
Muy bien, tengo que leerlo varias veces, perfecta explicacion, yo solo llegue a modificar ese archivo para cambiarle la version, a veces funciona y a veces algunos mods no funcionan cuando yo hacia esto, pero bueno, lo hacia sin saber mucho de esto, ahora lo voy a releer para aprender cada detalle.

Gracias!!!

Usuario: Adr1
Rango: Nuevo Usuario
Mensajes: 119
Points: 9
Mi web: http://rainbow6.es
Perfil: View Profile
Pais:
es
Re:Package SDK: package-info.xml [Explicacion]
Reply #3 January 16, 2013 - 11:28 11:28
Presente!! Muchas gracias por la explicación...

Usuario: Crisss.dj
Rango: Nuevo Usuario
Mensajes: 57
Points: 7
Mi web: http://paratidj.eshost.es
Perfil: View Profile
Pais:
ec
Re:Package SDK: package-info.xml [Explicacion]
Reply #4 January 16, 2013 - 04:53 16:53
presente!!tamnién tendré que leerlo bien para que no venga inconveniente despues saludoos y gracias por el tuto.. (y)

Usuario: 4kstore
Rango: Moderador Global
Mensajes: 4916
Points: 8111
Mi web: http://www.smfsimple.com
Perfil: View Profile
Pais:
ar
Re:Package SDK: package-info.xml [Explicacion]
Reply #5 January 17, 2013 - 02:37 14:37
Lean tranquilos, cualquier duda que tenga posteen asi vamos sacandolas.
Saludos

Usuario: falconmaster
Rango: Excelente User
Mensajes: 22
Points: 53
Mi web: http://www.zonadaxion.com
Perfil: View Profile
Pais:
mx
Re:Package SDK: package-info.xml [Explicacion]
Reply #6 January 17, 2013 - 05:26 17:26
Presente

 

TAGS



Subject Replies
Tutoriales y Tips SMF Started by 4kstore 8 Replies
15900 Views
Mods SMFSimple Started by Lean 27 Replies
26266 Views
Mods SMFSimple Started by 4kstore 49 Replies
55551 Views
Mods SMFSimple Started by Lambo 10 Replies
22333 Views
Mods SMFSimple Started by Maliante 15 Replies
28069 Views
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