2012-01-12 -> Importación inicial. Integrado con Telefónica Fundación.

git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
This commit is contained in:
David Arranz 2012-01-19 10:24:24 +00:00
parent 3c0dcd6e69
commit 802479ed64
8835 changed files with 920460 additions and 0 deletions

20265
db/loquedev_joomla.sql Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

210
www/-installation-/gpl.html Normal file
View File

@ -0,0 +1,210 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Licencia GNU/GPL</title>
<style type="text/css">
>
<!--
body {
font-family: arial, helvetica, sans serif;
font-size: 11px;
background: #E9ECEF;
}
p {
font-family: arial, helvetica, sans serif;
font-size: 11px;
}
h2 {
font-family: arial, helvetica, sans serif;
font-size: 13px;
font-weight: bold;
}
h3 {
font-family: arial, helvetica, sans serif;
font-size: 12px;
font-weight: bold;
}
h4 {
font-family: arial, helvetica, sans serif;
font-size: 11px;
font-weight: bold;
}
li {
font-family: arial, helvetica, sans serif;
font-size: 11px;
}
pre {
font-size: 11px;
}
-->
</style>
</head>
<body>
<p><b>NOTA IMPORTANTE:</b></p>
<p>Esta es una traducci&oacute;n no oficial al espa&ntilde;ol de la GNU General Public License. No ha sido publicada por la Free Software Foundation, y no establece legalmente las condiciones de distribuci&oacute;n para el software que usa la GNU GPL. Estas condiciones se establecen solamente por el <a href="gpl_english.html">texto original</a>, en ingl&eacute;s, de la GNU GPL</p>
<h2>Tabla de contenidos</h2>
<ul>
<li><a href="#SEC1" name="TOC1" id="TOC1">LICENCIA GENERAL P&Uacute;BLICA GNU</a>
<ul>
<li><a href="#SEC2" name="TOC2" id="TOC2">Pre&aacute;mbulo</a> </li>
<li><a href="#SEC3" name="TOC3" id="TOC3">T&Eacute;RMINOS Y CONDICIONES PARA LA COPIA, DISTRIBUCI&Oacute;N Y MODIFICACI&Oacute;N</a> </li>
<li><a href="#SEC4" name="TOC4" id="TOC4">C&oacute;mo aplicar estos t&eacute;rminos a sus nuevos programas</a> </li>
</ul>
</li>
</ul>
<p></p>
<hr />
<h2><a href="#TOC1" name="SEC1" id="SEC1">LICENCIA GENERAL P&Uacute;BLICA GNU</a></h2>
<p> Versi&oacute;n 2, Junio de 1991 </p>
<pre>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Se permite a cualquiera la copia y distribuci&oacute;n de copias
de este documento de licencia, pero no se permite su modificaci&oacute;n.
</pre>
<h2><a href="#TOC2" name="SEC2" id="SEC2">Preamble</a></h2>
<p> Las licencias que cubren la mayor parte del software est&aacute;n dise&ntilde;adas para quitarle a usted la libertad de compartirlo y modificarlo. Por el contrario, la Licencia P&uacute;blica General de GNU pretende garantizarle la libertad de compartir y modificar software libre, para asegurar que el software es libre para todos sus usuarios. Esta Licencia P&uacute;blica General se aplica a la mayor parte del software del la Free Software Foundation y a cualquier otro programa si sus autores se comprometen a utilizarla. (Existe otro software de la Free Software Foundation que est&aacute; cubierto por la Licencia P&uacute;blica General de GNU para Bibliotecas). Si quiere, tambi&eacute;n puede aplicarla a sus propios programas. </p>
<p> Cuando hablamos de software libre, estamos refiri&eacute;ndonos a libertad, no a precio. Nuestras Licencias P&uacute;blicas Generales est&aacute;n dise&ntilde;adas para asegurarnos de que tenga la libertad de distribuir copias de software libre (y cobrar por ese servicio si quiere), de que reciba el c&oacute;digo fuente o que pueda conseguirlo si lo quiere, de que pueda modificar el software o usar fragmentos de &eacute;l en nuevos programas libres, y de que sepa que puede hacer todas estas cosas. </p>
<p> Para proteger sus derechos necesitamos algunas restricciones que proh&iacute;ban a cualquiera negarle a usted estos derechos o pedirle que renuncie a ellos. Estas restricciones se traducen en ciertas obligaciones que le afectan si distribuye copias del software, o si lo modifica. </p>
<p> Por ejemplo, si distribuye copias de uno de estos programas, sea gratuitamente, o a cambio de una contraprestaci&oacute;n, debe dar a los receptores todos los derechos que tiene. Debe asegurarse de que ellos tambi&eacute;n reciben, o pueden conseguir, el c&oacute;digo fuente. Y debe mostrarles estas condiciones de forma que conozcan sus derechos. </p>
<p> Protegemos sus derechos con la combinaci&oacute;n de dos medidas: (1) ponemos el software bajo copyright, and (2) le ofrecemos esta licencia, que le da permiso legal para copiar, distribuir y/o modificar el software. </p>
<p> Tambi&eacute;n, para la protecci&oacute;n de cada autor y la nuestra propia, queremos asegurarnos de que todo el mundo comprende que no se proporciona ninguna garant&iacute;a para este software libre. Si el software se modifica por cualquiera y &eacute;ste a su vez lo distribuye, queremos que sus receptores sepan que lo que tienen no es el original, de forma que cualquier problema introducido por otros no afecte a la reputaci&oacute;n de los autores originales. </p>
<p> Por &uacute;ltimo, cualquier programa libre est&aacute; constantemente amenazado por patentes sobre el software. Queremos evitar el peligro de que los redistribuidores de un programa libre obtengan patentes por su cuenta, convirtiendo de facto el programa en propietario. Para evitar esto, hemos dejado claro que cualquier patente debe ser pedida para el uso libre de cualquiera, o no ser pedida. </p>
<p> Los t&eacute;rminos exactos y las condiciones para la copia, distribuci&oacute;n y modificaci&oacute;n se exponen a continuaci&oacute;n. </p>
<h2><a href="#TOC3" name="SEC3" id="SEC3">T&Eacute;RMINOS Y CONDICIONES PARA LA COPIA, DISTRIBUCI&Oacute;N Y MODIFICACI&Oacute;N</a></h2>
<p> <strong>0.</strong> Esta Licencia se aplica a cualquier programa u otro tipo de trabajo que contenga una nota colocada por el tenedor del copyright diciendo que puede ser distribuido bajo los t&eacute;rminos de esta Licencia P&uacute;blica General. En adelante, Programa se referir&aacute; a cualquier programa o trabajo que cumpla esa condici&oacute;n y trabajo basado en el Programa se referir&aacute; bien al Programa o a cualquier trabajo derivado de &eacute;l seg&uacute;n la ley de copyright. Esto es, un trabajo que contenga el programa o una porci&oacute;n de &eacute;l, bien en forma literal o con modificaciones y/o traducido en otro lenguaje. Por lo tanto, la traducci&oacute;n est&aacute; incluida sin limitaciones en el t&eacute;rmino modificaci&oacute;n. Cada concesionario (licenciatario) ser&aacute; denominado "usted". </p>
<p> Cualquier otra actividad que no sea la copia, distribuci&oacute;n o modificaci&oacute;n no est&aacute; cubierta por esta Licencia, est&aacute; fuera de su &aacute;mbito. El acto de ejecutar el Programa no est&aacute; restringido, y los resultados del Programa est&aacute;n cubiertos &uacute;nicamente si sus contenidos constituyen un trabajo basado en el Programa, independientemente de haberlo producido mediante la ejecuci&oacute;n del programa. El que esto se cumpla, depende de lo que haga el programa. </p>
<p> <strong>1.</strong> Usted puede copiar y distribuir copias literales del c&oacute;digo fuente del Programa, seg&uacute;n lo ha recibido, en cualquier medio, supuesto que de forma adecuada y bien visible publique en cada copia un anuncio de copyright adecuado y un repudio de garant&iacute;a, mantenga intactos todos los anuncios que se refieran a esta Licencia y a la ausencia de garant&iacute;a, y proporcione a cualquier otro receptor del programa una copia de esta Licencia junto con el Programa. </p>
<p> Puede cobrar un precio por el acto f&iacute;sico de transferir una copia, y puede, seg&uacute;n su libre albedr&iacute;o, ofrecer garant&iacute;a a cambio de unos honorarios. </p>
<p> <strong>2.</strong> Puede modificar su copia o copias del Programa o de cualquier porci&oacute;n de &eacute;l, formando de esta manera un trabajo basado en el Programa, y copiar y distribuir esa modificaci&oacute;n o trabajo bajo los t&eacute;rminos del apartado 1, antedicho, supuesto que adem&aacute;s cumpla las siguientes condiciones:</p>
<p></p>
<ul>
<li><strong>a)</strong> Debe hacer que los ficheros modificados lleven anuncios prominentes indicando que los ha cambiado y la fecha de cualquier cambio.
<p>
</p>
</li>
<li><strong>b)</strong> Debe hacer que cualquier trabajo que distribuya o publique y que en todo o en parte contenga o sea derivado del Programa o de cualquier parte de &eacute;l sea licenciada como un todo, sin carga alguna, a todas las terceras partes y bajo los t&eacute;rminos de esta Licencia.
<p>
</p>
</li>
<li><strong>c)</strong> Si el programa modificado lee normalmente &oacute;rdenes interactivamente cuando es ejecutado, debe hacer que, cuando comience su ejecuci&oacute;n para ese uso interactivo de la forma m&aacute;s habitual, muestre o escriba un mensaje que incluya un anuncio de copyright y un anuncio de que no se ofrece ninguna garant&iacute;a (o por el contrario que s&iacute; se ofrece garant&iacute;a) y que los usuarios pueden redistribuir el programa bajo estas condiciones, e indicando al usuario c&oacute;mo ver una copia de esta licencia. (Excepci&oacute;n: si el propio programa es interactivo pero normalmente no muestra ese anuncio, no se requiere que su trabajo basado en el Programa muestre ning&uacute;n anuncio).
</li>
</ul>
<p>Estos requisitos se aplican al trabajo modificado como un todo. Si partes identificables de ese trabajo no son derivadas del Programa, y pueden, razonablemente, ser consideradas trabajos independientes y separados por ellos mismos, entonces esta Licencia y sus t&eacute;rminos no se aplican a esas partes cuando sean distribuidas como trabajos separados. Pero cuando distribuya esas mismas secciones como partes de un todo que es un trabajo basado en el Programa, la distribuci&oacute;n del todo debe ser seg&uacute;n los t&eacute;rminos de esta licencia, cuyos permisos para otros licenciatarios se extienden al todo completo, y por lo tanto a todas y cada una de sus partes, con independencia de qui&eacute;n la escribi&oacute;.</p>
<p> Por lo tanto, no es la intenci&oacute;n de este apartado reclamar derechos o desafiar sus derechos sobre trabajos escritos totalmente por usted mismo. El intento es ejercer el derecho a controlar la distribuci&oacute;n de trabajos derivados o colectivos basados en el Programa.
</p>
<p> Adem&aacute;s, el simple hecho de reunir un trabajo no basado en el Programa con el Programa (o con un trabajo basado en el Programa) en un volumen de almacenamiento o en un medio de distribuci&oacute;n no hace que dicho trabajo entre dentro del &aacute;mbito cubierto por esta Licencia.
</p>
<p> <strong>3.</strong> YPuede copiar y distribuir el Programa (o un trabajo basado en &eacute;l, seg&uacute;n se especifica en el apartado 2, como c&oacute;digo objeto o en formato ejecutable seg&uacute;n los t&eacute;rminos de los apartados 1 y 2, supuesto que adem&aacute;s cumpla una de las siguientes condiciones:
<!-- we use this doubled UL to get the sub-sections indented, -->
<!-- while making the bullets as unobvious as possible. -->
</p>
<ul>
<li><strong>a)</strong> Acompa&ntilde;arlo con el c&oacute;digo fuente completo correspondiente, en formato electr&oacute;nico, que debe ser distribuido seg&uacute;n se especifica en los apartados 1 y 2 de esta Licencia en un medio habitualmente utilizado para el intercambio de programas, o,
<p>
</p>
</li>
<li><strong>b)</strong> Acompa&ntilde;arlo con una oferta por escrito, v&aacute;lida durante al menos tres a&ntilde;os, de proporcionar a cualquier tercera parte una copia completa en formato electr&oacute;nico del c&oacute;digo fuente correspondiente, a un coste no mayor que el de realizar f&iacute;sicamente la distribuci&oacute;n del fuente, que ser&aacute; distribuido bajo las condiciones descritas en los apartados 1 y 2 anteriores, en un medio habitualmente utilizado para el intercambio de programas, o,
<p>
</p>
</li>
<li><strong>c)</strong> Acompa&ntilde;arlo con la informaci&oacute;n que recibi&oacute; ofreciendo distribuir el c&oacute;digo fuente correspondiente. (Esta opci&oacute;n se permite s&oacute;lo para distribuci&oacute;n no comercial y s&oacute;lo si usted recibi&oacute; el programa como c&oacute;digo objeto o en formato ejecutable con tal oferta, de acuerdo con el apartado b anterior).
</li>
</ul>
<p>Por c&oacute;digo fuente de un trabajo se entiende la forma preferida del trabajo cuando se le hacen modificaciones. Para un trabajo ejecutable, se entiende por c&oacute;digo fuente completo todo el c&oacute;digo fuente para todos los m&oacute;dulos que contiene, m&aacute;s cualquier fichero asociado de definici&oacute;n de interfaces, m&aacute;s los guiones utilizados para controlar la compilaci&oacute;n e instalaci&oacute;n del ejecutable. Como excepci&oacute;n especial el c&oacute;digo fuente distribuido no necesita incluir nada que sea distribuido normalmente (bien como fuente, bien en forma binaria) con los componentes principales (compilador, kernel y similares) del sistema operativo en el cual funciona el ejecutable, a no ser que el propio componente acompa&ntilde;e al ejecutable. </p>
<p> Si la distribuci&oacute;n del ejecutable o del c&oacute;digo objeto se hace mediante la oferta acceso para copiarlo de un cierto lugar, entonces se considera la oferta de acceso para copiar el c&oacute;digo fuente del mismo lugar como distribuci&oacute;n del c&oacute;digo fuente, incluso aunque terceras partes no est&eacute;n forzadas a copiar el fuente junto con el c&oacute;digo objeto.
</p>
<p> <strong>4.</strong> No puede copiar, modificar, sublicenciar o distribuir el Programa excepto como prev&eacute; expresamente esta Licencia. Cualquier intento de copiar, modificar sublicenciar o distribuir el Programa de otra forma es inv&aacute;lida, y har&aacute; que cesen autom&aacute;ticamente los derechos que te proporciona esta Licencia. En cualquier caso, las partes que hayan recibido copias o derechos de usted bajo esta Licencia no cesar&aacute;n en sus derechos mientras esas partes contin&uacute;en cumpli&eacute;ndola.
</p>
<p> <strong>5.</strong> No est&aacute; obligado a aceptar esta licencia, ya que no la ha firmado. Sin embargo, no hay hada m&aacute;s que le proporcione permiso para modificar o distribuir el Programa o sus trabajos derivados. Estas acciones est&aacute;n prohibidas por la ley si no acepta esta Licencia. Por lo tanto, si modifica o distribuye el Programa (o cualquier trabajo basado en el Programa), est&aacute; indicando que acepta esta Licencia para poder hacerlo, y todos sus t&eacute;rminos y condiciones para copiar, distribuir o modificar el Programa o trabajos basados en &eacute;l.
</p>
<p> <strong>6.</strong> Cada vez que redistribuya el Programa (o cualquier trabajo basado en el Programa), el receptor recibe autom&aacute;ticamente una licencia del licenciatario original para copiar, distribuir o modificar el Programa, de forma sujeta a estos t&eacute;rminos y condiciones. No puede imponer al receptor ninguna restricci&oacute;n m&aacute;s sobre el ejercicio de los derechos aqu&iacute; garantizados. No es usted responsable de hacer cumplir esta licencia por terceras partes.
</p>
<p> <strong>7.</strong> Si como consecuencia de una resoluci&oacute;n judicial o de una alegaci&oacute;n de infracci&oacute;n de patente o por cualquier otra raz&oacute;n (no limitada a asuntos relacionados con patentes) se le imponen condiciones (ya sea por mandato judicial, por acuerdo o por cualquier otra causa) que contradigan las condiciones de esta Licencia, ello no le exime de cumplir las condiciones de esta Licencia. Si no puede realizar distribuciones de forma que se satisfagan simult&aacute;neamente sus obligaciones bajo esta licencia y cualquier otra obligaci&oacute;n pertinente entonces, como consecuencia, no puede distribuir el Programa de ninguna forma. Por ejemplo, si una patente no permite la redistribuci&oacute;n libre de derechos de autor del Programa por parte de todos aquellos que reciban copias directa o indirectamente a trav&eacute;s de usted, entonces la &uacute;nica forma en que podr&iacute;a satisfacer tanto esa condici&oacute;n como esta Licencia ser&iacute;a evitar completamente la distribuci&oacute;n del Programa.
</p>
<p> Si cualquier porci&oacute;n de este apartado se considera inv&aacute;lida o imposible de cumplir bajo cualquier circunstancia particular ha de cumplirse el resto y la secci&oacute;n por entero ha de cumplirse en cualquier otra circunstancia.
</p>
<p> No es el prop&oacute;sito de este apartado inducirle a infringir ninguna reivindicaci&oacute;n de patente ni de ning&uacute;n otro derecho de propiedad o impugnar la validez de ninguna de dichas reivindicaciones. Este apartado tiene el &uacute;nico prop&oacute;sito de proteger la integridad del sistema de distribuci&oacute;n de software libre, que se realiza mediante pr&aacute;cticas de licencia p&uacute;blica. Mucha gente ha hecho contribuciones generosas a la gran variedad de software distribuido mediante ese sistema con la confianza de que el sistema se aplicar&aacute; consistentemente. Ser&aacute; el autor/donante quien decida si quiere distribuir software mediante cualquier otro sistema y una licencia no puede imponer esa elecci&oacute;n.
</p>
<p> Este apartado pretende dejar completamente claro lo que se cree que es una consecuencia del resto de esta Licencia.
</p>
<p> <strong>8.</strong> Si la distribuci&oacute;n y/o uso de el Programa est&aacute; restringida en ciertos pa&iacute;ses, bien por patentes o por interfaces bajo copyright, el tenedor del copyright que coloca este Programa bajo esta Licencia puede a&ntilde;adir una limitaci&oacute;n expl&iacute;cita de distribuci&oacute;n geogr&aacute;fica excluyendo esos pa&iacute;ses, de forma que la distribuci&oacute;n se permita s&oacute;lo en o entre los pa&iacute;ses no excluidos de esta manera. En ese caso, esta Licencia incorporar&aacute; la limitaci&oacute;n como si estuviese escrita en el cuerpo de esta Licencia.
</p>
<p> <strong>9.</strong> La Free Software Foundation puede publicar versiones revisadas y/o nuevas de la Licencia P&uacute;blica General de tiempo en tiempo. Dichas nuevas versiones ser&aacute;n similares en esp&iacute;ritu a la presente versi&oacute;n, pero pueden ser diferentes en detalles para considerar nuevos problemas o situaciones.
</p>
<p> Cada versi&oacute;n recibe un n&uacute;mero de versi&oacute;n que la distingue de otras. Si el Programa especifica un n&uacute;mero de versi&oacute;n de esta Licencia que se refiere a ella y a cualquier versi&oacute;n posterior, tienes la opci&oacute;n de seguir los t&eacute;rminos y condiciones, bien de esa versi&oacute;n, bien de cualquier versi&oacute;n posterior publicada por la Free Software Foundation. Si el Programa no especifica un n&uacute;mero de versi&oacute;n de esta Licencia, puedes escoger cualquier versi&oacute;n publicada por la Free Software Foundation.
</p>
<p> <strong>10.</strong> Si quiere incorporar partes del Programa en otros programas libres cuyas condiciones de distribuci&oacute;n son diferentes, escribe al autor para pedirle permiso. Si el software tiene copyright de la Free Software Foundation, escribe a la Free Software Foundation: algunas veces hacemos excepciones en estos casos. Nuestra decisi&oacute;n estar&aacute; guiada por el doble objetivo de de preservar la libertad de todos los derivados de nuestro software libre y promover el que se comparta y reutilice el software en general.
</p>
<p><strong>AUSENCIA DE GARANT&Iacute;A</strong></p>
<p> <strong>11.</strong> COMO EL PROGRAMA SE LICENCIA LIBRE DE CARGAS, NO SE OFRECE NINGUNA GARANT&Iacute;A SOBRE EL PROGRAMA, EN TODAS LA EXTENSI&Oacute;N PERMITIDA POR LA LEGISLACI&Oacute;N APLICABLE. EXCEPTO CUANDO SE INDIQUE DE OTRA FORMA POR ESCRITO, LOS TENEDORES DEL COPYRIGHT Y/U OTRAS PARTES PROPORCIONAN EL PROGRAMA TAL CUAL, SIN GARANT&Iacute;A DE NINGUNA CLASE, BIEN EXPRESA O IMPL&Iacute;CITA, CON INCLUSI&Oacute;N, PERO SIN LIMITACI&Oacute;N A LAS GARANT&Iacute;AS MERCANTILES IMPL&Iacute;CITAS O A LA CONVENIENCIA PARA UN PROP&Oacute;SITO PARTICULAR. CUALQUIER RIESGO REFERENTE A LA CALIDAD Y PRESTACIONES DEL PROGRAMA ES ASUMIDO POR USTED. SI SE PROBASE QUE EL PROGRAMA ES DEFECTUOSO, ASUME EL COSTE DE CUALQUIER SERVICIO, REPARACI&Oacute;N O CORRECCI&Oacute;N.
</p>
<p> <strong>12.</strong> EN NING&Uacute;N CASO, SALVO QUE LO REQUIERA LA LEGISLACI&Oacute;N APLICABLE O HAYA SIDO ACORDADO POR ESCRITO, NING&Uacute;N TENEDOR DEL COPYRIGHT NI NINGUNA OTRA PARTE QUE MODIFIQUE Y/O REDISTRIBUYA EL PROGRAMA SEG&Uacute;N SE PERMITE EN ESTA LICENCIA SER&Aacute; RESPONSABLE ANTE USTED POR DA&Ntilde;OS, INCLUYENDO CUALQUIER DA&Ntilde;O GENERAL, ESPECIAL, INCIDENTAL O RESULTANTE PRODUCIDO POR EL USO O LA IMPOSIBILIDAD DE USO DEL PROGRAMA (CON INCLUSI&Oacute;N, PERO SIN LIMITACI&Oacute;N A LA P&Eacute;RDIDA DE DATOS O A LA GENERACI&Oacute;N INCORRECTA DE DATOS O A P&Eacute;RDIDAS SUFRIDAS POR USTED O POR TERCERAS PARTES O A UN FALLO DEL PROGRAMA AL FUNCIONAR EN COMBINACI&Oacute;N CON CUALQUIER OTRO PROGRAMA), INCLUSO SI DICHO TENEDOR U OTRA PARTE HA SIDO ADVERTIDO DE LA POSIBILIDAD DE DICHOS DA&Ntilde;OS.
</p>
<p>
</p>
<h2>FIN DE T&Eacute;RMINOS Y CONDICIONES</h2>
<h2><a href="#TOC4" name="SEC4" id="SEC4">C&oacute;mo aplicar estos t&eacute;rminos a sus nuevos programas</a></h2>
<p> Para el p&uacute;blico en general, la mejor forma de conseguirlo es convirti&eacute;ndolo en software libre que cualquiera pueda redistribuir y cambiar bajo estos t&eacute;rminos. </p>
<p> Para hacerlo, a&ntilde;ada los siguientes anuncios al programa. Lo m&aacute;s seguro es a&ntilde;adirlos al principio de cada fichero fuente para transmitir lo m&aacute;s efectivamente posible la ausencia de garant&iacute;a. Adem&aacute;s cada fichero deber&iacute;a tener al menos la l&iacute;nea de copyright y un indicador a d&oacute;nde puede encontrarse el anuncio completo. </p>
<pre>
<var>una l&iacute;nea para indicar el nombre del programa
y una r&aacute;pida idea de qu&eacute; hace.</var>
Copyright (C) <var>a&ntilde;o</var> <var>nombre del autor</var>
Este programa es software libre. Puede redistribuirlo
y/o modificarlo bajo los t&eacute;rminos de la Licencia P&uacute;blica
General de GNU seg&uacute;n es publicada por la Free Software
Foundation, bien de la versi&oacute;n 2 de dicha Licencia o
bien (seg&uacute;n su elecci&oacute;n) de cualquier versi&oacute;n posterior.
Este programa se distribuye con la esperanza de que sea
&uacute;til, pero SIN NINGUNA GARANT&Iacute;A, incluso sin la garant&iacute;a
MERCANTIL impl&iacute;cita o sin garantizar la CONVENIENCIA PARA
UN PROP&Oacute;SITO PARTICULAR. V&eacute;ase la Licencia P&uacute;blica General
de GNU para m&aacute;s detalles.
Deber&iacute;a haber recibido una copia de la Licencia P&uacute;blica
General junto con este programa. Si no ha sido as&iacute;,
escriba a la Free Software Foundation, Inc.,
en 675 Mass Ave, Cambridge, MA 02139, EEUU.
</pre>
<p> A&ntilde;ada tambi&eacute;n informaci&oacute;n sobre c&oacute;mo contactar con usted mediante correo electr&oacute;nico y postal. </p>
<p> Si el programa es interactivo, haga que muestre un peque&ntilde;o anuncio como el siguiente, cuando comienza a funcionar en modo interactivo: </p>
<pre>
Gnomovision versi&oacute;n 69, Copyright (C)
<var>a&ntilde;o</var> <var>nombre del autor</var>
Gnomovision no ofrece ABSOLUTAMENTE NINGUNA GARANT&Iacute;A.
Para m&aacute;s detalles escriba "show w". Este software es libre,
y se le permite redistribuirlo bajo ciertas condiciones;
escriba "show c" para m&aacute;s detalles.
</pre>
<p> Los comandos hipot&eacute;ticos <samp>show w</samp> y <samp>show c</samp> deber&iacute;an mostrar las partes adecuadas de la Licencia P&uacute;blica General. Por supuesto, los comandos que use pueden llamarse de cualquier otra manera. Podr&iacute;an incluso ser pulsaciones del rat&oacute;n o elementos de un men&uacute; (lo que sea apropiado para su programa). </p>
<p> Tambi&eacute;n deber&iacute;a conseguir que su empleador (si trabaja como programador) o su Universidad (si es el caso) firme un renuncia de copyright para el programa, si es necesario. A continuaci&oacute;n se ofrece un ejemplo, altere los nombres seg&uacute;n sea conveniente: </p>
<pre>
Yoyodyne, Inc. mediante este documento renuncia a
cualquier inter&eacute;s de derechos de copyright con
respecto al programa Gnomovision (que hace pasadas
a compiladores) escrito por James Hacker.
<var>firma de Ty Coon</var>, <var>fecha</var>
Ty Coon, Presidente de Vice
</pre>
<p> Esta Licencia P&uacute;blica General no permite que incluya sus programas en programas propietarios. Si su programa es una biblioteca de subrutinas, puede considerar m&aacute;s &uacute;til el permitir el enlazado de aplicaciones propietarias con la biblioteca. Si este es el caso, use la <b>Licencia P&uacute;blica General Menor de GNU</b> en lugar de esta Licencia.
</p>
<p>
<body>
</p>
</body>
</html>

View File

@ -0,0 +1,197 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
font-family: arial, helvetica, sans serif;
font-size: 11px;
background: #fff;
color: #333;
}
a:link, a:visited {
color: #0B55C4;
text-decoration: none;
}
a:hover {
color: #009;
}
p {
font-family: arial, helvetica, sans serif;
font-size: 11px;
}
h2 {
font-family: arial, helvetica, sans serif;
font-size: 13px;
font-weight: bold;
}
h3 {
font-family: arial, helvetica, sans serif;
font-size: 12px;
font-weight: bold;
}
h4 {
font-family: arial, helvetica, sans serif;
font-size: 11px;
font-weight: bold;
}
li {
font-family: arial, helvetica, sans serif;
font-size: 11px;
}
pre {
font-size: 11px;
}
-->
</style>
</head>
<body>
<h2>Table of Contents</h2>
<ul>
<li><a href="gpl.html#SEC1" name="TOC1" id="TOC1">GNU GENERAL PUBLIC LICENSE</a>
<ul>
<li><a href="gpl.html#SEC2" name="TOC2" id="TOC2">Preamble</a> </li>
<li><a href="gpl.html#SEC3" name="TOC3" id="TOC3">TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</a> </li>
<li><a href="gpl.html#SEC4" name="TOC4" id="TOC4">How to Apply These Terms to Your New Programs</a> </li>
</ul>
</li>
</ul>
<hr />
<h2><a href="gpl.html#TOC1" name="SEC1" id="SEC1">GNU GENERAL PUBLIC LICENSE</a></h2>
<p> Version 2, June 1991 </p>
<pre>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
</pre>
<h2><a href="gpl.html#TOC2" name="SEC2" id="SEC2">Preamble</a></h2>
<p> The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. </p>
<p> When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. </p>
<p> To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. </p>
<p> For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. </p>
<p> We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. </p>
<p> Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. </p>
<p> Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. </p>
<p> The precise terms and conditions for copying, distribution and modification follow. </p>
<h2><a href="gpl.html#TOC3" name="SEC3" id="SEC3">TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</a></h2>
<p> <strong>0.</strong> This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".</p>
<p> Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.</p>
<p> <strong>1.</strong> You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.</p>
<p> You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.</p>
<p> <strong>2.</strong> You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:</p>
<ul>
<li><strong>a)</strong> You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
</li>
<li><strong>b)</strong> You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
</li>
<li><strong>c)</strong> If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
</li>
</ul>
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
<p> Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
</p>
<p> In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
</p>
<p> <strong>3.</strong> You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
<!-- we use this doubled UL to get the sub-sections indented, -->
<!-- while making the bullets as unobvious as possible. -->
</p>
<ul>
<li><strong>a)</strong> Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
</li>
<li><strong>b)</strong> Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
</li>
<li><strong>c)</strong> Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
</li>
</ul>
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
<p> If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
</p>
<p> <strong>4.</strong> You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
</p>
<p> <strong>5.</strong> You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
</p>
<p> <strong>6.</strong> Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
</p>
<p> <strong>7.</strong> If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
</p>
<p> If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
</p>
<p> It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
</p>
<p> This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
</p>
<p> <strong>8.</strong> If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
</p>
<p> <strong>9.</strong> The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
</p>
<p> Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
</p>
<p> <strong>10.</strong> If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
</p>
<p><strong>NO WARRANTY</strong></p>
<p> <strong>11.</strong> BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
</p>
<p> <strong>12.</strong> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
</p>
<h2>END OF TERMS AND CONDITIONS</h2>
<h2><a href="gpl.html#TOC4" name="SEC4" id="SEC4">How to Apply These Terms to Your New Programs</a></h2>
<p> If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. </p>
<p> To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. </p>
<pre>
<var>one line to give the program's name and an idea of what it does.</var>
Copyright (C) <var>yyyy</var> <var>name of author</var>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
</pre>
<p> Also add information on how to contact you by electronic and paper mail. </p>
<p> If the program is interactive, make it output a short notice like this when it starts in an interactive mode: </p>
<pre>
Gnomovision version 69, Copyright (C) <var>year</var> <var>name of author</var>
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'. This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.
</pre>
<p> The hypothetical commands <samp>`show w'</samp> and <samp>`show c'</samp> should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than <samp>`show w'</samp> and <samp>`show c'</samp>; they could even be mouse-clicks or menu items--whatever suits your program. </p>
<p> You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: </p>
<pre>
Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.
<var>signature of Ty Coon</var>, 1 April 1989
Ty Coon, President of Vice
</pre>
<p> This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the <a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">GNU Lesser General Public License</a> instead of this License.
</p>
</body>
</html>

View File

@ -0,0 +1,254 @@
<?php
/**
* @version $Id: application.php 10823 2008-08-27 17:18:14Z tcp $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/**
* Joomla! Application class
*
* Provide many supporting API functions
*
* @package Joomla
* @final
*/
class JInstallation extends JApplication
{
/**
* The url of the site
*
* @var string
* @access protected
*/
var $_siteURL = null;
/**
* Class constructor
*
* @access protected
* @param array An optional associative array of configuration settings.
* Recognized key values include 'clientId' (this list is not meant to be comprehensive).
*/
function __construct($config = array())
{
$config['clientId'] = 2;
parent::__construct($config);
JError::setErrorHandling(E_ALL, 'Ignore');
$this->_createConfiguration();
//Set the root in the URI based on the application name
JURI::root(null, str_replace('/'.$this->getName(), '', JURI::base(true)));
}
/**
* Render the application
*
* @access public
*/
function render()
{
$document =& JFactory::getDocument();
$config =& JFactory::getConfig();
$user =& JFactory::getUser();
switch($document->getType())
{
case 'html':
//set metadata
$document->setTitle(JText::_('PAGE_TITLE'));
break;
default: break;
}
// Define component path
define( 'JPATH_COMPONENT', JPATH_BASE.DS.'installer');
define( 'JPATH_COMPONENT_SITE', JPATH_SITE.DS.'installer');
define( 'JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR.DS.'installer');
// Execute the component
ob_start();
require_once(JPATH_COMPONENT.DS.'installer.php');
$contents = ob_get_contents();
ob_end_clean();
$params = array(
'template' => 'template',
'file' => 'index.php',
'directory' => JPATH_THEMES
);
$document->setBuffer( $contents, 'installation');
$document->setTitle(JText::_('PAGE_TITLE'));
$data = $document->render(false, $params);
JResponse::setBody($data);
}
/**
* Initialise the application.
*
* @access public
*/
function initialise( $options = array())
{
//Get the localisation information provided in the localise xml file
$forced = $this->getLocalise();
// Check URL arguement - useful when user has just set the language preferences
if(empty($options['language']))
{
$vars = JRequest::getVar('vars');
if ( is_array($vars) && ! empty($vars['lang']) )
{
$varLang = $vars['lang'];
$options['language'] = $varLang;
}
}
// Check the application state - useful when the user has previously set the language preference
if(empty($options['language']))
{
$configLang = $this->getUserState('application.lang');
if ( $configLang ) {
$options['language'] = $configLang;
}
}
// This could be a first-time visit - try to determine what the client accepts
if(empty($options['language']))
{
if ( empty($forced['lang'])) {
jimport('joomla.language.helper');
$options['language'] = JLanguageHelper::detectLanguage();
} else {
$options['language'] = $forced['lang'];
}
}
// Give the user English
if (empty($options['language'])) {
$options['language'] = 'en-GB';
}
//Set the language in the class
$conf =& JFactory::getConfig();
$conf->setValue('config.language', $options['language']);
$conf->setValue('config.debug_lang', $forced['debug']);
}
/**
* Set configuration values
*
* @access private
* @param array Array of configuration values
* @param string The namespace
*/
function setCfg( $vars, $namespace = 'config' ) {
$this->_registry->loadArray( $vars, $namespace );
}
/**
* Create the configuration registry
*
* @access private
*/
function _createConfiguration()
{
jimport( 'joomla.registry.registry' );
// Create the registry with a default namespace of config which is read only
$this->_registry = new JRegistry( 'config' );
}
/**
* Get the template
*
* @return string The template name
*/
function getTemplate()
{
return 'template';
}
/**
* Create the user session
*
* @access private
* @param string The sessions name
* @return object JSession
*/
function &_createSession( $name )
{
$options = array();
$options['name'] = $name;
$session = &JFactory::getSession($options);
if (!is_a($session->get('registry'), 'JRegistry')) {
// Registry has been corrupted somehow
$session->set('registry', new JRegistry('session'));
}
return $session;
}
/**
* returns the langauge code and help url set in the localise.xml file.
* Used for forcing a particular language in localised releases
*/
function getLocalise()
{
$xml = & JFactory::getXMLParser('Simple');
if (!$xml->loadFile(JPATH_SITE.DS.'installation'.DS.'localise.xml')) {
return 'no file'; //null;
}
// Check that it's a localise file
if ($xml->document->name() != 'localise') {
return 'not a localise'; //null;
}
$tags = $xml->document->children();
$ret = array();
$ret['lang'] = $tags[0]->data();
$ret['helpurl'] = $tags[1]->data();
$ret['debug'] = $tags[2]->data();
return $ret;
}
/**
* Returns the installed admin language files in the administrative and
* front-end area.
*
* @access private
* @return array Array with installed language packs in admin area
*/
function getLocaliseAdmin()
{
jimport('joomla.filesystem.folder');
// Read the files in the admin area
$path = JLanguage::getLanguagePath(JPATH_SITE.DS.'administrator');
$langfiles['admin'] = JFolder::folders( $path );
$path = JLanguage::getLanguagePath(JPATH_SITE);
$langfiles['site'] = JFolder::folders( $path );
return $langfiles;
}
}
?>

View File

@ -0,0 +1,451 @@
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
//TODO: Rewrite this so its cleaner
// BigDump ver. 0.28b from 2007-06-08
// Staggered import of an large MySQL Dump (like phpMyAdmin 2.x Dump)
// Even through the webservers with hard runtime limit and those in safe mode
// Works fine with Internet Explorer 7.0 and Firefox 2.x
// Author: Alexey Ozerov (alexey at ozerov dot de)
// AJAX & CSV functionalities: Krzysiek Herod (kr81uni at wp dot pl)
// Copyright: GPL (C) 2003-2007
// More Infos: http://www.ozerov.de/bigdump.php
// This program is free software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the Free Software Foundation;
// either version 2 of the License, or (at your option) any later version.
// THIS SCRIPT IS PROVIDED AS IS, WITHOUT ANY WARRANTY OR GUARANTEE OF ANY KIND
// USAGE
// 1. Adjust the database configuration in this file
// 2. Drop the old tables on the target database if your dump doesn't contain "DROP TABLE"
// 3. Create the working directory (e.g. dump) on your web-server
// 4. Upload bigdump.php and your dump files (.sql, .gz) via FTP to the working directory
// 5. Run the bigdump.php from your browser via URL like http://www.yourdomain.com/dump/bigdump.php
// 6. BigDump can start the next import session automatically if you enable the JavaScript
// 7. Wait for the script to finish, do not close the browser window
// 8. IMPORTANT: Remove bigdump.php and your dump files from the web-server
// If Timeout errors still occure you may need to adjust the $linepersession setting in this file
// LAST CHANGES
// *** Improved error message for file open errors
// *** Handle CSV files (you have to specify $csv_insert_table)
// *** Restart script in the background using AJAX
/**
* Big Dump Handler for Migration and Import
* Rewritten by Sam Moffatt from original work by Alexey Ozerov) for Joomla! 1.5
*/
//defined('_JEXEC') or die('Access Denied');
// Database configuration
$db_server = '';
$db_name = '';
$db_username = '';
$db_password = '';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php JText::_('Migration load script') ?></title>
<script type="text/javascript" src="includes/js/installation.js"></script>
</head>
<body>
<?php
// Other Settings
$csv_insert_table = ''; // Destination table for CSV files
$ajax = false; // AJAX mode: import will be done without refreshing the website
//$filename = ''; // Specify the dump filename to suppress the file selection dialog
$linespersession = 3000; // Lines to be executed per one import session
$delaypersession = 0; // You can specify a sleep time in milliseconds after each session
// Works only if JavaScript is activated. Use to reduce server overrun
// Allowed comment delimiters: lines starting with these strings will be dropped by BigDump
$comment[] = '#'; // Standard comment lines are dropped by default
$comment[] = '-- ';
// $comment[]='---'; // Uncomment this line if using proprietary dump created by outdated mysqldump
// $comment[]='/*!'; // Or add your own string to leave out other proprietary things
// Connection character set should be the same as the dump file character set (utf8, latin1, cp1251, koi8r etc.)
// See http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html for the full list
$db_connection_charset = '';
// *******************************************************************************************
// If not familiar with PHP please don't change anything below this line
// *******************************************************************************************
ob_start();
define('VERSION', '0.28b');
define('DATA_CHUNK_LENGTH', 16384); // How many chars are read per time
define('MAX_QUERY_LINES', 300); // How many lines may be considered to be one query (except text lines)
define('TESTMODE', false); // Set to true to process the file without actually accessing the database
header("Expires: Mon, 1 Dec 2003 01:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
//@ini_set('auto_detect_line_endings', true);
//@set_time_limit(0);
// Clean and strip anything we don't want from user's input [0.27b]
foreach ($_REQUEST as $key => $val) {
$val = preg_replace("/[^_A-Za-z0-9-\.&=]/i", '', $val);
$_REQUEST[$key] = $val;
}
// Determine filename to execute for loading...
$filename = JPATH_BASE . DS . 'sql' . DS . 'migration' . DS . 'migrate.sql';
$_REQUEST['fn'] = $filename;
$error = false;
$file = false;
// Single file mode
if (!$error && !isset ($_REQUEST["fn"]) && $filename != "") {
echo ("<p><a href=\"" . str_replace(array('"', '<', '>', "'"), '', $_SERVER["PHP_SELF"]) . "?start=1&amp;fn=$filename&amp;foffset=0&amp;totalqueries=0\">Start Import</a> from $filename into $db_name at $db_server</p>\n");
}
// Open the file
if (!$error && isset ($_REQUEST["fn"])) {
// Recognize GZip filename
if (preg_match("#\.gz$#i", $_REQUEST["fn"]))
$gzipmode = true;
else
$gzipmode = false;
if ((!$gzipmode && !$file = fopen($_REQUEST["fn"], "rt")) || ($gzipmode && !$file = gzopen($_REQUEST["fn"], "rt"))) {
echo ("<p class=\"error\">". JText::sprintf("Cant open file for import", $_REQUEST["fn"]) ."</p>\n");
echo ("<p>". JText::_('CHECKDUMPFILE') .
" .<br />". JText::_('NEEDTOUPLOADFILE')."</p>\n");
$error = true;
}
// Get the file size (can't do it fast on gzipped files, no idea how)
else
if ((!$gzipmode && fseek($file, 0, SEEK_END) == 0) || ($gzipmode && gzseek($file, 0) == 0)) {
if (!$gzipmode)
$filesize = ftell($file);
else
$filesize = gztell($file); // Always zero, ignore
} else {
echo ("<p class=\"error\">". JText::_('FILESIZEUNKNOWN') . $_REQUEST["fn"] . "</p>\n");
$error = true;
}
}
// *******************************************************************************************
// START IMPORT SESSION HERE
// *******************************************************************************************
if (!$error && isset ($_REQUEST["start"]) && isset ($_REQUEST["foffset"]) && preg_match("#(\.(sql|gz|csv))$#i", $_REQUEST["fn"])) {
// Check start and foffset are numeric values
if (!is_numeric($_REQUEST["start"]) || !is_numeric($_REQUEST["foffset"])) {
echo ("<p class=\"error\">". JText::_('NONNUMERICOFFSET') ."</p>\n");
$error = true;
}
if (!$error) {
$_REQUEST["start"] = floor($_REQUEST["start"]);
$_REQUEST["foffset"] = floor($_REQUEST["foffset"]);
}
// Check $_REQUEST["foffset"] upon $filesize (can't do it on gzipped files)
if (!$error && !$gzipmode && $_REQUEST["foffset"] > $filesize) {
echo ("<p class=\"error\">".JText::_('POINTEREOF')."</p>\n");
$error = true;
}
// Set file pointer to $_REQUEST["foffset"]
if (!$error && ((!$gzipmode && fseek($file, $_REQUEST["foffset"]) != 0) || ($gzipmode && gzseek($file, $_REQUEST["foffset"]) != 0))) {
echo ("<p class=\"error\">". JText::_('UNABLETOSETOFFSET') . $_REQUEST["foffset"] . "</p>\n");
$error = true;
}
// Start processing queries from $file
if (!$error) {
$query = "";
$queries = 0;
$totalqueries = $_REQUEST["totalqueries"];
$linenumber = $_REQUEST["start"];
$querylines = 0;
$inparents = false;
// Stay processing as long as the $linespersession is not reached or the query is still incomplete
while ($linenumber < $_REQUEST["start"] + $linespersession || $query != "") {
// Read the whole next line
$dumpline = "";
while (!feof($file) && substr($dumpline, -1) != "\n") {
if (!$gzipmode)
$dumpline .= fgets($file, DATA_CHUNK_LENGTH);
else
$dumpline .= gzgets($file, DATA_CHUNK_LENGTH);
}
if ($dumpline === "")
break;
// Handle DOS and Mac encoded linebreaks (I don't know if it will work on Win32 or Mac Servers)
$dumpline = str_replace("\r\n", "\n", $dumpline);
$dumpline = str_replace("\r", "\n", $dumpline);
// DIAGNOSTIC
// echo ("<p>Line $linenumber: $dumpline</p>\n");
// Skip comments and blank lines only if NOT in parents
if (!$inparents) {
$skipline = false;
reset($comment);
foreach ($comment as $comment_value) {
if (!$inparents && (trim($dumpline) == "" || strpos($dumpline, $comment_value) === 0)) {
$skipline = true;
break;
}
}
if ($skipline) {
$linenumber++;
continue;
}
}
// Remove double back-slashes from the dumpline prior to count the quotes ('\\' can only be within strings)
$dumpline_deslashed = str_replace("\\\\", "", $dumpline);
// Count ' and \' in the dumpline to avoid query break within a text field ending by ;
// Please don't use double quotes ('"')to surround strings, it wont work
$parents = substr_count($dumpline_deslashed, "'") - substr_count($dumpline_deslashed, "\\'");
if ($parents % 2 != 0)
$inparents = !$inparents;
// Add the line to query
$query .= $dumpline;
// Don't count the line if in parents (text fields may include unlimited linebreaks)
if (!$inparents)
$querylines++;
// Stop if query contains more lines as defined by MAX_QUERY_LINES
if ($querylines > MAX_QUERY_LINES) {
echo ("<p class=\"error\">". JText::_('STOPPEDATLINE') ." $linenumber. </p>");
echo ("<p>". JText::sprintf('TOOMANYLINES',MAX_QUERY_LINES)."</p>");
$error = true;
break;
}
$vars = $this->getVars();
$DBtype = JArrayHelper::getValue($vars, 'DBtype', 'mysql');
$DBhostname = JArrayHelper::getValue($vars, 'DBhostname', '');
$DBuserName = JArrayHelper::getValue($vars, 'DBuserName', '');
$DBpassword = JArrayHelper::getValue($vars, 'DBpassword', '');
$DBname = JArrayHelper::getValue($vars, 'DBname', '');
$DBPrefix = JArrayHelper::getValue($vars, 'DBPrefix', 'jos_');
$DBOld = JArrayHelper::getValue($vars, 'DBOld', 'bu');
//$migration = JArrayHelper::getValue($vars, 'migration', '0');
$migration = JRequest::getVar( 'migration', 0, 'post', 'bool' );
$db = & JInstallationHelper::getDBO($DBtype, $DBhostname, $DBuserName, $DBpassword, $DBname, $DBPrefix);
if(JError::isError($db)) jexit(JText::_('CONNECTION FAIL'));
// echo 'Done.<br />';
// Execute query if end of query detected (; as last character) AND NOT in parents
if (ereg(";$", trim($dumpline)) && !$inparents) {
if (!TESTMODE) {
$db->setQuery(trim($query));
// echo $query . '<br />';
if (!$db->Query()) {
echo ("<p class=\"error\">".JText::_('Error at the line') ." $linenumber: ". trim($dumpline) . "</p>\n");
echo ("<p>".JText::_('Query:') . trim(nl2br(htmlentities($query))) ."</p>\n");
echo ("<p>MySQL: " . mysql_error() . "</p>\n");
$error = true;
break;
}
$totalqueries++;
$queries++;
$query = "";
$querylines = 0;
}
}
$linenumber++;
}
}
// Get the current file position
if (!$error) {
if (!$gzipmode)
$foffset = ftell($file);
else
$foffset = gztell($file);
if (!$foffset) {
echo ("<p class=\"error\">".JText::_('CANTREADPOINTER')."</p>\n");
$error = true;
}
}
// Print statistics
// echo ("<p class=\"centr\"><b>Statistics</b></p>\n");
if (!$error) {
$lines_this = $linenumber - $_REQUEST["start"];
$lines_done = $linenumber -1;
$lines_togo = ' ? ';
$lines_tota = ' ? ';
$queries_this = $queries;
$queries_done = $totalqueries;
$queries_togo = ' ? ';
$queries_tota = ' ? ';
$bytes_this = $foffset - $_REQUEST["foffset"];
$bytes_done = $foffset;
$kbytes_this = round($bytes_this / 1024, 2);
$kbytes_done = round($bytes_done / 1024, 2);
$mbytes_this = round($kbytes_this / 1024, 2);
$mbytes_done = round($kbytes_done / 1024, 2);
if (!$gzipmode) {
$bytes_togo = $filesize - $foffset;
$bytes_tota = $filesize;
$kbytes_togo = round($bytes_togo / 1024, 2);
$kbytes_tota = round($bytes_tota / 1024, 2);
$mbytes_togo = round($kbytes_togo / 1024, 2);
$mbytes_tota = round($kbytes_tota / 1024, 2);
$pct_this = ceil($bytes_this / $filesize * 100);
$pct_done = ceil($foffset / $filesize * 100);
$pct_togo = 100 - $pct_done;
$pct_tota = 100;
if ($bytes_togo == 0) {
$lines_togo = '0';
$lines_tota = $linenumber -1;
$queries_togo = '0';
$queries_tota = $totalqueries;
}
$pct_bar = "<div style=\"height:15px;width:$pct_done%;background-color:#000080;margin:0px;\"></div>";
} else {
$bytes_togo = ' ? ';
$bytes_tota = ' ? ';
$kbytes_togo = ' ? ';
$kbytes_tota = ' ? ';
$mbytes_togo = ' ? ';
$mbytes_tota = ' ? ';
$pct_this = ' ? ';
$pct_done = ' ? ';
$pct_togo = ' ? ';
$pct_tota = 100;
$pct_bar = str_replace(' ', '&nbsp;', '<tt>[ Not available for gzipped files ]</tt>');
}
/*
echo ("
<center>
<table width=\"520\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\">
<tr><th class=\"bg4\"> </th><th class=\"bg4\">Session</th><th class=\"bg4\">Done</th><th class=\"bg4\">To go</th><th class=\"bg4\">Total</th></tr>
<tr><th class=\"bg4\">Lines</th><td class=\"bg3\">$lines_this</td><td class=\"bg3\">$lines_done</td><td class=\"bg3\">$lines_togo</td><td class=\"bg3\">$lines_tota</td></tr>
<tr><th class=\"bg4\">Queries</th><td class=\"bg3\">$queries_this</td><td class=\"bg3\">$queries_done</td><td class=\"bg3\">$queries_togo</td><td class=\"bg3\">$queries_tota</td></tr>
<tr><th class=\"bg4\">Bytes</th><td class=\"bg3\">$bytes_this</td><td class=\"bg3\">$bytes_done</td><td class=\"bg3\">$bytes_togo</td><td class=\"bg3\">$bytes_tota</td></tr>
<tr><th class=\"bg4\">KB</th><td class=\"bg3\">$kbytes_this</td><td class=\"bg3\">$kbytes_done</td><td class=\"bg3\">$kbytes_togo</td><td class=\"bg3\">$kbytes_tota</td></tr>
<tr><th class=\"bg4\">MB</th><td class=\"bg3\">$mbytes_this</td><td class=\"bg3\">$mbytes_done</td><td class=\"bg3\">$mbytes_togo</td><td class=\"bg3\">$mbytes_tota</td></tr>
<tr><th class=\"bg4\">%</th><td class=\"bg3\">$pct_this</td><td class=\"bg3\">$pct_done</td><td class=\"bg3\">$pct_togo</td><td class=\"bg3\">$pct_tota</td></tr>
<tr><th class=\"bg4\">% bar</th><td class=\"bgpctbar\" colspan=\"4\">$pct_bar</td></tr>
</table>
</center>
\n");*/
// Finish message and restart the script
if ($linenumber < $_REQUEST["start"] + $linespersession) {
echo ("<div id=\"installer\"><p class=\"successcentr\">".JText::_('CONGRATSEOF')."</p>\n");
// Do migration
if($migration) {
?><br />Migration will continue shortly...</div>
<form action="index.php" method="post" name="migrateForm" id="migrateForm" class="form-validate" target="migrationtarget">
<input type="hidden" name="task" value="postmigrate" />
<input type="hidden" name="migration" value="<?php echo $migration ?>" />
<input type="hidden" name="loadchecked" value="1" />
<input type="hidden" name="dataLoaded" value="1" />
<input type="hidden" name="DBtype" value="<?php echo $DBtype ?>" />
<input type="hidden" name="DBhostname" value="<?php echo $DBhostname ?>" />
<input type="hidden" name="DBuserName" value="<?php echo $DBuserName ?>" />
<input type="hidden" name="DBpassword" value="<?php echo $DBpassword ?>" />
<input type="hidden" name="DBname" value="<?php echo $DBname ?>" />
<input type="hidden" name="DBPrefix" value="<?php echo $DBPrefix ?>" />
</form>
<script language="JavaScript" type="text/javascript">window.setTimeout('submitForm(this.document.migrateForm,"postmigrate")',500);</script>
<?php
} else echo '<br />'. JText::_('FINALIZEINSTALL').'</div>';
//echo ("<p class=\"centr\">Thank you for using this tool! Please rate <a href=\"http://www.hotscripts.com/Detailed/20922.html\" target=\"_blank\">Bigdump at Hotscripts.com</a></p>\n");
//echo ("<p class=\"centr\">You can send me some bucks or euros as appreciation <a href=\"http://www.ozerov.de/bigdump.php\" target=\"_blank\">via PayPal</a></p>\n");
$error = true;
} else {
if ($delaypersession != 0)
echo ("<p class=\"centr\">".JText::sprintf('DELAYMSG',$delaypersession)."</p>\n");
?><script language="JavaScript" type="text/javascript">window.setTimeout('submitForm(this.document.migrateForm,"dumpLoad")',500);</script>
<div id="installer"><p><?php echo JText::_('LOADSQLFILE') ?></p></div>
<form action="index.php" method="post" name="migrateForm" id="migrateForm" class="form-validate" target="migrationtarget">
<input type="hidden" name="task" value="dumpLoad" />
<input type="hidden" name="migration" value="<?php echo $migration ?>" />
<input type="hidden" name="loadchecked" value="1" />
<input type="hidden" name="dataLoaded" value="1" />
<input type="hidden" name="DBtype" value="<?php echo $DBtype ?>" />
<input type="hidden" name="DBhostname" value="<?php echo $DBhostname ?>" />
<input type="hidden" name="DBuserName" value="<?php echo $DBuserName ?>" />
<input type="hidden" name="DBpassword" value="<?php echo $DBpassword ?>" />
<input type="hidden" name="DBname" value="<?php echo $DBname ?>" />
<input type="hidden" name="DBPrefix" value="<?php echo $DBPrefix ?>" />
<input type="hidden" name="start" value="<?php echo $linenumber ?>" />
<input type="hidden" name="foffset" value="<?php echo $foffset ?>" />
<input type="hidden" name="totalqueries" value="<?php echo $totalqueries ?>" />
</form>
<?php
}
} else
echo ("<p class=\"error\">".JText::_('STOPPEDONERROR')."</p>\n");
}
//if ($dbconnection) mysql_close();
if ($file && !$gzipmode)
fclose($file);
else
if ($file && $gzipmode)
gzclose($file);
//ob_flush();
//die();

View File

@ -0,0 +1,31 @@
<?php
/**
* @version $Id: defines.php 10381 2008-06-01 03:35:53Z pasamio $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
//Joomla framework path definitions
$parts = explode( DS, JPATH_BASE );
array_pop( $parts );
define( 'JPATH_ROOT', implode( DS, $parts ) );
define( 'JPATH_SITE', JPATH_ROOT );
define( 'JPATH_CONFIGURATION', JPATH_ROOT );
define( 'JPATH_ADMINISTRATOR', JPATH_ROOT.DS.'administrator' );
define( 'JPATH_XMLRPC', JPATH_ROOT.DS.'xmlrpc' );
define( 'JPATH_LIBRARIES', JPATH_ROOT.DS.'libraries' );
define( 'JPATH_PLUGINS', JPATH_ROOT.DS.'plugins' );
define( 'JPATH_INSTALLATION', JPATH_ROOT.DS.'installation' );
define( 'JPATH_THEMES', JPATH_BASE );
define( 'JPATH_CACHE', JPATH_ROOT.DS.'cache' );

View File

@ -0,0 +1,60 @@
<?php
/**
* @version $Id: framework.php 10382 2008-06-01 06:56:02Z pasamio $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/*
* Joomla! system checks
*/
error_reporting( E_ALL );
@set_magic_quotes_runtime( 0 );
@ini_set('zend.ze1_compatibility_mode', '0');
/*
*
*/
if (file_exists( JPATH_CONFIGURATION . DS . 'configuration.php' ) && (filesize( JPATH_CONFIGURATION . DS . 'configuration.php' ) > 10) && !file_exists( JPATH_INSTALLATION . DS . 'index.php' )) {
header( 'Location: ../index.php' );
exit();
}
/*
* Joomla! system startup
*/
// System includes
require_once( JPATH_LIBRARIES .DS.'joomla'.DS.'import.php');
// Installation file includes
define( 'JPATH_INCLUDES', dirname(__FILE__) );
/*
* Joomla! framework loading
*/
// Include object abstract class
require_once(JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'utilities'.DS.'compat'.DS.'compat.php');
// Joomla! library imports
jimport( 'joomla.database.table' );
jimport( 'joomla.user.user');
jimport( 'joomla.environment.uri' );
jimport( 'joomla.user.user');
jimport( 'joomla.html.parameter' );
jimport( 'joomla.utilities.utility' );
jimport( 'joomla.language.language');
jimport( 'joomla.utilities.string' );
?>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,22 @@
/*** @version $Id: install.js 966 2005-11-11 01:37:07Z Jinx $* @package Joomla* @subpackage Installation* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.* @license GNU/GPL*/
/**
* @param object A form element
* @param string The name of the element to find
*/
function getElementByName( f, name ) {
if (f.elements) {
for (i=0, n=f.elements.length; i < n; i++) {
if (f.elements[i].name == name) {
return f.elements[i];
}
}
}
return null;
}
/**
* Generic submit form
*/
function submitForm( frm, task ) {
frm.task.value = task;
frm.submit();
}

View File

@ -0,0 +1,551 @@
function Xajax()
{
if (xajaxDebug) this.DebugMessage = function(text) { alert("Xajax Debug:\n " + text) };
this.workId = 'xajaxWork'+ new Date().getTime();
this.depth = 0;
//Get the XMLHttpRequest Object
this.getRequestObject = function()
{
if (xajaxDebug) this.DebugMessage("Initializing Request Object..");
var req;
try
{
req=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
req=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
req=null;
}
}
if(!req && typeof XMLHttpRequest != "undefined")
req = new XMLHttpRequest();
if (xajaxDebug) {
if (!req) this.DebugMessage("Request Object Instantiation failed.");
}
return req;
}
// xajax.$() is shorthand for document.getElementById()
this.$ = function(sId)
{
if (!sId) {
return null;
}
var returnObj = document.getElementById(sId);
if (xajaxDebug && !returnObj && sId != this.workId) {
this.DebugMessage("Element with the id \"" + sId + "\" not found.");
}
return returnObj;
}
// xajax.include(sFileName) dynamically includes an external javascript file
this.include = function(sFileName)
{
var objHead = document.getElementsByTagName('head');
var objScript = document.createElement('script');
objScript.type = 'text/javascript';
objScript.src = sFileName;
objHead[0].appendChild(objScript);
}
// xajax.addHandler adds an event handler to an element
this.addHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
eval("this.$('"+sElementId+"').addEventListener('"+sEvent+"',"+sFunctionName+",false);");
}
else
{
eval("this.$('"+sElementId+"').attachEvent('on"+sEvent+"',"+sFunctionName+",false);");
}
}
// xajax.removeHandler removes an event handler from an element
this.removeHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
eval("this.$('"+sElementId+"').removeEventListener('"+sEvent+"',"+sFunctionName+",false);");
}
else
{
eval("this.$('"+sElementId+"').detachEvent('on"+sEvent+"',"+sFunctionName+",false);");
}
}
// xajax.create creates a new child node under a parent
this.create = function(sParentId, sTag, sId)
{
var objParent = this.$(sParentId);
objElement = document.createElement(sTag);
objElement.setAttribute('id',sId);
objParent.appendChild(objElement);
}
// xajax.insert inserts a new node before another node
this.insert = function(sBeforeId, sTag, sId)
{
var objSibling = this.$(sBeforeId);
objElement = document.createElement(sTag);
objElement.setAttribute('id',sId);
objSibling.parentNode.insertBefore(objElement, objSibling);
}
this.getInput = function(sType, sName, sId)
{
var Obj;
if (sType == "radio" && !window.addEventListener)
{
Obj = document.createElement('<input type="radio" id="'+sId+'" name="'+sName+'">');
}
else
{
Obj = document.createElement('input');
Obj.setAttribute('type',sType);
Obj.setAttribute('name',sName);
Obj.setAttribute('id',sId);
}
return Obj;
}
// xajax.createInput creates a new input node under a parent
this.createInput = function(sParentId, sType, sName, sId)
{
var objParent = this.$(sParentId);
var objElement = this.getInput(sType, sName, sId);
objParent.appendChild(objElement);
}
// xajax.insertInput creates a new input node before another node
this.insertInput = function(sBeforeId, sType, sName, sId)
{
var objSibling = this.$(sBeforeId);
var objElement = this.getInput(sType, sName, sId);
objSibling.parentNode.insertBefore(objElement, objSibling);
}
// xajax.remove deletes an element
this.remove = function(sId)
{
objElement = this.$(sId);
if (objElement.parentNode && objElement.parentNode.removeChild)
{
objElement.parentNode.removeChild(objElement);
}
}
//xajax.replace searches for text in an attribute of an element and replaces it
//with a different text
this.replace = function(sId,sAttribute,sSearch,sReplace)
{
var bFunction = false;
if (sAttribute == "innerHTML")
sSearch = this.getBrowserHTML(sSearch);
eval("var txt=document.getElementById('"+sId+"')."+sAttribute);
if (typeof txt == "function")
{
txt = txt.toString();
bFunction = true;
}
if (txt.indexOf(sSearch)>-1)
{
var newTxt = '';
while (txt.indexOf(sSearch) > -1)
{
x = txt.indexOf(sSearch)+sSearch.length+1;
newTxt += txt.substr(0,x).replace(sSearch,sReplace);
txt = txt.substr(x,txt.length-x);
}
newTxt += txt;
if (bFunction)
{
eval("newTxt =" + newTxt);
eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
}
else if (this.willChange(sId,sAttribute,newTxt))
{
eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
}
}
}
// xajax.getFormValues() builds a query string XML message from the elements of a form object
this.getFormValues = function(frm)
{
var objForm;
var submitDisabledElements = false;
if (arguments.length > 1 && arguments[1] == true)
submitDisabledElements = true;
if (typeof(frm) == "string")
objForm = this.$(frm);
else
objForm = frm;
var sXml = "<xjxquery><q>";
if (objForm && objForm.tagName == 'FORM')
{
var formElements = objForm.elements;
for( var i=0; i < formElements.length; i++)
{
if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false)
continue;
if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) continue;
var name = formElements[i].name;
if (name)
{
if (sXml != '<xjxquery><q>')
sXml += '&';
if(formElements[i].type=='select-multiple')
{
for (var j = 0; j < formElements[i].length; j++)
{
if (formElements[i].options[j].selected == true) sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
}
}
else
{
sXml += name+"="+encodeURIComponent(formElements[i].value);
}
}
}
}
sXml +="</q></xjxquery>";
return sXml;
}
// Generates an XML message that xajax can understand from a javascript object
this.objectToXML = function(obj)
{
var sXml = "<xjxobj>";
for (i in obj)
{
try
{
if (i == 'constructor')
continue;
if (obj[i] && typeof(obj[i]) == 'function')
continue;
var key = i;
var value = obj[i];
if (value && typeof(value)=="object" &&
(value.constructor == Array
) && this.depth <= 50)
{
this.depth++;
value = this.objectToXML(value);
this.depth--;
}
sXml += "<e><k>"+key+"</k><v>"+value+"</v></e>";
}
catch(e)
{
if (xajaxDebug) this.DebugMessage(e);
}
}
sXml += "</xjxobj>";
return sXml;
}
// Sends a XMLHttpRequest to call the specified PHP function on the server
// * sRequestType is optional -- defaults to POST
this.call = function(sFunction, aArgs, sRequestType)
{
var i,r,postData;
if (document.body && xajaxWaitCursor)
document.body.style.cursor = 'wait';
if (xajaxStatusMessages == true) window.status = 'Sending Request...';
if (xajaxDebug) this.DebugMessage("Starting xajax...");
if (sRequestType == null) {
var xajaxRequestType = xajaxDefinedPost;
}
else {
var xajaxRequestType = sRequestType;
}
var uri = xajaxRequestUri;
var value;
switch(xajaxRequestType)
{
case xajaxDefinedGet:{
var uriGet = uri.indexOf("?")==-1?"?xajax="+encodeURIComponent(sFunction):"&xajax="+encodeURIComponent(sFunction);
if (aArgs) {
for (i = 0; i<aArgs.length; i++)
{
value = aArgs[i];
if (typeof(value)=="object")
value = this.objectToXML(value);
uriGet += "&xajaxargs[]="+encodeURIComponent(value);
}
}
uriGet += "&xajaxr=" + new Date().getTime();
uri += uriGet;
postData = null;
} break;
case xajaxDefinedPost:{
postData = "xajax="+encodeURIComponent(sFunction);
postData += "&xajaxr="+new Date().getTime();
if (aArgs) {
for (i = 0; i <aArgs.length; i++)
{
value = aArgs[i];
if (typeof(value)=="object")
value = this.objectToXML(value);
postData = postData+"&xajaxargs[]="+encodeURIComponent(value);
}
}
} break;
default:
alert("Illegal request type: " + xajaxRequestType); return false; break;
}
r = this.getRequestObject();
if (!r) return false;
r.open(xajaxRequestType==xajaxDefinedGet?"GET":"POST", uri, true);
if (xajaxRequestType == xajaxDefinedPost)
{
try
{
r.setRequestHeader("Method", "POST " + uri + " HTTP/1.5");
r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
catch(e)
{
alert("Your browser does not appear to support asynchronous requests using POST.");
return false;
}
}
r.onreadystatechange = function()
{
if (r.readyState != 4)
return;
if (r.status==200)
{
if (xajaxDebug && r.responseText.length < 1000) xajax.DebugMessage("Received:\n" + r.responseText);
else if (xajaxDebug) xajax.DebugMessage("Received:\n" + r.responseText.substr(0,1000)+"...\n[long response]\n...</xajax>");
if (r.responseXML)
xajax.processResponse(r.responseXML);
else {
alert("Error: the XML response that was returned from the server is invalid.");
document.body.style.cursor = 'default';
if (xajaxStatusMessages == true) window.status = 'Invalid XML response error';
}
}
delete r;
}
if (xajaxDebug) this.DebugMessage("Calling "+sFunction +" uri="+uri+" (post:"+ postData +")");
r.send(postData);
if (xajaxStatusMessages == true) window.status = 'Waiting for data...';
delete r;
return true;
}
//Gets the text as it would be if it were being retrieved from
//the innerHTML property in the current browser
this.getBrowserHTML = function(html)
{
tmpXajax = this.$(this.workId);
if (tmpXajax == null)
{
tmpXajax = document.createElement("div");
tmpXajax.setAttribute('id',this.workId);
tmpXajax.style.display = "none";
tmpXajax.style.visibility = "hidden";
document.body.appendChild(tmpXajax);
}
tmpXajax.innerHTML = html;
var browserHTML = tmpXajax.innerHTML;
tmpXajax.innerHTML = '';
return browserHTML;
}
// Tests if the new Data is the same as the extant data
this.willChange = function(element, attribute, newData)
{
if (!document.body)
{
return true;
}
var oldData;
if (attribute == "innerHTML")
{
newData = this.getBrowserHTML(newData);
}
eval("oldData=document.getElementById('"+element+"')."+attribute);
if (newData != oldData)
return true;
return false;
}
//Process XML xajaxResponses returned from the request
this.processResponse = function(xml)
{
if (xajaxStatusMessages == true) window.status = 'Processing...';
var tmpXajax = null;
xml = xml.documentElement;
if (xml == null) {
alert("Error: the XML response that was returned from the server cannot be processed.");
document.body.style.cursor = 'default';
if (xajaxStatusMessages == true) window.status = 'XML response processing error';
return;
}
for (i=0; i<xml.childNodes.length; i++)
{
if (xml.childNodes[i].nodeName == "cmd")
{
var cmd;
var id;
var property;
var data;
var search;
var type;
var before;
for (j=0; j<xml.childNodes[i].attributes.length; j++)
{
if (xml.childNodes[i].attributes[j].name == "n")
{
cmd = xml.childNodes[i].attributes[j].value;
}
if (xml.childNodes[i].attributes[j].name == "t")
{
id = xml.childNodes[i].attributes[j].value;
}
if (xml.childNodes[i].attributes[j].name == "p")
{
property = xml.childNodes[i].attributes[j].value;
}
if (xml.childNodes[i].attributes[j].name == "c")
{
type = xml.childNodes[i].attributes[j].value;
}
}
if (xml.childNodes[i].childNodes.length > 1)
{
for (j=0; j<xml.childNodes[i].childNodes.length; j++)
{
if (xml.childNodes[i].childNodes[j].nodeName == "s")
{
if (xml.childNodes[i].childNodes[j].firstChild)
search = xml.childNodes[i].childNodes[j].firstChild.nodeValue;
}
if (xml.childNodes[i].childNodes[j].nodeName == "r")
{
if (xml.childNodes[i].childNodes[j].firstChild)
data = xml.childNodes[i].childNodes[j].firstChild.data;
}
}
}
else if (xml.childNodes[i].firstChild)
data = xml.childNodes[i].firstChild.nodeValue;
else
data = "";
var objElement = this.$(id);
try
{
if (cmd=="al")
{
alert(data);
}
if (cmd=="js")
{
eval(data);
}
if (cmd=="in")
{
this.include(data);
}
if (cmd=="as")
{
if (this.willChange(id,property,data))
{
eval("objElement."+property+"=data;");
}
}
if (cmd=="ap")
{
eval("objElement."+property+"+=data;");
}
if (cmd=="pp")
{
eval("objElement."+property+"=data+objElement."+property);
}
if (cmd=="rp")
{
this.replace(id,property,search,data)
}
if (cmd=="rm")
{
this.remove(id);
}
if (cmd=="ce")
{
this.create(id,data,property);
}
if (cmd=="ie")
{
this.insert(id,data,property);
}
if (cmd=="ci")
{
this.createInput(id,type,data,property);
}
if (cmd=="ii")
{
this.insertInput(id,type,data,property);
}
if (cmd=="ev")
{
eval("this.$('"+id+"')."+property+"= function(){"+data+";}");
}
if (cmd=="ah")
{
this.addHandler(id, property, data);
}
if (cmd=="rh")
{
this.removeHandler(id, property, data);
}
}
catch(e)
{
alert(e);
}
delete objElement;
delete cmd;
delete id;
delete property;
delete search;
delete data;
delete type;
delete before;
}
}
delete xml;
document.body.style.cursor = 'default';
if (xajaxStatusMessages == true) window.status = 'Done';
}
}
var xajax = new Xajax();

View File

@ -0,0 +1,144 @@
<?php
// xajaxCompressJavascript() compresses the javascript code for more efficient delivery
// used internally
// $sJS is a string containing the javascript code to compress
function xajaxCompressJavascript($sJS)
{
//remove windows cariage returns
$sJS = str_replace("\r","",$sJS);
//array to store replaced literal strings
$literal_strings = array();
//explode the string into lines
$lines = explode("\n",$sJS);
//loop through all the lines, building a new string at the same time as removing literal strings
$clean = "";
$inComment = false;
$literal = "";
$inQuote = false;
$escaped = false;
$quoteChar = "";
for($i=0;$i<count($lines);$i++)
{
$line = $lines[$i];
$inNormalComment = false;
//loop through line's characters and take out any literal strings, replace them with ___i___ where i is the index of this string
for($j=0;$j<strlen($line);$j++)
{
$c = substr($line,$j,1);
$d = substr($line,$j,2);
//look for start of quote
if(!$inQuote && !$inComment)
{
//is this character a quote or a comment
if(($c=="\"" || $c=="'") && !$inComment && !$inNormalComment)
{
$inQuote = true;
$inComment = false;
$escaped = false;
$quoteChar = $c;
$literal = $c;
}
else if($d=="/*" && !$inNormalComment)
{
$inQuote = false;
$inComment = true;
$escaped = false;
$quoteChar = $d;
$literal = $d;
$j++;
}
else if($d=="//") //ignore string markers that are found inside comments
{
$inNormalComment = true;
$clean .= $c;
}
else
{
$clean .= $c;
}
}
else //allready in a string so find end quote
{
if($c == $quoteChar && !$escaped && !$inComment)
{
$inQuote = false;
$literal .= $c;
//subsitute in a marker for the string
$clean .= "___" . count($literal_strings) . "___";
//push the string onto our array
array_push($literal_strings,$literal);
}
else if($inComment && $d=="*/")
{
$inComment = false;
$literal .= $d;
//subsitute in a marker for the string
$clean .= "___" . count($literal_strings) . "___";
//push the string onto our array
array_push($literal_strings,$literal);
$j++;
}
else if($c == "\\" && !$escaped)
$escaped = true;
else
$escaped = false;
$literal .= $c;
}
}
if($inComment) $literal .= "\n";
$clean .= "\n";
}
//explode the clean string into lines again
$lines = explode("\n",$clean);
//now process each line at a time
for($i=0;$i<count($lines);$i++)
{
$line = $lines[$i];
//remove comments
$line = preg_replace("/\/\/(.*)/","",$line);
//strip leading and trailing whitespace
$line = trim($line);
//remove all whitespace with a single space
$line = preg_replace("/\s+/"," ",$line);
//remove any whitespace that occurs after/before an operator
$line = preg_replace("/\s*([!\}\{;,&=\|\-\+\*\/\)\(:])\s*/","\\1",$line);
$lines[$i] = $line;
}
//implode the lines
$sJS = implode("\n",$lines);
//make sure there is a max of 1 \n after each line
$sJS = preg_replace("/[\n]+/","\n",$sJS);
//strip out line breaks that immediately follow a semi-colon
$sJS = preg_replace("/;\n/",";",$sJS);
//curly brackets aren't on their own
$sJS = preg_replace("/[\n]*\{[\n]*/","{",$sJS);
//finally loop through and replace all the literal strings:
for($i=0;$i<count($literal_strings);$i++)
$sJS = str_replace("___".$i."___",$literal_strings[$i],$sJS);
return $sJS;
}
?>

View File

@ -0,0 +1,551 @@
function Xajax()
{
if (xajaxDebug) this.DebugMessage = function(text) { alert("Xajax Debug:\n " + text) };
this.workId = 'xajaxWork'+ new Date().getTime();
this.depth = 0;
//Get the XMLHttpRequest Object
this.getRequestObject = function()
{
if (xajaxDebug) this.DebugMessage("Initializing Request Object..");
var req;
try
{
req=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
req=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
req=null;
}
}
if(!req && typeof XMLHttpRequest != "undefined")
req = new XMLHttpRequest();
if (xajaxDebug) {
if (!req) this.DebugMessage("Request Object Instantiation failed.");
}
return req;
}
// xajax.$() is shorthand for document.getElementById()
this.$ = function(sId)
{
if (!sId) {
return null;
}
var returnObj = document.getElementById(sId);
if (xajaxDebug && !returnObj && sId != this.workId) {
this.DebugMessage("Element with the id \"" + sId + "\" not found.");
}
return returnObj;
}
// xajax.include(sFileName) dynamically includes an external javascript file
this.include = function(sFileName)
{
var objHead = document.getElementsByTagName('head');
var objScript = document.createElement('script');
objScript.type = 'text/javascript';
objScript.src = sFileName;
objHead[0].appendChild(objScript);
}
// xajax.addHandler adds an event handler to an element
this.addHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
eval("this.$('"+sElementId+"').addEventListener('"+sEvent+"',"+sFunctionName+",false);");
}
else
{
eval("this.$('"+sElementId+"').attachEvent('on"+sEvent+"',"+sFunctionName+",false);");
}
}
// xajax.removeHandler removes an event handler from an element
this.removeHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
eval("this.$('"+sElementId+"').removeEventListener('"+sEvent+"',"+sFunctionName+",false);");
}
else
{
eval("this.$('"+sElementId+"').detachEvent('on"+sEvent+"',"+sFunctionName+",false);");
}
}
// xajax.create creates a new child node under a parent
this.create = function(sParentId, sTag, sId)
{
var objParent = this.$(sParentId);
objElement = document.createElement(sTag);
objElement.setAttribute('id',sId);
objParent.appendChild(objElement);
}
// xajax.insert inserts a new node before another node
this.insert = function(sBeforeId, sTag, sId)
{
var objSibling = this.$(sBeforeId);
objElement = document.createElement(sTag);
objElement.setAttribute('id',sId);
objSibling.parentNode.insertBefore(objElement, objSibling);
}
this.getInput = function(sType, sName, sId)
{
var Obj;
if (sType == "radio" && !window.addEventListener)
{
Obj = document.createElement('<input type="radio" id="'+sId+'" name="'+sName+'">');
}
else
{
Obj = document.createElement('input');
Obj.setAttribute('type',sType);
Obj.setAttribute('name',sName);
Obj.setAttribute('id',sId);
}
return Obj;
}
// xajax.createInput creates a new input node under a parent
this.createInput = function(sParentId, sType, sName, sId)
{
var objParent = this.$(sParentId);
var objElement = this.getInput(sType, sName, sId);
objParent.appendChild(objElement);
}
// xajax.insertInput creates a new input node before another node
this.insertInput = function(sBeforeId, sType, sName, sId)
{
var objSibling = this.$(sBeforeId);
var objElement = this.getInput(sType, sName, sId);
objSibling.parentNode.insertBefore(objElement, objSibling);
}
// xajax.remove deletes an element
this.remove = function(sId)
{
objElement = this.$(sId);
if (objElement.parentNode && objElement.parentNode.removeChild)
{
objElement.parentNode.removeChild(objElement);
}
}
//xajax.replace searches for text in an attribute of an element and replaces it
//with a different text
this.replace = function(sId,sAttribute,sSearch,sReplace)
{
var bFunction = false;
if (sAttribute == "innerHTML")
sSearch = this.getBrowserHTML(sSearch);
eval("var txt=document.getElementById('"+sId+"')."+sAttribute);
if (typeof txt == "function")
{
txt = txt.toString();
bFunction = true;
}
if (txt.indexOf(sSearch)>-1)
{
var newTxt = '';
while (txt.indexOf(sSearch) > -1)
{
x = txt.indexOf(sSearch)+sSearch.length+1;
newTxt += txt.substr(0,x).replace(sSearch,sReplace);
txt = txt.substr(x,txt.length-x);
}
newTxt += txt;
if (bFunction)
{
eval("newTxt =" + newTxt);
eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
}
else if (this.willChange(sId,sAttribute,newTxt))
{
eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
}
}
}
// xajax.getFormValues() builds a query string XML message from the elements of a form object
this.getFormValues = function(frm)
{
var objForm;
var submitDisabledElements = false;
if (arguments.length > 1 && arguments[1] == true)
submitDisabledElements = true;
if (typeof(frm) == "string")
objForm = this.$(frm);
else
objForm = frm;
var sXml = "<xjxquery><q>";
if (objForm && objForm.tagName == 'FORM')
{
var formElements = objForm.elements;
for( var i=0; i < formElements.length; i++)
{
if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false)
continue;
if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) continue;
var name = formElements[i].name;
if (name)
{
if (sXml != '<xjxquery><q>')
sXml += '&';
if(formElements[i].type=='select-multiple')
{
for (var j = 0; j < formElements[i].length; j++)
{
if (formElements[i].options[j].selected == true) sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
}
}
else
{
sXml += name+"="+encodeURIComponent(formElements[i].value);
}
}
}
}
sXml +="</q></xjxquery>";
return sXml;
}
// Generates an XML message that xajax can understand from a javascript object
this.objectToXML = function(obj)
{
var sXml = "<xjxobj>";
for (i in obj)
{
try
{
if (i == 'constructor')
continue;
if (obj[i] && typeof(obj[i]) == 'function')
continue;
var key = i;
var value = obj[i];
if (value && typeof(value)=="object" &&
(value.constructor == Array
) && this.depth <= 50)
{
this.depth++;
value = this.objectToXML(value);
this.depth--;
}
sXml += "<e><k>"+key+"</k><v>"+value+"</v></e>";
}
catch(e)
{
if (xajaxDebug) this.DebugMessage(e);
}
}
sXml += "</xjxobj>";
return sXml;
}
// Sends a XMLHttpRequest to call the specified PHP function on the server
// * sRequestType is optional -- defaults to POST
this.call = function(sFunction, aArgs, sRequestType)
{
var i,r,postData;
if (document.body && xajaxWaitCursor)
document.body.style.cursor = 'wait';
if (xajaxStatusMessages == true) window.status = 'Sending Request...';
if (xajaxDebug) this.DebugMessage("Starting xajax...");
if (sRequestType == null) {
var xajaxRequestType = xajaxDefinedPost;
}
else {
var xajaxRequestType = sRequestType;
}
var uri = xajaxRequestUri;
var value;
switch(xajaxRequestType)
{
case xajaxDefinedGet:{
var uriGet = uri.indexOf("?")==-1?"?xajax="+encodeURIComponent(sFunction):"&xajax="+encodeURIComponent(sFunction);
if (aArgs) {
for (i = 0; i<aArgs.length; i++)
{
value = aArgs[i];
if (typeof(value)=="object")
value = this.objectToXML(value);
uriGet += "&xajaxargs[]="+encodeURIComponent(value);
}
}
uriGet += "&xajaxr=" + new Date().getTime();
uri += uriGet;
postData = null;
} break;
case xajaxDefinedPost:{
postData = "xajax="+encodeURIComponent(sFunction);
postData += "&xajaxr="+new Date().getTime();
if (aArgs) {
for (i = 0; i <aArgs.length; i++)
{
value = aArgs[i];
if (typeof(value)=="object")
value = this.objectToXML(value);
postData = postData+"&xajaxargs[]="+encodeURIComponent(value);
}
}
} break;
default:
alert("Illegal request type: " + xajaxRequestType); return false; break;
}
r = this.getRequestObject();
if (!r) return false;
r.open(xajaxRequestType==xajaxDefinedGet?"GET":"POST", uri, true);
if (xajaxRequestType == xajaxDefinedPost)
{
try
{
r.setRequestHeader("Method", "POST " + uri + " HTTP/1.5");
r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
catch(e)
{
alert("Your browser does not appear to support asynchronous requests using POST.");
return false;
}
}
r.onreadystatechange = function()
{
if (r.readyState != 4)
return;
if (r.status==200)
{
if (xajaxDebug && r.responseText.length < 1000) xajax.DebugMessage("Received:\n" + r.responseText);
else if (xajaxDebug) xajax.DebugMessage("Received:\n" + r.responseText.substr(0,1000)+"...\n[long response]\n...</xajax>");
if (r.responseXML)
xajax.processResponse(r.responseXML);
else {
alert("Error: the XML response that was returned from the server is invalid.");
document.body.style.cursor = 'default';
if (xajaxStatusMessages == true) window.status = 'Invalid XML response error';
}
}
delete r;
}
if (xajaxDebug) this.DebugMessage("Calling "+sFunction +" uri="+uri+" (post:"+ postData +")");
r.send(postData);
if (xajaxStatusMessages == true) window.status = 'Waiting for data...';
delete r;
return true;
}
//Gets the text as it would be if it were being retrieved from
//the innerHTML property in the current browser
this.getBrowserHTML = function(html)
{
tmpXajax = this.$(this.workId);
if (tmpXajax == null)
{
tmpXajax = document.createElement("div");
tmpXajax.setAttribute('id',this.workId);
tmpXajax.style.display = "none";
tmpXajax.style.visibility = "hidden";
document.body.appendChild(tmpXajax);
}
tmpXajax.innerHTML = html;
var browserHTML = tmpXajax.innerHTML;
tmpXajax.innerHTML = '';
return browserHTML;
}
// Tests if the new Data is the same as the extant data
this.willChange = function(element, attribute, newData)
{
if (!document.body)
{
return true;
}
var oldData;
if (attribute == "innerHTML")
{
newData = this.getBrowserHTML(newData);
}
eval("oldData=document.getElementById('"+element+"')."+attribute);
if (newData != oldData)
return true;
return false;
}
//Process XML xajaxResponses returned from the request
this.processResponse = function(xml)
{
if (xajaxStatusMessages == true) window.status = 'Processing...';
var tmpXajax = null;
xml = xml.documentElement;
if (xml == null) {
alert("Error: the XML response that was returned from the server cannot be processed.");
document.body.style.cursor = 'default';
if (xajaxStatusMessages == true) window.status = 'XML response processing error';
return;
}
for (i=0; i<xml.childNodes.length; i++)
{
if (xml.childNodes[i].nodeName == "cmd")
{
var cmd;
var id;
var property;
var data;
var search;
var type;
var before;
for (j=0; j<xml.childNodes[i].attributes.length; j++)
{
if (xml.childNodes[i].attributes[j].name == "n")
{
cmd = xml.childNodes[i].attributes[j].value;
}
if (xml.childNodes[i].attributes[j].name == "t")
{
id = xml.childNodes[i].attributes[j].value;
}
if (xml.childNodes[i].attributes[j].name == "p")
{
property = xml.childNodes[i].attributes[j].value;
}
if (xml.childNodes[i].attributes[j].name == "c")
{
type = xml.childNodes[i].attributes[j].value;
}
}
if (xml.childNodes[i].childNodes.length > 1)
{
for (j=0; j<xml.childNodes[i].childNodes.length; j++)
{
if (xml.childNodes[i].childNodes[j].nodeName == "s")
{
if (xml.childNodes[i].childNodes[j].firstChild)
search = xml.childNodes[i].childNodes[j].firstChild.nodeValue;
}
if (xml.childNodes[i].childNodes[j].nodeName == "r")
{
if (xml.childNodes[i].childNodes[j].firstChild)
data = xml.childNodes[i].childNodes[j].firstChild.data;
}
}
}
else if (xml.childNodes[i].firstChild)
data = xml.childNodes[i].firstChild.nodeValue;
else
data = "";
var objElement = this.$(id);
try
{
if (cmd=="al")
{
alert(data);
}
if (cmd=="js")
{
eval(data);
}
if (cmd=="in")
{
this.include(data);
}
if (cmd=="as")
{
if (this.willChange(id,property,data))
{
eval("objElement."+property+"=data;");
}
}
if (cmd=="ap")
{
eval("objElement."+property+"+=data;");
}
if (cmd=="pp")
{
eval("objElement."+property+"=data+objElement."+property);
}
if (cmd=="rp")
{
this.replace(id,property,search,data)
}
if (cmd=="rm")
{
this.remove(id);
}
if (cmd=="ce")
{
this.create(id,data,property);
}
if (cmd=="ie")
{
this.insert(id,data,property);
}
if (cmd=="ci")
{
this.createInput(id,type,data,property);
}
if (cmd=="ii")
{
this.insertInput(id,type,data,property);
}
if (cmd=="ev")
{
eval("this.$('"+id+"')."+property+"= function(){"+data+";}");
}
if (cmd=="ah")
{
this.addHandler(id, property, data);
}
if (cmd=="rh")
{
this.removeHandler(id, property, data);
}
}
catch(e)
{
alert(e);
}
delete objElement;
delete cmd;
delete id;
delete property;
delete search;
delete data;
delete type;
delete before;
}
}
delete xml;
document.body.style.cursor = 'default';
if (xajaxStatusMessages == true) window.status = 'Done';
}
}
var xajax = new Xajax();

View File

@ -0,0 +1,51 @@
<?php
/**
* @version $Id: router.php 8180 2007-07-23 05:52:29Z eddieajau $
* @package Joomla.Framework
* @subpackage Application
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();
jimport( 'joomla.application.router' );
/**
* Class to create and parse routes
*
* @package Joomla
* @since 1.5
*/
class JRouterInstallation extends JObject
{
/**
* Function to convert a route to an internal URI
*
* @access public
*/
function parse($url)
{
return true;
}
/**
* Function to convert an internal URI to a route
*
* @param string $string The internal URL
* @return string The absolute search engine friendly URL
* @since 1.5
*/
function build($url)
{
$url = str_replace('&amp;', '&', $url);
return $url;
}
}

View File

@ -0,0 +1,504 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@ -0,0 +1,104 @@
====================================================================
xajax PHP Class Library
The easiest way to develop asynchronous Ajax applications with PHP
Version 0.2 (stable release)
README Text File
------------------------------------------------------
| Release Notes: |
| http://wiki.xajaxproject.org/0.2_Release_Notes |
| |
| Lead Developers: |
| Jared White (jared@intuitivefuture.com) |
| J. Max Wilson (jmaxwilson@users.sourceforge.net) |
------------------------------------------------------
====================================================================
1. Introduction
xajax is a PHP library that you can include in your PHP scripts
to provide an easy way for Web pages to call PHP functions or
object methods using Ajax (Asynchronous Javascript And XML). Simply
register one or more functions/methods with the xajax object that
return a proper XML response using the supplied response class, add
a statement in your HTML header to print the Javascript include,
and run a request processor prior to outputting any HTML. Then add
some simple Javascript function calls to your HTML, and xajax takes
care of the rest!
xajax includes a Javascript object to facilitate the communication
between the browser and the server, and it can also be used as a
Javascript library directly to simplify certain DOM and event
manipulations. However, you can definitely choose to use a
dedicated Javascript "engine" of your liking and integrate it with
xajax's client/server communication features in a number of ways.
More tightly-coupled integration will be forthcoming in a future
version of xajax.
2. For More Information
The official xajax Web site is located at:
http://www.xajaxproject.org
Visit the xajax Forums at:
http://community.xajaxproject.org
to keep track of the latest news and participate in the community
discussion.
There is also a wiki with documentation, tips & tricks, and other
information located at:
http://wiki.xajaxproject.org
3. Installation
To run xajax, you need:
* Apache Web Server or IIS for Windows XP/2003 Server
(other servers may or may not work and are not supported at this
time)
* PHP 4.3.x or PHP 5.x
* Minimum supported browsers: Internet Explorer 5.5, Firefox 1.0 (or
equivalent Gecko-based browser), Safari 1.3, Opera 8.5 (older
versions only work with GET requests)
To install xajax:
Unpack the contents of this archive and copy them to your main Web
site folder. Or if you wish, you can put all of the files in a
dedicated "xajax" folder on your Web server (make sure that you
know what that URL is relative your site pages so you can provide
xajax with the correct installed folder URL).
Make sure that the "xajax_js" folder within the main xajax folder
is set to be writable by the Web server, since xajax will need to
compress the verbose Javascript file into a smaller file suitable
for constant Web access. Also, the "thewall" folder in the
"examples" folder needs to be writable by the Web server as well.
Within the main xajax folder there are two folders: "examples"
and "tests". You should be able to view these PHP pages from your
Web browser and see xajax working in action. If you can view the
pages but the AJAX calls are not working, there may be something
wrong with your server setup or perhaps your browser is not
supported or configured correctly. If worst comes to worst, post
a message in our forums and someone may be able to help you.
4. Documentation
Detailed documentation for the xajax PHP classes is available on
our wiki (URL listed above in section 2), and more in on the way
(particularly in regards to the Javascript component of xajax).
Another good way of learning xajax is to look at the code for the
examples and tests. If you need any help, pop in the forums and
ask for assistance (and the more specific your questions are,
the better the answers will be).
5. Contributing to xajax
xajax is released under the LGPL open source license. If you wish
to contribute to the project or suggest new features, introduce
yourself on the forums or you can e-mail the lead developers at
the addresses listed at the top of this README.
6. Good luck and enjoy!
====================================================================

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,856 @@
<?php
///////////////////////////////////////////////////////////////////////////////
// xajax.inc.php::Main xajax class and setup file
//
// xajax version 0.2
// Copyright (C) 2005 - 2006 by Jared White & J. Max Wilson
// http://xajax.sourceforge.net
//
// xajax is an open source PHP class library for easily creating powerful
// PHP-driven, web-based AJAX Applications. Using xajax, you can asynchronously
// call PHP functions and update the content of your your webpage without
// reloading the page.
//
// xajax is released under the terms of the LGPL license
// http://www.gnu.org/copyleft/lesser.html#SEC3
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
///////////////////////////////////////////////////////////////////////////////
// Define XAJAX_DEFAULT_CHAR_ENCODING that is used by both
// the xajax and xajaxResponse classes
if (!defined ('XAJAX_DEFAULT_CHAR_ENCODING')) {
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8' );
}
require_once(dirname( __FILE__ ).DIRECTORY_SEPARATOR."xajaxResponse.inc.php");
// Communication Method Defines
if (!defined ('XAJAX_GET'))
{
define ('XAJAX_GET', 0);
}
if (!defined ('XAJAX_POST'))
{
define ('XAJAX_POST', 1);
}
// the xajax class generates the xajax javascript for your page including the
// javascript wrappers for the PHP functions that you want to call from your page.
// It also handles processing and executing the command messages in the xml responses
// sent back to your page from your PHP functions.
class xajax
{
var $aFunctions; // Array of PHP functions that will be callable through javascript wrappers
var $aObjects; // Array of object callbacks that will allow Javascript to call PHP methods (key=function name)
var $aFunctionRequestTypes; // Array of RequestTypes to be used with each function (key=function name)
var $aFunctionIncludeFiles; // Array of Include Files for any external functions (key=function name)
var $sCatchAllFunction; // Name of the PHP function to call if no callable function was found
var $sPreFunction; // Name of the PHP function to call before any other function
var $sRequestURI; // The URI for making requests to the xajax object
var $bDebug; // Show debug messages (true/false)
var $bExitAllowed; // Allow xajax to exit after processing a request (true/false)
var $bErrorHandler; // Use an special xajax error handler so the errors are sent to the browser properly
var $sLogFile; // Specify if xajax should log errors (and more information in a future release)
var $sWrapperPrefix; // The prefix to prepend to the javascript wraper function name
var $bStatusMessages; // Show debug messages (true/false)
var $bWaitCursor; // Use wait cursor in browser (true/false)
var $bCleanBuffer; // Clean all output buffers before outputting response (true/false)
var $aObjArray; // Array for parsing complex objects
var $iPos; // Position in $aObjArray
var $sEncoding; // The Character Encoding to use
// Contructor
// $sRequestURI - defaults to the current page
// $sWrapperPrefix - defaults to "xajax_";
// $sEncoding - defaults to XAJAX_DEFAULT_CHAR_ENCODING defined above
// $bDebug Mode - defaults to false
// usage: $xajax = new xajax();
function xajax($sRequestURI="",$sWrapperPrefix="xajax_",$sEncoding=XAJAX_DEFAULT_CHAR_ENCODING,$bDebug=false)
{
$this->aFunctions = array();
$this->aObjects = array();
$this->aFunctionIncludeFiles = array();
$this->sRequestURI = $sRequestURI;
if ($this->sRequestURI == "")
$this->sRequestURI = $this->_detectURI();
$this->sWrapperPrefix = $sWrapperPrefix;
$this->setCharEncoding($sEncoding);
$this->bDebug = $bDebug;
$this->bWaitCursor = true;
$this->bExitAllowed = true;
$this->bErrorHandler = false;
$this->sLogFile = "";
$this->bCleanBuffer = true;
}
// setRequestURI() sets the URI to which requests will be made
// usage: $xajax->setRequestURI("http://xajax.sourceforge.net");
function setRequestURI($sRequestURI)
{
$this->sRequestURI = $sRequestURI;
}
// debugOn() enables debug messages for xajax
function debugOn()
{
$this->bDebug = true;
}
// debugOff() disables debug messages for xajax (default behavior)
function debugOff()
{
$this->bDebug = false;
}
// statusMessagesOn() enables messages in the statusbar for xajax
function statusMessagesOn()
{
$this->bStatusMessages = true;
}
// statusMessagesOff() disables messages in the statusbar for xajax (default behavior)
function statusMessagesOff()
{
$this->bStatusMessages = false;
}
// waitCursor() enables the wait cursor to be displayed in the browser (default behavior)
function waitCursorOn()
{
$this->bWaitCursor = true;
}
// waitCursorOff() disables the wait cursor to be displayed in the browser
function waitCursorOff()
{
$this->bWaitCursor = false;
}
// exitAllowedOn() enables xajax to exit immediately after processing a request
// and sending the response back to the browser (default behavior)
function exitAllowedOn()
{
$this->bExitAllowed = true;
}
// exitAllowedOff() disables xajax's default behavior of exiting immediately
// after processing a request and sending the response back to the browser
function exitAllowedOff()
{
$this->bExitAllowed = false;
}
// errorHandlerOn() turns on xajax's error handling system so that PHP errors
// that occur during a request are trapped and pushed to the browser in the
// form of a Javascript alert
function errorHandlerOn()
{
$this->bErrorHandler = true;
}
// errorHandlerOff() turns off xajax's error handling system (default behavior)
function errorHandlerOff()
{
$this->bErrorHandler = false;
}
// setLogFile() specifies a log file that will be written to by xajax during
// a request (used only by the error handling system at present). If you don't
// invoke this method, or you pass in "", then no log file will be written to.
// usage: $xajax->setLogFile("/xajax_logs/errors.log");
function setLogFile($sFilename)
{
$this->sLogFile = $sFilename;
}
// cleanBufferOn() causes xajax to clean out all output buffers before outputting
// a response (default behavior)
function cleanBufferOn()
{
$this->bCleanBuffer = true;
}
// cleanBufferOff() turns off xajax's output buffer cleaning
function cleanBufferOff()
{
$this->bCleanBuffer = false;
}
// setWrapperPrefix() sets the prefix that will be appended to the Javascript
// wrapper functions (default is "xajax_").
function setWrapperPrefix($sPrefix)
{
$this->sWrapperPrefix = $sPrefix;
}
// setCharEncoding() sets the character encoding to be used by xajax
// usage: $xajax->setCharEncoding("utf-8");
// *Note: to change the default character encoding for all xajax responses, set
// the XAJAX_DEFAULT_CHAR_ENCODING constant near the beginning of the xajax.inc.php file
function setCharEncoding($sEncoding)
{
$this->sEncoding = $sEncoding;
}
// registerFunction() registers a PHP function or method to be callable through
// xajax in your Javascript. If you want to register a function, pass in the name
// of that function. If you want to register a static class method, pass in an array
// like so:
// array("myFunctionName", "myClass", "myMethod")
// For an object instance method, use an object variable for the second array element
// (and in PHP 4 make sure you put an & before the variable to pass the object by
// reference). Note: the function name is what you call via Javascript, so it can be
// anything as long as it doesn't conflict with any other registered function name.
//
// $mFunction is a string containing the function name or an object callback array
// $sRequestType is the RequestType (XAJAX_GET/XAJAX_POST) that should be used
// for this function. Defaults to XAJAX_POST.
// usage: $xajax->registerFunction("myFunction");
// or: $xajax->registerFunction(array("myFunctionName", &$myObject, "myMethod"));
function registerFunction($mFunction,$sRequestType=XAJAX_POST)
{
if (is_array($mFunction)) {
$this->aFunctions[$mFunction[0]] = 1;
$this->aFunctionRequestTypes[$mFunction[0]] = $sRequestType;
$this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
}
else {
$this->aFunctions[$mFunction] = 1;
$this->aFunctionRequestTypes[$mFunction] = $sRequestType;
}
}
// registerExternalFunction() registers a PHP function to be callable through xajax
// which is located in some other file. If the function is requested the external
// file will be included to define the function before the function is called
// $mFunction is a string containing the function name or an object callback array
// see registerFunction() for more info on object callback arrays
// $sIncludeFile is a string containing the path and filename of the include file
// $sRequestType is the RequestType (XAJAX_GET/XAJAX_POST) that should be used
// for this function. Defaults to XAJAX_POST.
// usage: $xajax->registerExternalFunction("myFunction","myFunction.inc.php",XAJAX_POST);
function registerExternalFunction($mFunction,$sIncludeFile,$sRequestType=XAJAX_POST)
{
$this->registerFunction($mFunction, $sRequestType);
if (is_array($mFunction)) {
$this->aFunctionIncludeFiles[$mFunction[0]] = $sIncludeFile;
}
else {
$this->aFunctionIncludeFiles[$mFunction] = $sIncludeFile;
}
}
// registerCatchAllFunction() registers a PHP function to be called when xajax cannot
// find the function being called via Javascript. Because this is technically
// impossible when using "wrapped" functions, the catch-all feature is only useful
// when you're directly using the xajax.call() Javascript method. Use the catch-all
// feature when you want more dynamic ability to intercept unknown calls and handle
// them in a custom way.
// $mFunction is a string containing the function name or an object callback array
// see registerFunction() for more info on object callback arrays
// usage: $xajax->registerCatchAllFunction("myCatchAllFunction");
function registerCatchAllFunction($mFunction)
{
if (is_array($mFunction)) {
$this->sCatchAllFunction = $mFunction[0];
$this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
}
else {
$this->sCatchAllFunction = $mFunction;
}
}
// registerPreFunction() registers a PHP function to be called before xajax calls
// the requested function. xajax will automatically add the request function's response
// to the pre-function's response to create a single response. Another feature is
// the ability to return not just a response, but an array with the first element
// being false (a boolean) and the second being the response. In this case, the
// pre-function's response will be returned to the browser without xajax calling
// the requested function.
// $mFunction is a string containing the function name or an object callback array
// see registerFunction() for more info on object callback arrays
// usage $xajax->registerPreFunction("myPreFunction");
function registerPreFunction($mFunction)
{
if (is_array($mFunction)) {
$this->sPreFunction = $mFunction[0];
$this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
}
else {
$this->sPreFunction = $mFunction;
}
}
// returns true if xajax can process the request, false if otherwise
// you can use this to determine if xajax needs to process the request or not
function canProcessRequests()
{
if ($this->getRequestMode() != -1) return true;
return false;
}
// returns the current request mode, or -1 if there is none
function getRequestMode()
{
if (!empty($_GET["xajax"]))
return XAJAX_GET;
if (!empty($_POST["xajax"]))
return XAJAX_POST;
return -1;
}
// processRequests() is the main communications engine of xajax
// The engine handles all incoming xajax requests, calls the apporiate PHP functions
// and passes the xml responses back to the javascript response handler
// if your RequestURI is the same as your web page then this function should
// be called before any headers or html has been sent.
// usage: $xajax->processRequests()
function processRequests()
{
$requestMode = -1;
$sFunctionName = "";
$bFoundFunction = true;
$bFunctionIsCatchAll = false;
$sFunctionNameForSpecial = "";
$aArgs = array();
$sPreResponse = "";
$bEndRequest = false;
$sResponse = "";
$requestMode = $this->getRequestMode();
if ($requestMode == -1) return;
if ($requestMode == XAJAX_POST)
{
$sFunctionName = $_POST["xajax"];
if (!empty($_POST["xajaxargs"]))
$aArgs = $_POST["xajaxargs"];
}
else
{
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header("Content-type: text/xml");
$sFunctionName = $_GET["xajax"];
if (!empty($_GET["xajaxargs"]))
$aArgs = $_GET["xajaxargs"];
}
// Use xajax error handler if necessary
if ($this->bErrorHandler) {
$GLOBALS['xajaxErrorHandlerText'] = "";
set_error_handler("xajaxErrorHandler");
}
if ($this->sPreFunction) {
if (!$this->_isFunctionCallable($this->sPreFunction)) {
$bFoundFunction = false;
$objResponse = new xajaxResponse();
$objResponse->addAlert("Unknown Pre-Function ". $this->sPreFunction);
$sResponse = $objResponse->getXML();
}
}
//include any external dependencies associated with this function name
if (array_key_exists($sFunctionName,$this->aFunctionIncludeFiles))
{
ob_start();
include_once($this->aFunctionIncludeFiles[$sFunctionName]);
ob_end_clean();
}
if ($bFoundFunction) {
$sFunctionNameForSpecial = $sFunctionName;
if (!array_key_exists($sFunctionName, $this->aFunctions))
{
if ($this->sCatchAllFunction) {
$sFunctionName = $this->sCatchAllFunction;
$bFunctionIsCatchAll = true;
}
else {
$bFoundFunction = false;
$objResponse = new xajaxResponse();
$objResponse->addAlert("Unknown Function $sFunctionName.");
$sResponse = $objResponse->getXML();
}
}
else if ($this->aFunctionRequestTypes[$sFunctionName] != $requestMode)
{
$bFoundFunction = false;
$objResponse = new xajaxResponse();
$objResponse->addAlert("Incorrect Request Type.");
$sResponse = $objResponse->getXML();
}
}
if ($bFoundFunction)
{
for ($i = 0; $i < sizeof($aArgs); $i++)
{
// If magic quotes is on, then we need to strip the slashes from the args
if (get_magic_quotes_gpc() == 1 && is_string($aArgs[$i])) {
$aArgs[$i] = stripslashes($aArgs[$i]);
}
if (stristr($aArgs[$i],"<xjxobj>") != false)
{
$aArgs[$i] = $this->_xmlToArray("xjxobj",$aArgs[$i]);
}
else if (stristr($aArgs[$i],"<xjxquery>") != false)
{
$aArgs[$i] = $this->_xmlToArray("xjxquery",$aArgs[$i]);
}
}
if ($this->sPreFunction) {
$mPreResponse = $this->_callFunction($this->sPreFunction, array($sFunctionNameForSpecial, $aArgs));
if (is_array($mPreResponse) && $mPreResponse[0] === false) {
$bEndRequest = true;
$sPreResponse = $mPreResponse[1];
}
else {
$sPreResponse = $mPreResponse;
}
if (is_a($sPreResponse, "xajaxResponse")) {
$sPreResponse = $sPreResponse->getXML();
}
if ($bEndRequest) $sResponse = $sPreResponse;
}
if (!$bEndRequest) {
if (!$this->_isFunctionCallable($sFunctionName)) {
$objResponse = new xajaxResponse();
$objResponse->addAlert("The Registered Function $sFunctionName Could Not Be Found.");
$sResponse = $objResponse->getXML();
}
else {
if ($bFunctionIsCatchAll) {
$aArgs = array($sFunctionNameForSpecial, $aArgs);
}
$sResponse = $this->_callFunction($sFunctionName, $aArgs);
}
if (is_a($sResponse, "xajaxResponse")) {
$sResponse = $sResponse->getXML();
}
if (!is_string($sResponse) || strpos($sResponse, "<xjx>") === FALSE) {
$objResponse = new xajaxResponse();
$objResponse->addAlert("No XML Response Was Returned By Function $sFunctionName.");
$sResponse = $objResponse->getXML();
}
else if ($sPreResponse != "") {
$sNewResponse = new xajaxResponse();
$sNewResponse->loadXML($sPreResponse);
$sNewResponse->loadXML($sResponse);
$sResponse = $sNewResponse->getXML();
}
}
}
$sContentHeader = "Content-type: text/xml;";
if ($this->sEncoding && strlen(trim($this->sEncoding)) > 0)
$sContentHeader .= " charset=".$this->sEncoding;
header($sContentHeader);
if ($this->bErrorHandler && !empty( $GLOBALS['xajaxErrorHandlerText'] )) {
$sErrorResponse = new xajaxResponse();
$sErrorResponse->addAlert("** PHP Error Messages: **" . $GLOBALS['xajaxErrorHandlerText']);
if ($this->sLogFile) {
$fH = @fopen($this->sLogFile, "a");
if (!$fH) {
$sErrorResponse->addAlert("** Logging Error **\n\nxajax was unable to write to the error log file:\n" . $this->sLogFile);
}
else {
fwrite($fH, "** xajax Error Log - " . strftime("%b %e %Y %I:%M:%S %p") . " **" . $GLOBALS['xajaxErrorHandlerText'] . "\n\n\n");
fclose($fH);
}
}
$sErrorResponse->loadXML($sResponse);
$sResponse = $sErrorResponse->getXML();
}
if ($this->bCleanBuffer) while (@ob_end_clean());
print $sResponse;
if ($this->bErrorHandler) restore_error_handler();
if ($this->bExitAllowed)
exit();
}
// printJavascript() prints the xajax javascript code into your page by printing
// the output of the getJavascript() method. It should only be called between the
// <head> </head> tags in your HTML page. Remember, if you only want to obtain the
// result of this function, use getJavascript() instead.
// $sJsURI is the relative address of the folder where xajax has been installed.
// For instance, if your PHP file is "http://www.myserver.com/myfolder/mypage.php"
// and xajax was installed in "http://www.myserver.com/anotherfolder", then
// $sJsURI should be set to "../anotherfolder". Defaults to assuming xajax is in
// the same folder as your PHP file.
// $sJsFile is the relative folder/file pair of the xajax Javascript engine located
// within the xajax installation folder. Defaults to xajax_js/xajax.js.
// usage:
// <head>
// ...
// < ?php $xajax->printJavascript(); ? >
function printJavascript($sJsURI="", $sJsFile=NULL, $sJsFullFilename=NULL)
{
print $this->getJavascript($sJsURI, $sJsFile, $sJsFullFilename);
}
// getJavascript() returns the xajax javascript code that should be added to
// your HTML page between the <head> </head> tags. See printJavascript()
// for information about the function arguments.
// usage:
// < ?php $xajaxJSHead = $xajax->getJavascript(); ? >
// <head>
// ...
// < ?php echo $xajaxJSHead; ? >
function getJavascript($sJsURI="", $sJsFile=NULL, $sJsFullFilename=NULL)
{
if ($sJsFile == NULL) $sJsFile = "xajax_js/xajax.js";
if ($sJsURI != "" && substr($sJsURI, -1) != "/") $sJsURI .= "/";
$html = "\t<script type=\"text/javascript\">\n";
$html .= "var xajaxRequestUri=\"".$this->sRequestURI."\";\n";
$html .= "var xajaxDebug=".($this->bDebug?"true":"false").";\n";
$html .= "var xajaxStatusMessages=".($this->bStatusMessages?"true":"false").";\n";
$html .= "var xajaxWaitCursor=".($this->bWaitCursor?"true":"false").";\n";
$html .= "var xajaxDefinedGet=".XAJAX_GET.";\n";
$html .= "var xajaxDefinedPost=".XAJAX_POST.";\n";
foreach($this->aFunctions as $sFunction => $bExists) {
$html .= $this->_wrap($sFunction,$this->aFunctionRequestTypes[$sFunction]);
}
$html .= "</script>\n";
// Create a compressed file if necessary
if ($sJsFullFilename) {
$realJsFile = $sJsFullFilename;
}
else {
$realPath = realpath(dirname(__FILE__));
$realJsFile = $realPath . "/". $sJsFile;
}
$srcFile = str_replace(".js", "_uncompressed.js", $realJsFile);
if (!file_exists($srcFile)) {
trigger_error("The xajax uncompressed Javascript file could not be found in the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
}
if ($this->bDebug) {
if (!@copy($srcFile, $realJsFile)) {
trigger_error("The xajax uncompressed javascript file could not be copied to the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
}
}
else if (!file_exists($realJsFile)) {
require(dirname($realJsFile) . "/xajaxCompress.php");
$javaScript = implode('', file($srcFile));
$compressedScript = xajaxCompressJavascript($javaScript);
$fH = @fopen($realJsFile, "w");
if (!$fH) {
trigger_error("The xajax compressed javascript file could not be written in the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
}
else {
fwrite($fH, $compressedScript);
fclose($fH);
}
}
$html .= "\t<script type=\"text/javascript\" src=\"" . $sJsURI . $sJsFile . "\"></script>\n";
return $html;
}
// _detectURL() returns the current URL based upon the SERVER vars
// used internally
function _detectURI() {
$aURL = array();
// Try to get the request URL
if (!empty($_SERVER['REQUEST_URI'])) {
$aURL = parse_url($_SERVER['REQUEST_URI']);
}
// Fill in the empty values
if (empty($aURL['scheme'])) {
if (!empty($_SERVER['HTTP_SCHEME'])) {
$aURL['scheme'] = $_SERVER['HTTP_SCHEME'];
} else {
$aURL['scheme'] = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') ? 'https' : 'http';
}
}
if (empty($aURL['host'])) {
if (!empty($_SERVER['HTTP_HOST'])) {
if (strpos($_SERVER['HTTP_HOST'], ':') > 0) {
list($aURL['host'], $aURL['port']) = explode(':', $_SERVER['HTTP_HOST']);
} else {
$aURL['host'] = $_SERVER['HTTP_HOST'];
}
} else if (!empty($_SERVER['SERVER_NAME'])) {
$aURL['host'] = $_SERVER['SERVER_NAME'];
} else {
print "xajax Error: xajax failed to automatically identify your Request URI.";
print "Please set the Request URI explicitly when you instantiate the xajax object.";
exit();
}
}
if (empty($aURL['port']) && !empty($_SERVER['SERVER_PORT'])) {
$aURL['port'] = $_SERVER['SERVER_PORT'];
}
if (empty($aURL['path'])) {
if (!empty($_SERVER['PATH_INFO'])) {
$sPath = parse_url($_SERVER['PATH_INFO']);
} else {
$sPath = parse_url(str_replace(array('"', '<', '>', "'"), '', $_SERVER["PHP_SELF"]));
}
$aURL['path'] = $sPath['path'];
unset($sPath);
}
if (!empty($aURL['query'])) {
$aURL['query'] = '?'.$aURL['query'];
}
// Build the URL: Start with scheme, user and pass
$sURL = $aURL['scheme'].'://';
if (!empty($aURL['user'])) {
$sURL.= $aURL['user'];
if (!empty($aURL['pass'])) {
$sURL.= ':'.$aURL['pass'];
}
$sURL.= '@';
}
// Add the host
$sURL.= $aURL['host'];
// Add the port if needed
if (!empty($aURL['port']) && (($aURL['scheme'] == 'http' && $aURL['port'] != 80) || ($aURL['scheme'] == 'https' && $aURL['port'] != 443))) {
$sURL.= ':'.$aURL['port'];
}
// Add the path and the query string
$sURL.= $aURL['path'].@$aURL['query'];
// Clean up
unset($aURL);
return $sURL;
}
// returns true if the function name is associated with an object callback,
// false if not.
// user internally
function _isObjectCallback($sFunction)
{
if (array_key_exists($sFunction, $this->aObjects)) return true;
return false;
}
// return true if the function or object callback can be called, false if not
// user internally
function _isFunctionCallable($sFunction)
{
if ($this->_isObjectCallback($sFunction)) {
if (is_object($this->aObjects[$sFunction][0])) {
return method_exists($this->aObjects[$sFunction][0], $this->aObjects[$sFunction][1]);
}
else {
return is_callable($this->aObjects[$sFunction]);
}
}
else {
return function_exists($sFunction);
}
}
// calls the function, class method, or object method with the supplied arguments
// user internally
function _callFunction($sFunction, $aArgs)
{
if ($this->_isObjectCallback($sFunction)) {
$mReturn = call_user_func_array($this->aObjects[$sFunction], $aArgs);
}
else {
$mReturn = call_user_func_array($sFunction, $aArgs);
}
return $mReturn;
}
// generates the javascript wrapper for the specified PHP function
// used internally
function _wrap($sFunction,$sRequestType=XAJAX_POST)
{
$js = "function ".$this->sWrapperPrefix."$sFunction(){return xajax.call(\"$sFunction\", arguments, ".$sRequestType.");}\n";
return $js;
}
// _xmlToArray() takes a string containing xajax xjxobj xml or xjxquery xml
// and builds an array representation of it to pass as an argument to
// the php function being called. Returns an array.
// used internally
function _xmlToArray($rootTag, $sXml)
{
$aArray = array();
$sXml = str_replace("<$rootTag>","<$rootTag>|~|",$sXml);
$sXml = str_replace("</$rootTag>","</$rootTag>|~|",$sXml);
$sXml = str_replace("<e>","<e>|~|",$sXml);
$sXml = str_replace("</e>","</e>|~|",$sXml);
$sXml = str_replace("<k>","<k>|~|",$sXml);
$sXml = str_replace("</k>","|~|</k>|~|",$sXml);
$sXml = str_replace("<v>","<v>|~|",$sXml);
$sXml = str_replace("</v>","|~|</v>|~|",$sXml);
$sXml = str_replace("<q>","<q>|~|",$sXml);
$sXml = str_replace("</q>","|~|</q>|~|",$sXml);
$this->aObjArray = explode("|~|",$sXml);
$this->iPos = 0;
$aArray = $this->_parseObjXml($rootTag);
return $aArray;
}
// _parseObjXml() is a recursive function that generates an array from the
// contents of $this->aObjArray. Returns an array.
// used internally
function _parseObjXml($rootTag)
{
$aArray = array();
if ($rootTag == "xjxobj")
{
while(!stristr($this->aObjArray[$this->iPos],"</xjxobj>"))
{
$this->iPos++;
if(stristr($this->aObjArray[$this->iPos],"<e>"))
{
$key = "";
$value = null;
$this->iPos++;
while(!stristr($this->aObjArray[$this->iPos],"</e>"))
{
if(stristr($this->aObjArray[$this->iPos],"<k>"))
{
$this->iPos++;
while(!stristr($this->aObjArray[$this->iPos],"</k>"))
{
$key .= $this->aObjArray[$this->iPos];
$this->iPos++;
}
}
if(stristr($this->aObjArray[$this->iPos],"<v>"))
{
$this->iPos++;
while(!stristr($this->aObjArray[$this->iPos],"</v>"))
{
if(stristr($this->aObjArray[$this->iPos],"<xjxobj>"))
{
$value = $this->_parseObjXml("xjxobj");
$this->iPos++;
}
else
{
$value .= $this->aObjArray[$this->iPos];
}
$this->iPos++;
}
}
$this->iPos++;
}
$aArray[$key]=$value;
}
}
}
if ($rootTag == "xjxquery")
{
$sQuery = "";
$this->iPos++;
while(!stristr($this->aObjArray[$this->iPos],"</xjxquery>"))
{
if (stristr($this->aObjArray[$this->iPos],"<q>") || stristr($this->aObjArray[$this->iPos],"</q>"))
{
$this->iPos++;
continue;
}
$sQuery .= $this->aObjArray[$this->iPos];
$this->iPos++;
}
parse_str($sQuery, $aArray);
// If magic quotes is on, then we need to strip the slashes from the
// array values because of the parse_str pass which adds slashes
if (get_magic_quotes_gpc() == 1) {
$newArray = array();
foreach ($aArray as $sKey => $sValue) {
if (is_string($sValue))
$newArray[$sKey] = stripslashes($sValue);
else
$newArray[$sKey] = $sValue;
}
$aArray = $newArray;
}
}
return $aArray;
}
}// end class xajax
// xajaxErrorHandler() is registered with PHP's set_error_handler() function if
// the xajax error handling system is turned on
// used by the xajax class
function xajaxErrorHandler($errno, $errstr, $errfile, $errline)
{
$errorReporting = error_reporting();
if ($errorReporting == 0) return;
if ($errno == E_NOTICE) {
$errTypeStr = "NOTICE";
}
else if ($errno == E_WARNING) {
$errTypeStr = "WARNING";
}
else if ($errno == E_USER_NOTICE) {
$errTypeStr = "USER NOTICE";
}
else if ($errno == E_USER_WARNING) {
$errTypeStr = "USER WARNING";
}
else if ($errno == E_USER_ERROR) {
$errTypeStr = "USER FATAL ERROR";
}
else if ($errno == E_STRICT) {
return;
}
else {
$errTypeStr = "UNKNOWN: $errno";
}
$GLOBALS['xajaxErrorHandlerText'] .= "\n----\n[$errTypeStr] $errstr\nerror in line $errline of file $errfile";
}
?>

View File

@ -0,0 +1,301 @@
<?php
///////////////////////////////////////////////////////////////////////////////
// xajaxResponse.inc.php::xajax XML response class
//
// xajax version 0.2
// Copyright (C) 2005 - 2006 by Jared White & J. Max Wilson
// http://www.xajaxproject.org
//
// xajax is an open source PHP class library for easily creating powerful
// PHP-driven, web-based Ajax Applications. Using xajax, you can asynchronously
// call PHP functions and update the content of your your webpage without
// reloading the page.
//
// xajax is released under the terms of the LGPL license
// http://www.gnu.org/copyleft/lesser.html#SEC3
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
///////////////////////////////////////////////////////////////////////////////
/*
----------------------------------------------------------------------------
| Online documentation for this class is available on the xajax wiki at: |
| http://wiki.xajaxproject.org/Documentation:xajaxResponse.inc.php |
----------------------------------------------------------------------------
*/
// The xajaxResponse class is used to created responses to be sent back to your
// webpage. A response contains one or more command messages for updating your page.
// Currently xajax supports 17 kinds of command messages, including some common ones such as:
// * Assign - sets the specified attribute of an element in your page
// * Append - appends data to the end of the specified attribute of an element in your page
// * Prepend - prepends data to the beginning of the specified attribute of an element in your page
// * Replace - searches for and replaces data in the specified attribute of an element in your page
// * Script - runs the supplied JavaScript code
// * Alert - shows an alert box with the supplied message text
//
// *Note: elements are identified by their HTML id, so if you don't see your browser HTML display changing from the request, make sure you're using the right id names in your response.
class xajaxResponse
{
var $xml;
var $sEncoding;
// Constructor. Its main job is to set the character encoding for the response.
// $sEncoding is a string containing the character encoding string to use.
// * Note: to change the character encoding for all of the responses, set the
// XAJAX_DEFAULT_ENCODING constant near the beginning of the xajax.inc.php file
function xajaxResponse($sEncoding=XAJAX_DEFAULT_CHAR_ENCODING)
{
$this->setCharEncoding($sEncoding);
}
// setCharEncoding() sets the character encoding for the response based on
// $sEncoding, which is a string containing the character encoding to use. You
// don't need to use this method normally, since the character encoding for the
// response gets set automatically based on the XAJAX_DEFAULT_CHAR_ENCODING
// constant.
function setCharEncoding($sEncoding)
{
$this->sEncoding = $sEncoding;
}
// addAssign() adds an assign command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
// $sData is the data you want to set the attribute to
// usage: $objResponse->addAssign("contentDiv", "innerHTML", "Some Text");
function addAssign($sTarget,$sAttribute,$sData)
{
$this->xml .= $this->_cmdXML(array("n"=>"as","t"=>$sTarget,"p"=>$sAttribute),$sData);
}
// addAppend() adds an append command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
// $sData is the data you want to append to the end of the attribute
// usage: $objResponse->addAppend("contentDiv", "innerHTML", "Some New Text");
function addAppend($sTarget,$sAttribute,$sData)
{
$this->xml .= $this->_cmdXML(array("n"=>"ap","t"=>$sTarget,"p"=>$sAttribute),$sData);
}
// addPrepend() adds an prepend command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
// $sData is the data you want to prepend to the beginning of the attribute
// usage: $objResponse->addPrepend("contentDiv", "innerHTML", "Some Starting Text");
function addPrepend($sTarget,$sAttribute,$sData)
{
$this->xml .= $this->_cmdXML(array("n"=>"pp","t"=>$sTarget,"p"=>$sAttribute),$sData);
}
// addReplace() adds an replace command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
// $sSearch is a string to search for
// $sData is a string to replace the search string when found in the attribute
// usage: $objResponse->addReplace("contentDiv", "innerHTML", "text", "<b>text</b>");
function addReplace($sTarget,$sAttribute,$sSearch,$sData)
{
$sDta = "<s><![CDATA[$sSearch]]></s><r><![CDATA[$sData]]></r>";
$this->xml .= $this->_cmdXML(array("n"=>"rp","t"=>$sTarget,"p"=>$sAttribute),$sDta);
}
// addClear() adds an clear command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sAttribute is the part of the element you wish to clear ("innerHTML", "value", etc.)
// usage: $objResponse->addClear("contentDiv", "innerHTML");
function addClear($sTarget,$sAttribute)
{
$this->addAssign($sTarget,$sAttribute,'');
}
// addAlert() adds an alert command message to the XML response
// $sMsg is the text to be displayed in the Javascript alert box
// usage: $objResponse->addAlert("This is important information");
function addAlert($sMsg)
{
$this->xml .= $this->_cmdXML(array("n"=>"al"),$sMsg);
}
// addRedirect() uses the addScript() method to add a Javascript redirect to
// another URL
// $sURL is the URL to redirect the client browser to
// usage: $objResponse->addRedirect("http://www.xajaxproject.org");
function addRedirect($sURL)
{
$this->addScript('window.location = "'.rawurlencode($sURL).'";');
}
// addScript() adds a Javascript command message to the XML response
// $sJS is a string containing Javascript code to be executed
// usage: $objResponse->addScript("var x = prompt('get some text');");
function addScript($sJS)
{
$this->xml .= $this->_cmdXML(array("n"=>"js"),$sJS);
}
// addRemove() adds a remove element command message to the XML response
// $sTarget is a string containing the id of an HTML element to be removed
// from your page
// usage: $objResponse->addRemove("Div2");
function addRemove($sTarget)
{
$this->xml .= $this->_cmdXML(array("n"=>"rm","t"=>$sTarget),'');
}
// addCreate() adds a create element command message to the XML response
// $sParent is a string containing the id of an HTML element to which the new
// element will be appended.
// $sTag is the tag to be added
// $sId is the id to be assigned to the new element
// $sType has been deprecated, use the addCreateInput() method instead
// usage: $objResponse->addCreate("parentDiv", "h3", "myid");
function addCreate($sParent, $sTag, $sId, $sType="")
{
if ($sType)
{
trigger_error("The \$sType parameter of addCreate has been deprecated. Use the addCreateInput() method instead.", E_USER_WARNING);
return;
}
$this->xml .= $this->_cmdXML(array("n"=>"ce","t"=>$sParent,"p"=>$sId),$sTag);
}
// addInsert() adds an insert element command message to the XML response
// $sBefore is a string containing the id of the child before which the new element
// will be inserted
// $sTag is the tag to be added
// $sId is the id to be assigned to the new element
// usage: $objResponse->addInsert("childDiv", "h3", "myid");
function addInsert($sBefore, $sTag, $sId)
{
$this->xml .= $this->_cmdXML(array("n"=>"ie","t"=>$sBefore,"p"=>$sId),$sTag);
}
// addCreateInput() adds a create input command message to the XML response
// $sParent is a string containing the id of an HTML element to which the new
// input will be appended
// $sType is the type of input to be created (text, radio, checkbox, etc.)
// $sName is the name to be assigned to the new input and the variable name when it is submitted
// $sId is the id to be assigned to the new input
// usage: $objResponse->addCreateInput("form1", "text", "username", "input1");
function addCreateInput($sParent, $sType, $sName, $sId)
{
$this->xml .= $this->_cmdXML(array("n"=>"ci","t"=>$sParent,"p"=>$sId,"c"=>$sType),$sName);
}
// addInsertInput() adds an insert input command message to the XML response
// $sBefore is a string containing the id of the child before which the new element
// will be inserted
// $sType is the type of input to be created (text, radio, checkbox, etc.)
// $sName is the name to be assigned to the new input and the variable name when it is submitted
// $sId is the id to be assigned to the new input
// usage: $objResponse->addInsertInput("input5", "text", "username", "input1");
function addInsertInput($sBefore, $sType, $sName, $sId)
{
$this->xml .= $this->_cmdXML(array("n"=>"ii","t"=>$sBefore,"p"=>$sId,"c"=>$sType),$sName);
}
// addEvent() adds an event command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sEvent is the event you wish to set ("click", "mouseover", etc.)
// $sScript is the Javascript string you want to the event to invoke
// usage: $objResponse->addEvent("contentDiv", "click", "alert(\'Hello World\');");
function addEvent($sTarget,$sEvent,$sScript)
{
$this->xml .= $this->_cmdXML(array("n"=>"ev","t"=>$sTarget,"p"=>$sEvent),$sScript);
}
// addHandler() adds a handler command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sEvent is the event you wish to set ("click", "mouseover", etc.)
// $sHandler is a string containing the name of a Javascript function
// that will handle the event. Multiple handlers can be added for the same event
// usage: $objResponse->addHandler("contentDiv", "click", "content_click");
function addHandler($sTarget,$sEvent,$sHandler)
{
$this->xml .= $this->_cmdXML(array("n"=>"ah","t"=>$sTarget,"p"=>$sEvent),$sHandler);
}
// addRemoveHandler() adds a remove handler command message to the XML response
// $sTarget is a string containing the id of an HTML element
// $sEvent is the event you wish to remove ("click", "mouseover", etc.)
// $sHandler is a string containing the name of a Javascript handler function
// that you want to remove
// usage: $objResponse->addRemoveHandler("contentDiv", "click", "content_click");
function addRemoveHandler($sTarget,$sEvent,$sHandler)
{
$this->xml .= $this->_cmdXML(array("n"=>"rh","t"=>$sTarget,"p"=>$sEvent),$sHandler);
}
// addIncludeScript() adds an include script command message to the XML response
// $sFileName is a URL of the Javascript file to include
// usage: $objResponse->addIncludeScript("functions.js");
function addIncludeScript($sFileName)
{
$this->xml .= $this->_cmdXML(array("n"=>"in"),$sFileName);
}
// getXML() returns the XML to be returned from your function to the xajax
// processor on your page. Since xajax 0.2, you can also return an xajaxResponse
// object from your function directly, and xajax will automatically request the
// XML using this method call.
// usage: return $objResponse->getXML();
function getXML()
{
$sXML = "<?xml version=\"1.0\"";
if ($this->sEncoding && strlen(trim($this->sEncoding)) > 0)
$sXML .= " encoding=\"".$this->sEncoding."\"";
$sXML .= " ?"."><xjx>" . $this->xml . "</xjx>";
return $sXML;
}
// loadXML() adds the commands of the provided response XML output to this
// response object
// $sXML is the response XML (returned from a getXML() method) to add to the
// end of this response object
// usage: $r1 = $objResponse1->getXML();
// $objResponse2->loadXML($r1);
// return $objResponse2->getXML();
function loadXML($sXML)
{
$sNewXML = "";
$iStartPos = strpos($sXML, "<xjx>") + 5;
$sNewXML = substr($sXML, $iStartPos);
$iEndPos = strpos($sNewXML, "</xjx>");
$sNewXML = substr($sNewXML, 0, $iEndPos);
$this->xml .= $sNewXML;
}
// private method, used internally
function _cmdXML($aAttributes, $sData)
{
$xml = "<cmd";
foreach($aAttributes as $sAttribute => $sValue)
$xml .= " $sAttribute=\"$sValue\"";
if ($sData && !stristr($sData,'<![CDATA['))
$xml .= "><![CDATA[$sData]]></cmd>";
else if ($sData)
$xml .= ">$sData</cmd>";
else
$xml .= "></cmd>";
return $xml;
}
}// end class xajaxResponse
?>

View File

@ -0,0 +1,36 @@
<?php
/**
* @version $Id: index.php 10381 2008-06-01 03:35:53Z pasamio $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software and parts of it may contain or be derived from the
* GNU General Public License or other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
define( '_JEXEC', 1 );
define( 'JPATH_BASE', dirname( __FILE__ ) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
// create the mainframe object
$mainframe =& JFactory::getApplication('installation');
// initialuse the application
$mainframe->initialise();
// render the application
$mainframe->render();
/**
* RETURN THE RESPONSE
*/
echo JResponse::toString();

View File

@ -0,0 +1,393 @@
<?php
/**
* @version $Id: controller.php 10381 2008-06-01 03:35:53Z pasamio $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
/**
* @package Joomla
* @subpackage Installation
*/
jimport('joomla.application.component.controller');
require_once( dirname(__FILE__).DS.'models'.DS.'model.php');
require_once( dirname(__FILE__).DS.'views'.DS.'install'.DS.'view.php');
class JInstallationController extends JController
{
var $_model = null;
var $_view = null;
/**
* Constructor
*/
function __construct( $config = array() )
{
$config['name'] = 'JInstallation';
parent::__construct( $config );
}
/**
*
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function dbconfig()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->dbConfig() )
{
$view->error();
return false;
}
$view->dbConfig();
return true;
}
/**
* Overload the parent controller method to add a check for configuration variables
* when a task has been provided
*
* @param String $task Task to perform
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function execute($task)
{
global $mainframe;
// Sanity check
if ( $task && ( $task != 'lang' ) && ( $task != 'removedir' ) )
{
/**
* To get past this point, a cookietest must be carried in the user's state.
* If the state is not set, then cookies are probably disabled.
**/
$goodEnoughForMe = $mainframe->getUserState('application.cookietest');
if ( ! $goodEnoughForMe )
{
$model =& $this->getModel();
$model->setError(JText::_('WARNCOOKIESNOTENABLED'));
$view =& $this->getView();
$view->error();
return false;
}
}
else
{
// Zilch the application registry - start from scratch
$session =& JFactory::getSession();
$registry =& $session->get('registry');
$registry->makeNameSpace('application');
// Set the cookie test seed
$mainframe->setUserState('application.cookietest', 1);
}
parent::execute($task);
}
/**
* Initialize data for the installation
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function initialize()
{
return true;
}
/**
* Present form for FTP information
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function ftpconfig()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->ftpConfig() )
{
$view->error();
return false;
}
$view->ftpConfig();
return true;
}
/**
* Get the model for the installer component
*
* @return JInstallerModel
* @access protected
* @since 1.5
*/
function & getModel()
{
if ( ! $this->_model )
{
$this->_model = new JInstallationModel();
}
return $this->_model;
}
/**
* Get the view for the installer component
*
* @return JInstallerView
* @access protected
* @since 1.5
*/
function & getView()
{
if ( ! $this->_view )
{
$this->_view = new JInstallationView();
$model =& $this->getModel();
$model->test = "blah";
$this->_view->setModel($model, true);
}
return $this->_view;
}
/**
* Present license information
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function license()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->license() )
{
$view->error();
return false;
}
$view->license();
return true;
}
/**
* Present a choice of languages
*
* Step One!
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function lang()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->chooseLanguage() )
{
$view->error();
return false;
}
$view->chooseLanguage();
return true;
}
/**
*
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function makedb()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->makeDB())
{
$view->error();
return false;
}
if ( ! $model->ftpConfig( 1 ) )
{
$view->error();
return false;
}
$view->ftpConfig();
return true;
}
/**
* Present the main configuration options
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function mainconfig()
{
//$this->dumpLoad();
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->mainConfig() )
{
$view->error();
return false;
}
$view->mainConfig();
return true;
}
/**
* Present a preinstall check
*
* Step Two!
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function preinstall()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->preInstall() )
{
$view->error();
return true;
}
$view->preInstall();
return true;
}
/**
* Remove directory messages
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function removedir()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->removedir() )
{
$view->error();
return true;
}
$view->removedir();
return true;
}
/**
*
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function saveconfig()
{
$model =& $this->getModel();
$view =& $this->getView();
if ( ! $model->saveConfig() )
{
$view->error();
return false;
}
if ( ! $model->finish() )
{
$view->error();
return false;
}
$view->finish();
return true;
}
function dumpLoad() {
$model =& $this->getModel();
$model->dumpLoad();
}
function migration() {
$model =& $this->getModel();
$model->setData('back', 'mainconfig');
$view =& $this->getView();
if(!$model->checkUpload()) {
$view->error();
return false;
}
$view->migrateScreen();
return true;
}
function postmigrate() {
$model =& $this->getModel();
$view =& $this->getView();
if($model->postMigrate()) {
// errors!
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,42 @@
<?php
/**
* @version $Id: installer.php 10381 2008-06-01 03:35:53Z pasamio $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
defined('_JEXEC') or die('Restricted access');
$here = dirname(__FILE__);
require_once( $here.DS.'controller.php');
require_once( $here.DS.'helper.php');
// Get the controller
$config = array();
// check on proper task:
// lang for installation
// removedir for remove directory message
if (file_exists( JPATH_CONFIGURATION . DS . 'configuration.php' ) && (filesize( JPATH_CONFIGURATION . DS . 'configuration.php' ) > 10) && file_exists( JPATH_INSTALLATION . DS . 'index.php' )) {
$config['default_task'] = 'removedir';
} else {
$config['default_task'] = 'lang';
}
$controller = new JInstallationController($config);
$controller->initialize();
// Set some paths
$controller->addViewPath ( $here.DS.'views' );
$controller->addModelPath( $here.DS.'models' );
// Process the request
$task = JRequest::getCmd( 'task' );
$controller->execute( $task );

View File

@ -0,0 +1,368 @@
<?php
/**
* @version $Id: jajax.php 10833 2008-08-28 10:37:50Z eddieajau $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
define( '_JEXEC', 1 );
//Global definitions
define( 'DS', DIRECTORY_SEPARATOR );
//Joomla framework path definitions
$parts = explode( DS, dirname(__FILE__) );
array_pop( $parts );
define( 'JPATH_BASE', implode( DS, $parts ) );
array_pop( $parts );
define( 'JPATH_ROOT', implode( DS, $parts ) );
define( 'JPATH_SITE', JPATH_ROOT );
define( 'JPATH_CONFIGURATION', JPATH_ROOT );
define( 'JPATH_LIBRARIES', JPATH_ROOT . DS . 'libraries' );
define( 'JXPATH_BASE', JPATH_BASE.DS.'includes' );
// Make sure that Joomla! is not yet installed
if (file_exists(JPATH_CONFIGURATION.DS.'configuration.php') && (filesize(JPATH_CONFIGURATION.DS.'configuration.php') > 10)) {
header( 'Location: ../../index.php' );
exit();
}
// System includes
require_once( JPATH_LIBRARIES .DS.'joomla'.DS.'import.php');
require_once( JPATH_BASE . DS. 'installer' . DS . 'helper.php' );
// Require the xajax library
require_once (JXPATH_BASE.DS.'xajax'.DS.'xajax.inc.php');
$xajax = new xajax();
$xajax->errorHandlerOn();
$xajax->registerFunction(array('getFtpRoot', 'JAJAXHandler', 'ftproot'));
$xajax->registerFunction(array('FTPVerify', 'JAJAXHandler', 'ftpverify'));
$xajax->registerFunction(array('instDefault', 'JAJAXHandler', 'sampledata'));
JError::setErrorHandling(E_ERROR, 'callback', array('JAJAXHandler','handleError'));
JError::setErrorHandling(E_WARNING, 'callback', array('JAJAXHandler','handleError'));
JError::setErrorHandling(E_NOTICE, 'callback', array('JAJAXHandler','handleError'));
require_once(JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'utilities'.DS.'compat'.DS.'compat.php');
/**
* AJAX Task handler class
*
* @static
* @package Joomla
* @subpackage Installer
* @since 1.5
*/
class JAJAXHandler
{
/**
* Method to get the path from the FTP root to the Joomla root directory
*/
function ftproot($args)
{
jimport( 'joomla.application.application' );
jimport( 'joomla.registry.registry' );
$lang = new JAJAXLang($args['lang']);
// $lang->setDebug(true);
$objResponse = new xajaxResponse();
$args = $args['vars'];
$root = JInstallationHelper::findFtpRoot($args['ftpUser'], $args['ftpPassword'], $args['ftpHost'], $args['ftpPort']);
if (JError::isError($root)) {
$objResponse->addScript('document.getElementById(\'ftpdisable\').checked = true;');
$objResponse->addAlert($lang->_($root->get('message')));
} else {
$objResponse->addAssign('ftproot', 'value', $root);
$objResponse->addAssign('rootPath', 'style.display', '');
$objResponse->addScript('document.getElementById(\'verifybutton\').click();');
}
return $objResponse;
}
/**
* Method to verify the ftp values are valid
*/
function ftpverify($args)
{
jimport( 'joomla.application.application' );
jimport( 'joomla.registry.registry' );
$lang = new JAJAXLang($args['lang']);
// $lang->setDebug(true);
$objResponse = new xajaxResponse();
$args = $args['vars'];
$status = JInstallationHelper::FTPVerify($args['ftpUser'], $args['ftpPassword'], $args['ftpRoot'], $args['ftpHost'], $args['ftpPort']);
if (JError::isError($status)) {
if (($msg = $status->get('message')) != 'INVALIDROOT') {
$msg = $lang->_('INVALIDFTP') ."\n". $lang->_($msg);
} else {
$msg = $lang->_($msg);
}
$objResponse->addScript('document.getElementById(\'ftpdisable\').checked = true;');
$objResponse->addAlert($msg);
} else {
$objResponse->addScript('document.getElementById(\'ftpenable\').checked = true;');
$objResponse->addAlert($lang->_('VALIDFTP'));
}
return $objResponse;
}
/**
* Method to load and execute a sql script
*/
function sampledata($args)
{
jimport( 'joomla.database.database');
jimport( 'joomla.language.language');
jimport( 'joomla.registry.registry');
$errors = null;
$msg = '';
$objResponse = new xajaxResponse();
$lang = new JAJAXLang($args['lang']);
// $lang->setDebug(true);
/*
* execute the default sample data file
*/
$type = $args['DBtype'];
if ($type == 'mysqli') {
$type = 'mysql';
}
$dbsample = '../sql'.DS.$type.DS.'sample_data.sql';
$db = & JInstallationHelper::getDBO($args['DBtype'], $args['DBhostname'], $args['DBuserName'], $args['DBpassword'], $args['DBname'], $args['DBPrefix']);
$result = JInstallationHelper::populateDatabase($db, $dbsample, $errors);
/*
* prepare sql error messages if returned from populate
*/
if (!is_null($errors)){
foreach($errors as $error){
$msg .= stripslashes( $error['msg'] );
$msg .= chr(13)."-------------".chr(13);
$txt = '<textarea cols="35" rows="5" name="instDefault" readonly="readonly" >'.$lang->_('Database Errors Reported').chr(13).$msg.'</textarea>';
}
} else {
// consider other possible errors from populate
$msg = $result == 0 ? $lang->_("Sample data installed successfully") : $lang->_("Error installing SQL script") ;
$txt = '<input size="35" name="instDefault" value="'.$msg.'" readonly="readonly" />';
}
$objResponse->addAssign("theDefault", "innerHTML", $txt);
return $objResponse;
}
/**
* Handle a raised error : for now just silently return
*
* @access private
* @param object $error JError object
* @return object $error JError object
* @since 1.5
*/
function &handleError(&$error)
{
return $error;
}
}
/**
* Languages/translation handler class
*
* @package Joomla.Framework
* @subpackage I18N
* @since 1.5
*/
class JAJAXLang extends JObject
{
/**
* Debug language, If true, highlights if string isn't found
*
* @var boolean
* @access protected
*/
var $_debug = false;
/**
* Identifying string of the language
*
* @var string
* @access protected
*/
var $_identifyer = null;
/**
* The language to load
*
* @var string
* @access protected
*/
var $_lang = null;
/**
* Transaltions
*
* @var array
* @access protected
*/
var $_strings = null;
/**
* Constructor activating the default information of the language
*
* @access protected
*/
function __construct($lang = null)
{
$this->_strings = array ();
if ($lang == null) {
$lang = 'en-GB';
}
$this->_lang= $lang;
$this->load();
}
/**
* Translator function, mimics the php gettext (alias _) function
*
* @access public
* @param string $string The string to translate
* @param boolean $jsSafe Make the result javascript safe
* @return string The translation of the string
*/
function _($string, $jsSafe = false)
{
//$key = str_replace( ' ', '_', strtoupper( trim( $string ) ) );echo '<br />'.$key;
$key = strtoupper($string);
$key = substr($key, 0, 1) == '_' ? substr($key, 1) : $key;
if (isset ($this->_strings[$key])) {
$string = $this->_debug ? "&bull;".$this->_strings[$key]."&bull;" : $this->_strings[$key];
} else {
if (defined($string)) {
$string = $this->_debug ? "!!".constant($string)."!!" : constant($string);
} else {
$string = $this->_debug ? "??".$string."??" : $string;
}
}
if ($jsSafe) {
$string = addslashes($string);
}
return $string;
}
/**
* Loads a single language file and appends the results to the existing strings
*
* @access public
* @param string $prefix The prefix
* @param string $basePath The basepath to use
* $return boolean True, if the file has successfully loaded.
*/
function load( $prefix = '', $basePath = JPATH_BASE )
{
$path = JAJAXLang::getLanguagePath( $basePath, $this->_lang);
$filename = empty( $prefix ) ? $this->_lang : $this->_lang . '.' . $prefix ;
$result = false;
$newStrings = $this->_load( $path.DS.$filename.'.ini' );
if (is_array($newStrings)) {
$this->_strings = array_merge( $this->_strings, $newStrings);
$result = true;
}
return $result;
}
/**
* Loads a language file and returns the parsed values
*
* @access private
* @param string The name of the file
* @return mixed Array of parsed values if successful, boolean False if failed
*/
function _load( $filename )
{
if ($content = @file_get_contents( $filename )) {
if( $this->_identifyer === null ) {
$this->_identifyer = basename( $filename, '.ini' );
}
$registry = new JRegistry();
$registry->loadINI($content);
return $registry->toArray( );
}
return false;
}
/**
* Set the Debug property
*
* @access public
*/
function setDebug($debug) {
$this->_debug = $debug;
}
/**
* Determines is a key exists
*
* @access public
* @param key $key The key to check
* @return boolean True, if the key exists
*/
function hasKey($key) {
return isset ($this->_strings[strtoupper($key)]);
}
/**
* Get the path to a language
*
* @access public
* @param string $basePath The basepath to use
* @param string $language The language tag
* @return string language related path or null
*/
function getLanguagePath($basePath = JPATH_BASE, $language = null )
{
$dir = $basePath.DS.'language';
if (isset ($language)) {
$dir .= DS.$language;
}
return $dir;
}
}
/*
* Process the AJAX requests
*/
$xajax->cleanBufferOff(); //Needed for suPHP compilance
$xajax->processRequests();

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,956 @@
<?php
/**
* @version $Id: model.php 12694 2009-09-11 21:03:02Z ian $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
/**
* @package Joomla
* @subpackage Installation
*/
jimport('joomla.application.component.model');
class JInstallationModel extends JModel
{
/**
* Array used to store data between model and view
*
* @var Array
* @access protected
* @since 1.5
*/
var $data = array();
/**
* Array used to store user input created during the installation process
*
* @var Array
* @access protected
* @since 1.5
*/
var $vars = array();
/**
* Constructor
*/
function __construct($config = array())
{
$this->_state = new JObject();
//set the view name
if (empty( $this->_name ))
{
if (isset($config['name'])) {
$this->_name = $config['name'];
}
else
{
$r = null;
if (!preg_match('/Model(.*)/i', get_class($this), $r)) {
JError::raiseError (500, "JModel::__construct() : Can't get or parse class name.");
}
$this->_name = strtolower( $r[1] );
}
}
}
/**
* Generate a panel of language choices for the user to select their language
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function chooseLanguage()
{
global $mainframe;
$vars =& $this->getVars();
jimport('joomla.language.helper');
$native = JLanguageHelper::detectLanguage();
$forced = $mainframe->getLocalise();
if ( !empty( $forced['lang'] ) ){
$native = $forced['lang'];
}
$lists = array ();
$lists['langs'] = JLanguageHelper::createLanguageList($native);
$this->setData('lists', $lists);
return true;
}
/**
* Gets the parameters for database creation
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function dbConfig()
{
global $mainframe;
$vars =& $this->getVars();
if (!isset ($vars['DBPrefix'])) {
$vars['DBPrefix'] = 'jos_';
}
$lists = array ();
$files = array ('mysql', 'mysqli',);
$db = JInstallationHelper::detectDB();
foreach ($files as $file)
{
$option = array ();
$option['text'] = $file;
if (strcasecmp($option['text'], $db) == 0)
{
$option['selected'] = 'selected="true"';
}
$lists['dbTypes'][] = $option;
}
$doc =& JFactory::getDocument();
$this->setData('lists', $lists);
return true;
}
/**
* Displays the finish screen
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function finish()
{
global $mainframe;
$vars =& $this->getVars();
$vars['siteurl'] = JURI::root();
$vars['adminurl'] = $vars['siteurl'].'administrator/';
return true;
}
/**
* Gets ftp configuration parameters
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function ftpConfig($DBcreated = '0')
{
global $mainframe;
$vars =& $this->getVars();
// Require the xajax library
require_once( JPATH_BASE.DS.'includes'.DS.'xajax'.DS.'xajax.inc.php' );
// Instantiate the xajax object and register the function
$xajax = new xajax(JURI::base().'installer/jajax.php');
$xajax->registerFunction(array('getFtpRoot', 'JAJAXHandler', 'ftproot'));
$xajax->registerFunction(array('FTPVerify', 'JAJAXHandler', 'ftpverify'));
//$xajax->debugOn();
$vars['DBcreated'] = JArrayHelper::getValue($vars, 'DBcreated', $DBcreated);
$strip = get_magic_quotes_gpc();
if (!isset ($vars['ftpEnable'])) {
$vars['ftpEnable'] = '1';
}
if (!isset ($vars['ftpHost'])) {
$vars['ftpHost'] = '127.0.0.1';
}
if (!isset ($vars['ftpPort'])) {
$vars['ftpPort'] = '21';
}
if (!isset ($vars['ftpUser'])) {
$vars['ftpUser'] = '';
}
if (!isset ($vars['ftpPassword'])) {
$vars['ftpPassword'] = '';
}
$doc =& JFactory::getDocument();
$doc->addCustomTag($xajax->getJavascript('', 'includes/js/xajax.js', 'includes/js/xajax.js'));
return true;
}
/**
* Get data for later use
*
* @return string
* @access public
* @since 1.5
*/
function & getData($key){
if ( ! array_key_exists($key, $this->data) )
{
$null = null;
return $null;
}
return $this->data[$key];
}
/**
* Get the local PHP settings
*
* @param $val Value to get
* @return Mixed
* @access protected
* @since 1.5
*/
function getPhpSetting($val) {
$r = (ini_get($val) == '1' ? 1 : 0);
return $r ? 'ON' : 'OFF';
}
/**
* Get the configuration variables for the installation
*
* @return Array Configuration variables
* @access public
* @since 1.5
*/
function & getVars()
{
if ( ! $this->vars )
{
// get a recursively slash stripped version of post
$post = (array) JRequest::get( 'post' );
$postVars = JArrayHelper::getValue( $post, 'vars', array(), 'array' );
$session =& JFactory::getSession();
$registry =& $session->get('registry');
$registry->loadArray($postVars, 'application');
$this->vars = $registry->toArray('application');
}
return $this->vars;
}
/**
* Gets the parameters for database creation
*
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function license()
{
return true;
}
/**
* Gets the parameters for database creation
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function makeDB($vars = false)
{
global $mainframe;
// Initialize variables
if ($vars === false) {
$vars = $this->getVars();
}
$errors = null;
$lang = JArrayHelper::getValue($vars, 'lang', 'en-GB');
$DBcreated = JArrayHelper::getValue($vars, 'DBcreated', '0');
$DBtype = JArrayHelper::getValue($vars, 'DBtype', 'mysql');
$DBhostname = JArrayHelper::getValue($vars, 'DBhostname', '');
$DBuserName = JArrayHelper::getValue($vars, 'DBuserName', '');
$DBpassword = JArrayHelper::getValue($vars, 'DBpassword', '');
$DBname = JArrayHelper::getValue($vars, 'DBname', '');
$DBPrefix = JArrayHelper::getValue($vars, 'DBPrefix', 'jos_');
$DBOld = JArrayHelper::getValue($vars, 'DBOld', 'bu');
$DBversion = JArrayHelper::getValue($vars, 'DBversion', '');
// these 3 errors should be caught by the javascript in dbConfig
if ($DBtype == '')
{
$this->setError(JText::_('validType'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
//return JInstallationView::error($vars, JText::_('validType'), 'dbconfig');
}
if (!$DBhostname || !$DBuserName || !$DBname)
{
$this->setError(JText::_('validDBDetails'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
//return JInstallationView::error($vars, JText::_('validDBDetails'), 'dbconfig');
}
if ($DBname == '')
{
$this->setError(JText::_('emptyDBName'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
//return JInstallationView::error($vars, JText::_('emptyDBName'), 'dbconfig');
}
if (!preg_match( '#^[a-zA-Z]+[a-zA-Z0-9_]*$#', $DBPrefix )) {
$this->setError(JText::_('MYSQLPREFIXINVALIDCHARS'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
}
if (strlen($DBPrefix) > 15) {
$this->setError(JText::_('MYSQLPREFIXTOOLONG'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
}
if (strlen($DBname) > 64) {
$this->setError(JText::_('MYSQLDBNAMETOOLONG'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
}
if (!$DBcreated)
{
$DBselect = false;
$db = & JInstallationHelper::getDBO($DBtype, $DBhostname, $DBuserName, $DBpassword, null, $DBPrefix, $DBselect);
if ( JError::isError($db) ) {
// connection failed
$this->setError(JText::sprintf('WARNNOTCONNECTDB', $db->toString()));
$this->setData('back', 'dbconfig');
$this->setData('errors', $db->toString());
return false;
}
if ($err = $db->getErrorNum()) {
// connection failed
$this->setError(JText::sprintf('WARNNOTCONNECTDB', $db->getErrorNum()));
$this->setData('back', 'dbconfig');
$this->setData('errors', $db->getErrorMsg());
return false;
}
//Check utf8 support of database
$DButfSupport = $db->hasUTF();
// Try to select the database
if ( ! $db->select($DBname) )
{
if (JInstallationHelper::createDatabase($db, $DBname, $DButfSupport))
{
$db->select($DBname);
/*
// make the new connection to the new database
$db = NULL;
$db = & JInstallationHelper::getDBO($DBtype, $DBhostname, $DBuserName, $DBpassword, $DBname, $DBPrefix);
*/
} else {
$this->setError(JText::sprintf('WARNCREATEDB', $DBname));
$this->setData('back', 'dbconfig');
$this->setData('errors', $db->getErrorMsg());
return false;
//return JInstallationView::error($vars, array (JText::sprintf('WARNCREATEDB', $DBname)), 'dbconfig', $error);
}
} else {
// pre-existing database - need to set character set to utf8
// will only affect MySQL 4.1.2 and up
JInstallationHelper::setDBCharset($db, $DBname);
}
$db = & JInstallationHelper::getDBO($DBtype, $DBhostname, $DBuserName, $DBpassword, $DBname, $DBPrefix);
if ($DBOld == 'rm') {
if (JInstallationHelper::deleteDatabase($db, $DBname, $DBPrefix, $errors)) {
$this->setError(JText::_('WARNDELETEDB'));
$this->setData('back', 'dbconfig');
$this->setData('errors', $errors);
return false;
//return JInstallationView::error($vars, , 'dbconfig', JInstallationHelper::errors2string($errors));
}
}
else
{
/*
* We assume since we aren't deleting the database that we need
* to back it up :)
*/
if (JInstallationHelper::backupDatabase($db, $DBname, $DBPrefix, $errors)) {
$this->setError(JText::_('WARNBACKINGUPDB'));
$this->setData('back', 'dbconfig');
$this->setData('errors', JInstallationHelper::errors2string($errors));
return false;
//return JInstallationView::error($vars, JText::_('WARNBACKINGUPDB'), 'dbconfig', JInstallationHelper::errors2string($errors));
}
}
$type = $DBtype;
if ($type == 'mysqli') {
$type = 'mysql';
}
// set collation and use utf-8 compatibile script if appropriate
if ($DButfSupport) {
$dbscheme = 'sql'.DS.$type.DS.'joomla.sql';
} else {
$dbscheme = 'sql'.DS.$type.DS.'joomla_backward.sql';
}
if (JInstallationHelper::populateDatabase($db, $dbscheme, $errors) > 0)
{
$this->setError(JText::_('WARNPOPULATINGDB'));
$this->setData('back', 'dbconfig');
$this->setData('errors', JInstallationHelper::errors2string($errors));
return false;
//return JInstallationView::error($vars, JText::_('WARNPOPULATINGDB'), 'dbconfig', JInstallationHelper::errors2string($errors));
}
// Load the localise.sql for translating the data in joomla.sql/joomla_backwards.sql
// This feature is available for localized version of Joomla! 1.5
jimport('joomla.filesystem.file');
$dblocalise = 'sql'.DS.$type.DS.'localise.sql';
if(JFile::exists($dblocalise)) {
if(JInstallationHelper::populateDatabase($db, $dblocalise, $errors) > 0) {
$this->setError(JText::_('WARNPOPULATINGDB'));
$this->setData('back', 'dbconfig');
$this->setData('errors', JInstallationHelper::errors2string($errors));
return false;
}
}
// Handle default backend language setting. This feature is available for
// localized versions of Joomla! 1.5.
$langfiles = $mainframe->getLocaliseAdmin();
if (in_array($lang, $langfiles['admin']) || in_array($lang, $langfiles['site'])) {
// Determine the language settings
$param[] = Array();
if (in_array($lang, $langfiles['admin'])) {
$langparam[] = "administrator=$lang";
}
if (in_array($lang, $langfiles['site'])) {
$langparam[] = "site=$lang";
}
$langparams = implode("\n", $langparam);
// Because database config has not yet been set we just
// do the trick by a plain update of the proper record.
$where[] = "`option`='com_languages'";
$where = (count($where) ? ' WHERE '.implode(' AND ', $where) : '');
$query = "UPDATE #__components " .
"SET params='$langparams'" .
$where;
$db->setQuery($query);
if (!$db->query()) {
return false;
}
}
}
return true;
}
/**
* Finishes configuration parameters
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function mainConfig()
{
global $mainframe;
$vars =& $this->getVars();
// get ftp configuration into registry for use in case of safe mode
if($vars['ftpEnable']) {
JInstallationHelper::setFTPCfg( $vars );
}
// Check a few directories are writeable as this may cause issues
if(!is_writeable(JPATH_SITE.DS.'tmp') || !is_writeable(JPATH_SITE.DS.'installation'.DS.'sql'.DS.'migration')) {
$vars['dircheck'] = JText::_('Some paths may be unwritable');
}
// Require the xajax library
require_once( JPATH_BASE.DS.'includes'.DS.'xajax'.DS.'xajax.inc.php' );
// Instantiate the xajax object and register the function
$xajax = new xajax(JURI::base().'installer/jajax.php');
$xajax->registerFunction(array('instDefault', 'JAJAXHandler', 'sampledata'));
// $xajax->debugOn();
$xajax->errorHandlerOn();
$doc =& JFactory::getDocument();
$doc->addCustomTag($xajax->getJavascript('', 'includes/js/xajax.js', 'includes/js/xajax.js'));
// Deal with possible sql script uploads from this stage
$vars['loadchecked'] = 0;
if (JRequest::getVar( 'sqlupload', 0, 'post', 'int' ) == 1)
{
$vars['sqlresponse'] = JInstallationHelper::uploadSql( $vars );
$vars['dataloaded'] = '1';
$vars['loadchecked'] = 1;
}
if ((JRequest::getVar( 'migrationupload', 0, 'post', 'int' ) == 1) && (JRequest::getVar( 'migrationUploaded', 0, 'post', 'int' ) == 0))
{
jexit(print_r(JRequest::getVar( 'migrationUploaded', 0, 'post', 'int' )));
$vars['migresponse'] = JInstallationHelper::uploadSql( $vars, true );
$vars['dataloaded'] = '1';
$vars['loadchecked'] = 2;
}
if(JRequest::getVar( 'migrationUploaded',0,'post','int') == 1) {
$vars['migresponse'] = JInstallationHelper::findMigration( $vars );
$vars['dataloaded'] = '1';
$vars['loadchecked'] = 2;
}
// $strip = get_magic_quotes_gpc();
if (isset ($vars['siteName']))
{
$vars['siteName'] = stripslashes(stripslashes($vars['siteName']));
}
$folders = array (
'administrator/backups',
'administrator/cache',
'administrator/components',
'administrator/language',
'administrator/modules',
'administrator/templates',
'cache',
'components',
'images',
'images/banners',
'images/stories',
'language',
'plugins',
'plugins/content',
'plugins/editors',
'plugins/search',
'plugins/system',
'tmp',
'modules',
'templates',
);
// Now lets make sure we have permissions set on the appropriate folders
// foreach ($folders as $folder)
// {
// if (!JInstallationHelper::setDirPerms( $folder, $vars ))
// {
// $lists['folderPerms'][] = $folder;
// }
// }
return true;
}
/**
* Perform a preinstall check
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function preInstall()
{
$vars =& $this->getVars();
$lists = array ();
$phpOptions[] = array (
'label' => JText::_('PHP version').' >= 4.3.10',
'state' => phpversion() < '4.3.10' ? 'No' : 'Yes'
);
$phpOptions[] = array (
'label' => '- '.JText::_('zlib compression support'),
'state' => extension_loaded('zlib') ? 'Yes' : 'No'
);
$phpOptions[] = array (
'label' => '- '.JText::_('XML support'),
'state' => extension_loaded('xml') ? 'Yes' : 'No',
'statetext' => extension_loaded('xml') ? 'Yes' : 'No'
);
$phpOptions[] = array (
'label' => '- '.JText::_('MySQL support'),
'state' => (function_exists('mysql_connect') || function_exists('mysqli_connect')) ? 'Yes' : 'No'
);
if (extension_loaded( 'mbstring' )) {
$mbDefLang = strtolower( ini_get( 'mbstring.language' ) ) == 'neutral';
$phpOptions[] = array (
'label' => JText::_( 'MB language is default' ),
'state' => $mbDefLang ? 'Yes' : 'No',
'notice' => $mbDefLang ? '' : JText::_( 'NOTICEMBLANGNOTDEFAULT' )
);
$mbOvl = ini_get('mbstring.func_overload') != 0;
$phpOptions[] = array (
'label' => JText::_('MB string overload off'),
'state' => !$mbOvl ? 'Yes' : 'No',
'notice' => $mbOvl ? JText::_('NOTICEMBSTRINGOVERLOAD') : ''
);
}
$sp = '';
/*$phpOptions[] = array (
'label' => JText::_('Session path set'),
'state' => ($sp = ini_get('session.save_path')) ? 'Yes' : 'No'
);
$phpOptions[] = array (
'label' => JText::_('Session path writable'),
'state' => is_writable($sp) ? 'Yes' : 'No'
);*/
$cW = (@ file_exists('../configuration.php') && @ is_writable('../configuration.php')) || is_writable('../');
$phpOptions[] = array (
'label' => 'configuration.php '.JText::_('writable'),
'state' => $cW ? 'Yes' : 'No',
'notice' => $cW ? '' : JText::_('NOTICEYOUCANSTILLINSTALL')
);
$lists['phpOptions'] = & $phpOptions;
$phpRecommended = array (
array (
JText::_('Safe Mode'),
'safe_mode',
'OFF'
),
array (
JText::_('Display Errors'),
'display_errors',
'OFF'
),
array (
JText::_('File Uploads'),
'file_uploads',
'ON'
),
array (
JText::_('Magic Quotes Runtime'),
'magic_quotes_runtime',
'OFF'
),
array (
JText::_('Register Globals'),
'register_globals',
'OFF'
),
array (
JText::_('Output Buffering'),
'output_buffering',
'OFF'
),
array (
JText::_('Session auto start'),
'session.auto_start',
'OFF'
),
);
foreach ($phpRecommended as $setting)
{
$lists['phpSettings'][] = array (
'label' => $setting[0],
'setting' => $setting[2],
'actual' => $this->getPhpSetting( $setting[1] ),
'state' => $this->getPhpSetting($setting[1]) == $setting[2] ? 'Yes' : 'No'
);
}
$this->setData('lists', $lists);
return true;
}
/**
* Remove directory messages
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function removedir()
{
return true;
}
/**
* Save the configuration information
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function saveConfig()
{
global $mainframe;
$vars =& $this->getVars();
$lang =& JFactory::getLanguage();
// Import authentication library
jimport( 'joomla.user.helper' );
// Set some needed variables
$vars['siteUrl'] = JURI::root();
$vars['secret'] = JUserHelper::genRandomPassword(16);
$vars['offline'] = JText::_( 'STDOFFLINEMSG' );
$vars['errormsg'] = JText::_( 'STDERRORMSG' );
$vars['metadesc'] = JText::_( 'STDMETADESC' );
$vars['metakeys'] = JText::_( 'STDMETAKEYS' );
$vars['tmp_path'] = JPATH_ROOT.DS.'tmp';
$vars['log_path'] = JPATH_ROOT.DS.'logs';
// set default language
$forced = $mainframe->getLocalise();
if ( empty($forced['lang']) ) {
$vars['deflang'] = 'en-GB';
$vars['bclang'] = 'english';
} else {
$vars['deflang'] = $forced['lang'];
$vars['bclang'] = $lang->getBackwardLang();
}
if ( empty( $forced['helpurl'] ) ) {
$vars['helpurl'] = 'http://help.joomla.org';
} else {
$vars['helpurl'] = $forced['helpurl'];
}
// If FTP has not been enabled, set the value to 0
if (!isset($vars['ftpEnable']))
{
$vars['ftpEnable'] = 0;
}
/*
* Trim the last slash from the FTP root, as the FTP root usually replaces JPATH_ROOT.
* If the path had a trailing slash, this would lead to double slashes, like "/joomla//configuration.php"
*/
if (isset($vars['ftpRoot'])) {
$vars['ftpRoot'] = rtrim($vars['ftpRoot'], '/');
}
switch ($vars['DBtype']) {
case 'mssql' :
$vars['ZERO_DATE'] = '1/01/1990';
break;
default :
$vars['ZERO_DATE'] = '0000-00-00 00:00:00';
break;
}
JInstallationHelper::createAdminUser($vars);
/**
* Write the configuration file
*/
jimport('joomla.template.template');
$tmpl = new JTemplate();
$tmpl->applyInputFilter('ShortModifiers');
// load the wrapper and common templates
$tmpl->setRoot( JPATH_BASE . DS . 'template' . DS. 'tmpl' );
$tmpl->readTemplatesFromFile('configuration.html');
$tmpl->addVars('configuration', $vars, 'var_');
if (empty($vars['ftpSavePass'])) {
$tmpl->addVar('configuration', 'var_ftpuser', '');
$tmpl->addVar('configuration', 'var_ftppassword', '');
}
$buffer = $tmpl->getParsedTemplate('configuration');
$path = JPATH_CONFIGURATION.DS.'configuration.php';
if (file_exists($path)) {
$canWrite = is_writable($path);
} else {
$canWrite = is_writable(JPATH_CONFIGURATION.DS);
}
/*
* If the file exists but isn't writable OR if the file doesn't exist and the parent directory
* is not writable we need to use FTP
*/
$ftpFlag = false;
if ((file_exists($path) && !is_writable($path)) || (!file_exists($path) && !is_writable(dirname($path).'/'))) {
$ftpFlag = true;
}
// Check for safe mode
if (ini_get('safe_mode'))
{
$ftpFlag = true;
}
// Enable/Disable override
if (!isset($vars['ftpEnable']) || ($vars['ftpEnable'] != 1))
{
$ftpFlag = false;
}
if ($ftpFlag == true)
{
// Connect the FTP client
jimport('joomla.client.ftp');
jimport('joomla.filesystem.path');
$ftp = & JFTP::getInstance($vars['ftpHost'], $vars['ftpPort']);
$ftp->login($vars['ftpUser'], $vars['ftpPassword']);
// Translate path for the FTP account
$file = JPath::clean(str_replace(JPATH_CONFIGURATION, $vars['ftpRoot'], $path), '/');
// Use FTP write buffer to file
if (!$ftp->write($file, $buffer)) {
$this->setData('buffer', $buffer);
return false;
}
$ftp->quit();
}
else
{
if ($canWrite) {
file_put_contents($path, $buffer);
} else {
$this->setData('buffer', $buffer);
return true;
}
}
return true;
}
/**
* Set data for later use
*
* @param string $key Data key
* @param Mixed data
* @access public
* @since 1.5
*/
function setData($key, $value){
$this->data[$key] = $value;
}
function dumpLoad() {
include (JPATH_BASE . '/includes/bigdump.php');
}
function checkUpload() {
// pie
$vars =& $this->getVars();
//print_r($vars);
$sqlFile = JRequest::getVar('sqlFile', '', 'files', 'array');
if(JRequest::getVar( 'sqlUploaded', 0, 'post', 'bool' ) == false) {
/*
* Move uploaded file
*/
// Set permissions for tmp dir
JInstallationHelper::_chmod(JPATH_SITE.DS.'tmp', 0777);
jimport('joomla.filesystem.file');
$uploaded = JFile::upload($sqlFile['tmp_name'], JPATH_SITE.DS.'tmp'.DS.$sqlFile['name']);
if(!$uploaded) {
$this->setError(JText::_('WARNUPLOADFAILURE'));
return false;
}
if( !preg_match('#\.sql$#i', $sqlFile['name']) )
{
$archive = JPATH_SITE.DS.'tmp'.DS.$sqlFile['name'];
}
else
{
$script = JPATH_SITE.DS.'tmp'.DS.$sqlFile['name'];
}
// unpack archived sql files
if (isset($archive) && $archive )
{
$package = JInstallationHelper::unpack( $archive, $vars );
if ( $package === false )
{
$this->setError(JText::_('WARNUNPACK'));
return false;
}
$script = $package['folder'].DS.$package['script'];
}
} else {
$script = JPATH_BASE . DS . 'sql' . DS . 'migration' . DS . 'migrate.sql';
}
$migration = JRequest::getVar( 'migration', 0, 'post', 'bool' );
/*
* If migration perform manipulations on script file before population
*/
if ($migration == true) {
$db = & JInstallationHelper::getDBO($vars['DBtype'], $vars['DBhostname'], $vars['DBuserName'], $vars['DBpassword'], $vars['DBname'], $vars['DBPrefix']);
$script = JInstallationHelper::preMigrate($script, $vars, $db);
if ( $script == false )
{
$this->setError(JText::_( 'Script operations failed' ));
return false;
}
} // Disable in testing */
// Ensure the script is always in the same location
if($script != JPATH_BASE . DS . 'sql' . DS . 'migration' . DS . 'migrate.sql') {
JFile::move($script, JPATH_BASE . DS . 'sql' . DS . 'migration' . DS . 'migrate.sql');
}
//$this->setData('scriptpath',$script);
$vars['dataloaded'] = '1';
$vars['loadchecked'] = '1';
$vars['migration'] = $migration;
return true;
}
function postMigrate() {
$migErrors = null;
$args =& $this->getVars();
$db = & JInstallationHelper::getDBO($args['DBtype'], $args['DBhostname'], $args['DBuserName'], $args['DBpassword'], $args['DBname'], $args['DBPrefix']);
$migResult = JInstallationHelper::postMigrate( $db, $migErrors, $args );
if(!$migResult) echo JText::_("Migration Successful");
else {
echo '<div id="installer">';
echo '<p>'.JText::_('Migration failed').':</p>';
foreach($migErrors as $error) echo '<p>'.$error['msg'].'</p>';
echo '</div>';
}
return $migResult;
}
}

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,381 @@
<?php
/**
* @version $Id: view.php 10381 2008-06-01 03:35:53Z pasamio $
* @package Joomla
* @subpackage Installation
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/**
* @package Joomla
* @subpackage Installation
*/
jimport('joomla.application.component.view');
class JInstallationView extends JView
{
/**
* The installation steps
*
* @var array
* @access protected
* @since 1.5
*/
var $_steps = null;
/**
* The templabe object
*
* @var object
* @access protected
* @since 1.5
*/
var $_template = null;
/**
* Language page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function chooseLanguage()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$lists =& $model->getData('lists');
$tmpl =& $this->getTemplate( 'language.html' );
$steps['lang'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addRows( 'lang-options', $lists['langs'] );
return $this->display();
}
/**
* Create a template object
*
* @return boolean True if successful
* @access private
* @since 1.5
*/
function _createTemplate( $bodyHtml = null, $mainHtml = 'page.html' )
{
jimport('joomla.template.template');
$this->_template = new JTemplate();
$this->_template->applyInputFilter('ShortModifiers');
// load the wrapper and common templates
$this->_template->setRoot( JPATH_BASE . DS . 'template' . DS. 'tmpl' );
$this->_template->readTemplatesFromFile( $mainHtml );
if ($bodyHtml) {
$this->_template->setAttribute( 'body', 'src', $bodyHtml );
}
}
/**
* The DB Config page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function dbConfig()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$lists =& $model->getData('lists');
$tmpl =& $this->getTemplate( 'dbconfig.html' );
$steps['dbconfig'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addRows( 'dbtype-options', $lists['dbTypes'] );
return $this->display();
}
/**
* Display the template
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function display()
{
$model =& $this->getModel();
$tmpl =& $this->getTemplate();
$lang =& JFactory::getLanguage();
$vars =& $model->getVars();
$tmpl->addVar( 'buttons', 'direction', $lang->isRTL() ? 'rtl' : 'ltr');
$tmpl->addVar( 'body', 'lang', $lang->getTag() );
$tmpl->addVars( 'body', $vars, 'var_' );
echo $tmpl->fetch( 'page' );
return true;
}
/**
* Report an error to the user
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function error()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$vars =& $model->getVars();
$tmpl =& $this->getTemplate( 'error.html' );
$msg = $model->getError();
$back = $model->getData('back');
$xmsg = $model->getData('errors');
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'messages', 'message', $msg );
if ($xmsg) {
$tmpl->addVar( 'xmessages', 'xmessage', $xmsg );
}
$tmpl->addVar( 'buttons', 'back', $back );
$tmpl->addVars( 'body', $vars, 'var_' );
return $this->display();
}
/**
* The the final page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function finish()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$vars =& $model->getVars();
$tmpl =& $this->getTemplate( 'finish.html' );
$buffer = $model->getData('buffer');
$steps['finish'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
if ($buffer) {
$tmpl->addVar( 'configuration-error', 'buffer', $buffer );
}
return $this->display();
}
/**
* Show the FTP config page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function ftpConfig()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$tmpl =& $this->getTemplate( 'ftpconfig.html' );
$steps['ftpconfig'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
return $this->display();
}
/**
* Get the installation steps
*
* @return array
* @access protected
* @since 1.5
*/
function & getSteps()
{
if ( is_null($this->_steps) )
{
$this->_steps = array(
'lang' => 'off',
'preinstall' => 'off',
'license' => 'off',
'dbconfig' => 'off',
'ftpconfig' => 'off',
'mainconfig' => 'off',
'finish' => 'off'
);
}
return $this->_steps;
}
/**
* Get the template object
*
* @param string The name of the body html file
* @return patTemplate
* @access protected
* @since 1.5
*/
function & getTemplate( $bodyHtml = null )
{
static $current;
$change = false;
// Record the current template body
if ( is_null($current) && $bodyHtml)
{
$current = $bodyHtml;
$change = true;
}
// Check if we need to create the body, possibly anew
if ( is_null( $this->_template) || $change )
{
$this->_createTemplate($bodyHtml);
}
return $this->_template;
}
/**
* The license page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function license()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$tmpl =& $this->getTemplate( 'license.html' );
$steps['license'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
return $this->display();
}
/**
* The main configuration page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function mainConfig()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$tmpl =& $this->getTemplate( 'mainconfig.html' );
$steps['mainconfig'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'buttons', 'previous', 'ftpconfig');
// $tmpl->addRows( 'folder-perms', $lists['folderPerms'] );
/*
* prepare migration encoding selection
*/
$encodings = array( 'iso-8859-1','iso-8859-2','iso-8859-3','iso-8859-4','iso-8859-5','iso-8859-6','iso-8859-7','iso-8859-8','iso-8859-9','iso-8859-10','iso-8859-13','iso-8859-14','iso-8859-15','cp874','windows-1250','windows-1251','windows-1252','windows-1253','windows-1254','windows-1255','windows-1256','windows-1257','windows-1258','utf-8','big5','euc-jp','euc-kr','euc-tw','iso-2022-cn','iso-2022-jp-2','iso-2022-jp','iso-2022-kr','iso-10646-ucs-2','iso-10646-ucs-4','koi8-r','koi8-ru','ucs2-internal','ucs4-internal','unicode-1-1-utf-7','us-ascii','utf-16' );
$tmpl->addVar( 'encoding_options', 'value', $encodings );
$max_upload_size = min(JInstallationHelper::let_to_num(ini_get('post_max_size')), JInstallationHelper::let_to_num(ini_get('upload_max_filesize')));
$tmpl->addVar( 'uploadsize', 'maxupload', JText::sprintf('UPLOADFILESIZE',(number_format($max_upload_size/(1024*1024), 2))."MB."));
return $this->display();
}
/**
* The the pre-install info page
*
* @return boolean True if successful
* @access public
* @since 1.5
*/
function preInstall()
{
$steps =& $this->getSteps();
$model =& $this->getModel();
$lists =& $model->getData('lists');
$version = new JVersion();
$tmpl =& $this->getTemplate( 'preinstall.html' );
$steps['preinstall'] = 'on';
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'body', 'version', $version->getLongVersion() );
$tmpl->addRows( 'php-options', $lists['phpOptions'] );
$tmpl->addRows( 'php-settings', $lists['phpSettings'] );
return $this->display();
}
/**
* Remove directory messages
*
* @return Boolean True if successful
* @access public
* @since 1.5
*/
function removedir()
{
$model =& $this->getModel();
$this->_createTemplate('', 'removedir.html');
$tmpl = $this->_template;
#$tmpl =& $this->getTemplate( 'removedir.html' );
return $this->display();
}
function migrateScreen() {
$steps =& $this->getSteps();
$model =& $this->getModel();
$tmpl =& $this->getTemplate( 'migration.html' );
$scriptpath =& $model->getData('scriptpath');
$tmpl->addVars( 'stepbar', $steps, 'step_' );
$tmpl->addVar( 'migration', 'migration', JRequest::getVar( 'migration', 0, 'post', 'bool' ));
$tmpl->addVar( 'buttons', 'previous', 'mainconfig');
return $this->display();
}
}
?>

View File

@ -0,0 +1,243 @@
# $Id: ca-ES.ini 1.5.9 2009 dverger ~0 $
# author joomla.cat
# copyright (C) 2005 - 2009 Open Source Matters. All rights reserved.
# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Note : All ini files need to be saved as UTF-8
ACTUAL=Real
ADMIN=Administració
ADMIN LOGIN IN MIGRATED CONTENT WAS KEPT=Administrador<br />S'han mantingut les dades de connexió del contingut migrat
ADMIN PASSWORD=Contrasenya de l'administrador
ADMIN PASSWORD IN MIGRATED CONTENT WAS KEPT=S'ha mantingut la contrasenya de l'administrador del contingut migrat
ADMINISTRATION LOGIN DETAILS=Detalls de les dades de connexió a l'administració
ADVANCED=Avançat
ADVANCED SETTINGS=Configuració avançada
ALL RIGHTS RESERVED=Tots els drets són reservats
AN ERROR HAS OCCURRED=S'ha produït un error!
AUTOFIND FTP PATH=Troba automàticament el camí de l'FTP
BACKUP OLD TABLES=Fes còpia de seguretat de les taules antigues
BASIC=Bàsic
BASIC SETTINGS=Configuració bàsica
CANT OPEN FILE FOR IMPORT=No es pot obrir el fitxer (%s) per a importar
CANTREADPOINTER=Inesperat: No es pot llegir l'òfset del punter de fitxer
CHECKDUMPFILE=Verifiqueu que el nom del fitxer d'abocament només conté caràcters alfanumèrics i canvieu-li el nom si escau.
CHECK AGAIN=Comprova de nou
CHOOSE LANGUAGE=Trieu l'idioma
CLICKTOINSTALLDEFAULT=Instal·la les dades de mostra
COLLATION=Ordre alfabètic
CONFIGURATION=Configuració
CONFPROBLEM=No es pot escriure al fitxer o directori de configuració, o bé hi ha hagut un problema en crear el fitxer de configuració. Haureu de penjar el codi següent a mà. Feu clic a l'àrea de text per a realçar tot el codi i llavors copieu-lo i enganxeu-lo en un nou fitxer, anomeneu-lo configuration.php i pengeu-lo a la carpeta arrel del lloc.
CONFTITLE=Confirmeu el correu electrònic i la contrasenya de l'administrador
CONGRATSEOF=Felicitats! S'ha arribat al final del fitxer, s'assumeix correcte
CONGRATULATIONS=Felicitats! S'ha instal·lat el Joomla!
CONNECTION FAIL=Ha fallat la connexió al servidor de bases de dades. Comproveu els noms d'amfitrió i d'usuari i la contrasenya.
CONNECTION SETTINGS=Configuració de la connexió
CONFIRM ADMIN PASSWORD=Confirma la contrasenya d'administrador
DATABASE=Base de dades
DATABASE COLLATION=Ordre alfabètic de la base de dades
DATABASE CONFIGURATION=Configuració de la base de dades
DATABASE ERRORS REPORTED=S'han donat errors de base de dades
DATABASE NAME=Nom de la base de dades
DATABASE TYPE=Tipus de la base de dades
DELAYMSG=Ara s'està esperant %s mil·lisegons abans d'iniciar la propera sessió...
DIRECTIVE=Directriu
DIRECTORY PERMISSIONS=Permisos de directori
DISPLAY ERRORS=Mostra els errors
DROP EXISTING TABLES=Elimina les taules existents
ENABLEFTPDESC=Habilita la capa de sistema de fitxers FTP
ENTERSITENAME=Introduïu el nom del vostre lloc Joomla!
ERROR=Error
ERROR INSTALLING SQL SCRIPT=S'ha produït un error en instal·lar l'script SQL
EXECUTE=Executa
FILESIZEUNKNOWN=No es pot determinar la mida de fitxer de
FILE PERMISSIONS=Permisos de fitxer
FILE UPLOADS=Càrregues de fitxer
FINALIZEINSTALL=Premeu Següent per a finalitzar la instal·lació
FINISH=Finalització
FINISHBUTTONS=<p>Feu clic al botó Lloc per a visualitzar el vostre lloc Joomla! o bé el botó Administració per a portar-vos a l'inici de sessió d'administrador.</p>
FTP CONFIGURATION=Configuració de l'FTP
FTP HOST=Amfitrió de l'FTP
FTP PASSWORD=Contrasenya de l'FTP
FTP PORT=Port de l'FTP
FTP USER=Usuari de l'FTP
FTP ROOT PATH=Camí arrel de l'FTP
GNU/GPL LICENSE=Llicència Pública General del GNU
GROUP=Grup
HOST NAME=Nom de l'amfitrió
IGNORE=Ignora
INSTALL DEFAULT SAMPLE DATA=Instal·la les dades de mostra per defecte
INSTALLATION=Instal·lació
INSTALLATIONREMOVED=Feu clic aquí quan s'hagi eliminat el directori.
INVALIDFTP=La configuració de l'FTP no és vàlida o bé el servidor d'FTP no és compatible amb el Joomla!:
INVALIDROOT=El directori d'FTP indicat no és el directori d'aquesta instal·lació del Joomla!
ISFREESOFTWARE=és un programari lliure distribuït sota la llicència GNU/GPL v2.0.
JOOMLA!=Joomla!
LANGUAGE=Idioma
LANGUAGEINFO=Al lloc d'ajuda del Joomla! trobareu una guia fàcil, pas a pas, sobre com instal·lar un paquet del vostre idioma propi al Joomla!<br/>Hi trobareu una llista amb enllaços als paquets d'idioma disponibles.<br/>Feu clic al botó de la dreta per a obrir el lloc d'ajuda en una nova finestra.
LANGUAGEBUTTONLINEONE=Joomla! amb el vostre idioma propi?
LANGUAGEBUTTONLINETWO=Visiteu el lloc d'ajuda del Joomla! per a més informació i descàrregues.
LICENSE=Llicència
LOADSAMPLEORMIGRATE=Carrega dades de mostra, restaura o migra contingut desat
LOADSQLFILE=Càrrega de fitxer SQL...espereu si us plau.
LOADSQLINSTRUCTIONS1=<strong>Important!</strong>: Es recomana que els usuaris novells del Joomla! instal·lin les dades de mostra per defecte. Això requereix que se sel·leccioni l'opció <i>i</i> es faci clic al botó abans d'anar al pas següent.
LOADSQLINSTRUCTIONS2=Abans d'acabar la instal·lació podeu omplir la base de dades del lloc amb informació. Hi ha tres opcions per a fer-ho:
LOADSQLINSTRUCTIONS3=<strong>1.</strong> Es poden inserir les <strong>dades de mostra per defecte</strong> - Per a fer això seleccioneu la primera opció i feu clic al botó Instal·la les dades de mostra.
LOADSQLINSTRUCTIONS4=<strong>2.</strong> Es pot penjar <strong>un fitxer d'script SQL compatible amb Joomla! 1.5</strong> des de la màquina local i executar-lo al lloc, ja sigui per a instal·lar dades de mostra en idioma propi, ja sigui per a restaurar una còpia de seguretat d'un Joomla! 1.5. L'script ha de tenir els prefixes de taula correctes, ser codificat en utf-8 i ser compatible amb l'esquema de base de dades del Joomla! 1.5.
LOADSQLINSTRUCTIONS5=<strong>2.b Migració del contingut des de versions anteriors del Joomla!</strong>. La selecció de l'opció "Carrega un script de migració" habilita el suport per a la migració d'abocaments de base de dades de versions del Joomla! 1.0.x antigues al nou lloc Joomla! 1.5. Les conversions necessàries es fan al vol. El fitxer d'script es pot crear automàticament al lloc antic utilitzant el component <code>com_migrator</code>.<br/> Per a més informació sobre el component i el procediment a seguir vegeu la <a href="http://docs.joomla.org/Migrating_from_1.0.x_to_1.5_Stable" target="_blank">Guia de migració del Joomla! 1.5</a>.
LOADSQLINSTRUCTIONS6=La funció de càrrega admet fitxers d'script SQL no comprimits, fitxers d'script comprimits en Zip i fitxers d'script comprimits en gz. Els fitxers comprimits només poden contenir un sol script SQL. Podeu triar l'opció "Ja he penjat l'script de migració" si trobeu que el fitxer és massa gran (es poden produir errors pel límit de memòria i de temps) i penjar el fitxer a /installation/sql/migration/ anomenant-lo <code>migrate.sql</code> (no es permet cap compressió).<br /> Finalment...
LOADSQLINSTRUCTIONS7=<strong>3. Instal·lació neta</strong> Si no desitgeu introduir dades de mostra ni migrar dades d'un lloc anterior ni penjar dades des d'una còpia de seguretat, sinó senzillament crear una instal·lació completament neta, una vegada hagueu introduït el Nom del lloc, el correu electrònic de l'administrador i la contrasenya, només cal que continueu a la passa <strong>Finalització</strong> fent clic a <em>Següent</em>.
MAGIC QUOTES RUNTIME=Cometes màgiques en temps d'execució (Magic Quotes Runtime)
MAIN CONFIGURATION=Configuració principal
MAXIMUM UPLOAD SIZE=Mida de càrrega màxima
MB LANGUAGE IS DEFAULT=Idioma MB per defecte
MB STRING OVERLOAD OFF=Sobrecàrrega per a funcions de cadenes MB desactivada
MIGRATION COMPLETED=S'ha completat la migració
MIGRATION FAILED=La migració ha fallat
MIGRATION LOAD SCRIPT=Script de càrrega de migració
MIGRATION OUTPUT=Sortida de la migració
MIGRATION SCRIPT=Script de migració
MIGRATION SUCCESSFUL=Migració correcta, premeu següent per a continuar
MIGRATETITLE=Carrega un script de migració
MYSQL SUPPORT=Suport per al MySQL
MYSQLPREFIXINVALIDCHARS=El prefix de taula MySQL ha de començar per una lletra i anar seguida només de lletres, nombres o subratllats
MYSQLDBNAMEINVALIDCHARS=El nom de la base de dades MySQL ha de començar per una lletra i anar seguida només de lletres, nombres o subratllats
MYSQLPREFIXTOOLONG=El prefix de taula MySQL ha de ser com a màxim de 15 caràcters
MYSQLDBNAMETOOLONG=El nom de la base de dades MySQL ha de ser com a màxim de 64 caràcters
NEEDTOUPLOADFILE=O bé, heu de penjar el fitxer al servidor
NEXT=Següent
NO=No
NOCONNECT=No s'ha pogut connectar al servidor d'FTP
NOCHMODDIRS=No apliquis CHMOD als directoris (utilitza els valors per defecte del servidor)
NOCHMODFILES=No apliquis CHMOD als fitxers (utilitza els valors per defecte del servidor)
NODELE=Ha fallat la funció "DELE"
NODIRECTORYLISTING=No s'ha pogut obtenir un llistat de directori del servidor d'FTP
NOJAVASCRIPTWARNING=Sembla que el JavaScript estigui inhabilitat al vostre navegador. Habiliteu el JavaScript abans de continuar.
NOLOGIN=No s'ha pogut iniciar sessió al servidor d'FTP
NOLIST=Ha fallat la funció "LIST"
NOMKD=Ha fallat la funció "MKD"
NONLST=Ha fallat la funció "NLST"
NONNUMERICOFFSET=INESPERAT: Valors no numèrics per a inici i òfset
NOPWD=Ha fallat la funció "PWD"
NORETR=Ha fallat la funció "RETR"
NORMD=Ha fallat la funció "RMD"
NOROOT=No s'ha pogut accedir al directori FTP indicat
NOSTOR=Ha fallat la funció "STOR"
NOSYST=Ha fallat la funció "SYST"
NO FILE SELECTED=No s'ha seleccionat cap fitxer
NOTICEYOUCANSTILLINSTALL=Encara podeu continuar la instal·lació ja que els paràmetres de configuració es mostraran al final. Haureu de fer només una passa més per a penjar el codi a mà. Feu clic a l'àrea de text per a realçar tot el codi i llavors copieu-lo i enganxeu-lo en un nou fitxer, anomeneu-lo <code>configuration.php</code> i pengeu-lo a la carpeta arrel del lloc.
NOTICEMBLANGNOTDEFAULT=L'idioma per a l'mbstring PHP no està establert com a neutral. Es pot establir localment introduïnt <strong>php_value mbstring.language neutral</strong> al <code>.htaccess</code>.
NOTICEMBSTRINGOVERLOAD=La sobrecàrrega per a funcions de cadenes MB del PHP està activada. Es pot desactivar localment introduïnt <strong>php_value mbstring.func_overload 0</strong> al <code>.htaccess</code>.
OFF=Desactivat
OLD SITE ENCODING=Codificació de lloc antiga
OLD TABLE PREFIX=Prefix de taula antic
ON=Activat
OUTPUT BUFFERING=Emmagatzematge a la memòria intermèdia de sortida (Output Buffering)
PAGE_TITLE=Instal·lador web del Joomla!
PASSWORD=Contrasenya
PHP VERSION=Versió del PHP
PICKYOURCHOICEOFLANGS=Seleccioneu l'idioma a utilitzar durant les passes d'instal·lació del Joomla!
POINTEREOF=INESPERAT: No es pot establir el punter de fitxer rere el final de fitxer
PRE-INSTALLATION CHECK=Comprovació de preinstal·lació
PRETITLE=Comprovació de preinstal·lació per a
PREVIOUS=Anterior
QUERY=Consulta
READ=Lectura
RECOMMENDED=Recomanat
RECOMMENDED SETTINGS=Paràmetres recomanats
REGISTER GLOBALS=Registra els globals
REQUIRED SETTINGS=Paràmetres requerits
REMOVEINSTALLATION=RECORDEU <br/>ELIMINAR EL DIRECTORI D'INSTAL·LACIÓ<br />No podreu anar més enllà d'aquest punt fins que elimineu el directori d'instal·lació. Aquesta és una característica de seguretat del Joomla!
SAFE MODE=Mode segur
SAMPLE DATA INSTALLED SUCCESSFULLY=Les dades de mostra s'han instal·lat amb èxit!
SAVE FTP PASSWORD=Desa la contrasenya d'FTP
SCRIPT OPERATIONS FAILED=Han fallat les operacions de l'script!
SEARCH=Cerca
SELECT LANGUAGE=Seleccioneu un idioma
SELECT TYPE=Seleccioneu el tipus
SESSION AUTO START=Inici automàtic de sessió
SESSION PATH SET=S'ha definit el camí de sessió!
SESSION PATH WRITABLE=Es pot escriure al camí de sessió
SITE=Lloc
SITE MIGRATION=Migració de lloc
SITE NAME=Nom del lloc
SITE PATH=Camí del lloc
SITE URL=URL del lloc
SOME PATHS MAY BE UNWRITABLE=<strong>Avís: Alguns camins poden no tenir permís d'escriptura!</strong>
SQL SCRIPT INSTALLED SUCCESSFULLY=L'script SQL s'ha instal·lat amb èxit!
START IMPORT=Inicia la importació
STDERRORMSG=Temporalment aquest lloc és no disponible.<br /> Si us plau notifiqueu-ho a l'administrador del sistema.
STDMETADESC=Joomla! - el sistema de gestió de continguts i motor de portals dinàmics
STDMETAKEYS=joomla, Joomla
STDOFFLINEMSG=Aquest lloc és fora de servei per manteniment.<br /> Torneu un poc més tard.
STEPS=Passes
STOPPEDONERROR=S'ha aturat per un error
STOPPEDATLINE=S'ha aturat a la línia
TABLE PREFIX=Prefix de taula
TIPBACKUP=Es substituirà qualsevol taula de còpia de seguretat que es trobi d'instal·lacions del Joomla!
TIPCOLLATIONNONUTF=<p>Aquesta versió del MySQL no disposa de suport UTF-8 que és la codificació requerida.</p><p>Es recomana que actualitzeu la base de dades a una versió més nova que la 4.1.2. Si això no és possible, el Joomla! emmagatzemarà el contingut codificat en utf-8 a la base de dades en un mode compatible cap enrere. En aquest mode no és possible seleccionar un ordre alfabètic i s'utilitzarà un per defecte.</p>
TIPCOLLATIONUTF=<p>Aquesta versió del MySQL inclou suport UTF-8 que és la codificació requerida.</p><p>Trieu un ordre alfabètic de la llista. Si no n'apareix cap per al vostre idioma serà perquè l'ordre alfabètic per defecte <em>utf8_general_ci</em> és adient.</p>
TIPCONFSTEPS=<br />Introduïu la vostra adreça electrònica, serà l'adreça electrònica del superadministrador del lloc.<br />Introduïu la contrasenya i confirmeu-la als camps següents. Aquesta serà la contrasenya que necessitareu al final del procés d'instal·lació per a iniciar sessió al tauler de control d'administrador juntament amb el nom d'usuari <strong>admin</strong>.<br /> Si esteu fent una migració podeu ignorar aquesta secció ja que es migrarà automàticament la configuració actual.
TIPDATABASE=Alguns amfitrions només permeten un nom de base de dades per compte. Si aquest és el vostre cas utilitzeu l'opció de prefix de taula a la secció següent de configuració avançada per a distingir més d'un lloc Joomla!
TIPDATABASESTEPS=<p>Configurar el Joomla! per tal que funcioni al vostre servidor implica quatre passes ben senzilles...</p> <p>En aquesta passa de configuració de la base de dades:</p><h2>Configuració bàsica</h2><p>Seleccioneu el tipus de base de dades de la llista desplegable. Per regla general serà <strong>mysql</strong>.</p> <p>Introduïu el nom de l'amfitrió del servidor de base de dades en el qual s'instal·larà el Joomla! Nota: Pot no ser necessàriament el mateix que el servidor web per tant consulteu-ho al vostre proveïdor en cas de dubte.</p>\n <p>Introduïu el nom d'usuari de MySQL, la contrasenya, i el nom de la base de dades que desitgeu utilitzar amb el Joomla! Han d'existir ja per a la base de dades que aneu a utilitzar.</p><h2>Configuració avançada</h2> <p> Seleccioneu com gestionar les taules existents d'una instal·lació anterior.</p><p>Introduïu un prefix a utilitzar per les taules per a aquesta instal·lació del Joomla!</p>
TIPFTPCONFSTEPS=<p>Degut a restriccions de permisos del sistema de fitxers, a Linux i en altres sistemes Unix, i a restriccions pel mode segur (Safe Mode) del PHP, per tal que tots els usuaris puguin utilitzar els instal·ladors del Joomla! existeix una capa d'FTP per a gestionar la manipulació del sistema de fitxers.<br/>Introduïu un nom d'usuari d'FTP i una contrasenya amb accés al directori arrel del Joomla!, aquest serà el compte d'FTP que gestioni totes les operacions al sistema de fitxers quan el Joomla! requereixi accés FTP per a completar una tasca.<br/>Per motius de seguretat, el millor és crear un compte per separat d'usuari d'FTP amb accés només a la instal·lació del Joomla! i no al servidor web sencer, si disposeu d'aquesta opció.</p><p><b>Nota:</b> Si la instal·lació es fa en un sistema operatiu Windows <b>no</b> es necessita la capa d'FTP
TIPHOST=Normalment <strong>localhost</strong> o bé un nom d'amfitrió proporcionat pel proveïdor d'allotjament
TIPINSTALLDEFAULT=Es recomana especialment als novells instal·lar-ho. Això instal·larà contingut de mostra per defecte que ve inclòs al paquet d'instal·lació del Joomla!
TIPLOADMIGRATION=L'script de migració s'ha de crear al lloc antic utilitzant l'eina <code>com_migrator</code>. Introduïu el prefix de taula del lloc antic i també la codificació que s'hi utilitzava (paràmetre _ISO del fitxer d'idioma o bé com es pot veure a info/codificació/font del navegador).
TIPUPLOADED=Ja he penjat l'script de migració al servidor (p.ex. via FTP/SCP)
TIPMIGRATION=Aquest script és un script de migració del Joomla! 1.0.
TIPLOADSQL=Els scripts SQL de migració del Joomla! 1.5 han de ser compatibles amb Joomla 1.5 i haurien de tenir l'apropiat prefix de taula.
TIPPASSWORD=Per a la seguretat del lloc és obligatori utilitzar una contrasenya per al compte del MySQL. Es tracta de la mateixa contrasenya utilitzada per a accedir a la base de dades. De nou això pot ser proporcionat pel vostre proveïdor d'allotjament.
TIPPREFIX=No utilitzeu 'bak_' ja que s'utilitza per a taules de còpia de seguretat
TIPPREINSTALL=Si algun d'aquests elements no és suportat (marcat com a <strong><font color="#ff0000">No</font></strong>) el vostre sistema no compleix els requeriments mínims necessaris. Preneu les accions apropiades per a corregir els errors. Fallir amb això provocaria que la instal·lació del Joomla! no funcionàs correctament.
TIPRECOMSETTINGS=Aquests paràmetres són els recomanats per al PHP per tal d'assegurar una plena compatibilitat amb el Joomla!<br />\nPerò així i tot el Joomla! funcionarà si els vostres paràmetres no coincideixen amb els recomanats.
TIPTYPE=Probablement sigui <strong>MySQL</strong>
TIPUSER=Això pot ser el nom d'usuari del MySQL per defecte <strong>root</strong> o bé un nom d'usuari proporcionat pel proveïdor d'allotjament, o bé un que hagueu creat mentre configuràveu el servidor de base de dades.
TIPXML=Utilitzeu-ho per a provar la instal·lació d'altres plataformes de bases de dades
TOOMANYLINES=En aquest punt la consulta actual inclou més de %s línies d'abocament. Això és degut probablement a un ítem de contingut gran o tal vegada a un missatge del fòrum
UNABLE TO AUTODETECT THE FTP ROOT FOLDER=No s'ha pogut detectar automàticament la carpeta arrel de l'FTP
UNABLETOSETOFFSET=INESPERAT: No es pot establir el punter de fitxer a l'òfset:
UNWRITABLE=No es pot escriure
UPLOAD AND EXECUTE=Penja i executa
UPLOADFILESIZE=La mida de fitxer per a penjar màxima del vostre servidor és %s
USER=Usuari
USER NAME=Nom d'usuari
USERNAME=Nom d'usuari
VALIDDBDETAILS=Els detalls de la base de dades que heu proporcionat són incorrectes i/o buits.
VALIDCOLLATION=No s'ha seleccionat cap ordre alfabètic. Premeu D'acord per a continuar amb els valors per defecte. Premeu Cancel·la per a tornar.
VALIDHOST=Introduïu el nom de l'amfitrió
VALIDNAME=Introduïu el nom de la base de dades
VALIDTYPE=Seleccioneu el tipus de base de dades
VALIDFTPHOST=Introduïu un amfitrió correcte d'FTP
VALIDFTPUSER=Introduïu un nom d'usuari
VALIDFTPPASS=Introduïu una contrasenya d'FTP
VALIDPREFIX=Heu d'introduir un prefix de taula MySQL per tal que el Joomla! funcioni correctament
VALIDFTP=La configuració de l'FTP és vàlida
VALIDUSER=Introduïu un nom d'usuari per a la base de dades
VERIFY FTP SETTINGS=Verifica la configuració de l'FTP
VERSION#=Versió 1.5
WARNADMINPASSWORD=Introduïu una contrasenya d'administrador vàlida
WARNADMINPASSWORDDOESNTMATCH=La contrasenya d'administrador no coincideix amb la del camp de confirma contrasenya d'administrador
WARNBACKINGUPDB=S'han produït alguns errors en fer la còpia de seguretat de la base de dades.
WARNCOOKIESNOTENABLED=Les galetes no sembla que estiguin habilitades al vostre navegador. No podreu instal·lar l'aplicació amb aquesta característica inhabilitada. Alternativament, hi podria haver també un problema amb el <strong>session.save_path</strong> del servidor, si aquest és el cas consulteu amb el vostre proveïdor d'allotjament si no sabeu com arreglar-ho.
WARNCREATEDB=S'ha produït un error quan s'intentava crear la base de dades %s.<br/>Potser que l'usuari no tengui privilegis per a crear una base de dades. La base de dades requerida s'ha de crear per separat abans que pugueu instal·lar el Joomla!
WARNDELETEDB=S'han produït alguns errors en eliminar la base de dades
WARNEMAILADDRESS=Introduïu una adreça electrònica vàlida
WARNFTPENABLE=La desactivació de l'FTP podria causar problemes amb la instal·lació d'extensions del Joomla!
WARNICONV=L'extensió del PHP iconv no es troba carregada i es necessita per a la migració
WARNINSTALLFILE=Ha fallat la càrrega! - Les càrregues de fitxers no es troben habilitades al PHP
WARNINSTALLZLIB=Ha fallat la càrrega! - L'extensió del PHP Zlib no es troba carregada
WARNNOFILE=Ha fallat la càrrega! - no s'ha trobat el fitxer carregat
WARNUNPACK=Ha fallat la càrrega! - s'ha produït un error de descompressió d'arxiu
WARNNODATA=No s'ha instal·lat cap dada de mostra ni d'altre tipus. Feu clic a D'acord per a continuar. Feu clic a Cancel·la per a repetir aquesta passa.
WARNNOTCONNECTDB=No s'ha pogut connectar a la base de dades. Número retornat pel connector: %s
WARNSITENAME=Introduïu un nom per al lloc
WARNPOPULATINGDB=S'han produït alguns errors mentre s'omplia la base de dades
WARNUPLOADFAILURE=Ha fallat la càrrega! Comproveu que es pugui escriure als directoris 'tmp' i 'installation/sql/migration'.
WRITE=Escriu
WORLD=Món
WRITABLE=Es pot escriure
XML SUPPORT=Suport per a l'XML
YES=
YOUR E-MAIL=Correu electrònic
ZLIB COMPRESSION SUPPORT=Suport per a la compressió Zlib

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<metafile version="1.5" client="installation" >
<name>Catalan-ES</name>
<version>1.5.9</version>
<creationDate>March 2009</creationDate>
<author>www.joomla.cat</author>
<copyright>Copyright (C) 2005 - 2009 Open Source Matters. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<description>Catalan language file for web installer</description>
<metadata>
<name>Catalan</name>
<tag>ca-ES</tag>
<rtl>0</rtl>
<locale>ca_ES.utf-8, ca_ES.utf8, ca-ES.utf8, ca_ES.UTF-8, ca_ES.UTF-8@euro, ca, ca_ES, Catalan_Standard, catalan</locale>
<winCodePage>iso-8859-1</winCodePage>
<backwardLang>catalan</backwardLang>
</metadata>
<params />
</metafile>

View File

@ -0,0 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0065)http://downloads.joomlacode.org/frsrelease/1/5/7/15765/index.html -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.5730.11" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff></BODY></HTML>

View File

@ -0,0 +1,241 @@
# $Id: en-GB.ini 11393 2009-01-05 02:11:06Z ian $
# Joomla! Project
# Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
# License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php
# Note : All ini files need to be saved as UTF-8 - No BOM
ACTUAL=Actual
ADMIN=Admin
ADMIN LOGIN IN MIGRATED CONTENT WAS KEPT=Admin<br />login in migrated content was kept.
ADMIN PASSWORD=Admin Password
ADMIN PASSWORD IN MIGRATED CONTENT WAS KEPT=Admin password in migrated content was kept.
ADMINISTRATION LOGIN DETAILS=Administration Login Details
ADVANCED=Advanced
ADVANCED SETTINGS=Advanced Settings
ALL RIGHTS RESERVED=All rights reserved.
AN ERROR HAS OCCURRED=An error has occurred.
AUTOFIND FTP PATH=Autofind FTP Path
BACKUP OLD TABLES=Backup Old Tables
BASIC=Basic
BASIC SETTINGS=Basic Settings
CANT OPEN FILE FOR IMPORT=Can't open file (%s) for import.
CANTREADPOINTER=Unexpected: Can't read the file pointer offset.
CHECKDUMPFILE=The name of your dump file should contain only alphanumeric characters. Please verify and rename if it doesn't.
CHECK AGAIN=Check Again
CHOOSE LANGUAGE=Choose Language
CLICKTOINSTALLDEFAULT=Install Sample Data
COLLATION=Collation
CONFIGURATION=Configuration
CONFPROBLEM=Your configuration file or directory is not writable or there was a problem creating the configuration file. You will have to upload the following code by hand. Click in the text area to highlight all of the code and then paste into a new text file. Name this file 'configuration.php' and upload it to your site root folder.
CONFTITLE=Confirm the Admin E-mail and Password.
CONGRATSEOF=Congratulations! End of file reached, assuming OK
CONGRATULATIONS=Congratulations! Joomla! is now installed.
CONNECTION FAIL=Failed to connect to database server. Please check the hostname, username and password.
CONNECTION SETTINGS=Connection Settings
CONFIRM ADMIN PASSWORD=Confirm Admin Password
DATABASE=Database
DATABASE COLLATION=Database Collation
DATABASE CONFIGURATION=Database Configuration
DATABASE ERRORS REPORTED=Database Errors Reported
DATABASE NAME=Database Name
DATABASE TYPE=Database Type
DELAYMSG=Now waiting %s milliseconds before starting next session...
DIRECTIVE=Directive
DIRECTORY PERMISSIONS=Directory Permissions
DISPLAY ERRORS=Display Errors
DROP EXISTING TABLES=Delete existing tables
ENABLEFTPDESC= Enable FTP File system Layer
ENTERSITENAME=Enter the name of your Joomla! site.
ERROR=Error
ERROR INSTALLING SQL SCRIPT=Error installing SQL script
EXECUTE=Execute
FILESIZEUNKNOWN=Unable to determine the filesize of
FILE PERMISSIONS=File Permissions
FILE UPLOADS=File Uploads
FINALIZEINSTALL=Please press Next to finalise your install.
FINISH=Finish
FINISHBUTTONS=<p>Click the Site button to view your Joomla! Web site or the Admin button to take you to your administrator login.</p>
FTP CONFIGURATION=FTP Configuration
FTP HOST=FTP Host
FTP PASSWORD=FTP Password
FTP PORT=FTP Port
FTP USER=FTP User
FTP ROOT PATH=FTP Root Path
GNU/GPL LICENSE=GNU General Public License
GROUP=Group
HOST NAME=Host Name
IGNORE=Ignore
INSTALL DEFAULT SAMPLE DATA=Install Default Sample Data
INSTALLATION=Installation
INSTALLATIONREMOVED=Click here when the directory has been removed.
INVALIDFTP=The FTP settings are not valid or your FTP server is not compatible with Joomla!:
INVALIDROOT=The specified FTP Directory is not the directory of this Joomla! installation
ISFREESOFTWARE=is Free Software released under the GNU/GPL v2.0 License.
JOOMLA!=Joomla!
LANGUAGE=Language
LANGUAGEINFO=On the Joomla! Help Site, you will find an easy, step-by-step guide to installing your own language pack in Joomla! You will find a list of links to available language packs.<br /><br />Click the button on the right to open the Help Site in a new window.
LANGUAGEBUTTONLINEONE=Joomla! in your own Language?
LANGUAGEBUTTONLINETWO=Visit the Joomla! Help Site for more information and downloads.
LICENSE=License
LOADSAMPLEORMIGRATE=Load Sample Data, Restore or Migrate Backed Up Content
LOADSQLFILE=Loading SQL file. Please wait.
LOADSQLINSTRUCTIONS1=<strong>Important!</strong>: It is strongly recommended that new Joomla! users install the default sample data. To do this, select the option <i>and</i> click on the button <i>before</i> moving to the next stage.
LOADSQLINSTRUCTIONS2=Before leaving the installation, you can populate the site database with data. There are three ways to do this:
LOADSQLINSTRUCTIONS3=<strong>1. Default sample data</strong> can be inserted. To do this, select the first option and click the Install Sample Data button.
LOADSQLINSTRUCTIONS4=<strong>2a. A Joomla! 1.5.x compatible SQL script file</strong> can be uploaded from a localhost and executed on the site. This could be for installing localised sample data or restoring a Joomla! 1.5.x backup. The script should have the correct table prefixes, be in UTF-8 encoding and comply with the Joomla! 1.5.x database schema.
LOADSQLINSTRUCTIONS5=<strong>2b. Migrate content from previous versions of Joomla!</strong>. Selecting the Load Migration Script option enables support for the migration of older Joomla! 1.0.x version database dumps to a new Joomla! 1.5.x site. The required conversions are performed on-the-fly and the migration script file can be created on the older site by using the <code>com_migrator</code> component.<br /> For further information about the component and the migration procedure, please see the <a href="http://docs.joomla.org/Migrating_from_1.0.x_to_1.5_Stable" target="_blank">Joomla! 1.5 Migration Guide</a>.
LOADSQLINSTRUCTIONS6=You can upload uncompressed SQL script files, zip-packed script files and gz-packed script files. Packed files may contain only one SQL script file. If your file is too big to handle or causing memory and time limit errors, upload the uncompressed file into the /installation/sql/migration/ folder. Rename it <code>migrate.sql</code> and then tick the "I have already uploaded..." option.<br />
LOADSQLINSTRUCTIONS7=<strong>3. Clean Installation</strong>: If you wish to perform a clean installation, enter the site name, admin e-mail and choose a password. Then proceed to the final step by clicking <em>Next</em>.
MAGIC QUOTES RUNTIME=Magic Quotes Runtime
MAIN CONFIGURATION=Main Configuration
MAXIMUM UPLOAD SIZE=Maximum Upload Size
MB LANGUAGE IS DEFAULT=MB Language is Default
MB STRING OVERLOAD OFF=MB String Overload Off
MIGRATION COMPLETED=Migration completed
MIGRATION FAILED=Migration failed
MIGRATION LOAD SCRIPT=Migration Load Script
MIGRATION OUTPUT=Migration Output
MIGRATION SCRIPT=Migration Script
MIGRATION SUCCESSFUL=Migration successful. Press Next to continue.
MIGRATETITLE=Load Migration Script
MYSQL SUPPORT=MySQL Support
MYSQLPREFIXINVALIDCHARS=The MySQL table prefix must start with a letter and be followed by only letters, numbers or underscores.
MYSQLDBNAMEINVALIDCHARS=The MySQL database name must start with a letter and be followed by only letters, numbers or underscores.
MYSQLPREFIXTOOLONG=The MySQL table prefix must be a maximum of 15 characters.
MYSQLDBNAMETOOLONG=The MySQL database name must be a maximum of 64 characters.
NEEDTOUPLOADFILE=Or you have to upload the file to the server.
NEXT=Next
NO=No
NOCONNECT=Could not connect to the FTP server
NOCHMODDIRS=Do not CHMOD directories (use server defaults).
NOCHMODFILES=Do not CHMOD files (use server defaults).
NODELE=The function "DELE" failed.
NODIRECTORYLISTING=Could not retrieve a directory listing from the FTP server.
NOJAVASCRIPTWARNING=JavaScript appears to be disabled in your browser. Please enable JavaScript before continuing.
NOLOGIN=Could not Login to the FTP server.
NOLIST=The function "LIST" failed.
NOMKD=The function "MKD" failed.
NONLST=The function "NLST" failed.
NONNUMERICOFFSET=UNEXPECTED: Non-numeric values for start and offset
NOPWD=The function "PWD" failed.
NORETR=The function "RETR" failed.
NORMD=The function "RMD" failed.
NOROOT=Could not access the specified FTP directory.
NOSTOR=The function "STOR" failed.
NOSYST=The function "SYST" failed.
NO FILE SELECTED=No file selected.
NOTICEYOUCANSTILLINSTALL=You can still continue the installation as the configuration settings will be displayed at the end. You will have to manually upload the code. Click in the text area to highlight all of the code and then paste into a new text file. Name this file 'configuration.php' and upload it to your site root folder.
NOTICEMBLANGNOTDEFAULT=PHP mbstring language is not set to neutral. This can be set locally by entering <strong>php_value mbstring.language neutral</strong> in your <code>.htaccess</code> file.
NOTICEMBSTRINGOVERLOAD=PHP mbstring function overload is set. This can be turned off locally by entering <strong>php_value mbstring.func_overload 0</strong> in your <code>.htaccess</code> file.
OFF=Off
OLD SITE ENCODING=Old Site Encoding
OLD TABLE PREFIX=Old Table Prefix
ON=On
OUTPUT BUFFERING=Output Buffering
PAGE_TITLE=Joomla! Web Installer
PASSWORD=Password
PHP VERSION=PHP Version
PICKYOURCHOICEOFLANGS=Please select the language to use during the Joomla! installation steps:
POINTEREOF=UNEXPECTED: Can't set file pointer behind the end of file.
PRE-INSTALLATION CHECK=Pre-installation Check
PRETITLE=Pre-installation check for
PREVIOUS=Previous
QUERY=Query
READ=Read
RECOMMENDED=Recommended
RECOMMENDED SETTINGS=Recommended Settings
REGISTER GLOBALS=Register Globals
REQUIRED SETTINGS=Required Settings
REMOVEINSTALLATION=PLEASE REMEMBER TO COMPLETELY<br />REMOVE THE INSTALLATION DIRECTORY.<br />You will not be able to proceed beyond this point until the installation directory has been removed. This is a security feature of Joomla!.
SAFE MODE=Safe Mode
SAMPLE DATA INSTALLED SUCCESSFULLY=Sample data installed successfully.
SAVE FTP PASSWORD=Save FTP Password
SCRIPT OPERATIONS FAILED=Script Operations Failed!
SEARCH=Search
SELECT LANGUAGE=Select Language
SELECT TYPE=Select Type
SESSION AUTO START=Session Auto Start
SESSION PATH SET=Session Path Set!
SESSION PATH WRITABLE=Session Path Writable
SITE=Site
SITE MIGRATION=Site Migration
SITE NAME=Site Name
SITE PATH=Site Path
SITE URL=Site URL
SOME PATHS MAY BE UNWRITABLE=<strong>Warning: Some paths may be unwritable!</strong>
SQL SCRIPT INSTALLED SUCCESSFULLY=SQL Script Installed Successfully!
START IMPORT=Start Import
STDERRORMSG=This site is temporarily unavailable.<br /> Please notify the System Administrator.
STDMETADESC=Joomla! - the dynamic portal engine and content management system
STDMETAKEYS=joomla, Joomla
STDOFFLINEMSG=This site is down for maintenance.<br /> Please check back again soon.
STEPS=Steps
STOPPEDONERROR=Stopped on error
STOPPEDATLINE=Stopped at the line
TABLE PREFIX=Table Prefix
TIPBACKUP=Any existing backup tables from previous Joomla! installations will be replaced.
TIPCOLLATIONNONUTF=<p>This version of MySQL does not have UTF-8 support, which is the required encoding.</p><p>It is recommended that you upgrade your database to a version newer than 4.1.2. If this is not possible, Joomla! will store UTF-8 encoded content in your existing database in a backward compatibe mode. Collation selection is not possible in this mode and a default collation will be used.</p>
TIPCOLLATIONUTF=<p>This version of MySQL includes UTF-8 support, which is the required encoding.</p><p>Choose a collation from the list. If none appears for your language, the default collation <em>utf8_general_ci</em> is suitable.</p>
TIPCONFSTEPS=<br />Enter your e-mail address. This will be the e-mail address of the Web site Super Administrator.<br />Enter a new password and then confirm it in the appropriate fields. Along with the username <strong>admin</strong>, this will be the password that you will use to login to the Administrator Control Panel at the end of the installation.<br /> If you are migrating, you can ignore this section. Your current settings will be automatically migrated.
TIPDATABASE=Some hosting providers allow only a specific database name per account. If this is the case with your setup, use the table prefix option in the Advanced Settings section below to differentiate more than one Joomla! site.
TIPDATABASESTEPS=<p>Setting up Joomla! to run on your server involves four easy steps.</p> <p>The first step is database configuration. Choose your preferred settings: </p><h2>Basic Settings</h2><p>Select the type of database from the drop down list. This will generally be <strong>MySQL</strong>.</p> <p>Enter the hostname of the database server Joomla! will be installed on. This may not necessarily be the same as your Web server so check with your hosting provider if you are not sure.</p>\n <p>Enter the MySQL username, password and database name you wish to use with Joomla!. These must already exist for the database you are going to use.</p><h2>Advanced Settings</h2> <p> Select how to handle existing tables from a previous installation.</p><p>Enter a table prefix to be used for this Joomla! installation.</p>
TIPFTPCONFSTEPS=<p>Due to file system permission restrictions on Linux and other Unix systems (and PHP Safe Mode restrictions), an FTP layer is used to handle file system manipulation and enable Joomla! installers.<br /><br />Enter an FTP username and password with access to the Joomla! root directory. This will be the FTP account that handles all file system operations when Joomla! requires FTP access to complete a task.<br /><br />For security reasons and if the option is available, it is best to create a separate FTP user account with access to the Joomla! installation only and not the entire Web server.</p><p><b>Note:</b> If you are installing on a Windows Operating System, the FTP layer is <b>not</b> required.
TIPHOST=This is usually <strong>localhost</strong> or a host name provided by the hosting provider.
TIPINSTALLDEFAULT=Installing sample data is strongly recommended for beginners. This will install sample content that is included in the Joomla! installation package.
TIPLOADMIGRATION=The migration script needs to be created on the old site by the <code>com_migrator</code> tool to conform. Enter the table prefix of the old site and enter the encoding used in old site (_ISO setting in language file or as seen in browser info/encoding/source).
TIPUPLOADED=I have already uploaded the migration script to the server (e.g. via FTP/SCP)
TIPMIGRATION=This script is a Joomla! 1.0 migration script.
TIPLOADSQL=Joomla! 1.5 migration SQL scripts need to be Joomla 1.5.x compatible and should have the appropriate table prefix.
TIPPASSWORD=Using a password for the MySQL account is mandatory for site security. This is the same password used to access your database. This may be predefined by your hosting provider.
TIPPREFIX=Do not use the prefix 'bak_'. This is used for backup tables.
TIPPREINSTALL=If any of these items are not supported (marked as <strong><font color="#ff0000">No</font></strong>), your system does not meet the minimum requirements for installation. Please take appropriate actions to correct the errors. Failure to do so could lead to your Joomla! installation not functioning properly.
TIPRECOMSETTINGS=These are the recommended settings for PHP in order to ensure full compatibility with Joomla!.<br />\nJoomla! will still operate even if your settings do not match.
TIPTYPE=This is probably <strong>MySQL</strong>
TIPUSER=This can be the default MySQL username <strong>root</strong>, a username provided by your hosting provider, or one that you created in setting up your database server.
TIPXML=Use for testing install of other database platforms
TOOMANYLINES=At this point, the current query includes more than %s dump lines. This most likely due to a large content item or perhaps a forum post.
UNABLE TO AUTODETECT THE FTP ROOT FOLDER=Unable to auto-detect the FTP root folder.
UNABLETOSETOFFSET=UNEXPECTED: Can't set file pointer to offset:
UNWRITABLE=Unwritable
UPLOAD AND EXECUTE=Upload and Execute
UPLOADFILESIZE=Your server's maximum file upload size is %s.
USER=User
USER NAME=Username
USERNAME=Username
VALIDDBDETAILS=The database details provided are incorrect and/or empty.
VALIDCOLLATION=No collation was selected. To continue with default, press OK. Press Cancel to return.
VALIDHOST=Please enter the host name:
VALIDTYPE=Please select the database type:
VALIDFTPHOST=Please enter a correct FTP host:
VALIDFTPUSER=Please enter a username:
VALIDFTPPASS=Please enter an FTP password:
VALIDPREFIX=You must enter a MySQL table prefix for Joomla! to operate correctly.
VALIDFTP=The FTP settings are valid.
VALIDUSER=Please enter a database username:
VERIFY FTP SETTINGS=Verify FTP Settings
VERSION#=Version 1.5
WARNADMINPASSWORD=Please enter a valid admin password:
WARNADMINPASSWORDDOESNTMATCH=The Admin password does not match the confirm admin password field
WARNBACKINGUPDB=Some errors occurred in backing up the database.
WARNCOOKIESNOTENABLED=Cookies do not appear to be enabled on your browser client. You will not be able to install the application with this feature disabled. Alternatively, there could also be a problem with the server's <strong>session.save_path</strong>. If this is the case, please consult your hosting provider if you don't know how to check or fix this yourself.
WARNCREATEDB=An error occurred while trying to create the database %s.<br />The user may not have enough privileges to create a database. The required database may need to be created separately before you can install Joomla!.
WARNDELETEDB=Some errors occurred deleting the database.
WARNEMAILADDRESS=Please enter a valid e-mail address.
WARNFTPENABLE=Disabling FTP could cause problems with installing Joomla! Extensions
WARNICONV=PHP iconv extension is not loaded and is needed for migration
WARNINSTALLFILE=Upload failed! File uploads are not enabled in PHP.
WARNINSTALLZLIB=Upload failed! The zlib extension for PHP is not loaded.
WARNNOFILE=Upload failed! Uploaded file not found.
WARNUNPACK=Upload failed! Archive unpack error.
WARNNODATA=No sample data or other data installed. Click OK to continue. Click Cancel to redo this step.
WARNNOTCONNECTDB=Could not connect to the database. Connector returned number: %s
WARNSITENAME=Please enter a site name:
WARNPOPULATINGDB=Some errors occurred while attempting to populate the database.
WARNUPLOADFAILURE=Upload failed! Check that the 'tmp' and 'installation/sql/migration' directories are writable.
WRITE=Write
WORLD=World
WRITABLE=Writable
XML SUPPORT=XML Support
YES=Yes
YOUR E-MAIL=Your E-mail
ZLIB COMPRESSION SUPPORT=Zlib Compression Support

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: en-GB.xml 10511 2008-07-06 19:21:55Z willebil $ -->
<metafile version="1.5" client="installation">
<name>English(United Kingdom)</name>
<version>1.5.9</version>
<creationDate>March 2009</creationDate>
<author>Joomla! Project</author>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<copyright>
Copyright (C) 2005 - 2008 Open Source Matters. All rights
reserved.
</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<description>English language file for web installer</description>
<metadata>
<name>English (United Kingdom)</name>
<tag>en-GB</tag>
<rtl>0</rtl>
<locale>
en_GB.utf8, en_GB.UTF-8, en_GB, eng_GB, en, english,
english-uk, uk, gbr, britain, england, great britain, uk,
united kingdom, united-kingdom
</locale>
<winCodePage>iso-8859-1</winCodePage>
<backwardLang>english</backwardLang>
</metadata>
<params />
</metafile>

View File

@ -0,0 +1,3 @@
<html>
<body bgcolor="#FFFFFF"></body>
</html>

View File

@ -0,0 +1,243 @@
# version 1.5.9 2009
# Copyright (C) 2005 - 2009 Open Source Matters. All rights reserved.
# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php
# Translation: www.TodosJuntos.org Equipo de traducción de la comunidad hispana de Joomla!
# Modificado por Joomla! Spanish www.joomlaspanish.org
# Todos los archivos ini deben ser guardados como UTF-8 sin BOM All ini files must be saved as UTF-8 - NO BOM
ACTUAL=Actual
ADMIN=Administración
ADMIN LOGIN IN MIGRATED CONTENT WAS KEPT=Se mantuvo el nombre de usuario del administrador encontrado en el contenido migrado
ADMIN PASSWORD=Contraseña del usuario admin
ADMIN PASSWORD IN MIGRATED CONTENT WAS KEPT=Se mantuvo la contraseña del administrador encontrada en el contenido migrado
ADMINISTRATION LOGIN DETAILS=Datos de entrada a la Administración
ADVANCED=Avanzado
ADVANCED SETTINGS=Configuración avanzada
ALL RIGHTS RESERVED=Todos los derechos reservados
AN ERROR HAS OCCURRED=Ha ocurrido un error
AUTOFIND FTP PATH=Encontrar la ruta FTP automáticamente
BACKUP OLD TABLES=Hacer una copia de las tablas existentes.
BASIC=Básico
BASIC SETTINGS=Configuración básica
CANT OPEN FILE FOR IMPORT=No se puede abrir el archivo (%s) para importar el contenido.
CANTREADPOINTER=NO ESPERADO: No se puede leer el offset del indicador.
CHECKDUMPFILE=Por favor, debe renombrar el archivo de modo que sólo contenga caractéres alfanuméricos,
CHECK AGAIN=Volver a comprobar
CHOOSE LANGUAGE=Seleccione su idioma
CLICKTOINSTALLDEFAULT=Instalar los datos de ejemplo predeterminados
COLLATION=Colación
CONFIGURATION=Configuración
CONFPROBLEM=Su archivo o directorio de configuración no tiene permisos de escritura,\n o hubo un problema al crear el archivo de configuración. Deberá\n subir el siguiente código manualmente. Seleccione el área de texto para resaltar\n todo el código.
CONFTITLE=Confirme el correo electrónico y la contraseña del usuario admin.
CONGRATSEOF=Felicitaciones: se alcanzó el final del archivo, presumimos que fue correctamente.
CONGRATULATIONS=¡Felicidades! Ha finalizado la instalación de Joomla! Spanish
CONNECTION FAIL=Error al conectar con el servidor de la base de datos. Verifique que el nombre de usuario y la contraseña introducidos sean correctos.
CONNECTION SETTINGS=Parámetros de la conexión
CONFIRM ADMIN PASSWORD=Confirmar la contraseña del usuario admin.
DATABASE=Base de datos
DATABASE COLLATION=Colación de la base de datos.
DATABASE CONFIGURATION=Configuración de la base de datos
DATABASE ERRORS REPORTED=Se encontraron errores en la base de datos
DATABASE NAME=Nombre de la base de datos
DATABASE TYPE=Tipo de base de datos
DELAYMSG=Esperando %s milisegundos antes de comenzar la siguiente sesión...
DIRECTIVE=Directiva
DIRECTORY PERMISSIONS=Permisos de directorio
DISPLAY ERRORS=Mostrar errores (display_errors)
DROP EXISTING TABLES=Eliminar las tablas existentes
ENABLEFTPDESC=Habilitar la capa FTP para la gestión de archivos.
ENTERSITENAME=Escriba el nombre de su sitio web Joomla!
ERROR=Error
ERROR INSTALLING SQL SCRIPT=Error instalando el script SQL
EXECUTE=Ejecutar
FILESIZEUNKNOWN=Imposible determinar el tamaño del archivo
FILE PERMISSIONS=Permisos de archivos
FILE UPLOADS=Subida de archivos (file_uploads)
FINALIZEINSTALL=Hacer clic en <em>Siguiente</em> para finalizar la instalación.
FINISH=Finalizar
FINISHBUTTONS=<p>Puede hacer clic en el botón "Portada" para ver la portada de su sitio web Joomla! o en el botón "Administración" para acceder al área de administración.</p>
FTP CONFIGURATION=Configuración de FTP
FTP HOST=Servidor FTP
FTP PASSWORD=Contraseña de FTP
FTP PORT=Puerto FTP
FTP USER=Nombre del usuario FTP
FTP ROOT PATH=Ruta a la carpeta de Joomla! desde la raíz FTP
GNU/GPL LICENSE=Licencia GNU/GPL
GROUP=Grupo
HOST NAME=Nombre del sevidor
IGNORE=Ignorar
INSTALL DEFAULT SAMPLE DATA=Instalar contenido de ejemplo predeterminado (en español)
INSTALLATION=Instalación
INSTALLATIONREMOVED=Haga clic aqui cuando haya borrado el directorio
INVALIDFTP=La configuración de FTP es inválida o el servidor FTP no es compatible con Joomla!:
INVALIDROOT=El directorio FTP especificado no es el de esta instalación de Joomla!
ISFREESOFTWARE=es software libre distribuido bajo la licencia GNU/GPL.<br /><a href="http://www.joomlaspanish.org/">Pack creado por Joomla! Spanish 2009</a> - <a href="http://www.webempresa.com/">Patrocinado por Web Empresa</a>
JOOMLA!=Joomla!
LANGUAGE=Idioma
LANGUAGEINFO=En la página de ayuda de Joomla! sobre idiomas encontrará una explicación sencilla y paso a paso de cómo instalar el paquete de su idioma en Joomla!<br/>También encontrará una lista con enlaces a los paquetes de idioma disponibles.<br/>Al hacer clic sobre el enlace inferior de la derecha se abrirá el sitio de ayuda en una ventana nueva.
LANGUAGEBUTTONLINEONE=¿Joomla! en su propio idioma?
LANGUAGEBUTTONLINETWO=Visite el sitio de ayuda de Joomla! para más información y descarga de archivos.
LICENSE=Licencia
LOADSAMPLEORMIGRATE=Subir datos de ejemplo, restaurar o migrar contenido de respaldo
LOADSQLFILE=Cargando un archivo SQL... espere, por favor.
LOADSQLINSTRUCTIONS1=<strong>IMPORTANTE:</strong> Se recomienda a los principiantes que instalen el contenido de ejemplo en español o en su idioma. Para esto es necesario seleccionar esa opción y hacer clic sobre el botón antes de continuar hacia el siguiente paso.
LOADSQLINSTRUCTIONS2=Antes de finaliar la instalación puede ingresar datos a la base de datos del sitio. Hay tres opciones para hacerlo:
LOADSQLINSTRUCTIONS3=<strong>1. </strong> Puede cargar los <strong>datos de ejemplo predeterminados</strong>. Para hacerlo, seleccione la primera opción y haga clic sobre el botón "Instalar los datos de ejemplo predeterminados" (en español).
LOADSQLINSTRUCTIONS4=<strong>2.</strong> Puede subir un archivo de un <strong>script SQL compatible con Joomla! 1.5</strong> y ejecutarlo en el servidor. <br />Ya sea para instalar <strong>datos de ejemplo en su idioma</strong> o para restaurar una copia de seguridad de Joomla! 1.5. <br />El script, debe tener los prefijos correctos en las tablas, estar codificado en UTF-8 y ser compatible con el esquema de bases de datos de Joomla! 1.5.
LOADSQLINSTRUCTIONS5=<strong>3. Migrar contenidos de una versión anterior</strong>. Seleccionar "Cargar un script de migración" permite importar contenidos, utilizando una copia de seguridad de la base de datos de un sitio con una versión anterior de Joomla!, en el nuevo sitio con Joomla! 1.5. Las conversiones necesarias se hacen al vuelo, mientras se realiza la instalación. La copia de seguridad necesaria puede hacerse automáticamente utilizando el componente <code>com_migrator</code> en el sitio anterior.Para más información vea la <a href="http://help.joomla.org/content/view/1933/294/" target="_blank">Guía de migración de Joomla! 1.5</a>.
LOADSQLINSTRUCTIONS6=El sistema para subir datos soporta archivos sql no comprimidos, comprimidos con zip y gz. Los archivos comprimidos deben contener un solo script.
LOADSQLINSTRUCTIONS7=<strong>3. Instalación limpia</strong>Si no desea instalar datos de ejemplo, migrar datos de un sitio anterior o subir datos desde una copia de seguridad, puede hacer una instalación limpia. Luego de escribir el nombre del sitio, el correo electrónico y la clave del administrador, puede pasar a la etapa de <strong>finalización</strong> haciendo clic en <em>Siguiente>/em>.
MAGIC QUOTES RUNTIME=Comillas mágicas en tiempo de ejecución (magic_quotes_runtime)
MAIN CONFIGURATION=Configuración principal
MAXIMUM UPLOAD SIZE=Tamaño máximo de subida
MB LANGUAGE IS DEFAULT=El idioma predeterminado es multibyte (MB)
MB STRING OVERLOAD OFF=Variable de sobrecarga para funciones de cadenas multibyte desactivada
MIGRATION COMPLETED=Migración completa
MIGRATION FAILED=Fallo en la migración
MIGRATION LOAD SCRIPT=Carga del script de migración
MIGRATION OUTPUT=Salida de la migración
MIGRATION SCRIPT=Script de migración
MIGRATION SUCCESSFUL=Migración completa, debe hacer clic en <em>Siguiente</em> para continuar.
MIGRATETITLE=Cargar un script de migración
MYSQL SUPPORT=Soporte MySQL
MYSQLPREFIXINVALIDCHARS=El prefijo de tabla MySQL debe comenzar con una letra, y debe contener sólo letras, números o guión bajo.
MYSQLDBNAMEINVALIDCHARS=El nombre de la base de datos MySQL debe comenzar con una letra, y debe contener sólo letras, números o guión bajo.
MYSQLPREFIXTOOLONG=El prefijo de tabla MySQL contener un máximo de 15 caracteres.
MYSQLDBNAMETOOLONG=El nombre de la base de datos MySQL debe tener un máximo de 64 caractéres.
NEEDTOUPLOADFILE=O, debe subir el archivo al servidor.
NEXT=Siguiente
NO=No
NOCONNECT=No se puede conectar con el servidor FTP.
NOCHMODDIRS=No aplicar CHMOD a directorios (usar la configuración predeterminada del servidor).
NOCHMODFILES=No aplicar CHMOD a archivos (usar la configuración predeterminada del servidor).
NODELE=La función "DELE" ha fallado.
NODIRECTORYLISTING=No es posible obtener un listado del directorio del servidor FTP.
NOJAVASCRIPTWARNING=Aparentemente JavaScript está desactivado en su navegador. Debe activar JavaScript antes de continuar.
NOLOGIN=No es posible iniciar sesión en el servidor FTP.
NOLIST=La función "LIST" ha fallado.
NOMKD=La función "MKD" ha fallado.
NONLST=La función "NLST" ha fallado.
NONNUMERICOFFSET=NO ESPERADO: Valores no numéricos para inicio (start) y foffset
NOPWD=La función "PWD" ha fallado.
NORETR=La función "RETR" ha fallado.
NORMD=La función "RMD" ha fallado.
NOROOT=No se puede acceder al directorio FTP especificado.
NOSTOR=La función "STOR" ha fallado.
NOSYST=La función "SYST" ha fallado.
NO FILE SELECTED=No ha seleccionado un archivo.
NOTICEYOUCANSTILLINSTALL=Puede continuar con la instalación de todos modos ya que la configuración se mostrará al final, simplemente deberá copiar y pegar la configuración y subirla al sitio.
NOTICEMBLANGNOTDEFAULT=El idioma para cadena multibyte en PHP no está configurado como neutral. Esto puede configurarse localmente añadiendo <strong>php_value mbstring.language neutra</strong>" al archivo <code>.htaccess</code>.
NOTICEMBSTRINGOVERLOAD=La sobrecarga de funciones para cadenas multibyte está activada en PHP. Esto puede desactivarse localmente agregando <strong>php_value mbstring.func_overload 0</strong> en el archivo <code>.htaccess</code>.
OFF=Desactivado
OLD SITE ENCODING=Codificación del sitio anterior
OLD TABLE PREFIX=Prefijo de las tablas existentes
ON=Activado
OUTPUT BUFFERING=Buffer de salida (output_buffering)
PAGE_TITLE=Instalador Web de Joomla!
PASSWORD=Contraseña
PHP VERSION=Versión de PHP
PICKYOURCHOICEOFLANGS=Escoja el idioma que desea utilizar durante la instalación.
POINTEREOF=NO ESPERADO: No es posible ubicar el indicador de archivos más allá del final del archivo.
PRE-INSTALLATION CHECK=Comprobación previa
PRETITLE=Comprobación previa para
PREVIOUS=Anterior
QUERY=Consulta
READ=leer
RECOMMENDED=Recomendado
RECOMMENDED SETTINGS=Valores recomendados
REGISTER GLOBALS=Registrar globales (register_globals)
REQUIRED SETTINGS=Valores requeridos
REMOVEINSTALLATION=Para continuar debe eliminar completamente el directorio de instalación.<br />Por motivos de seguridad, no podrá avanzar más allá de esta pantalla hasta que el directorio "installation" sea removido completamente. Esta es una característica de seguridad de Joomla!.
SAFE MODE=Modo seguro (safe_mode)
SAMPLE DATA INSTALLED SUCCESSFULLY=Datos de ejemplo instalados.
SAVE FTP PASSWORD=Guardar la contraseña FTP
SCRIPT OPERATIONS FAILED=El procesamiento del script falló.
SEARCH=Buscar
SELECT LANGUAGE=Seleccione un idioma
SELECT TYPE=Seleccione el tipo
SESSION AUTO START=Inicio automático de sesión (session.auto_start)
SESSION PATH SET=Ruta de sesión configurada
SESSION PATH WRITABLE=La ruta de sesión es escribible
SITE=Portada
SITE MIGRATION=Migración de sitio web
SITE NAME=Nombre del sitio web
SITE PATH=Ruta del sitio web
SITE URL=URL del sitio web
SOME PATHS MAY BE UNWRITABLE=<strong>ADVERTENCIA: ¡Algunas de las rutas no tienen permisos de escritura!</strong>
SQL SCRIPT INSTALLED SUCCESSFULLY=Script SQL instalado correctamente.
START IMPORT=Comenzar importacion
STDERRORMSG=El sitio no está disponible temporalmente <br /> Por favor, notifique al Administrador.
STDMETADESC=Joomla! - el motor de portales dinámicos y sistema de administración de contenidos
STDMETAKEYS=joomla, Joomla
STDOFFLINEMSG=El sitio está desactivado por tareas de mantenimiento <br /> Por favor, vuelva más tarde.
STEPS=Pasos
STOPPEDONERROR=Detenido en un error
STOPPEDATLINE=Detenido en la llinea
TABLE PREFIX=Prefijo de las tablas
TIPBACKUP=Las tablas existentes en la base de datos, de instalaciones anteriores de Joomla!, serán reemplazadas.
TIPCOLLATIONNONUTF=<p>Esta versión de MySQL no tiene soporte para UTF-8 que es la codificación requerida</p><p>Se recomienda actualizar la base de datos a una versión posterior a la 4.1.2. Si esto no es posible, Joomla! guardará contenido codificado en UTF-8 en su actual base de datos en modo de compatibilidad con versiones anteriores. La selección de la colación no es posible en este modo por lo se utilizará la colación predeterminada.</p>
TIPCOLLATIONUTF=<p>Esta versión de MySQL incluye soporte para UTF-8 que es la codificación requerida.</p><p>Elija una colación de la lista. Si no aparece ninguna para tu idioma, esto es porque la colación predeterminada <em>utf8_general_ci</em> es adecuada.</p>
TIPCONFSTEPS=<br />Escriba el correo electrónico para el Super Administrador del sitio<br />Escriba la contraseña y la confirmación de la contraseña que usará el Super Administrador. Con esta contraseña y el usuario <strong>admin</strong> podrá ingresar al área de administración una vez finalizada la instalación. Si está migrando contenido o recuperando una copia de seguridad puede ignorar esta sección ya que los datos de los usuarios serán migrados automáticamente.
TIPDATABASE=Algunos hosts permiten solo una base de datos por cuenta. Si debe instalar más de un sitio Joomla! con una misma base de datos, puede modificar la opción de prefijo de tabla en la sección <strong>Parámetros avanzados</strong> para cada sitio instalado.
TIPDATABASESTEPS=<p>Configurar Joomla para que funcione en su servidor requiere de cuatro pasos sencillos...</p>\n<p>Configuración básica</p> <p>1. Seleccionar el tipo de base de datos que utilizará en la lista desplegable (generalmente <strong>mysql</strong>) <p>2. Escribir el nombre del servidor en el que se instalará Joomla.</p>\n <p>3. Escribir el nombre de usuario de MySQL, la contraseña y el nombre de la base de datos que utilizará para Joomla!. Éstos deben estar previamente configurados en su servidor</p>\n<p>4. Configuración avanzada</p> <p>Si la base de datos contiene tablas de instalaciones anteriores de Joomla!, deberá indicar cómo proceder. Eliminarlas o hacer una copia de seguridad.</p>\n <p>Escribir un prefijo con el que comenzarán los nombres de todas las tablas de esta instalación de Joomla.</p>
TIPFTPCONFSTEPS=<p>Debido a posibles restricciones en los permisos en el sistema de archivos y a las restricciones de modo seguro (Safe Mode) de PHP en algunos servidores,\n para que todos los usuarios puedan utilizar los instaladores de Joomla existe una capa FTP que gestiona las operaciones con los archivos.<br/>Escriba el nombre de usuario FTP y la contraseña correspondiente, con acceso al directorio raíz de su sitio web Joomla!; ésta será la cuenta FTP que gestionará las operaciones en el sistema de archivos cuando Joomla! requiera un acceso FTP para completar una tarea.<br/>Por razones de seguridad, es mejor utilizar una cuenta de usuario FTP diferente de la cuenta principal, con acceso únicamente a la instalación de Joomla!.</p>
TIPHOST=Normalmente <strong>localhost</strong> o un nombre de host provisto por su proveedor.
TIPINSTALLDEFAULT=Especialmente recomendado para principiantes. Instalará el contenido de ejemplo incluido en el paquete de instalación en español.
TIPLOADMIGRATION=El script de migración debe crearse en el sitio anterior utilizando el componente <code>com_migrator</code>. Indique el prefijo de las tablas y la codificación del sitio anterior (puede encontrar esta información revisando la variable _ISO en el archivo de idioma - <i>Ej.: spanish.php</i>- o puede verse en su navegador Ej.: En Firefox menú "Herramientas" --> "Información de la página" ítem: "Codificación" o menú "Ver" --> "Codificación").
TIPUPLOADED=Ya se ha subido un script de migración al servidor (ej.: vía FTP/SCP)
TIPMIGRATION=Es un script para migrar desde Joomla! 1.0
TIPLOADSQL=El script SQL debe estar codificado en UTF-8 y utilizar el prefijo apropiado para las tablas.
TIPPASSWORD=Por razones de seguridad el uso de una contraseña para la cuenta de la base de datos MySQL es altamente recomendado. Esta es la contraseña para acceder a su base de datos. Es posible que esta información sea predeterminada por su proveedor.
TIPPREFIX=No puede utilizarse "bak_" ya que se usa para la copia de seguridad de las tablas.
TIPPREINSTALL=Si alguno de estos elementos está marcado\nen rojo, debe corregirse. De no hacerlo,\n la instalación de Joomla! no funcionará\ncorrectamente.
TIPRECOMSETTINGS=Éstos son los valores de PHP recomendados para asegurar una completa compatibilidad com Joomla! No obstante, Joomla! funcionará incluso si estos valores no coinciden con los recomendados.
TIPTYPE=Normalmente será <strong>MySQL</strong>.
TIPUSER=Puede ser algo como <strong>root</strong> o un nombre de usuario, para la base de datos, asignado por su proveedor.
TIPXML=Utilice esto para probar la instalación de otras plataformas de bases de datos.
TOOMANYLINES=Hasta este punto el script contiene más de %s líneas para volcar. Esto es debido a un ítem de contenido largo o, tal vez, un tema de un foro.
UNABLE TO AUTODETECT THE FTP ROOT FOLDER=No es posible autodetectar la raíz de la carpeta FTP.
UNABLETOSETOFFSET=NO ESPERADO: No es posible ubicar el indicador en offset:
UNWRITABLE=No escribible
UPLOAD AND EXECUTE=Subir y ejecutar
UPLOADFILESIZE=El tamaño máximo de subida de tu servidor es %s
USER=Usuario
USER NAME=Nombre de usuario
USERNAME=Nombre de usuario
VALIDDBDETAILS=La información suministrada sobre la base de datos es incompleta o incorrecta.
VALIDCOLLATION=No se ha seleccionado una colación. Para continuar con la colación predeterminada haga clic en "Aceptar". Para volver atrás seleccione "Cancelar".
VALIDHOST=Debe escribir el nombre del host.
VALIDNAME=Ingrese le nombre de la base de datos
VALIDTYPE=Seleccione el tipo de base de datos.
VALIDFTPHOST=Debe escribir el nombre del servidor FTP o revisar que sea correcto.
VALIDFTPUSER=Debe escribir el nombre de usuario FTP o revisar que sea correcto.
VALIDFTPPASS=Debe escribir la contraseña del usuario FTP o revisar que sea correcta.
VALIDPREFIX=Debe escribir un prefijo para la tablas MySQL para que Joomla! funcione correctamente.
VALIDFTP=La configuración de FTP es correcta.
VALIDUSER=Debe ingresar un nombre de usuario válido para la base de datos.
VERIFY FTP SETTINGS=Comprobar la configuración FTP
VERSION#=Versión 1.5
WARNADMINPASSWORD=Debe ingresar una contraseña válida para el administrador.
WARNADMINPASSWORDDOESNTMATCH=La contraseña del administrador y la confirmación no son idénticas.
WARNBACKINGUPDB=Ocurrieron algunos errores al hacer la copia de seguridad de la base de datos.
WARNCOOKIESNOTENABLED=Aparentemente las cookies no están activadas en su navegador. No podrá instalar la aplicación con esta característica desactivada.
WARNCREATEDB=Ha ocurrido en error al intentar crear la base de datos %s.
WARNDELETEDB=Ocurrieron algunos errores al borrar la base de datos.
WARNEMAILADDRESS=Debe ingresar una dirección de correo electrónico válida.
WARNFTPENABLE=Deshabilitar FTP puede causar problemas al instalar complementos para Joomla!
WARNICONV=La extensión PHP iconv, necesaria para migrar contenido, no está cargada.
WARNINSTALLFILE=Fallo al subir el archivo: No está habilitada la subida de archivos en PHP.
WARNINSTALLZLIB=Fallo al subir el archivo: la extensión de PHP zlib no está cargada.
WARNNOFILE=Fallo al subir: el archivo subido no fue encontrado.
WARNUNPACK=Fallo al subir: error al descomprimir el archivo.
WARNNODATA=No se instalaron datos de ejemplo u otro tipo de datos. Haga clic en "Aceptar" para continuar o en "Cancelar" para repetir este paso.
WARNNOTCONNECTDB=No es posible conectar con la base de datos. El mensaje de error devuelto es: %s
WARNSITENAME=Ingrese un nombre para el sitio web.
WARNPOPULATINGDB=Ocurrieron algunos errores al volcar los datos a la base de datos
WARNUPLOADFAILURE=¡Fallo en la subida! Verifique que los directorios "temp" y "/sql/migration" tienen permisos de escritura.
WRITE=Escribir
WORLD=Mundo
WRITABLE=Escribible
XML SUPPORT=Soporte para XML
YES=
YOUR E-MAIL=Correo electrónico
ZLIB COMPRESSION SUPPORT=Soporte para compresión zllib

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<metafile version="1.5" client="installation" >
<name>Spanish (Español internacional)</name>
<version>1.5.4</version>
<creationDate>Jun 2008</creationDate>
<author>TodosJuntos.org Comunidad Hispana de Joomla!</author>
<authorEmail>traduccion@todosjuntos.org</authorEmail>
<authorUrl>www.todosjuntos.org</authorUrl>
<copyright>Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<description>Spanish language file for web installer</description>
<metadata>
<name>Spanish (Español internacional)</name>
<tag>es-ES</tag>
<rtl>0</rtl>
<locale>es_ES.UTF-8, spa_ES.UTF-8, spanish, spanish.UTF-8, spanish_traditional_Sort, Spanish_Modern_Sort,</locale>
<winCodePage>iso-8859-1</winCodePage>
<backwardLang>spanish</backwardLang>
</metadata>
<params />
</metafile>

View File

@ -0,0 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0065)http://downloads.joomlacode.org/frsrelease/1/5/7/15765/index.html -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.5730.11" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff></BODY></HTML>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<localise version="1.5" client="installation" >
<forceLang></forceLang>
<helpurl></helpurl>
<debug>0</debug>
<params/>
</localise>

View File

@ -0,0 +1,60 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Loading</title>
<style type="text/css">
<!--
body {
font-family: arial, helvetica, sans serif;
font-size: 11px;
background: #fff;
color: #333;
}
a:link, a:visited {
color: #0B55C4;
text-decoration: none;
}
a:hover {
color: #009;
}
p {
font-family: arial, helvetica, sans serif;
font-size: 11px;
}
h2 {
font-family: arial, helvetica, sans serif;
font-size: 13px;
font-weight: bold;
}
h3 {
font-family: arial, helvetica, sans serif;
font-size: 12px;
font-weight: bold;
}
h4 {
font-family: arial, helvetica, sans serif;
font-size: 11px;
font-weight: bold;
}
li {
font-family: arial, helvetica, sans serif;
font-size: 11px;
}
pre {
font-size: 11px;
}
-->
</style>
</head>
<body>&nbsp;</body>
</html>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,5 @@
# $Id: diff.sql 9728 2007-12-22 10:26:36Z eddieajau $
# RC 4 to next version (working file)
# NO CHANGES

View File

@ -0,0 +1,30 @@
# $Id: diff_rc1_to_rc2.sql 9728 2007-12-22 10:26:36Z eddieajau $
# RC 1 to RC 2
-- 30-July-2007 --
-- Fixes delete user issue
CREATE TABLE `jos_core_acl_aro_map` (
`acl_id` int(11) NOT NULL default '0',
`section_value` varchar(230) NOT NULL default '0',
`value` varchar(100) NOT NULL,
PRIMARY KEY (`acl_id`,`section_value`,`value`)
) TYPE=MyISAM CHARACTER SET `utf8`;
-- 29-July-2007 --
-- Fixes large object in session data
ALTER TABLE `jos_session`
MODIFY COLUMN `data` LONGTEXT;
# Beta 2 to RC 1
-- Fixes incompatibility with natice phpgacl schema
ALTER TABLE `jos_core_acl_aro_sections`
CHANGE COLUMN `section_id` `id` INTEGER NOT NULL AUTO_INCREMENT;
-- Bogus indexes
ALTER TABLE `jos_core_acl_aro_sections`
DROP INDEX `value_aro_sections`,
DROP INDEX `hidden_aro_sections`;

View File

@ -0,0 +1,5 @@
# $Id: diff_rc2_to_rc3.sql 9728 2007-12-22 10:26:36Z eddieajau $
# RC 2 to RC 3
# NO CHANGES

View File

@ -0,0 +1,54 @@
# $Id: diff_rc3_to_rc4.sql 9728 2007-12-22 10:26:36Z eddieajau $
# RC 3 to RC 4
-- 14-Dec-2007
-- Change SEF plugin from Content To System
UPDATE `jos_plugins` SET `ordering` = `ordering` + 1 WHERE `folder` LIKE 'system';
UPDATE `jos_plugins` SET `name` = 'System - SEF', `folder` = 'system', `ordering` = 1 WHERE element LIKE 'sef';
-- 26-Oct-2007 --
-- Database index optimizations
ALTER TABLE `jos_categories`
DROP INDEX `idx_section`;
ALTER TABLE `jos_components`
ADD INDEX `parent_option` ( `parent` , `option` ( 32 ) );
ALTER TABLE `jos_contact_details`
ADD INDEX `catid` ( `catid` );
ALTER TABLE `jos_content`
ADD INDEX `idx_createdby` ( `created_by` ),
DROP INDEX `idx_mask`;
-- Watch out: This operation already found it's way into the joomla.sql file in RC 1.
-- However, that file has not been used by the installer for a long time.
-- You should *only* run this query if your jos_core_acl_aro_sections table has duplicate indexes.
ALTER TABLE `jos_core_acl_aro_sections`
DROP INDEX `value_aro_sections`,
DROP INDEX `hidden_aro_sections`;
ALTER TABLE `jos_messages`
ADD INDEX `useridto_state` ( `user_id_to`, `state` );
ALTER TABLE `jos_newsfeeds`
ADD INDEX `catid` ( `catid` );
ALTER TABLE `jos_session`
DROP PRIMARY KEY,
ADD PRIMARY KEY (`session_id`(64)),
ADD INDEX `userid` ( `userid` ),
ADD INDEX `time` ( `time` );
ALTER TABLE `jos_templates_menu`
DROP PRIMARY KEY,
ADD PRIMARY KEY ( `menuid`, `client_id`, `template` ( 255 ) );
ALTER TABLE `jos_users`
ADD INDEX `gid_block` (`gid`, `block`),
ADD INDEX `username` ( `username` ),
ADD INDEX `email` ( `email` );

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,839 @@
# $Id: joomla.sql 12384 2009-06-28 03:02:34Z ian $
# Traducida y ajustada para Joomla! 1.5 Spanish www.joomlaspanish.org 28-06-2009
# --------------------------------------------------------
#
# Table structure for table `#__banner`
#
CREATE TABLE `#__banner` (
`bid` int(11) NOT NULL auto_increment,
`cid` int(11) NOT NULL default '0',
`type` varchar(30) NOT NULL default 'banner',
`name` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`imptotal` int(11) NOT NULL default '0',
`impmade` int(11) NOT NULL default '0',
`clicks` int(11) NOT NULL default '0',
`imageurl` varchar(100) NOT NULL default '',
`clickurl` varchar(200) NOT NULL default '',
`date` datetime default NULL,
`showBanner` tinyint(1) NOT NULL default '0',
`checked_out` tinyint(1) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`editor` varchar(50) default NULL,
`custombannercode` text,
`catid` INTEGER UNSIGNED NOT NULL DEFAULT 0,
`description` TEXT NOT NULL DEFAULT '',
`sticky` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`ordering` INTEGER NOT NULL DEFAULT 0,
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`tags` TEXT NOT NULL DEFAULT '',
`params` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`bid`),
KEY `viewbanner` (`showBanner`),
INDEX `idx_banner_catid`(`catid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__bannerclient`
#
CREATE TABLE `#__bannerclient` (
`cid` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`contact` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`extrainfo` text NOT NULL,
`checked_out` tinyint(1) NOT NULL default '0',
`checked_out_time` time default NULL,
`editor` varchar(50) default NULL,
PRIMARY KEY (`cid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__bannertrack`
#
CREATE TABLE `#__bannertrack` (
`track_date` date NOT NULL,
`track_type` int(10) unsigned NOT NULL,
`banner_id` int(10) unsigned NOT NULL
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__categories`
#
CREATE TABLE `#__categories` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default 0,
`title` varchar(255) NOT NULL default '',
`name` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`image` varchar(255) NOT NULL default '',
`section` varchar(50) NOT NULL default '',
`image_position` varchar(30) NOT NULL default '',
`description` text NOT NULL,
`published` tinyint(1) NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`editor` varchar(50) default NULL,
`ordering` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`count` int(11) NOT NULL default '0',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `cat_idx` (`section`,`published`,`access`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__components`
#
CREATE TABLE `#__components` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`link` varchar(255) NOT NULL default '',
`menuid` int(11) unsigned NOT NULL default '0',
`parent` int(11) unsigned NOT NULL default '0',
`admin_menu_link` varchar(255) NOT NULL default '',
`admin_menu_alt` varchar(255) NOT NULL default '',
`option` varchar(50) NOT NULL default '',
`ordering` int(11) NOT NULL default '0',
`admin_menu_img` varchar(255) NOT NULL default '',
`iscore` tinyint(4) NOT NULL default '0',
`params` text NOT NULL,
`enabled` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `parent_option` (`parent`, `option`(32))
) TYPE=MyISAM CHARACTER SET `utf8`;
#
# Dumping data for table `#__components`
#
INSERT INTO `#__components` VALUES (1, 'Banners', '', 0, 0, '', 'Banner Management', 'com_banners', 0, 'js/ThemeOffice/component.png', 0, 'track_impressions=0\ntrack_clicks=0\ntag_prefix=\n\n', 1);
INSERT INTO `#__components` VALUES (2, 'Banners', '', 0, 1, 'option=com_banners', 'Active Banners', 'com_banners', 1, 'js/ThemeOffice/edit.png', 0, '', 1);
INSERT INTO `#__components` VALUES (3, 'Clientes', '', 0, 1, 'option=com_banners&c=client', 'Manage Clients', 'com_banners', 2, 'js/ThemeOffice/categories.png', 0, '', 1);
INSERT INTO `#__components` VALUES (4, 'Enlaces Web', 'option=com_weblinks', 0, 0, '', 'Manage Weblinks', 'com_weblinks', 0, 'js/ThemeOffice/component.png', 0, 'show_comp_description=1\ncomp_description=\nshow_link_hits=1\nshow_link_description=1\nshow_other_cats=1\nshow_headings=1\nshow_page_title=1\nlink_target=0\nlink_icons=\n\n', 1);
INSERT INTO `#__components` VALUES (5, 'Enlaces', '', 0, 4, 'option=com_weblinks', 'View existing weblinks', 'com_weblinks', 1, 'js/ThemeOffice/edit.png', 0, '', 1);
INSERT INTO `#__components` VALUES (6, 'Categorías', '', 0, 4, 'option=com_categories&section=com_weblinks', 'Manage weblink categories', '', 2, 'js/ThemeOffice/categories.png', 0, '', 1);
INSERT INTO `#__components` VALUES (7, 'Contactos', 'option=com_contact', 0, 0, '', 'Edit contact details', 'com_contact', 0, 'js/ThemeOffice/component.png', 1, 'contact_icons=0\nicon_address=\nicon_email=\nicon_telephone=\nicon_fax=\nicon_misc=\nshow_headings=1\nshow_position=1\nshow_email=0\nshow_telephone=1\nshow_mobile=1\nshow_fax=1\nbannedEmail=\nbannedSubject=\nbannedText=\nsession=1\ncustomReply=0\n\n', 1);
INSERT INTO `#__components` VALUES (8, 'Contactos', '', 0, 7, 'option=com_contact', 'Edit contact details', 'com_contact', 0, 'js/ThemeOffice/edit.png', 1, '', 1);
INSERT INTO `#__components` VALUES (9, 'Categorías', '', 0, 7, 'option=com_categories&section=com_contact_details', 'Manage contact categories', '', 2, 'js/ThemeOffice/categories.png', 1, '', 1);
INSERT INTO `#__components` VALUES (10, 'Encuesta', 'option=com_poll', 0, 0, 'option=com_poll', 'Manage Polls', 'com_poll', 0, 'js/ThemeOffice/component.png', 0, '', 1);
INSERT INTO `#__components` VALUES (11, 'News Feeds', 'option=com_newsfeeds', 0, 0, '', 'News Feeds Management', 'com_newsfeeds', 0, 'js/ThemeOffice/component.png', 0, '', 1);
INSERT INTO `#__components` VALUES (12, 'Feeds', '', 0, 11, 'option=com_newsfeeds', 'Manage News Feeds', 'com_newsfeeds', 1, 'js/ThemeOffice/edit.png', 0, '', 1);
INSERT INTO `#__components` VALUES (13, 'Categorías', '', 0, 11, 'option=com_categories&section=com_newsfeeds', 'Manage Categories', '', 2, 'js/ThemeOffice/categories.png', 0, '', 1);
INSERT INTO `#__components` VALUES (14, 'Usuario', 'option=com_user', 0, 0, '', '', 'com_user', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (15, 'Buscar', 'option=com_search', 0, 0, 'option=com_search', 'Search Statistics', 'com_search', 0, 'js/ThemeOffice/component.png', 1, 'enabled=0\n\n', 1);
INSERT INTO `#__components` VALUES (16, 'Categorías', '', 0, 1, 'option=com_categories&section=com_banner', 'Categories', '', 3, '', 1, '', 1);
INSERT INTO `#__components` VALUES (17, 'Wrapper', 'option=com_wrapper', 0, 0, '', 'Wrapper', 'com_wrapper', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (18, 'Mail para', '', 0, 0, '', '', 'com_mailto', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (19, 'Administrador Media', '', 0, 0, 'option=com_media', 'Media Manager', 'com_media', 0, '', 1, 'upload_extensions=bmp,csv,doc,epg,gif,ico,jpg,odg,odp,ods,odt,pdf,png,ppt,swf,txt,xcf,xls,BMP,CSV,DOC,EPG,GIF,ICO,JPG,ODG,ODP,ODS,ODT,PDF,PNG,PPT,SWF,TXT,XCF,XLS\nupload_maxsize=10000000\nfile_path=images\nimage_path=images/stories\nrestrict_uploads=1\ncheck_mime=1\nimage_extensions=bmp,gif,jpg,png\nignore_extensions=\nupload_mime=image/jpeg,image/gif,image/png,image/bmp,application/x-shockwave-flash,application/msword,application/excel,application/pdf,application/powerpoint,text/plain,application/x-zip\nupload_mime_illegal=text/html', 1);
INSERT INTO `#__components` VALUES (20, 'Artículos', 'option=com_content', 0, 0, '', '', 'com_content', 0, '', 1, 'show_noauth=0\nshow_title=1\nlink_titles=0\nshow_intro=1\nshow_section=0\nlink_section=0\nshow_category=0\nlink_category=0\nshow_author=1\nshow_create_date=1\nshow_modify_date=1\nshow_item_navigation=0\nshow_readmore=1\nshow_vote=0\nshow_icons=1\nshow_pdf_icon=1\nshow_print_icon=1\nshow_email_icon=1\nshow_hits=1\nfeed_summary=0\n\n', 1);
INSERT INTO `#__components` VALUES (21, 'Administrar Configuración', '', 0, 0, '', 'Configuration', 'com_config', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (22, 'Administrar Instalaciones', '', 0, 0, '', 'Installer', 'com_installer', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (23, 'Gestor de idiomas', '', 0, 0, '', 'Idiomas', 'com_languages', 0, '', 1, 'site=es-ES\nadministrator=es-ES\n\n', 1);
INSERT INTO `#__components` VALUES (24, 'Mail masivo', '', 0, 0, '', 'Mass Mail', 'com_massmail', 0, '', 1, 'mailSubjectPrefix=\nmailBodySuffix=\n\n', 1);
INSERT INTO `#__components` VALUES (25, 'Menú del editor', '', 0, 0, '', 'Menu Editor', 'com_menus', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (27, 'Mensajes', '', 0, 0, '', 'Messages', 'com_messages', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (28, 'Administrar modulos', '', 0, 0, '', 'Modules', 'com_modules', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (29, 'Administrar Plugin', '', 0, 0, '', 'Plugins', 'com_plugins', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (30, 'Administrar plantilla', '', 0, 0, '', 'Templates', 'com_templates', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (31, 'Administrar usuarios', '', 0, 0, '', 'Users', 'com_users', 0, '', 1, 'allowUserRegistration=1\nnew_usertype=Registered\nuseractivation=1\nfrontend_userparams=1\n\n', 1);
INSERT INTO `#__components` VALUES (32, 'Administrar la caché', '', 0, 0, '', 'Cache', 'com_cache', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (33, 'Panel de Control', '', 0, 0, '', 'Control Panel', 'com_cpanel', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES(34, 'Administrador de Traducciones', 'option=com_translationsmanager', 0, 0, 'option=com_translationsmanager', 'Administrador de Traducciones', 'com_translationsmanager', 0, 'class:language', 0, '', 1);
# --------------------------------------------------------
#
# Table structure for table `#__contact_details`
#
CREATE TABLE `#__contact_details` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`con_position` varchar(255) default NULL,
`address` text,
`suburb` varchar(100) default NULL,
`state` varchar(100) default NULL,
`country` varchar(100) default NULL,
`postcode` varchar(100) default NULL,
`telephone` varchar(255) default NULL,
`fax` varchar(255) default NULL,
`misc` mediumtext,
`image` varchar(255) default NULL,
`imagepos` varchar(20) default NULL,
`email_to` varchar(255) default NULL,
`default_con` tinyint(1) unsigned NOT NULL default '0',
`published` tinyint(1) unsigned NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`params` text NOT NULL,
`user_id` int(11) NOT NULL default '0',
`catid` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`mobile` varchar(255) NOT NULL default '',
`webpage` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `catid` (`catid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__content`
#
CREATE TABLE `#__content` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`title_alias` varchar(255) NOT NULL default '',
`introtext` mediumtext NOT NULL,
`fulltext` mediumtext NOT NULL,
`state` tinyint(3) NOT NULL default '0',
`sectionid` int(11) unsigned NOT NULL default '0',
`mask` int(11) unsigned NOT NULL default '0',
`catid` int(11) unsigned NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`created_by` int(11) unsigned NOT NULL default '0',
`created_by_alias` varchar(255) NOT NULL default '',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`modified_by` int(11) unsigned NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`images` text NOT NULL,
`urls` text NOT NULL,
`attribs` text NOT NULL,
`version` int(11) unsigned NOT NULL default '1',
`parentid` int(11) unsigned NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`access` int(11) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '0',
`metadata` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `idx_section` (`sectionid`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_state` (`state`),
KEY `idx_catid` (`catid`),
KEY `idx_createdby` (`created_by`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__content_frontpage`
#
CREATE TABLE `#__content_frontpage` (
`content_id` int(11) NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
PRIMARY KEY (`content_id`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__content_rating`
#
CREATE TABLE `#__content_rating` (
`content_id` int(11) NOT NULL default '0',
`rating_sum` int(11) unsigned NOT NULL default '0',
`rating_count` int(11) unsigned NOT NULL default '0',
`lastip` varchar(50) NOT NULL default '',
PRIMARY KEY (`content_id`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
# Table structure for table `#__core_log_items`
CREATE TABLE `#__core_log_items` (
`time_stamp` date NOT NULL default '0000-00-00',
`item_table` varchar(50) NOT NULL default '',
`item_id` int(11) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '0'
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
# Table structure for table `#__core_log_searches`
CREATE TABLE `#__core_log_searches` (
`search_term` varchar(128) NOT NULL default '',
`hits` int(11) unsigned NOT NULL default '0'
) TYPE=MyISAM CHARACTER SET `utf8`;
#
# Table structure for table `#__groups`
#
# --------------------------------------------------------
CREATE TABLE `#__groups` (
`id` tinyint(3) unsigned NOT NULL default '0',
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM CHARACTER SET `utf8`;
#
# Dumping data for table `#__groups`
#
INSERT INTO `#__groups` VALUES (0, 'Public');
INSERT INTO `#__groups` VALUES (1, 'Registered');
INSERT INTO `#__groups` VALUES (2, 'Special');
# --------------------------------------------------------
#
# Table structure for table `#__plugins`
#
CREATE TABLE `#__plugins` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL default '',
`element` varchar(100) NOT NULL default '',
`folder` varchar(100) NOT NULL default '',
`access` tinyint(3) unsigned NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
`published` tinyint(3) NOT NULL default '0',
`iscore` tinyint(3) NOT NULL default '0',
`client_id` tinyint(3) NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_folder` (`published`,`client_id`,`access`,`folder`)
) TYPE=MyISAM CHARACTER SET `utf8`;
INSERT INTO `#__plugins` VALUES (1, 'Autenticación - Joomla', 'joomla', 'authentication', 0, 1, 1, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (2, 'Autenticación - LDAP', 'ldap', 'authentication', 0, 2, 0, 1, 0, 0, '0000-00-00 00:00:00', 'host=\nport=389\nuse_ldapV3=0\nnegotiate_tls=0\nno_referrals=0\nauth_method=bind\nbase_dn=\nsearch_string=\nusers_dn=\nusername=\npassword=\nldap_fullname=fullName\nldap_email=mail\nldap_uid=uid\n\n');
INSERT INTO `#__plugins` VALUES (3, 'Autenticación - GMail', 'gmail', 'authentication', 0, 4, 0, 0, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (4, 'Autenticación - OpenID', 'openid', 'authentication', 0, 3, 0, 0, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (5, 'Usuario - Joomla!', 'joomla', 'user', 0, 0, 1, 0, 0, 0, '0000-00-00 00:00:00', 'autoregister=1\n\n');
INSERT INTO `#__plugins` VALUES (6, 'Buscar - Contenido','content','search',0,1,1,1,0,0,'0000-00-00 00:00:00','search_limit=50\nsearch_content=1\nsearch_uncategorised=1\nsearch_archived=1\n\n');
INSERT INTO `#__plugins` VALUES (7, 'Buscar - Contactos','contacts','search',0,3,1,1,0,0,'0000-00-00 00:00:00','search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (8, 'Buscar - Categorías', 'categories', 'search', 0, 4, 1, 0, 0, 0, '0000-00-00 00:00:00', 'search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (9, 'Buscar - Secciones', 'sections', 'search', 0, 5, 1, 0, 0, 0, '0000-00-00 00:00:00', 'search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (10, 'Buscar - Newsfeeds', 'newsfeeds', 'search', 0, 6, 1, 0, 0, 0, '0000-00-00 00:00:00', 'search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (11, 'Buscar - Weblinks','weblinks','search',0,2,1,1,0,0,'0000-00-00 00:00:00','search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (12, 'Contenido - Pagebreak','pagebreak','content',0,10000,1,1,0,0,'0000-00-00 00:00:00','enabled=1\ntitle=1\nmultipage_toc=1\nshowall=1\n\n');
INSERT INTO `#__plugins` VALUES (13, 'Contenido - Votar','vote','content',0,4,1,1,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (14, 'Contenido - Email Cloaking', 'emailcloak', 'content', 0, 5, 1, 0, 0, 0, '0000-00-00 00:00:00', 'mode=1\n\n');
INSERT INTO `#__plugins` VALUES (15, 'Contenido - Code Hightlighter (GeSHi)', 'geshi', 'content', 0, 5, 0, 0, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (16, 'Contenido - Cargar módulo', 'loadmodule', 'content', 0, 6, 1, 0, 0, 0, '0000-00-00 00:00:00', 'enabled=1\nstyle=0\n\n');
INSERT INTO `#__plugins` VALUES (17, 'Contenido - Page Navigation','pagenavigation','content',0,2,1,1,0,0,'0000-00-00 00:00:00','position=1\n\n');
INSERT INTO `#__plugins` VALUES (18, 'Editor - No Editor','none','editors',0,0,1,1,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (19, 'Editor - TinyMCE', 'tinymce', 'editors', 0, 0, 1, 1, 0, 0, '0000-00-00 00:00:00', 'theme=advanced\ncleanup=1\ncleanup_startup=0\nautosave=0\ncompressed=0\nrelative_urls=1\ntext_direction=ltr\nlang_mode=0\nlang_code=es\ninvalid_elements=applet\ncontent_css=1\ncontent_css_custom=\nnewlines=0\ntoolbar=top\nhr=1\nsmilies=1\ntable=1\nstyle=1\nlayer=1\nxhtmlxtras=0\ntemplate=0\ndirectionality=1\nfullscreen=1\nhtml_height=550\nhtml_width=750\npreview=1\ninsertdate=1\nformat_date=%Y-%m-%d\ninserttime=1\nformat_time=%H:%M:%S\n\n');
INSERT INTO `#__plugins` VALUES (20, 'Editor - XStandard Lite 2.0', 'xstandard', 'editors', 0, 0, 1, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (21, 'Editor Botón - Imagen','image','editors-xtd',0,0,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (22, 'Editor Botón - Pagebreak','pagebreak','editors-xtd',0,0,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (23, 'Editor Botón - Leer más','readmore','editors-xtd',0,0,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (24, 'XML-RPC - Joomla', 'joomla', 'xmlrpc', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (25, 'XML-RPC - Blogger API', 'blogger', 'xmlrpc', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', 'catid=1\nsectionid=0\n\n');
#INSERT INTO `#__plugins` VALUES (26, 'XML-RPC - MetaWeblog API', 'metaweblog', 'xmlrpc', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (27, 'Sistema - SEF','sef','system',0,1,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (28, 'Sistema - Debug', 'debug', 'system', 0, 2, 1, 0, 0, 0, '0000-00-00 00:00:00', 'queries=1\nmemory=1\nlangauge=1\n\n');
INSERT INTO `#__plugins` VALUES (29, 'Sistema - Legado', 'legacy', 'system', 0, 3, 0, 1, 0, 0, '0000-00-00 00:00:00', 'route=0\n\n');
INSERT INTO `#__plugins` VALUES (30, 'Sistema - Cache', 'cache', 'system', 0, 4, 0, 1, 0, 0, '0000-00-00 00:00:00', 'browsercache=0\ncachetime=15\n\n');
INSERT INTO `#__plugins` VALUES (31, 'Sistema - Log', 'log', 'system', 0, 5, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (32, 'Sistema - Recordarme', 'remember', 'system', 0, 6, 1, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (33, 'Sistema - Backlink', 'backlink', 'system', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
# --------------------------------------------------------
#
# Table structure for table `#__menu`
#
CREATE TABLE `#__menu` (
`id` int(11) NOT NULL auto_increment,
`menutype` varchar(75) default NULL,
`name` varchar(255) default NULL,
`alias` varchar(255) NOT NULL default '',
`link` text,
`type` varchar(50) NOT NULL default '',
`published` tinyint(1) NOT NULL default 0,
`parent` int(11) unsigned NOT NULL default 0,
`componentid` int(11) unsigned NOT NULL default 0,
`sublevel` int(11) default 0,
`ordering` int(11) default 0,
`checked_out` int(11) unsigned NOT NULL default 0,
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`pollid` int(11) NOT NULL default 0,
`browserNav` tinyint(4) default 0,
`access` tinyint(3) unsigned NOT NULL default 0,
`utaccess` tinyint(3) unsigned NOT NULL default 0,
`params` text NOT NULL,
`lft` int(11) unsigned NOT NULL default 0,
`rgt` int(11) unsigned NOT NULL default 0,
`home` INTEGER(1) UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `componentid` (`componentid`,`menutype`,`published`,`access`),
KEY `menutype` (`menutype`)
) TYPE=MyISAM CHARACTER SET `utf8`;
INSERT INTO `#__menu` VALUES (1, 'mainmenu', 'Inicio', 'home', 'index.php?option=com_content&view=frontpage', 'component', 1, 0, 20, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, 0, 3, 'show_page_title=1\npage_title=Bienvenidos a la portada\nshow_description=0\nshow_description_image=0\nnum_leading_articles=1\nnum_intro_articles=4\nnum_columns=2\nnum_links=4\nshow_title=1\npageclass_sfx=\nmenu_image=-1\nsecure=0\norderby_pri=\norderby_sec=front\nshow_pagination=2\nshow_pagination_results=1\nshow_noauth=0\nlink_titles=0\nshow_intro=1\nshow_section=0\nlink_section=0\nshow_category=0\nlink_category=0\nshow_author=1\nshow_create_date=1\nshow_modify_date=1\nshow_item_navigation=0\nshow_readmore=1\nshow_vote=0\nshow_icons=1\nshow_pdf_icon=1\nshow_print_icon=1\nshow_email_icon=1\nshow_hits=1\n\n', 0, 0, 1);
# --------------------------------------------------------
#
# Table structure for table `#__menu_types`
#
CREATE TABLE `#__menu_types` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`menutype` VARCHAR(75) NOT NULL DEFAULT '',
`title` VARCHAR(255) NOT NULL DEFAULT '',
`description` VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY(`id`),
UNIQUE `menutype`(`menutype`)
) TYPE=MyISAM CHARACTER SET `utf8`;
INSERT INTO `#__menu_types` VALUES (1, 'mainmenu', 'Menú principal', 'Este es el menú principal del sitio');
# --------------------------------------------------------
#
# Table structure for table `#__messages`
#
CREATE TABLE `#__messages` (
`message_id` int(10) unsigned NOT NULL auto_increment,
`user_id_from` int(10) unsigned NOT NULL default '0',
`user_id_to` int(10) unsigned NOT NULL default '0',
`folder_id` int(10) unsigned NOT NULL default '0',
`date_time` datetime NOT NULL default '0000-00-00 00:00:00',
`state` int(11) NOT NULL default '0',
`priority` int(1) unsigned NOT NULL default '0',
`subject` text NOT NULL default '',
`message` text NOT NULL,
PRIMARY KEY (`message_id`),
KEY `useridto_state` (`user_id_to`, `state`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__messages_cfg`
#
CREATE TABLE `#__messages_cfg` (
`user_id` int(10) unsigned NOT NULL default '0',
`cfg_name` varchar(100) NOT NULL default '',
`cfg_value` varchar(255) NOT NULL default '',
UNIQUE `idx_user_var_name` (`user_id`,`cfg_name`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__modules`
#
CREATE TABLE `#__modules` (
`id` int(11) NOT NULL auto_increment,
`title` text NOT NULL,
`content` text NOT NULL,
`ordering` int(11) NOT NULL default '0',
`position` varchar(50) default NULL,
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`published` tinyint(1) NOT NULL default '0',
`module` varchar(50) default NULL,
`numnews` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`showtitle` tinyint(3) unsigned NOT NULL default '1',
`params` text NOT NULL,
`iscore` tinyint(4) NOT NULL default '0',
`client_id` tinyint(4) NOT NULL default '0',
`control` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `published` (`published`,`access`),
KEY `newsfeeds` (`module`,`published`)
) TYPE=MyISAM CHARACTER SET `utf8`;
INSERT INTO `#__modules` VALUES (1, 'Menú principal', '', 1, 'left', 0, '0000-00-00 00:00:00', 1, 'mod_mainmenu', 0, 0, 1, 'menutype=mainmenu\nmoduleclass_sfx=_menu\n', 1, 0, '');
INSERT INTO `#__modules` VALUES (2, 'Acceso', '', 1, 'login', 0, '0000-00-00 00:00:00', 1, 'mod_login', 0, 0, 1, '', 1, 1, '');
INSERT INTO `#__modules` VALUES (3, 'Popular','',3,'cpanel',0,'0000-00-00 00:00:00',1,'mod_popular',0,2,1,'',0, 1, '');
INSERT INTO `#__modules` VALUES (4, 'Artículos añadidos recientemente','',4,'cpanel',0,'0000-00-00 00:00:00',1,'mod_latest',0,2,1,'ordering=c_dsc\nuser_id=0\ncache=0\n\n',0, 1, '');
INSERT INTO `#__modules` VALUES (5, 'Menú de estadísticas','',5,'cpanel',0,'0000-00-00 00:00:00',1,'mod_stats',0,2,1,'',0, 1, '');
INSERT INTO `#__modules` VALUES (6, 'Los mensajes no leídos','',1,'header',0,'0000-00-00 00:00:00',1,'mod_unread',0,2,1,'',1, 1, '');
INSERT INTO `#__modules` VALUES (7, 'Usuarios Online','',2,'header',0,'0000-00-00 00:00:00',1,'mod_online',0,2,1,'',1, 1, '');
INSERT INTO `#__modules` VALUES (8, 'Toolbar','',1,'toolbar',0,'0000-00-00 00:00:00',1,'mod_toolbar',0,2,1,'',1, 1, '');
INSERT INTO `#__modules` VALUES (9, 'Iconos rápidos','',1,'icon',0,'0000-00-00 00:00:00',1,'mod_quickicon',0,2,1,'',1,1, '');
INSERT INTO `#__modules` VALUES (10, 'Usuarios identificados','',2,'cpanel',0,'0000-00-00 00:00:00',1,'mod_logged',0,2,1,'',0,1, '');
INSERT INTO `#__modules` VALUES (11, 'Footer', '', 0, 'footer', 0, '0000-00-00 00:00:00', 1, 'mod_footer', 0, 0, 1, '', 1, 1, '');
INSERT INTO `#__modules` VALUES (12, 'Menú Admin','', 1,'menu', 0,'0000-00-00 00:00:00', 1,'mod_menu', 0, 2, 1, '', 0, 1, '');
INSERT INTO `#__modules` VALUES (13, 'Admin SubMenu','', 1,'submenu', 0,'0000-00-00 00:00:00', 1,'mod_submenu', 0, 2, 1, '', 0, 1, '');
INSERT INTO `#__modules` VALUES (14, 'Estado del usuario','', 1,'status', 0,'0000-00-00 00:00:00', 1,'mod_status', 0, 2, 1, '', 0, 1, '');
INSERT INTO `#__modules` VALUES (15, 'Título','', 1,'title', 0,'0000-00-00 00:00:00', 1,'mod_title', 0, 2, 1, '', 0, 1, '');
# --------------------------------------------------------
#
# Table structure for table `#__modules_menu`
#
CREATE TABLE `#__modules_menu` (
`moduleid` int(11) NOT NULL default '0',
`menuid` int(11) NOT NULL default '0',
PRIMARY KEY (`moduleid`,`menuid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
#
# Dumping data for table `#__modules_menu`
#
INSERT INTO `#__modules_menu` VALUES (1,0);
# --------------------------------------------------------
#
# Table structure for table `#__newsfeeds`
#
CREATE TABLE `#__newsfeeds` (
`catid` int(11) NOT NULL default '0',
`id` int(11) NOT NULL auto_increment,
`name` text NOT NULL,
`alias` varchar(255) NOT NULL default '',
`link` text NOT NULL,
`filename` varchar(200) default NULL,
`published` tinyint(1) NOT NULL default '0',
`numarticles` int(11) unsigned NOT NULL default '1',
`cache_time` int(11) unsigned NOT NULL default '3600',
`checked_out` tinyint(3) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`rtl` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `published` (`published`),
KEY `catid` (`catid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__poll_data`
#
CREATE TABLE `#__poll_data` (
`id` int(11) NOT NULL auto_increment,
`pollid` int(11) NOT NULL default '0',
`text` text NOT NULL default '',
`hits` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `pollid` (`pollid`,`text`(1))
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__poll_date`
#
CREATE TABLE `#__poll_date` (
`id` bigint(20) NOT NULL auto_increment,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`vote_id` int(11) NOT NULL default '0',
`poll_id` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `poll_id` (`poll_id`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__polls`
#
CREATE TABLE `#__polls` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`voters` int(9) NOT NULL default '0',
`checked_out` int(11) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`published` tinyint(1) NOT NULL default '0',
`access` int(11) NOT NULL default '0',
`lag` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__poll_menu`
# !!!DEPRECATED!!!
#
CREATE TABLE `#__poll_menu` (
`pollid` int(11) NOT NULL default '0',
`menuid` int(11) NOT NULL default '0',
PRIMARY KEY (`pollid`,`menuid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__sections`
#
CREATE TABLE `#__sections` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`name` varchar(255) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`image` TEXT NOT NULL default '',
`scope` varchar(50) NOT NULL default '',
`image_position` varchar(30) NOT NULL default '',
`description` text NOT NULL,
`published` tinyint(1) NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`count` int(11) NOT NULL default '0',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_scope` (`scope`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__session`
#
CREATE TABLE `#__session` (
`username` varchar(150) default '',
`time` varchar(14) default '',
`session_id` varchar(200) NOT NULL default '0',
`guest` tinyint(4) default '1',
`userid` int(11) default '0',
`usertype` varchar(50) default '',
`gid` tinyint(3) unsigned NOT NULL default '0',
`client_id` tinyint(3) unsigned NOT NULL default '0',
`data` longtext,
PRIMARY KEY (`session_id`(64)),
KEY `whosonline` (`guest`,`usertype`),
KEY `userid` (`userid`),
KEY `time` (`time`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__stats_agents`
#
CREATE TABLE `#__stats_agents` (
`agent` varchar(255) NOT NULL default '',
`type` tinyint(1) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '1'
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__templates_menu`
#
CREATE TABLE `#__templates_menu` (
`template` varchar(255) NOT NULL default '',
`menuid` int(11) NOT NULL default '0',
`client_id` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`menuid`, `client_id`, `template`(255))
) TYPE=MyISAM CHARACTER SET `utf8`;
# Dumping data for table `#__templates_menu`
INSERT INTO `#__templates_menu` VALUES ('ja_purity', '0', '0');
INSERT INTO `#__templates_menu` VALUES ('khepri', '0', '1');
# --------------------------------------------------------
#
# Table structure for table `#__users`
#
CREATE TABLE `#__users` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`username` varchar(150) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`password` varchar(100) NOT NULL default '',
`usertype` varchar(25) NOT NULL default '',
`block` tinyint(4) NOT NULL default '0',
`sendEmail` tinyint(4) default '0',
`gid` tinyint(3) unsigned NOT NULL default '1',
`registerDate` datetime NOT NULL default '0000-00-00 00:00:00',
`lastvisitDate` datetime NOT NULL default '0000-00-00 00:00:00',
`activation` varchar(100) NOT NULL default '',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `usertype` (`usertype`),
KEY `idx_name` (`name`),
KEY `gid_block` (`gid`, `block`),
KEY `username` (`username`),
KEY `email` (`email`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__weblinks`
#
CREATE TABLE `#__weblinks` (
`id` int(11) unsigned NOT NULL auto_increment,
`catid` int(11) NOT NULL default '0',
`sid` int(11) NOT NULL default '0',
`title` varchar(250) NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`url` varchar(250) NOT NULL default '',
`description` text NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`hits` int(11) NOT NULL default '0',
`published` tinyint(1) NOT NULL default '0',
`checked_out` int(11) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`archived` tinyint(1) NOT NULL default '0',
`approved` tinyint(1) NOT NULL default '1',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `catid` (`catid`,`published`,`archived`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro`
#
CREATE TABLE `#__core_acl_aro` (
`id` int(11) NOT NULL auto_increment,
`section_value` varchar(240) NOT NULL default '0',
`value` varchar(240) NOT NULL default '',
`order_value` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`hidden` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `#__section_value_value_aro` (`section_value`(100),`value`(100)),
KEY `#__gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro_map`
#
CREATE TABLE `#__core_acl_aro_map` (
`acl_id` int(11) NOT NULL default '0',
`section_value` varchar(230) NOT NULL default '0',
`value` varchar(100) NOT NULL,
PRIMARY KEY (`acl_id`,`section_value`,`value`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro_groups`
#
CREATE TABLE `#__core_acl_aro_groups` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`lft` int(11) NOT NULL default '0',
`rgt` int(11) NOT NULL default '0',
`value` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `#__gacl_parent_id_aro_groups` (`parent_id`),
KEY `#__gacl_lft_rgt_aro_groups` (`lft`,`rgt`)
) TYPE=MyISAM CHARACTER SET `utf8`;
#
# Dumping data for table `#__core_acl_aro_groups`
#
INSERT INTO `#__core_acl_aro_groups` VALUES (17,0,'ROOT',1,22,'ROOT');
INSERT INTO `#__core_acl_aro_groups` VALUES (28,17,'USERS',2,21,'USERS');
INSERT INTO `#__core_acl_aro_groups` VALUES (29,28,'Public Frontend',3,12,'Public Frontend');
INSERT INTO `#__core_acl_aro_groups` VALUES (18,29,'Registered',4,11,'Registered');
INSERT INTO `#__core_acl_aro_groups` VALUES (19,18,'Author',5,10,'Author');
INSERT INTO `#__core_acl_aro_groups` VALUES (20,19,'Editor',6,9,'Editor');
INSERT INTO `#__core_acl_aro_groups` VALUES (21,20,'Publisher',7,8,'Publisher');
INSERT INTO `#__core_acl_aro_groups` VALUES (30,28,'Public Backend',13,20,'Public Backend');
INSERT INTO `#__core_acl_aro_groups` VALUES (23,30,'Manager',14,19,'Manager');
INSERT INTO `#__core_acl_aro_groups` VALUES (24,23,'Administrator',15,18,'Administrator');
INSERT INTO `#__core_acl_aro_groups` VALUES (25,24,'Super Administrator',16,17,'Super Administrator');
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_groups_aro_map`
#
CREATE TABLE `#__core_acl_groups_aro_map` (
`group_id` int(11) NOT NULL default '0',
`section_value` varchar(240) NOT NULL default '',
`aro_id` int(11) NOT NULL default '0',
UNIQUE KEY `group_id_aro_id_groups_aro_map` (`group_id`,`section_value`,`aro_id`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro_sections`
#
CREATE TABLE `#__core_acl_aro_sections` (
`id` int(11) NOT NULL auto_increment,
`value` varchar(230) NOT NULL default '',
`order_value` int(11) NOT NULL default '0',
`name` varchar(230) NOT NULL default '',
`hidden` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `#__gacl_value_aro_sections` (`value`),
KEY `#__gacl_hidden_aro_sections` (`hidden`)
) TYPE=MyISAM CHARACTER SET `utf8`;
INSERT INTO `#__core_acl_aro_sections` VALUES (10,'users',1,'Users',0);
# --------------------------------------------------------
#
# Table structure for table `#__migration_backlinks`
#
CREATE TABLE #__migration_backlinks (
`itemid` INT(11) NOT NULL,
`name` VARCHAR(100) NOT NULL,
`url` TEXT NOT NULL,
`sefurl` TEXT NOT NULL,
`newurl` TEXT NOT NULL,
PRIMARY KEY(`itemid`)
) TYPE=MyISAM CHARACTER SET `utf8`;
# --------------------------------------------------------

View File

@ -0,0 +1,841 @@
# $Id: joomla_backward.sql 6311 2007-01-18 23:18:53Z hackwar $
# Traducida y ajustada para Joomla! 1.5 Spanish www.joomlaspanish.org 21-12-2207
# IMPORTANTE - THIS FILE MUST BE SAVED WITH UTF-8 ENCODING ONLY.
# --------------------------------------------------------
#
# Table structure for table `#__banner`
#
CREATE TABLE `#__banner` (
`bid` int(11) NOT NULL auto_increment,
`cid` int(11) NOT NULL default '0',
`type` varchar(90) NOT NULL default 'banner',
`name` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`imptotal` int(11) NOT NULL default '0',
`impmade` int(11) NOT NULL default '0',
`clicks` int(11) NOT NULL default '0',
`imageurl` varchar(100) NOT NULL default '',
`clickurl` varchar(200) NOT NULL default '',
`date` datetime default NULL,
`showBanner` tinyint(1) NOT NULL default '0',
`checked_out` tinyint(1) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`editor` varchar(150) default NULL,
`custombannercode` text,
`catid` INTEGER UNSIGNED NOT NULL DEFAULT 0,
`description` TEXT NOT NULL DEFAULT '',
`sticky` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`ordering` INTEGER NOT NULL DEFAULT 0,
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`tags` TEXT NOT NULL DEFAULT '',
`params` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`bid`),
KEY `viewbanner` (`showBanner`),
INDEX `idx_banner_catid`(`catid`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__bannerclient`
#
CREATE TABLE `#__bannerclient` (
`cid` int(11) NOT NULL auto_increment,
`name` TEXT NOT NULL default '',
`contact` TEXT NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`extrainfo` text NOT NULL,
`checked_out` tinyint(1) NOT NULL default '0',
`checked_out_time` time default NULL,
`editor` varchar(150) default NULL,
PRIMARY KEY (`cid`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__bannertrack`
#
CREATE TABLE `#__bannertrack` (
`track_date` date NOT NULL,
`track_type` int(10) unsigned NOT NULL,
`banner_id` int(10) unsigned NOT NULL
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__categories`
#
CREATE TABLE `#__categories` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default 0,
`title` TEXT NOT NULL default '',
`name` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`image` varchar(255) NOT NULL default '',
`section` varchar(150) NOT NULL default '',
`image_position` varchar(90) NOT NULL default '',
`description` text NOT NULL,
`published` tinyint(1) NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`editor` varchar(150) default NULL,
`ordering` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`count` int(11) NOT NULL default '0',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `cat_idx` (`section`,`published`,`access`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`)
) TYPE=MyISAM ;
# --------------------------------------------------------
#
# Table structure for table `#__components`
#
CREATE TABLE `#__components` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(150) NOT NULL default '',
`link` varchar(255) NOT NULL default '',
`menuid` int(11) unsigned NOT NULL default '0',
`parent` int(11) unsigned NOT NULL default '0',
`admin_menu_link` varchar(255) NOT NULL default '',
`admin_menu_alt` TEXT NOT NULL default '',
`option` varchar(50) NOT NULL default '',
`ordering` int(11) NOT NULL default '0',
`admin_menu_img` varchar(255) NOT NULL default '',
`iscore` tinyint(4) NOT NULL default '0',
`params` text NOT NULL,
`enabled` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `parent_option` (`parent`, `option`(32))
) TYPE=MyISAM;
#
# Dumping data for table `#__components`
#
INSERT INTO `#__components` VALUES (1, 'Banners', '', 0, 0, '', 'Banner Management', 'com_banners', 0, 'js/ThemeOffice/component.png', 0, 'track_impressions=0\ntrack_clicks=0\ntag_prefix=\n\n', 1);
INSERT INTO `#__components` VALUES (2, 'Banners', '', 0, 1, 'option=com_banners', 'Active Banners', 'com_banners', 1, 'js/ThemeOffice/edit.png', 0, '', 1);
INSERT INTO `#__components` VALUES (3, 'Clientes', '', 0, 1, 'option=com_banners&c=client', 'Manage Clients', 'com_banners', 2, 'js/ThemeOffice/categories.png', 0, '', 1);
INSERT INTO `#__components` VALUES (4, 'Enlaces Web', 'option=com_weblinks', 0, 0, '', 'Manage Weblinks', 'com_weblinks', 0, 'js/ThemeOffice/component.png', 0, 'show_comp_description=1\ncomp_description=\nshow_link_hits=1\nshow_link_description=1\nshow_other_cats=1\nshow_headings=1\nshow_page_title=1\nlink_target=0\nlink_icons=\n\n', 1);
INSERT INTO `#__components` VALUES (5, 'Enlaces', '', 0, 4, 'option=com_weblinks', 'View existing weblinks', 'com_weblinks', 1, 'js/ThemeOffice/edit.png', 0, '', 1);
INSERT INTO `#__components` VALUES (6, 'Categorías', '', 0, 4, 'option=com_categories&section=com_weblinks', 'Manage weblink categories', '', 2, 'js/ThemeOffice/categories.png', 0, '', 1);
INSERT INTO `#__components` VALUES (7, 'Contactos', 'option=com_contact', 0, 0, '', 'Edit contact details', 'com_contact', 0, 'js/ThemeOffice/component.png', 1, 'contact_icons=0\nicon_address=\nicon_email=\nicon_telephone=\nicon_fax=\nicon_misc=\nshow_headings=1\nshow_position=1\nshow_email=0\nshow_telephone=1\nshow_mobile=1\nshow_fax=1\nbannedEmail=\nbannedSubject=\nbannedText=\nsession=1\ncustomReply=0\n\n', 1);
INSERT INTO `#__components` VALUES (8, 'Contactos', '', 0, 7, 'option=com_contact', 'Edit contact details', 'com_contact', 0, 'js/ThemeOffice/edit.png', 1, '', 1);
INSERT INTO `#__components` VALUES (9, 'Categorías', '', 0, 7, 'option=com_categories&section=com_contact_details', 'Manage contact categories', '', 2, 'js/ThemeOffice/categories.png', 1, '', 1);
INSERT INTO `#__components` VALUES (10, 'Encuesta', 'option=com_poll', 0, 0, 'option=com_poll', 'Manage Polls', 'com_poll', 0, 'js/ThemeOffice/component.png', 0, '', 1);
INSERT INTO `#__components` VALUES (11, 'News Feeds', 'option=com_newsfeeds', 0, 0, '', 'News Feeds Management', 'com_newsfeeds', 0, 'js/ThemeOffice/component.png', 0, '', 1);
INSERT INTO `#__components` VALUES (12, 'Feeds', '', 0, 11, 'option=com_newsfeeds', 'Manage News Feeds', 'com_newsfeeds', 1, 'js/ThemeOffice/edit.png', 0, '', 1);
INSERT INTO `#__components` VALUES (13, 'Categorías', '', 0, 11, 'option=com_categories&section=com_newsfeeds', 'Manage Categories', '', 2, 'js/ThemeOffice/categories.png', 0, '', 1);
INSERT INTO `#__components` VALUES (14, 'Usuario', 'option=com_user', 0, 0, '', '', 'com_user', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (15, 'Buscar', 'option=com_search', 0, 0, 'option=com_search', 'Search Statistics', 'com_search', 0, 'js/ThemeOffice/component.png', 1, 'enabled=0\n\n', 1);
INSERT INTO `#__components` VALUES (16, 'Categorías', '', 0, 1, 'option=com_categories&section=com_banner', 'Categories', '', 3, '', 1, '', 1);
INSERT INTO `#__components` VALUES (17, 'Wrapper', 'option=com_wrapper', 0, 0, '', 'Wrapper', 'com_wrapper', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (18, 'Mail para', '', 0, 0, '', '', 'com_mailto', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (19, 'Administrador Media', '', 0, 0, 'option=com_media', 'Media Manager', 'com_media', 0, '', 1, 'upload_extensions=bmp,csv,doc,epg,gif,ico,jpg,odg,odp,ods,odt,pdf,png,ppt,swf,txt,xcf,xls,BMP,CSV,DOC,EPG,GIF,ICO,JPG,ODG,ODP,ODS,ODT,PDF,PNG,PPT,SWF,TXT,XCF,XLS\nupload_maxsize=10000000\nfile_path=images\nimage_path=images/stories\nrestrict_uploads=1\ncheck_mime=1\nimage_extensions=bmp,gif,jpg,png\nignore_extensions=\nupload_mime=image/jpeg,image/gif,image/png,image/bmp,application/x-shockwave-flash,application/msword,application/excel,application/pdf,application/powerpoint,text/plain,application/x-zip\nupload_mime_illegal=text/html', 1);
INSERT INTO `#__components` VALUES (20, 'Artículos', 'option=com_content', 0, 0, '', '', 'com_content', 0, '', 1, 'show_noauth=0\nshow_title=1\nlink_titles=0\nshow_intro=1\nshow_section=0\nlink_section=0\nshow_category=0\nlink_category=0\nshow_author=1\nshow_create_date=1\nshow_modify_date=1\nshow_item_navigation=0\nshow_readmore=1\nshow_vote=0\nshow_icons=1\nshow_pdf_icon=1\nshow_print_icon=1\nshow_email_icon=1\nshow_hits=1\nfeed_summary=0\n\n', 1);
INSERT INTO `#__components` VALUES (21, 'Administrar Configuración', '', 0, 0, '', 'Configuration', 'com_config', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (22, 'Administrar Instalaciones', '', 0, 0, '', 'Installer', 'com_installer', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (23, 'Gestor de idiomas', '', 0, 0, '', 'Idiomas', 'com_languages', 0, '', 1, 'site=es-ES\nadministrator=es-ES\n\n', 1);
INSERT INTO `#__components` VALUES (24, 'Mail masivo', '', 0, 0, '', 'Mass Mail', 'com_massmail', 0, '', 1, 'mailSubjectPrefix=\nmailBodySuffix=\n\n', 1);
INSERT INTO `#__components` VALUES (25, 'Menú del editor', '', 0, 0, '', 'Menu Editor', 'com_menus', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (27, 'Mensajes', '', 0, 0, '', 'Messages', 'com_messages', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (28, 'Administrar modulos', '', 0, 0, '', 'Modules', 'com_modules', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (29, 'Administrar Plugin', '', 0, 0, '', 'Plugins', 'com_plugins', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (30, 'Administrar plantilla', '', 0, 0, '', 'Templates', 'com_templates', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (31, 'Administrar usuarios', '', 0, 0, '', 'Users', 'com_users', 0, '', 1, 'allowUserRegistration=1\nnew_usertype=Registered\nuseractivation=1\nfrontend_userparams=1\n\n', 1);
INSERT INTO `#__components` VALUES (32, 'Administrar la caché', '', 0, 0, '', 'Cache', 'com_cache', 0, '', 1, '', 1);
INSERT INTO `#__components` VALUES (33, 'Panel de Control', '', 0, 0, '', 'Control Panel', 'com_cpanel', 0, '', 1, '', 1);
INSERT INTO `jos_components` VALUES(34, 'Administrador de Traducciones', 'option=com_translationsmanager', 0, 0, 'option=com_translationsmanager', 'Administrador de Traducciones', 'com_translationsmanager', 0, 'class:language', 0, '', 1);
# --------------------------------------------------------
#
# Table structure for table `#__contact_details`
#
CREATE TABLE `#__contact_details` (
`id` int(11) NOT NULL auto_increment,
`name` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`con_position` TEXT default NULL,
`address` text,
`suburb` TEXT default NULL,
`state` TEXT default NULL,
`country` TEXT default NULL,
`postcode` varchar(255) default NULL,
`telephone` varchar(255) default NULL,
`fax` varchar(255) default NULL,
`misc` mediumtext,
`image` varchar(255) default NULL,
`imagepos` varchar(60) default NULL,
`email_to` varchar(255) default NULL,
`default_con` tinyint(1) unsigned NOT NULL default '0',
`published` tinyint(1) unsigned NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`params` text NOT NULL,
`user_id` int(11) NOT NULL default '0',
`catid` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`mobile` varchar(255) NOT NULL default '',
`webpage` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `catid` (`catid`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__content`
#
CREATE TABLE `#__content` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`title_alias` TEXT NOT NULL default '',
`introtext` mediumtext NOT NULL,
`fulltext` mediumtext NOT NULL,
`state` tinyint(3) NOT NULL default '0',
`sectionid` int(11) unsigned NOT NULL default '0',
`mask` int(11) unsigned NOT NULL default '0',
`catid` int(11) unsigned NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`created_by` int(11) unsigned NOT NULL default '0',
`created_by_alias` TEXT NOT NULL default '',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`modified_by` int(11) unsigned NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
`images` text NOT NULL,
`urls` text NOT NULL,
`attribs` text NOT NULL,
`version` int(11) unsigned NOT NULL default '1',
`parentid` int(11) unsigned NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
`metakey` text NOT NULL,
`metadesc` text NOT NULL,
`access` int(11) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '0',
`metadata` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `idx_section` (`sectionid`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_state` (`state`),
KEY `idx_catid` (`catid`),
KEY `idx_createdby` (`created_by`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__content_frontpage`
#
CREATE TABLE `#__content_frontpage` (
`content_id` int(11) NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
PRIMARY KEY (`content_id`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__content_rating`
#
CREATE TABLE `#__content_rating` (
`content_id` int(11) NOT NULL default '0',
`rating_sum` int(11) unsigned NOT NULL default '0',
`rating_count` int(11) unsigned NOT NULL default '0',
`lastip` varchar(150) NOT NULL default '',
PRIMARY KEY (`content_id`)
) TYPE=MyISAM;
# --------------------------------------------------------
# Table structure for table `#__core_log_items`
CREATE TABLE `#__core_log_items` (
`time_stamp` date NOT NULL default '0000-00-00',
`item_table` varchar(50) NOT NULL default '',
`item_id` int(11) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '0'
) TYPE=MyISAM;
# --------------------------------------------------------
# Table structure for table `#__core_log_searches`
CREATE TABLE `#__core_log_searches` (
`search_term` TEXT NOT NULL default '',
`hits` int(11) unsigned NOT NULL default '0'
) TYPE=MyISAM;
#
# Table structure for table `#__groups`
#
# --------------------------------------------------------
CREATE TABLE `#__groups` (
`id` tinyint(3) unsigned NOT NULL default '0',
`name` varchar(150) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
#
# Dumping data for table `#__groups`
#
INSERT INTO `#__groups` VALUES (0, 'Public');
INSERT INTO `#__groups` VALUES (1, 'Registered');
INSERT INTO `#__groups` VALUES (2, 'Special');
# --------------------------------------------------------
#
# Table structure for table `#__plugins`
#
CREATE TABLE `#__plugins` (
`id` int(11) NOT NULL auto_increment,
`name` TEXT NOT NULL default '',
`element` TEXT NOT NULL default '',
`folder` varchar(100) NOT NULL default '',
`access` tinyint(3) unsigned NOT NULL default '0',
`ordering` int(11) NOT NULL default '0',
`published` tinyint(3) NOT NULL default '0',
`iscore` tinyint(3) NOT NULL default '0',
`client_id` tinyint(3) NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_folder` (`published`,`client_id`,`access`,`folder`)
) TYPE=MyISAM;
INSERT INTO `#__plugins` VALUES (1, 'Authentication - Joomla', 'joomla', 'authentication', 0, 1, 1, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (2, 'Authentication - LDAP', 'ldap', 'authentication', 0, 2, 0, 1, 0, 0, '0000-00-00 00:00:00', 'host=\nport=389\nuse_ldapV3=0\nnegotiate_tls=0\nno_referrals=0\nauth_method=bind\nbase_dn=\nsearch_string=\nusers_dn=\nusername=\npassword=\nldap_fullname=fullName\nldap_email=mail\nldap_uid=uid\n\n');
INSERT INTO `#__plugins` VALUES (3, 'Authentication - GMail', 'gmail', 'authentication', 0, 4, 0, 0, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (4, 'Authentication - OpenID', 'openid', 'authentication', 0, 3, 0, 0, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (5, 'Usuario - Joomla!', 'joomla', 'user', 0, 0, 1, 0, 0, 0, '0000-00-00 00:00:00', 'autoregister=1\n\n');
INSERT INTO `#__plugins` VALUES (6, 'Search - Content','content','search',0,1,1,1,0,0,'0000-00-00 00:00:00','search_limit=50\nsearch_content=1\nsearch_uncategorised=1\nsearch_archived=1\n\n');
INSERT INTO `#__plugins` VALUES (7, 'Search - Contacts','contacts','search',0,3,1,1,0,0,'0000-00-00 00:00:00','search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (8, 'Search - Categories', 'categories', 'search', 0, 4, 1, 0, 0, 0, '0000-00-00 00:00:00', 'search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (9, 'Search - Sections', 'sections', 'search', 0, 5, 1, 0, 0, 0, '0000-00-00 00:00:00', 'search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (10, 'Search - Newsfeeds', 'newsfeeds', 'search', 0, 6, 1, 0, 0, 0, '0000-00-00 00:00:00', 'search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (11, 'Search - Weblinks','weblinks','search',0,2,1,1,0,0,'0000-00-00 00:00:00','search_limit=50\n\n');
INSERT INTO `#__plugins` VALUES (12, 'Content - Pagebreak','pagebreak','content',0,10000,1,1,0,0,'0000-00-00 00:00:00','enabled=1\ntitle=1\nmultipage_toc=1\nshowall=1\n\n');
INSERT INTO `#__plugins` VALUES (13, 'Content - Rating','vote','content',0,4,1,1,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (14, 'Content - Email Cloaking', 'emailcloak', 'content', 0, 5, 1, 0, 0, 0, '0000-00-00 00:00:00', 'mode=1\n\n');
INSERT INTO `#__plugins` VALUES (15, 'Content - Code Hightlighter (GeSHi)', 'geshi', 'content', 0, 5, 0, 0, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (16, 'Content - Load Module', 'loadmodule', 'content', 0, 6, 1, 0, 0, 0, '0000-00-00 00:00:00', 'enabled=1\nstyle=0\n\n');
INSERT INTO `#__plugins` VALUES (17, 'Content - Page Navigation','pagenavigation','content',0,2,1,1,0,0,'0000-00-00 00:00:00','position=1\n\n');
INSERT INTO `#__plugins` VALUES (18, 'Editor - No Editor','none','editors',0,0,1,1,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (19, 'Editor - TinyMCE 2.0', 'tinymce', 'editors', 0, 0, 1, 1, 0, 0, '0000-00-00 00:00:00', 'theme=advanced\ncleanup=1\ncleanup_startup=0\nautosave=0\ncompressed=0\nrelative_urls=1\ntext_direction=ltr\nlang_mode=0\nlang_code=es\ninvalid_elements=applet\ncontent_css=1\ncontent_css_custom=\nnewlines=0\ntoolbar=top\nhr=1\nsmilies=1\ntable=1\nstyle=1\nlayer=1\nxhtmlxtras=0\ntemplate=0\ndirectionality=1\nfullscreen=1\nhtml_height=550\nhtml_width=750\npreview=1\ninsertdate=1\nformat_date=%Y-%m-%d\ninserttime=1\nformat_time=%H:%M:%S\n\n');
INSERT INTO `#__plugins` VALUES (20, 'Editor - XStandard Lite 2.0', 'xstandard', 'editors', 0, 0, 1, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (21, 'Editor Button - Image','image','editors-xtd',0,0,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (22, 'Editor Button - Pagebreak','pagebreak','editors-xtd',0,0,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (23, 'Editor Button - Readmore','readmore','editors-xtd',0,0,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (24, 'XML-RPC - Joomla', 'joomla', 'xmlrpc', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (25, 'XML-RPC - Blogger API', 'blogger', 'xmlrpc', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', 'catid=1\nsectionid=0\n\n');
#INSERT INTO `#__plugins` VALUES (26, 'XML-RPC - MetaWeblog API', 'metaweblog', 'xmlrpc', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (27, 'Sistema - SEF','sef','system',0,1,1,0,0,0,'0000-00-00 00:00:00','');
INSERT INTO `#__plugins` VALUES (28, 'Sistema - Debug', 'debug', 'system', 0, 2, 1, 0, 0, 0, '0000-00-00 00:00:00', 'queries=1\nmemory=1\nlangauge=1\n\n');
INSERT INTO `#__plugins` VALUES (29, 'Sistema - Legacy', 'legacy', 'system', 0, 3, 0, 1, 0, 0, '0000-00-00 00:00:00', 'route=0\n\n');
INSERT INTO `#__plugins` VALUES (30, 'Sistema - Cache', 'cache', 'system', 0, 4, 0, 1, 0, 0, '0000-00-00 00:00:00', 'browsercache=0\ncachetime=15\n\n');
INSERT INTO `#__plugins` VALUES (31, 'Sistema - Log', 'log', 'system', 0, 5, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (32, 'Sistema - Remember Me', 'remember', 'system', 0, 6, 1, 1, 0, 0, '0000-00-00 00:00:00', '');
INSERT INTO `#__plugins` VALUES (33, 'Sistema - Backlink', 'backlink', 'system', 0, 7, 0, 1, 0, 0, '0000-00-00 00:00:00', '');
# --------------------------------------------------------
#
# Table structure for table `#__menu`
#
CREATE TABLE `#__menu` (
`id` int(11) NOT NULL auto_increment,
`menutype` varchar(225) default NULL,
`name` TEXT default NULL,
`alias` varchar(255) NOT NULL default '',
`link` text,
`type` varchar(150) NOT NULL default '',
`published` tinyint(1) NOT NULL default 0,
`parent` int(11) unsigned NOT NULL default 0,
`componentid` int(11) unsigned NOT NULL default 0,
`sublevel` int(11) default 0,
`ordering` int(11) default 0,
`checked_out` int(11) unsigned NOT NULL default 0,
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`pollid` int(11) NOT NULL default 0,
`browserNav` tinyint(4) default 0,
`access` tinyint(3) unsigned NOT NULL default 0,
`utaccess` tinyint(3) unsigned NOT NULL default 0,
`params` text NOT NULL,
`lft` int(11) unsigned NOT NULL default 0,
`rgt` int(11) unsigned NOT NULL default 0,
`home` INTEGER(1) UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `componentid` (`componentid`,`menutype`,`published`,`access`),
KEY `menutype` (`menutype`)
) TYPE=MyISAM;
INSERT INTO `#__menu` VALUES (1, 'mainmenu', 'Inicio', 'home', 'index.php?option=com_content&view=frontpage', 'component', 1, 0, 20, 0, 1, 0, '0000-00-00 00:00:00', 0, 0, 0, 3, 'show_page_title=1\npage_title=Bienvenidos a la portada\nshow_description=0\nshow_description_image=0\nnum_leading_articles=1\nnum_intro_articles=4\nnum_columns=2\nnum_links=4\nshow_title=1\npageclass_sfx=\nmenu_image=-1\nsecure=0\norderby_pri=\norderby_sec=front\nshow_pagination=2\nshow_pagination_results=1\nshow_noauth=0\nlink_titles=0\nshow_intro=1\nshow_section=0\nlink_section=0\nshow_category=0\nlink_category=0\nshow_author=1\nshow_create_date=1\nshow_modify_date=1\nshow_item_navigation=0\nshow_readmore=1\nshow_vote=0\nshow_icons=1\nshow_pdf_icon=1\nshow_print_icon=1\nshow_email_icon=1\nshow_hits=1\n\n', 0, 0, 1);
# --------------------------------------------------------
#
# Table structure for table `#__menu_types`
#
CREATE TABLE `#__menu_types` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`menutype` VARCHAR(225) NOT NULL DEFAULT '',
`title` TEXT NOT NULL DEFAULT '',
`description` TEXT NOT NULL DEFAULT '',
PRIMARY KEY(`id`),
UNIQUE `menutype`(`menutype`)
) TYPE=MyISAM;
INSERT INTO `#__menu_types` VALUES (1, 'mainmenu', 'Menú principal', 'The main menu for the site');
# --------------------------------------------------------
#
# Table structure for table `#__messages`
#
CREATE TABLE `#__messages` (
`message_id` int(10) unsigned NOT NULL auto_increment,
`user_id_from` int(10) unsigned NOT NULL default '0',
`user_id_to` int(10) unsigned NOT NULL default '0',
`folder_id` int(10) unsigned NOT NULL default '0',
`date_time` datetime NOT NULL default '0000-00-00 00:00:00',
`state` int(11) NOT NULL default '0',
`priority` int(1) unsigned NOT NULL default '0',
`subject` text NOT NULL default '',
`message` text NOT NULL,
PRIMARY KEY (`message_id`),
KEY `useridto_state` (`user_id_to`, `state`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__messages_cfg`
#
CREATE TABLE `#__messages_cfg` (
`user_id` int(10) unsigned NOT NULL default '0',
`cfg_name` TEXT NOT NULL default '',
`cfg_value` TEXT NOT NULL default '',
UNIQUE `idx_user_var_name` (`user_id`,`cfg_name`(100))
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__modules`
#
CREATE TABLE `#__modules` (
`id` int(11) NOT NULL auto_increment,
`title` text NOT NULL,
`content` text NOT NULL,
`ordering` int(11) NOT NULL default '0',
`position` varchar(150) default NULL,
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`published` tinyint(1) NOT NULL default '0',
`module` varchar(150) default NULL,
`numnews` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`showtitle` tinyint(3) unsigned NOT NULL default '1',
`params` text NOT NULL,
`iscore` tinyint(4) NOT NULL default '0',
`client_id` tinyint(4) NOT NULL default '0',
`control` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `published` (`published`,`access`),
KEY `newsfeeds` (`module`,`published`)
) TYPE=MyISAM;
INSERT INTO `#__modules` VALUES (1, 'Menú principal', '', 1, 'left', 0, '0000-00-00 00:00:00', 1, 'mod_mainmenu', 0, 0, 1, 'menutype=mainmenu\nmoduleclass_sfx=_menu\n', 1, 0, '');
INSERT INTO `#__modules` VALUES (2, 'Acceso', '', 1, 'login', 0, '0000-00-00 00:00:00', 1, 'mod_login', 0, 0, 1, '', 1, 1, '');
INSERT INTO `#__modules` VALUES (3, 'Popular','',3,'cpanel',0,'0000-00-00 00:00:00',1,'mod_popular',0,2,1,'',0, 1, '');
INSERT INTO `#__modules` VALUES (4, 'Artículos añadidos recientemente','',4,'cpanel',0,'0000-00-00 00:00:00',1,'mod_latest',0,2,1,'ordering=c_dsc\nuser_id=0\ncache=0\n\n',0, 1, '');
INSERT INTO `#__modules` VALUES (5, 'Menú de estadísticas','',5,'cpanel',0,'0000-00-00 00:00:00',1,'mod_stats',0,2,1,'',0, 1, '');
INSERT INTO `#__modules` VALUES (6, 'Los mensajes no leídos','',1,'header',0,'0000-00-00 00:00:00',1,'mod_unread',0,2,1,'',1, 1, '');
INSERT INTO `#__modules` VALUES (7, 'Usuarios Online','',2,'header',0,'0000-00-00 00:00:00',1,'mod_online',0,2,1,'',1, 1, '');
INSERT INTO `#__modules` VALUES (8, 'Toolbar','',1,'toolbar',0,'0000-00-00 00:00:00',1,'mod_toolbar',0,2,1,'',1, 1, '');
INSERT INTO `#__modules` VALUES (9, 'Iconos rápidos','',1,'icon',0,'0000-00-00 00:00:00',1,'mod_quickicon',0,2,1,'',1,1, '');
INSERT INTO `#__modules` VALUES (10, 'Usuarios identificados','',2,'cpanel',0,'0000-00-00 00:00:00',1,'mod_logged',0,2,1,'',0,1, '');
INSERT INTO `#__modules` VALUES (11, 'Footer', '', 0, 'footer', 0, '0000-00-00 00:00:00', 1, 'mod_footer', 0, 0, 1, '', 1, 1, '');
INSERT INTO `#__modules` VALUES (12, 'Menú Admin','', 1,'menu', 0,'0000-00-00 00:00:00', 1,'mod_menu', 0, 2, 1, '', 0, 1, '');
INSERT INTO `#__modules` VALUES (13, 'Admin SubMenu','', 1,'submenu', 0,'0000-00-00 00:00:00', 1,'mod_submenu', 0, 2, 1, '', 0, 1, '');
INSERT INTO `#__modules` VALUES (14, 'Estado del usuario','', 1,'status', 0,'0000-00-00 00:00:00', 1,'mod_status', 0, 2, 1, '', 0, 1, '');
INSERT INTO `#__modules` VALUES (15, 'Título','', 1,'title', 0,'0000-00-00 00:00:00', 1,'mod_title', 0, 2, 1, '', 0, 1, '');
# --------------------------------------------------------
#
# Table structure for table `#__modules_menu`
#
CREATE TABLE `#__modules_menu` (
`moduleid` int(11) NOT NULL default '0',
`menuid` int(11) NOT NULL default '0',
PRIMARY KEY (`moduleid`,`menuid`)
) TYPE=MyISAM;
#
# Dumping data for table `#__modules_menu`
#
INSERT INTO `#__modules_menu` VALUES (1,0);
# --------------------------------------------------------
#
# Table structure for table `#__newsfeeds`
#
CREATE TABLE `#__newsfeeds` (
`catid` int(11) NOT NULL default '0',
`id` int(11) NOT NULL auto_increment,
`name` text NOT NULL,
`alias` varchar(255) NOT NULL default '',
`link` text NOT NULL,
`filename` varchar(200) default NULL,
`published` tinyint(1) NOT NULL default '0',
`numarticles` int(11) unsigned NOT NULL default '1',
`cache_time` int(11) unsigned NOT NULL default '3600',
`checked_out` tinyint(3) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`rtl` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `published` (`published`),
KEY `catid` (`catid`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__poll_data`
#
CREATE TABLE `#__poll_data` (
`id` int(11) NOT NULL auto_increment,
`pollid` int(11) NOT NULL default '0',
`text` text NOT NULL default '',
`hits` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `pollid` (`pollid`,`text`(1))
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__poll_date`
#
CREATE TABLE `#__poll_date` (
`id` bigint(20) NOT NULL auto_increment,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`vote_id` int(11) NOT NULL default '0',
`poll_id` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `poll_id` (`poll_id`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__polls`
#
CREATE TABLE `#__polls` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`voters` int(9) NOT NULL default '0',
`checked_out` int(11) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`published` tinyint(1) NOT NULL default '0',
`access` int(11) NOT NULL default '0',
`lag` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__poll_menu`
# !!!DEPRECATED!!!
#
CREATE TABLE `#__poll_menu` (
`pollid` int(11) NOT NULL default '0',
`menuid` int(11) NOT NULL default '0',
PRIMARY KEY (`pollid`,`menuid`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__sections`
#
CREATE TABLE `#__sections` (
`id` int(11) NOT NULL auto_increment,
`title` TEXT NOT NULL default '',
`name` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`image` TEXT NOT NULL default '',
`scope` varchar(50) NOT NULL default '',
`image_position` varchar(90) NOT NULL default '',
`description` text NOT NULL,
`published` tinyint(1) NOT NULL default '0',
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`count` int(11) NOT NULL default '0',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_scope` (`scope`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__session`
#
CREATE TABLE `#__session` (
`username` varchar(150) default '',
`time` varchar(14) default '',
`session_id` varchar(200) NOT NULL default '0',
`guest` tinyint(4) default '1',
`userid` int(11) default '0',
`usertype` varchar(150) default '',
`gid` tinyint(3) unsigned NOT NULL default '0',
`client_id` tinyint(3) unsigned NOT NULL default '0',
`data` longtext,
PRIMARY KEY (`session_id`(64)),
KEY `whosonline` (`guest`,`usertype`),
KEY `userid` (`userid`),
KEY `time` (`time`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__stats_agents`
#
CREATE TABLE `#__stats_agents` (
`agent` varchar(255) NOT NULL default '',
`type` tinyint(1) unsigned NOT NULL default '0',
`hits` int(11) unsigned NOT NULL default '1'
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__templates_menu`
#
CREATE TABLE `#__templates_menu` (
`template` TEXT NOT NULL default '',
`menuid` int(11) NOT NULL default '0',
`client_id` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`menuid`, `client_id`, `template`(255))
) TYPE=MyISAM;
# Dumping data for table `#__templates_menu`
INSERT INTO `#__templates_menu` VALUES ('rhuk_milkyway', '0', '0');
INSERT INTO `#__templates_menu` VALUES ('khepri', '0', '1');
# --------------------------------------------------------
#
# Table structure for table `#__users`
#
CREATE TABLE `#__users` (
`id` int(11) NOT NULL auto_increment,
`name` TEXT NOT NULL default '',
`username` varchar(150) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`password` varchar(100) NOT NULL default '',
`usertype` varchar(75) NOT NULL default '',
`block` tinyint(4) NOT NULL default '0',
`sendEmail` tinyint(4) default '0',
`gid` tinyint(3) unsigned NOT NULL default '1',
`registerDate` datetime NOT NULL default '0000-00-00 00:00:00',
`lastvisitDate` datetime NOT NULL default '0000-00-00 00:00:00',
`activation` varchar(100) NOT NULL default '',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `usertype` (`usertype`),
KEY `idx_name` (`name`(255)),
KEY `gid_block` (`gid`, `block`),
KEY `username` (`username`),
KEY `email` (`email`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__weblinks`
#
CREATE TABLE `#__weblinks` (
`id` int(11) unsigned NOT NULL auto_increment,
`catid` int(11) NOT NULL default '0',
`sid` int(11) NOT NULL default '0',
`title` TEXT NOT NULL default '',
`alias` varchar(255) NOT NULL default '',
`url` varchar(250) NOT NULL default '',
`description` text NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`hits` int(11) NOT NULL default '0',
`published` tinyint(1) NOT NULL default '0',
`checked_out` int(11) NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`ordering` int(11) NOT NULL default '0',
`archived` tinyint(1) NOT NULL default '0',
`approved` tinyint(1) NOT NULL default '1',
`params` text NOT NULL,
PRIMARY KEY (`id`),
KEY `catid` (`catid`,`published`,`archived`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro`
#
CREATE TABLE `#__core_acl_aro` (
`id` int(11) NOT NULL auto_increment,
`section_value` varchar(240) NOT NULL default '0',
`value` varchar(240) NOT NULL default '',
`order_value` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`hidden` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `__section_value_value_aro` (`section_value`(100),`value`(100)),
KEY `#__gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro_map`
#
CREATE TABLE `#__core_acl_aro_map` (
`acl_id` int(11) NOT NULL default '0',
`section_value` varchar(230) NOT NULL default '0',
`value` varchar(100) NOT NULL,
PRIMARY KEY (`acl_id`,`section_value`,`value`)
) TYPE=MyISAM ;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro_groups`
#
CREATE TABLE `#__core_acl_aro_groups` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`lft` int(11) NOT NULL default '0',
`rgt` int(11) NOT NULL default '0',
`value` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `#__gacl_parent_id_aro_groups` (`parent_id`),
KEY `#__gacl_lft_rgt_aro_groups` (`lft`,`rgt`)
) TYPE=MyISAM ;
#
# Dumping data for table `#__core_acl_aro_groups`
#
INSERT INTO `#__core_acl_aro_groups` VALUES (17,0,'ROOT',1,22,'ROOT');
INSERT INTO `#__core_acl_aro_groups` VALUES (28,17,'USERS',2,21,'USERS');
INSERT INTO `#__core_acl_aro_groups` VALUES (29,28,'Public Frontend',3,12,'Public Frontend');
INSERT INTO `#__core_acl_aro_groups` VALUES (18,29,'Registered',4,11,'Registered');
INSERT INTO `#__core_acl_aro_groups` VALUES (19,18,'Author',5,10,'Author');
INSERT INTO `#__core_acl_aro_groups` VALUES (20,19,'Editor',6,9,'Editor');
INSERT INTO `#__core_acl_aro_groups` VALUES (21,20,'Publisher',7,8,'Publisher');
INSERT INTO `#__core_acl_aro_groups` VALUES (30,28,'Public Backend',13,20,'Public Backend');
INSERT INTO `#__core_acl_aro_groups` VALUES (23,30,'Manager',14,19,'Manager');
INSERT INTO `#__core_acl_aro_groups` VALUES (24,23,'Administrator',15,18,'Administrator');
INSERT INTO `#__core_acl_aro_groups` VALUES (25,24,'Super Administrator',16,17,'Super Administrator');
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_groups_aro_map`
#
CREATE TABLE `#__core_acl_groups_aro_map` (
`group_id` int(11) NOT NULL default '0',
`section_value` varchar(240) NOT NULL default '',
`aro_id` int(11) NOT NULL default '0',
UNIQUE KEY `group_id_aro_id_groups_aro_map` (`group_id`,`section_value`,`aro_id`)
) TYPE=MyISAM ;
# --------------------------------------------------------
#
# Table structure for table `#__core_acl_aro_sections`
#
CREATE TABLE `#__core_acl_aro_sections` (
`section_id` int(11) NOT NULL auto_increment,
`value` varchar(230) NOT NULL default '',
`order_value` int(11) NOT NULL default '0',
`name` varchar(230) NOT NULL default '',
`hidden` int(11) NOT NULL default '0',
PRIMARY KEY (`section_id`),
UNIQUE KEY `#__gacl_value_aro_sections` (`value`),
KEY `#__gacl_hidden_aro_sections` (`hidden`)
) TYPE=MyISAM ;
INSERT INTO `#__core_acl_aro_sections` VALUES (10,'users',1,'Users',0);
# --------------------------------------------------------
#
# Table structure for table `#__migration_backlinks`
#
CREATE TABLE #__migration_backlinks (
`itemid` INT(11) NOT NULL,
`name` VARCHAR(100) NOT NULL,
`url` TEXT NOT NULL,
`sefurl` TEXT NOT NULL,
`newurl` TEXT NOT NULL,
PRIMARY KEY(`itemid`)
) TYPE=MyISAM ;
# --------------------------------------------------------

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,460 @@
/* CSS Document */
html {
height: 100%;
}
body {
margin: 10px;
padding: 0;
background: #fff;
height: 100%;
padding-bottom: 1px;
}
body, div, p, td, span {
font-family: Tahoma, Arial, sans-serif;
font-size: 11px;
}
a:link, a:visited {
text-decoration: none;
color: #0B55C4;
}
a:hover {
}
h1, h2, h3, h4, h5,
#header3 span,
.step-on, .step-off, .step-grey,
.step,
.button1-left a,
.button1-right a {
font-family: Arial, Helvetica, sans-serif;
}
.clr {
clear: both;
}
.newsection {
height: 20px;
clear:both;
}
form {
margin: 0;
padding: 0;
}
/* installer */
#header1 {
background: url(../images/j_header_middle.png) repeat-x;
}
#header2 {
background: url(../images/j_header_right.png) 100% 0 no-repeat;
}
#header3 {
background: url(../images/j_header_left.png) no-repeat;
height: 54px;
}
#header3 span {
font-size: 22px;
color: #fff;
font-weight: bold;
padding-left: 180px;
line-height: 44px;
}
#version {
float: right;
color: #fff;
padding-top: 25px;
padding-right: 5px;
}
#footer1 {
background: url(../images/j_bottom.png) repeat-x;
}
#footer2 {
background: url(../images/j_corner_br.png) 100% 0 no-repeat;
}
#footer3 {
background: url(../images/j_corner_bl.png) no-repeat;
height: 11px;
}
#content-box {
float: none !important;
float: left;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
}
#content-pad {
padding: 10px 10px 0 10px;
}
#stepbar {
float: left;
width: 170px;
}
#stepbar div.box {
background: url(../images/j_joomla_box.jpg) 50% 20px no-repeat;
height: 140px;
}
#stepbar h1 {
margin: 0;
padding-bottom: 8px;
font-size: 20px;
color: #0B55C4;
font-weight: bold;
background: url(../images/j_divider.png) 0 100% repeat-x;
}
.step-on, .step-off, .step-grey {
padding-top: 10px;
padding-bottom: 12px;
font-size: 12px;
font-weight: bold;
background: url(../images/j_divider.png) 0 100% repeat-x;
}
.step-off {
color: #333;
}
.step-on {
color: #0B55C4;
}
.step-grey {
color: #a7a7a7
}
#right, #warning {
margin-left: 180px;
}
#rightpad {
width: 100%;
float: left;
}
#step {
margin-bottom: 10px;
}
span.step {
font-size: 20px;
line-height: 30px;
color: #0B55C4;
font-weight: bold;
padding-left: 6px;
}
.far-right {
padding-right: 6px;
margin-top: 2px;
float: right;
text-align: right;
}
.button1-left {
background: url(../images/j_button1_left.png) no-repeat;
float: left;
margin-left: 5px;
}
.button1-right {
background: url(../images/j_button1_right.png) 100% 0 no-repeat;
float: left;
margin-left: 5px;
}
.button1-left .refresh {
float: left;
background: url(../images/j_button1_refresh.png) 100% 0 no-repeat;
}
.button1-right .prev {
float: left;
background: url(../images/j_button1_prev.png) no-repeat;
}
.button1-left .next {
float: left;
background: url(../images/j_button1_next.png) 100% 0 no-repeat;
}
.button1-left .site {
float: left;
background: url(../images/j_button1_site.png) 100% 0 no-repeat;
}
.button1-left .admin {
float: left;
background: url(../images/j_button1_admin.png) 100% 0 no-repeat;
}
.button1-left .collate {
float: left;
background: url(../images/j_button1_collate.png) 100% 0 no-repeat;
}
.button1-left a,
.button1-right a {
display: block;
height: 26px;
float: left;
line-height: 26px;
font-size: 11px;
font-weight: bold;
color: #333;
cursor: pointer;
}
.button1-left a {
padding: 0 30px 0 6px;
}
.button1-right a {
padding: 0 6px 0 30px;
}
#installer {
background: #fff;
}
#installer h2 {
font-size: 14px;
line-height: 20px;
height: 20px;
color: #333;
font-weight: bold;
margin: 0;
border-bottom: 1px solid #ccc;
margin-bottom: 10px;
}
.install-text {
float: left;
width: 40%;
color: #444;
}
.install-body {
float: right;
width: 58%;
}
.extra-padding {
padding: 0px;
}
.install-body fieldset {
padding: 5px;
margin: 0;
border: 0;
}
#copyright {
margin: 10px;
text-align: center;
}
.Yes, .Writeable {
font-weight: bold;
color: #46882B;
}
.No, .Unwriteable {
font-weight: bold;
color: #c00;
}
.content { width: 100%; }
.content .item { width: 50%; }
.content2 .item { width: 30%; }
.license {
padding: 0px;
width: 100%;
height: 500px;
}
.error {
font-size: 14px;
font-weight: bold;
color: #c00;
}
h3.title-smenu, h3.moofx-toggler {
margin: 0;
border: 1px solid #ccc;
padding: 4px;
background-color: #EBEBEB;
margin-bottom: 1px;
font-size: 12px;
color: #666;
cursor: pointer;
}
h3.moofx-toggler { background: #EBEBEB url(../images/j_arrow.png) 5px 50% no-repeat; text-indent: 15px; }
h3.moofx-toggler-down { background-image: url(../images/j_arrow_down.png); }
/* hack to stop ugly aliasing in IE */
div.moofx-slider {
background: #fbfbfb;
}
.final-table { width: 100%; }
td em {
color: #666;
}
div#javascript-warning {
padding: 1em;
border: 1px solid #ccc;
background-color: red;
margin-bottom: 10px;
font-size: 18px;
color: white;
}
/* form limiting stuff */
#theDefault input {
}
/* corners */
div#stepbar {
background: #f7f7f7;
}
div#installer {
background: #fff;
}
div#installer div.install-body div.m {
background: #fbfbfb;
}
div.t, div.b {
height: 6px;
padding: 0;
margin: 0;
overflow: hidden;
}
div.m {
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
padding: 0 8px;
}
div#step div.m {
padding: 0;
}
div#installer div.m {
padding-bottom: 1px !important;
padding-bottom: 0px;
}
div#stepbar div.t {
background: url(../images/j_border.png) 0 0 repeat-x;
}
div#stepbar div.t div.t {
background: url(../images/j_crn_tr_dark.png) 100% 0 no-repeat;
}
div#stepbar div.t div.t div.t {
background: url(../images/j_crn_tl_dark.png) 0 0 no-repeat;
}
div#stepbar div.b {
background: url(../images/j_border.png) 0 100% repeat-x;
}
div#stepbar div.b div.b {
background: url(../images/j_crn_br_dark.png) 100% 0 no-repeat;
}
div#stepbar div.b div.b div.b {
background: url(../images/j_crn_bl_dark.png) 0 0 no-repeat;
}
div#step,
div#installer div.install-body {
background: #fbfbfb;
}
div#step div.t,
div#installer div.install-body div.t {
background: url(../images/j_border.png) 0 0 repeat-x;
}
div#step div.t div.t,
div#installer div.install-body div.t div.t {
background: url(../images/j_crn_tr_med.png) 100% 0 no-repeat;
}
div#step div.t div.t div.t,
div#installer div.install-body div.t div.t div.t {
background: url(../images/j_crn_tl_med.png) 0 0 no-repeat;
}
div#step div.b,
div#installer div.install-body div.b {
background: url(../images/j_border.png) 0 100% repeat-x;
}
div#step div.b div.b,
div#installer div.install-body div.b div.b {
background: url(../images/j_crn_br_med.png) 100% 0 no-repeat;
}
div#step div.b div.b div.b,
div#installer div.install-body div.b div.b div.b {
background: url(../images/j_crn_bl_med.png) 0 0 no-repeat;
}
div#installer div.t {
background: url(../images/j_border.png) 0 0 repeat-x;
}
div#installer div.t div.t {
background: url(../images/j_crn_tr_light.png) 100% 0 no-repeat;
}
div#installer div.t div.t div.t {
background: url(../images/j_crn_tl_light.png) 0 0 no-repeat;
}
div#installer div.b {
background: url(../images/j_border.png) 0 100% repeat-x;
}
div#installer div.b div.b {
background: url(../images/j_crn_br_light.png) 100% 0 no-repeat;
}
div#installer div.b div.b div.b {
background: url(../images/j_crn_bl_light.png) 0 0 no-repeat;
}

View File

@ -0,0 +1,72 @@
/**
* Joomla! 1.5 Installation template main RTL css file
*
* @author Mati Kochen
* @package Joomla
* @since 1.5
* @version 1.0
*/
body{
direction: rtl;
}
#header2 {
background-image: url(../images/j_header_right_rtl.png);
}
#header3 {
background-image: url(../images/j_header_left_rtl.png);
}
#version {
float:left;
padding-left:5px;
padding-right: 0px;
}
#stepbar {
float:right;
}
#right, #warning {
margin-right:180px;
margin-left: 0px;
}
#rightpad {
float:right;
}
.far-right {
float:left;
padding-right:0px;
padding-left:6px;
text-align:left;
}
span.step {
padding-right:6px;
padding-left:0px;
}
.install-text,
.install-form{
float:right;
}
.install-body{
float: left;
}
h3.moofx-toggler {
background: url(../images/j_arrow_left.png) no-repeat scroll right 50%;
}
h3.moofx-toggler-down {
background:url(../images/j_arrow_down.png) no-repeat scroll right;
}
#srcEncoding{
text-align: right;
}

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,46 @@
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
<jdoc:include type="head" />
<link href="template/css/template.css" rel="stylesheet" type="text/css" />
<?php if($this->direction == 'rtl') : ?>
<link href="template/css/template_rtl.css" rel="stylesheet" type="text/css" />
<?php endif; ?>
<script type="text/javascript" src="../media/system/js/mootools.js"></script>
<script type="text/javascript" src="includes/js/installation.js"></script>
<script type="text/javascript" src="template/js/validation.js"></script>
<script type="text/javascript">
Window.onDomReady(function(){ new Accordion($$('h3.moofx-toggler'), $$('div.moofx-slider'), {onActive: function(toggler, i) { toggler.addClass('moofx-toggler-down'); },onBackground: function(toggler, i) { toggler.removeClass('moofx-toggler-down'); },duration: 300,opacity: false, alwaysHide:true, show: 1}); });
</script>
</head>
<body>
<div id="header1">
<div id="header2">
<div id="header3">
<div id="version"><?php echo JVERSION ?></div>
<span><?php echo JText::_('Installation') ?></span>
</div>
</div>
</div>
<div id="content-box">
<div id="content-pad">
<jdoc:include type="installation" />
</div>
</div>
<div id="footer1">
<div id="footer2">
<div id="footer3"></div>
</div>
</div>
<div id="copyright"><a href="http://www.joomla.org" target="_blank">Joomla!</a>
<?php echo JText::_('ISFREESOFTWARE') ?>
</div>
</body>
</html>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -0,0 +1,245 @@
/**
* @version $Id: validation.js 10712 2008-08-21 10:09:39Z eddieajau $
* @package Joomla
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
/**
* Unobtrusive Form Validation library
*
* Inspired by: Chris Campbell <www.particletree.com>
*
* @package Joomla
* @subpackage Installation
* @since 1.5
*/
// JFormValidator prototype
JFormValidator = function() { this.constructor.apply(this, arguments);}
JFormValidator.prototype = {
constructor: function()
{
var self = this;
this.valid = true;
this.vContinue = true;
this.handlers = Object();
// Default regexes
this.handlers['date'] = { enabled : true,
exec : function (value) {
regex=/(((0[13578]|10|12)([-.\/])(0[1-9]|[12][0-9]|3[01])([-.\/])(\d{4}))|((0[469]|11)([-.\/])([0][1-9]|[12][0-9]|30)([-.\/])(\d{4}))|((2)([-.\/])(0[1-9]|1[0-9]|2[0-8])([-.\/])(\d{4}))|((2)(\.|-|\/)(29)([-.\/])([02468][048]00))|((2)([-.\/])(29)([-.\/])([13579][26]00))|((2)([-.\/])(29)([-.\/])([0-9][0-9][0][48]))|((2)([-.\/])(29)([-.\/])([0-9][0-9][2468][048]))|((2)([-.\/])(29)([-.\/])([0-9][0-9][13579][26])))/;
return regex.test(value);
}
}
this.handlers['phone'] = { enabled : true,
exec : function (value) {
regex=/^(\d{3}-\d{3}-\d{4})*$/;
return regex.test(value);
}
}
this.handlers['zipcode'] = { enabled : true,
exec : function (value) {
regex=/(^(?!0{5})(\d{5})(?!-?0{4})(-?\d{4})?$)/;
return regex.test(value);
}
}
this.handlers['sitename'] = { enabled : true,
exec : function (value) {
regex=/^(.){1,200}$/;
return regex.test(value);
}
}
this.handlers['password'] = { enabled : true,
exec : function (value) {
regex=/^\S[\S ]{2,98}\S$/;
return regex.test(value);
}
}
this.handlers['numeric'] = { enabled : true,
exec : function (value) {
regex=/^(\d|-)?(\d|,)*\.?\d*$/;
return regex.test(value);
}
}
this.handlers['email'] = { enabled : true,
exec : function (value) {
regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
return regex.test(value);
}
}
},
registerEvent: function(target,type,args)
{
//use a closure to keep scope
var self = this;
if (target.addEventListener) {
target.addEventListener(type,onEvent,true);
} else if (target.attachEvent) {
target.attachEvent('on'+type,onEvent);
}
function onEvent(e) {
e = e||window.event;
e.element = target;
return self["on"+type](e, args);
}
},
attachToForm: function(form)
{
// Iterate through the form object and attach the validate
// method to all input fields.
for (var i=0;i < form.elements.length; i++) {
form.elements[i].onchange = function(){return document.formvalidator.validate(this);}
}
// Attach the validate method to the onsubmit event for the given form
form.onsubmit = function(){return validate(this);}
},
validate: function(target)
{
// Get the value of the target tag.
switch (target.tagName) {
case 'INPUT':
case 'TEXTAREA':
var value = target.value;
break;
case 'SELECT':
var value = target.options[target.selectedIndex].value;
break;
}
// Check to see if the tag is to be validated
var pivot = target.className.indexOf('validate');
// Make sure we are set to go...
this.vContinue = true;
// get all the rules from the input box classname
if (pivot != -1) {
var rules = target.className.substring(pivot);
} else {
return;
}
rules = rules.split(' ');
/**
* Validation rules are as follows
* [0] 'validate' -- to validate the field this should always be 'validate'
* [1] 'required' -- this means the field is required and should be populated
* [2] 'type' -- this represents an additional validation type (ie. email, phone, date)
* [3] 'feedbackID' -- this is the id of the element where feedback is sent to.
*/
var validate = rules[0];
var required = rules[1];
var type = rules[2];
var feedbackID = rules[3];
// Check for derived feedbackID
if (feedbackID) {
if (feedbackID.charAt(0) == '@') {
feedbackID = target.id + '-' + feedbackID.substring(1);
}
}
// The validation state for the target
var state;
//validateRequired() checks if it is required and then sends back feedback
state = this.validateRequired (required, value, type);
/**
* If the field is required and blank the fvContinue field will be false
* and we shouldn't bother validating the specific type... it will just
* cause potential errors.
*/
if (this.vContinue)
{
// Check the additional validation types
if ((type) && (type != 'none') && (this.handlers[type])) {
// Execute the validation handler and return result
if (this.handlers[type].exec(value)) {
state = true;
} else {
state = false;
}
}
}
this.handleResponse(state, target, feedbackID);
// Return validation state
return state;
},
validateRequired: function(required, value, type)
{
//check if required if not, continue validation script
if (required == "required") {
//if it is rquired and blank then it is an error and continues to be required
if (value == "") {
this.vContinue = false;
return false;
}
//if its not blank and has no other validation requirements the field passes
else if (type == "none") {
return true;
}
}
},
isValid: function(form, element)
{
var valid = true;
for (var i=0;i < form.elements.length; i++) {
if ((element == '') || ((element != '') && (form.elements[i].name==element))) {
if (this.validate(form.elements[i]) == false) {
valid = false;
}
}
}
return valid;
},
handleResponse: function(state, target, feedback)
{
// Set the default values for the target and extra objects
if (target.origBorder != '') {
target.origBorder = target.style.borderColor;
}
// Set color to red if the object doesn't validate
if (state == false) {
target.style.borderColor = '#f00';
} else {
target.style.borderColor = target.origBorder;
}
// Get the extra object
var extra = document.getElementById(feedback);
// Set extra color to red if the object doesn't validate
if (extra) {
if (extra.origColor != '') {
extra.origColor = extra.style.color;
}
if (state == false) {
extra.style.color = '#f00';
} else {
extra.style.color = extra.origColor;
}
}
}
}
document.formvalidator = null;
Window.onDomReady(function(){
document.formvalidator = new JFormValidator();
});

View File

@ -0,0 +1,78 @@
<jtmpl:comment>
@version $Id: configuration.html 12308 2009-06-23 04:05:28Z ian $
@package Joomla
@subpackage Installation
@copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
@license GNU/GPL
</jtmpl:comment>
<jtmpl:tmpl name="configuration"><?php
class JConfig {
/* Site Settings */
var $offline = '0';
var $offline_message = '{VAR_OFFLINE|addslashes}';
var $sitename = '{VAR_SITENAME|addslashes}';
var $editor = 'tinymce';
var $list_limit = '20';
var $legacy = '0';
/* Debug Settings */
var $debug = '0';
var $debug_lang = '0';
/* Database Settings */
var $dbtype = '{VAR_DBTYPE|addslashes}';
var $host = '{VAR_DBHOSTNAME|addslashes}';
var $user = '{VAR_DBUSERNAME|addslashes}';
var $password = '{VAR_DBPASSWORD|addslashes}';
var $db = '{VAR_DBNAME|addslashes}';
var $dbprefix = '{VAR_DBPREFIX|addslashes}';
/* Server Settings */
var $live_site = '';
var $secret = '{VAR_SECRET|addslashes}';
var $gzip = '0';
var $error_reporting = '-1';
var $helpurl = '{VAR_HELPURL|addslashes}';
var $xmlrpc_server = '0';
var $ftp_host = '{VAR_FTPHOST|addslashes}';
var $ftp_port = '{VAR_FTPPORT|addslashes}';
var $ftp_user = '{VAR_FTPUSER|addslashes}';
var $ftp_pass = '{VAR_FTPPASSWORD|addslashes}';
var $ftp_root = '{VAR_FTPROOT|addslashes}';
var $ftp_enable = '{VAR_FTPENABLE|intval}';
var $force_ssl = '0';
/* Locale Settings */
var $offset = '0';
var $offset_user = '0';
/* Mail Settings */
var $mailer = 'mail';
var $mailfrom = '{VAR_ADMINEMAIL|addslashes}';
var $fromname = '{VAR_SITENAME|addslashes}';
var $sendmail = '/usr/sbin/sendmail';
var $smtpauth = '0';
var $smtpsecure = 'none';
var $smtpport = '25';
var $smtpuser = '';
var $smtppass = '';
var $smtphost = 'localhost';
/* Cache Settings */
var $caching = '0';
var $cachetime = '15';
var $cache_handler = 'file';
/* Meta Settings */
var $MetaDesc = '{VAR_METADESC|addslashes}';
var $MetaKeys = '{VAR_METAKEYS|addslashes}';
var $MetaTitle = '1';
var $MetaAuthor = '1';
/* SEO Settings */
var $sef = '0';
var $sef_rewrite = '0';
var $sef_suffix = '0';
/* Feed Settings */
var $feed_limit = 10;
var $feed_email = 'author';
var $log_path = '{VAR_LOG_PATH|addslashes}';
var $tmp_path = '{VAR_TMP_PATH|addslashes}';
/* Session Setting */
var $lifetime = '15';
var $session_handler = 'database';
}
?></jtmpl:tmpl>

View File

@ -0,0 +1,287 @@
<jtmpl:comment>
@version $Id: dbconfig.html 10871 2008-08-30 07:30:33Z willebil $
@package Joomla
@subpackage Installation
@copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
@license GNU/GPL
</jtmpl:comment>
<script language="JavaScript" type="text/javascript">
<!--
function validateForm( frm, task ) {
var valid = document.formvalidator.isValid(frm);
if (valid == false) {
return false;
}
var DBtype = getElementByName( frm, 'vars[DBtype]' );
var DBhostname = getElementByName( frm, 'vars[DBhostname]' );
var DBname = getElementByName( frm, 'vars[DBname]' );
var DBPrefix = getElementByName( frm, 'vars[DBPrefix]' );
var regex=/^[a-zA-Z]+[a-zA-Z0-9_]*$/;
if ( DBtype.selectedIndex == 0 ) {
alert( '<jtmpl:translate key="validType" escape="yes">Please select the database type</jtmpl:translate>' );
return;
} else if (DBhostname.value == '') {
alert( '<jtmpl:translate key="validHost" escape="yes">Please enter the host name</jtmpl:translate>' );
return;
} else if (DBname.value == '') {
alert( '<jtmpl:translate key="validName" escape="yes">Please enter a database name</jtmpl:translate>' );
return;
} else if (DBPrefix.value == '') {
alert('<jtmpl:translate key="validPrefix" escape="yes">You must enter a MySQL Table Prefix for Joomla to operate correctly</jtmpl:translate>');
return;
} else if (DBname.value.length > 64) {
alert('<jtmpl:translate key="MYSQLDBNAMETOOLONG" escape="yes">The MySQL Database Name must be a maximum of 64 characters</jtmpl:translate>');
return;
} else if (DBPrefix.value.length > 15) {
alert('<jtmpl:translate key="MYSQLPREFIXTOOLONG" escape="yes">The MySQL Table Prefix must be a maximum of 15 characters</jtmpl:translate>');
return;
} else if (!regex.test(DBPrefix.value)) {
alert('<jtmpl:translate key="MYSQLPREFIXINVALIDCHARS" escape="yes">The MySQL Table Prefix must start with a letter, and be followed by only letters, numbers or underscores</jtmpl:translate>');
return;
} else {
submitForm( frm, task );
}
}
function JProcess( action ) {
if ( document.getElementById("vars_dbtype").selectedIndex == 0 ) {
alert( '<jtmpl:translate key="validType" escape="yes">Please select the database type</jtmpl:translate>' );
return;
} else if (document.getElementById("vars_dbhostname").value == '') {
alert( '<jtmpl:translate key="validHost" escape="yes">Please enter the host name</jtmpl:translate>' );
return;
} else if (document.getElementById("vars_dbusername").value == '') {
alert( '<jtmpl:translate key="validUser" escape="yes">Please enter a database username</jtmpl:translate>' );
return;
}
}
//-->
</script>
<form action="index.php" method="post" name="adminForm" id="adminForm" class="form-validate" autocomplete="off">
<div id="right">
<div id="rightpad">
<div id="step">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<div class="far-right">
<jtmpl:tmpl name="buttons" type="condition" conditionvar="direction">
<jtmpl:sub condition="ltr">
<div class="button1-right"><div class="prev"><a onclick="submitForm( adminForm, 'license' );" alt="<jtmpl:translate escape="yes">Previous</jtmpl:translate>"><jtmpl:translate escape="yes">Previous</jtmpl:translate></a></div></div>
<div class="button1-left"><div class="next"><a onclick="validateForm( adminForm, 'makedb' );" alt="<jtmpl:translate escape="yes">Next</jtmpl:translate>"><jtmpl:translate escape="yes">Next</jtmpl:translate></a></div></div>
</jtmpl:sub>
<jtmpl:sub condition="rtl">
<div class="button1-right"><div class="prev"><a onclick="validateForm( adminForm, 'makedb' );" alt="<jtmpl:translate escape="yes">Next</jtmpl:translate>"><jtmpl:translate escape="yes">Next</jtmpl:translate></a></div></div>
<div class="button1-left"><div class="next"><a onclick="submitForm( adminForm, 'license' );" alt="<jtmpl:translate escape="yes">Previous</jtmpl:translate>"><jtmpl:translate escape="yes">Previous</jtmpl:translate></a></div></div>
</jtmpl:sub>
</jtmpl:tmpl>
</div>
<span class="step"><jtmpl:translate>Database Configuration</jtmpl:translate></span>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
</div>
<div id="installer">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<h2><jtmpl:translate>Connection Settings</jtmpl:translate>:</h2>
<div class="install-text">
<jtmpl:translate key="tipDatabaseSteps">
<p>Setting up Joomla! to run on your server involves 4 simple steps...</p>
<p>Please enter the hostname of the server Joomla! is to be installed on.</p>
<p>Enter the MySQL username, password and database name you wish to use with Joomla.</p>
<p>Enter a prefix to be used by tables for this Joomla! installation. Select how to handle exisitng tables from a previous installation.</p>
<p>Install the samples unless you are experienced want to start with a virtually empty site.</p>
</jtmpl:translate>
</div>
<div class="install-body">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<h3 class="title-smenu" title="<jtmpl:translate>Basic</jtmpl:translate>"><jtmpl:translate>Basic Settings</jtmpl:translate></h3>
<div class="section-smenu">
<table class="content2">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="2">
<label for="vars_dbtype">
<jtmpl:translate>Database Type</jtmpl:translate>
</label>
<br />
<select id="vars_dbtype" name="vars[DBtype]" class="inputbox" size="1">
<option value=""><jtmpl:translate>Select Type</jtmpl:translate></option>
<jtmpl:tmpl name="dbtype-options">
<option value="{TEXT}" {SELECTED}>{TEXT}</option>
</jtmpl:tmpl>
</select>
</td>
<td>
<em>
<jtmpl:translate key="tipType">This is probably 'mysql'</jtmpl:translate>
</em>
</td>
</tr>
<tr>
<td colspan="2">
<label for="vars_dbhostname">
<span id="dbhostnamemsg"><jtmpl:translate>Host Name</jtmpl:translate></span>
</label>
<br />
<input id="vars_dbhostname" class="inputbox validate required none dbhostnamemsg" type="text" name="vars[DBhostname]" value="{VAR_DBHOSTNAME}" />
</td>
<td>
<em>
<jtmpl:translate key="tipHost">This is usually 'localhost'</jtmpl:translate>
</em>
</td>
</tr>
<tr>
<td colspan="2">
<label for="vars_dbusername">
<span id="dbusernamemsg"><jtmpl:translate>User Name</jtmpl:translate></span>
</label>
<br />
<input id="vars_dbusername" class="inputbox validate required none dbusernamemsg" type="text" name="vars[DBuserName]" value="{VAR_DBUSERNAME}" />
</td>
<td>
<em>
<jtmpl:translate key="tipUser">Either something as 'root' or a username given by the hoster</jtmpl:translate>
</em>
</td>
</tr>
<tr>
<td colspan="2">
<label for="vars_dbpassword">
<jtmpl:translate>Password</jtmpl:translate>
</label>
<br />
<input id="vars_dbpassword" class="inputbox" type="password" name="vars[DBpassword]" value="{VAR_DBPASSWORD}" />
</td>
<td>
<em>
<jtmpl:translate key="tipPassword">For site security using a password for the mysql account is mandatory</jtmpl:translate>
</em>
</td>
</tr>
<tr>
<td colspan="2">
<label for="vars_dbname">
<span id="dbnamemsg"><jtmpl:translate>Database Name</jtmpl:translate></span>
</label>
<br />
<input id="vars_dbname" class="inputbox validate required none dbnamemsg" type="text" name="vars[DBname]" value="{VAR_DBNAME}" />
</td>
<td>
<em>
<jtmpl:translate key="tipDatabase">Some hosts allow only a certain DB name per site. Use table prefix in this case for distinct Joomla! sites.</jtmpl:translate>
</em>
</td>
</tr>
</table>
<br /><br />
</div>
<h3 class="title-smenu moofx-toggler" title="<jtmpl:translate>Advanced</jtmpl:translate>"><jtmpl:translate>Advanced settings</jtmpl:translate></h3>
<div class="section-smenu moofx-slider">
<table class="content2">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>
<input id="vars_dbolddel" type="radio" name="vars[DBOld]" value="rm" />
</td>
<td>
<label for="vars_dbolddel">
<jtmpl:translate>Drop Existing Tables</jtmpl:translate>
</label>
</td>
<td></td>
</tr>
<tr>
<td>
<input id="vars_dboldbackup" type="radio" name="vars[DBOld]" value="bu" checked="checked"/>
</td>
<td>
<label for="vars_dboldbackup">
<jtmpl:translate>Backup Old Tables</jtmpl:translate>
</label>
</td>
<td>
<em>
<jtmpl:translate key="tipBackup">Any existing backup tables from former Joomla! installations will be replaced</jtmpl:translate>
</em>
</td>
</tr>
<tr>
<td colspan="2">
<label for="vars_dbprefix">
<jtmpl:translate>Table Prefix</jtmpl:translate>
</label>
<br />
<input id="vars_dbprefix" class="inputbox" type="text" name="vars[DBPrefix]" value="{VAR_DBPREFIX}" />
</td>
<td>
<em>
<jtmpl:translate key="tipPrefix">Dont use 'old_' since this is used for backup tables</jtmpl:translate>
</em>
</td>
</tr>
</table>
</div>
<div class="clr"></div>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
<div class="clr"></div>
</div>
<div class="clr"></div>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
</div>
</div>
</div>
<div class="clr"></div>
<input type="hidden" id="vars_lang" name="vars[lang]" value="{VAR_LANG}" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="vars[ftpEnable]" value="0" />
</form>

View File

@ -0,0 +1,88 @@
<jtmpl:comment>
@version $Id: error.html 9765 2007-12-30 08:21:02Z ircmaxell $
@package Joomla
@subpackage Installation
@copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
@license GNU/GPL
</jtmpl:comment>
<form action="index.php" method="post" name="adminForm">
<div id="right">
<div id="rightpad">
<div id="step">
<div class="t">
<div class="t">
<div class="t">
</div>
</div>
</div>
<div class="m">
<div class="far-right">
<jtmpl:tmpl name="buttons" type="condition" conditionvar="direction">
<jtmpl:sub condition="ltr">
<div class="button1-right"><div class="prev"><a onclick="submitForm( adminForm, '{BACK}' );" alt="<jtmpl:translate escape="yes">Previous</jtmpl:translate>"><jtmpl:translate escape="yes">Previous</jtmpl:translate></a></div></div>
</jtmpl:sub>
<jtmpl:sub condition="rtl">
<div class="button1-left"><div class="next"><a onclick="submitForm( adminForm, '{BACK}' );" alt="<jtmpl:translate escape="yes">Previous</jtmpl:translate>"><jtmpl:translate escape="yes">Previous</jtmpl:translate></a></div></div>
</jtmpl:sub>
</jtmpl:tmpl>
</div>
<span class="step"><jtmpl:translate>Error</jtmpl:translate></span>
</div>
<div class="b">
<div class="b">
<div class="b">
</div>
</div>
</div>
</div>
<div id="installer">
<div class="t">
<div class="t">
<div class="t">
</div>
</div>
</div>
<div class="m">
<h2><jtmpl:translate>An error has occurred</jtmpl:translate>:</h2>
<div class="install-text">
<p>
<jtmpl:tmpl name="messages">
{MESSAGE}
</jtmpl:tmpl>
</p>
</div>
<jtmpl:tmpl name="xmessages" type="simplecondition" requiredvars="xmessage">
<div class="install-form">
<fieldset class="form-block">
<textarea rows="10" cols="50">{XMESSAGE}</textarea>
</fieldset>
</div>
</jtmpl:tmpl>
<div class="clr">
</div>
</div>
<div class="b">
<div class="b">
<div class="b">
</div>
</div>
</div>
<div class="clr">
</div>
</div>
<div class="clr">
</div>
</div>
<div class="b">
<div class="b">
<div class="b">
</div>
</div>
</div>
</div>
<div class="clr">
</div>
<input type="hidden" name="task" value="" />
</form>

View File

@ -0,0 +1,153 @@
<jtmpl:comment>
@version $Id: finish.html 11405 2009-01-09 16:30:05Z willebil $
@package Joomla
@subpackage Installation
@copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
@license GNU/GPL
</jtmpl:comment>
<form action="index.php" method="post" name="adminForm" autocomplete="off">
<div id="right">
<div id="rightpad">
<div id="step">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<div class="far-right">
<jtmpl:tmpl name="buttons" type="condition" conditionvar="direction" varscope="body">
<jtmpl:sub condition="ltr">
<div class="button1-left"><div class="site"><a onclick="window.location.href='{VAR_SITEURL}';" alt="<jtmpl:translate escape="yes">Site</jtmpl:translate>"><jtmpl:translate escape="yes">Site</jtmpl:translate></a></div></div>
<div class="button1-left"><div class="admin"><a onclick="window.location.href='{VAR_ADMINURL}';" alt="<jtmpl:translate escape="yes">Admin</jtmpl:translate>"><jtmpl:translate escape="yes">Admin</jtmpl:translate></a></div></div>
</jtmpl:sub>
<jtmpl:sub condition="rtl">
<div class="button1-left"><div class="admin"><a onclick="window.location.href='{VAR_ADMINURL}';" alt="<jtmpl:translate escape="yes">Admin</jtmpl:translate>"><jtmpl:translate escape="yes">Admin</jtmpl:translate></a></div></div>
<div class="button1-left"><div class="site"><a onclick="window.location.href='{VAR_SITEURL}';" alt="<jtmpl:translate escape="yes">Site</jtmpl:translate>"><jtmpl:translate escape="yes">Site</jtmpl:translate></a></div></div>
</jtmpl:sub>
</jtmpl:tmpl>
</div>
<span class="step"><jtmpl:translate>Finish</jtmpl:translate></span>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
</div>
<div id="installer">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<h2><jtmpl:translate key="congratulations">Congratulations! Joomla! is installed.</jtmpl:translate></h2>
<div class="install-text">
<jtmpl:translate key="finishButtons">
<p>
Click the "Site" button to start Joomla! site or "Admin" to take you to administrator login.
</p>
</jtmpl:translate>
<jtmpl:translate key="languageinfo">
<p>
On the Joomla! help page for languages you will find an easy step by step help to install your own languagepack in Joomla!<br />You will find a list there with links to the available languagepacks.<br />Click the button on the right to open the helpsite in a new window.
</p>
</jtmpl:translate>
</div>
<div class="install-body">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<fieldset>
<table class="final-table">
<tr>
<td class="error" align="center">
<jtmpl:translate key="removeInstallation">PLEASE REMEMBER TO COMPLETELY REMOVE THE INSTALLATION DIRECTORY</jtmpl:translate>
</td>
</tr>
<tr>
<td align="center">
<h3>
<jtmpl:translate>Administration Login Details</jtmpl:translate>
</h3>
</td>
</tr>
<tr>
<td align="center" class="notice">
<jtmpl:translate>Username</jtmpl:translate>: {VAR_ADMINLOGIN}
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center" class="notice">
<div id="cpanel">
<div>
<div class="icon">
<a href="http://community.joomla.org/translations.html" target="_blank">
<br />
<b><jtmpl:translate key="languagebuttonlineone">Joomla! in your own language?</jtmpl:translate></b>
<br />
<jtmpl:translate key="languagebuttonlinetwo">Visit the Joomla! help site for more information and downloads.</jtmpl:translate>
<br /><br />
</a></td>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<jtmpl:tmpl name="configuration-error" type="simplecondition" requiredvars="buffer">
<tr>
<td class="small">
<jtmpl:translate key="confProblem">
Your configuration file or directory is not writable,
or there was a problem creating the configuration file. You'll have to
upload the following code by hand. Click in the textarea to highlight
all of the code.
</jtmpl:translate>
</td>
</tr>
<tr>
<td align="center">
<textarea rows="5" cols="60" name="configcode" onclick="this.form.configcode.focus();this.form.configcode.select();" >{BUFFER}</textarea>
</td>
</tr>
</jtmpl:tmpl>
</table>
</fieldset>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
<div class="clr"></div>
</div>
<div class="clr"></div>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
</div>
</div>
</div>
<div class="clr"></div>
<input type="hidden" name="task" value="" />
</form>

View File

@ -0,0 +1,258 @@
<jtmpl:comment>
@version $Id: ftpconfig.html 10871 2008-08-30 07:30:33Z willebil $
@package Joomla
@subpackage Installation
@copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
@license GNU/GPL
</jtmpl:comment>
<script language="JavaScript" type="text/javascript">
<!--
Window.onDomReady(function(){
document.formvalidator.handlers['isftp'] = { enabled : true,
exec : function (value) {
if (document.getElementById('ftpenable').checked == true) {
if (value == '') {
return false;
} else {
return true;
}
} else {
return true;
}
}
}
});
function validateForm( frm, task ) {
var valid = document.formvalidator.isValid(frm);
if (valid == false) {
return false;
}
var ftpEnable = document.getElementById("ftpenable");
var ftpRoot = document.getElementById("ftproot");
if (ftpEnable.checked == false) {
submitForm( frm, task );
} else if (ftpRoot.value == '') {
alert( '<jtmpl:translate key="warnFtpRoot" escape="yes">Please enter an FTP Root or use\nthe autofind root button.</jtmpl:translate>' );
return;
} else {
submitForm( frm, task );
}
}
function doFTPVerify() {
xajax_FTPVerify(xajax.getFormValues('adminForm'));
}
function JProcess() {
if ( document.getElementById("ftphost").value == '' ) {
alert( '<jtmpl:translate key="validFtpHost" escape="yes">Please enter a correct FTP host</jtmpl:translate>' );
return;
} else if (document.getElementById("ftpuser").value == '') {
alert( '<jtmpl:translate key="validFtpUser" escape="yes">Please enter a username</jtmpl:translate>' );
return;
} else if (document.getElementById("ftppass").value == '') {
alert( '<jtmpl:translate key="validFtpPass" escape="yes">Please enter a FTP password</jtmpl:translate>' );
return;
} else {
xajax_getFtpRoot(xajax.getFormValues('adminForm'));
}
}
//-->
</script>
<form action="index.php" method="post" name="adminForm" id="adminForm" class="form-validate" autocomplete="off">
<div id="right">
<div id="rightpad">
<div id="step">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<div class="far-right">
<jtmpl:tmpl name="buttons" type="condition" conditionvar="direction">
<jtmpl:sub condition="ltr">
<div class="button1-right"><div class="prev"><a onclick="submitForm( adminForm, 'dbconfig' );" alt="<jtmpl:translate escape="yes">Previous</jtmpl:translate>"><jtmpl:translate escape="yes">Previous</jtmpl:translate></a></div></div>
<div class="button1-left"><div class="next"><a onclick="validateForm( adminForm, 'mainconfig' );" alt="<jtmpl:translate escape="yes">Next</jtmpl:translate>"><jtmpl:translate escape="yes">Next</jtmpl:translate></a></div></div>
</jtmpl:sub>
<jtmpl:sub condition="rtl">
<div class="button1-right"><div class="prev"><a onclick="validateForm( adminForm, 'mainconfig' );" alt="<jtmpl:translate escape="yes">Next</jtmpl:translate>"><jtmpl:translate escape="yes">Next</jtmpl:translate></a></div></div>
<div class="button1-left"><div class="next"><a onclick="submitForm( adminForm, 'dbconfig' );" alt="<jtmpl:translate escape="yes">Previous</jtmpl:translate>"><jtmpl:translate escape="yes">Previous</jtmpl:translate></a></div></div>
</jtmpl:sub>
</jtmpl:tmpl>
</div>
<span class="step"><jtmpl:translate>FTP Configuration</jtmpl:translate></span>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
</div>
<div id="installer">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<h2><jtmpl:translate>FTP Configuration</jtmpl:translate>:</h2>
<div class="install-text">
<jtmpl:translate key="tipFtpConfSteps">
<p>Due to filesystem permission restrictions and PHP Safe Mode restrictions.
For all users to utilize the Joomla! installers an FTP layer exists to handle
filesystem manipulation.
<br />
<br />
Enter an FTP username and password with access to the Joomla! root directory,
this will be the FTP account that handles all filesystem operations when Joomla!
requires FTP access to complete a task.
<br />
<br />
For security reasons, it is best if a separate FTP user account is created with
access only to the Joomla! installation.</p>
</jtmpl:translate>
</div>
<div class="install-body">
<div class="t">
<div class="t">
<div class="t"></div>
</div>
</div>
<div class="m">
<h3 class="title-smenu" title="<jtmpl:translate>Basic</jtmpl:translate>"><jtmpl:translate>Basic Settings</jtmpl:translate></h3>
<div class="section-smenu">
<table class="content2">
<tr>
<td width="100">
<input id="ftpenable" type="radio" name="vars[ftpEnable]" value="1" />
<label for="vars_ftpenable">
<jtmpl:translate key="YES">Yes</jtmpl:translate>
</label>
<br />
<input id="ftpdisable" type="radio" name="vars[ftpEnable]" value="0" checked="checked" />
<label for="vars_ftpdisable">
<jtmpl:translate key="NO">No</jtmpl:translate>
</label>
</td>
<td align="justify">
<jtmpl:translate key="ENABLEFTPDESC">Enable FTP filesystem layer</jtmpl:translate>
</td>
</tr>
<tr>
<td width="100">
<label for="ftpuser">
<span id="ftpusermsg"><jtmpl:translate>FTP user</jtmpl:translate></span>
</label>
</td>
<td align="center">
<input class="inputbox validate notrequired isftp ftpusermsg" type="text" id="ftpuser" name="vars[ftpUser]" value="{VAR_FTPUSER}" size="30"/>
</td>
</tr>
<tr>
<td>
<label for="ftppass">
<span id="ftppassmsg"><jtmpl:translate>FTP password</jtmpl:translate></span>
</label>
</td>
<td align="center">
<input class="inputbox validate notrequired isftp ftppassmsg" type="password" id="ftppass" name="vars[ftpPassword]" value="{VAR_FTPPASSWORD}" size="30"/>
</td>
</tr>
<tr id="rootPath">
<td>
<label for="ftproot">
<span id="ftprootmsg"><jtmpl:translate>FTP Root Path</jtmpl:translate></span>
</label>
</td>
<td align="center">
<input class="inputbox validate notrequired isftp ftprootmsg" id="ftproot" type="text" name="vars[ftpRoot]" value="{VAR_FTPROOT}" size="30"/>
</td>
</tr>
</table>
<input type="button" id="findbutton" class="button" value="<jtmpl:translate>Autofind FTP Path</jtmpl:translate>" onclick="JProcess();" />
<input type="button" id="verifybutton" class="button" value="<jtmpl:translate>Verify FTP Settings</jtmpl:translate>" onclick="doFTPVerify();" />
<br /><br />
</div>
<h3 class="title-smenu moofx-toggler" title="<jtmpl:translate>Advanced</jtmpl:translate>"><jtmpl:translate>Advanced settings</jtmpl:translate></h3>
<div class="section-smenu moofx-slider">
<table class="content2">
<tr id="host">
<td width="100">
<label for="ftphost">
<jtmpl:translate>FTP host</jtmpl:translate>
</label>
</td>
<td align="center">
<input class="inputbox" type="text" id="ftphost" name="vars[ftpHost]" value="{VAR_FTPHOST}" size="30"/>
</td>
</tr>
<tr id="port">
<td width="100">
<label for="ftpport">
<jtmpl:translate>FTP port</jtmpl:translate>
</label>
</td>
<td align="center">
<input class="inputbox" type="text" id="ftpport" name="vars[ftpPort]" value="{VAR_FTPPORT}" size="30"/>
</td>
</tr>
<tr>
<td width="100">
<label for="ftpsavepass">
<jtmpl:translate>Save FTP Password</jtmpl:translate>
</label>
</td>
<td align="justify">
<input id="ftpsavepass" type="radio" name="vars[ftpSavePass]" value="1" />
<label for="ftpsavepass">
<jtmpl:translate key="YES">Yes</jtmpl:translate>
</label>
<br />
<input id="ftpnosavepass" type="radio" name="vars[ftpSavePass]" value="0" checked="checked" />
<label for="ftpnosavepass">
<jtmpl:translate key="NO">No</jtmpl:translate>
</label>
</td>
</tr>
</table>
</div>
<div class="clr"></div>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
<div class="clr"></div>
</div>
<div class="clr"></div>
</div>
<div class="b">
<div class="b">
<div class="b"></div>
</div>
</div>
</div>
</div>
</div>
<div class="clr"></div>
<input type="hidden" name="task" value="" />
<input type="hidden" name="lang" value="{LANG}" />
</form>
<script type="text/javascript">
//Element.cleanWhitespace('content');
//init();
</script>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

Some files were not shown because too many files have changed in this diff Show More