martes, 31 de agosto de 2010
¿Qué es OpenCart?
OpenCart es un completo sistema de tienda virtual gratuito y de código abierto realizado con PHP y Mysql, que nos permite montar fácilmente nuestro negocio en internet.
¿Donde está la web oficial de OpenCart?
Está en http://www.opencart.com
¿Donde puedo ver un ejemplo de esta tienda web?
En http://www.coompras.com/tiendas/demoopen/
viernes, 27 de agosto de 2010
Una consultita en Mysql...
select
tabla.DEPENDENCIA,
tabla.ETIQUETA,
tabla.DESCRIPCION,
tabla.SERIE,
tabla.OBSERVACIONES,
tabla.MARCA,
case tabla.TIPO_DATO_ATRIBUTO_MODELO
when 1 then
((select valores_catalogo.VALOR
from detalle_catalogo
inner join valores_catalogo on valores_catalogo.ID_VALOR_CATALOGO=detalle_catalogo.ID_VALOR_CATALOGO
inner join atributos on atributos.ID_ATRIBUTO=valores_catalogo.ID_ATRIBUTO
where atributos.NOMBRE='MODELO'
and detalle_catalogo.ID_ACTIVO=tabla.ID_ACTIVO))
when 2 then
((select valores_unicos.VALOR from muebles
inner join activos on activos.ID_ACTIVO=muebles.ID_ACTIVO
inner join valores_unicos on valores_unicos.ID_ACTIVO=muebles.ID_ACTIVO
inner join atributos on atributos.ID_ATRIBUTO=valores_unicos.ID_ATRIBUTO
where muebles.TIPO_mueble=1
and atributos.nombre='MODELO'
and atributos.ID_CLASIFICACION = muebles.ID_CLASIFICACION
and valores_unicos.ID_ACTIVO=tabla.ID_ACTIVO))
else ''
end as MODELO,
tabla.CURP,
tabla.ID_RESGUARDO,
tabla.UBICACION,
tabla.CLAS,
tabla.PARTIDA,
tabla.NOM_PARTIDA,
tabla.ID_ESTATUS,
tabla.ID_RESGUARDO,
if((select id_solicitud_resguardo_externo from solicitud_resguardo_externo
where id_resguardo=tabla.ID_RESGUARDO) is null,'0',(
select CONCAT(datos_resguardante_externo.AP_PATERNO,' ', datos_resguardante_externo.AP_MATERNO,' ',datos_resguardante_externo.NOMBRE)
from solicitud_resguardo_externo
inner join datos_resguardante_externo on datos_resguardante_externo.id_solicitud_resguardo_externo=solicitud_resguardo_externo.id_solicitud_resguardo_externo
where id_resguardo=tabla.ID_RESGUARDO)
) AS 'RESGUARDANTE_EXTERNO',
if((select id_solicitud_resguardo_externo from solicitud_resguardo_externo
where id_resguardo=tabla.ID_RESGUARDO) is null,'0',(
select TRIM(datos_resguardante_externo.PUESTO)
from solicitud_resguardo_externo
inner join datos_resguardante_externo on datos_resguardante_externo.id_solicitud_resguardo_externo=solicitud_resguardo_externo.id_solicitud_resguardo_externo
where id_resguardo=tabla.ID_RESGUARDO)
) AS 'PUESTO'
from (
select a.id_activo,
dependencias.NOMBRE AS 'DEPENDENCIA',
(select valores_unicos.VALOR from
valores_unicos
inner join atributos on atributos.ID_ATRIBUTO=valores_unicos.ID_ATRIBUTO
where atributos.NOMBRE='ETIQUETA'
and valores_unicos.ID_ACTIVO=a.ID_ACTIVO) as 'ETIQUETA',
muebles.DESCRIPCION,
muebles.SERIE,
muebles.OBSERVACIONES,
(select atributos.id_tipo_dato from atributos
inner join clasificaciones on clasificaciones.id_clasificacion=atributos.id_clasificacion
where clasificaciones.id_clasificacion=muebles.id_clasificacion
and atributos.NOMBRE='MODELO'
)AS 'TIPO_DATO_ATRIBUTO_MODELO',
(select valores_catalogo.VALOR
from detalle_catalogo
inner join valores_catalogo on valores_catalogo.ID_VALOR_CATALOGO=detalle_catalogo.ID_VALOR_CATALOGO
inner join atributos on atributos.ID_ATRIBUTO=valores_catalogo.ID_ATRIBUTO
where atributos.NOMBRE='MARCA'
and detalle_catalogo.ID_ACTIVO=a.ID_ACTIVO) AS 'MARCA',
if((select resguardos.curp_responsable from detalles_resguardos
inner join resguardos on resguardos.id_resguardo=detalles_resguardos.id_resguardo
where detalles_resguardos.id_estatus_resguardo in (1,2)
and detalles_resguardos.id_activo=a.id_activo) is null,'EN SOLICITUD DE BAJA',(select resguardos.curp_responsable from detalles_resguardos
inner join resguardos on resguardos.id_resguardo=detalles_resguardos.id_resguardo
where detalles_resguardos.id_estatus_resguardo in (1,2)
and detalles_resguardos.id_activo=a.id_activo)) as 'curp',
if((select resguardos.id_resguardo from detalles_resguardos
inner join resguardos on resguardos.id_resguardo=detalles_resguardos.id_resguardo
where detalles_resguardos.id_estatus_resguardo in (1,2)
and detalles_resguardos.id_activo=a.id_activo) is null,'',(select resguardos.id_resguardo from detalles_resguardos
inner join resguardos on resguardos.id_resguardo=detalles_resguardos.id_resguardo
where detalles_resguardos.id_estatus_resguardo in (1,2)
and detalles_resguardos.id_activo=a.id_activo)) AS 'ID_RESGUARDO',
oficinas.NOMBRE as 'UBICACION',
clasificaciones.NOMBRE as 'CLAS',
partidas.PARTIDA,
partidas.NOMBRE as NOM_PARTIDA,muebles.id_estatus
from activos a
inner join muebles on muebles.ID_ACTIVO=a.ID_ACTIVO
inner join oficinas on oficinas.ID_OFICINA=muebles.ID_OFICINA
inner join clasificaciones on clasificaciones.ID_CLASIFICACION = muebles.ID_CLASIFICACION
inner join partidas on partidas.ID_PARTIDA=clasificaciones.ID_PARTIDA
inner join dependencias on dependencias.ID = a.ID_DEPENDENCIA
WHERE a.TIPO_ACTIVO=1
and muebles.TIPO_MUEBLE=1
and clasificaciones.ID_PARTIDA = 10
and muebles.ID_ESTATUS <> 2
ORDER BY PARTIDA,CLAS,DESCRIPCION) tabla
Saludos...
viernes, 20 de agosto de 2010
Crear grupo de usuarios en Linux para administrar un sitio web
1.- Crear un directorio donde se guardaran los archivos del sitio
# cd /var/www/
root@itinajero:/var/www# mkdir website
2.- Crear un grupo en el que estaran los usuarios que podran subir paginas web.
root@itinajero:/var/www# groupadd programadores
3.- Crear los usuarios que podran subir archivos al sitio
root@itinajero:/var/www# adduser itinajero
root@itinajero:/var/www# adduser diaz
4.- Asignar los usuarios al grupo "programadores"
root@itinajero:/var/www# gpasswd -a diaz programadores
Adding user diaz to group sitio
root@itinajero:/var/www# gpasswd -a itinajero programadores
Adding user itinajero to group sitio
5.- Asignar el directorio creado al grupo "programadores".
root@itinajero:/var/www# chgrp programadores website/
6.- Verificamos los permismos actuales de ese directorio
root@itinajero:/var/www# ls -l
total 6500
drwxr-xr-x 10 root root 4096 2010-08-13 15:45 html
-rw-r--r-- 1 root root 177 2010-03-16 15:10 index.html
drwxr-xr-x 16 www-data www-data 4096 2010-08-05 10:23 joomla
-rw-r--r-- 1 root root 6607169 2010-08-03 13:21 Joomla_1.5.20-Spanish-pack_completo.zip
-rw-r--r-- 1 root root 2045 2010-08-03 15:04 new.php
-rw-r--r-- 1 root root 2046 2010-08-03 15:03 new.php~
drwxr-xr-x 2 root root 4096 2010-08-03 16:01 noticias
drwxr-xr-x 11 root root 4096 2010-07-27 14:48 phpMyAdmin
drwxr-xr-x 2 root programadores 4096 2010-08-20 15:06 website
Podemos ver que el grupo programadores no tiene pemisos de escritura a la carpeta website. Es necesario agregarle permisos de escritura.
7.- Agregamos los permisos de escritura al grupo.
root@itinajero:/var/www# chmod 775 website/
root@itinajero:/var/www# ll
total 6500
drwxr-xr-x 10 root root 4096 2010-08-13 15:45 html
-rw-r--r-- 1 root root 177 2010-03-16 15:10 index.html
drwxr-xr-x 16 www-data www-data 4096 2010-08-05 10:23 joomla
-rw-r--r-- 1 root root 6607169 2010-08-03 13:21 Joomla_1.5.20-Spanish-pack_completo.zip
-rw-r--r-- 1 root root 2045 2010-08-03 15:04 new.php
-rw-r--r-- 1 root root 2046 2010-08-03 15:03 new.php~
drwxr-xr-x 2 root root 4096 2010-08-03 16:01 noticias
drwxr-xr-x 11 root root 4096 2010-07-27 14:48 phpMyAdmin
drwxrwxr-x 2 root programadores 4096 2010-08-20 15:06 website
root@itinajero:/var/www#
Ahora podemos ver que ya tienen permisos de escritura los usuarios del grupo sitio y podran subir archivos
Autor.
Ivan E. Tinajero Diaz
lunes, 21 de junio de 2010
eyeOS - El Sistema Operativo WEB
Se trata de un nuevo concepto en almacenaje virtual, el cual se considera como revolucionario al ser un servicio clave para el Web 2.0 ya que dentro de una web que combina el poder del actual HTML, PHP, AJAX y JavaScript para crear un entorno gráfico de tipo desktop.
La diferencia entre otros entornos desktop al hacer posible iniciar el desktop eyeOS y todas sus aplicaciones desde un navegador web. No se requiere instalar ningún software adicional, ya que solo se necesita un navegador que soporte AJAX, Java y Macromedia Flash (dependiendo de las aplicaciones que se deseen ejecutar).
Url:
http://eyeos.org/
lunes, 24 de agosto de 2009
El envío de XML del servidor al cliente
Content-Type: text/xml
Además, como los datos que el servidor manda al cliente se habrán generado de forma dinámica, habrá que procurar que el navegador trabaje siempre con la última versión del documento y no con una versión previa que pueda tener en la caché. Para controlar esto se añadirán los siguientes encabezados:
Cache-Control: no-cache, must-revalidate
Expires: Mon, 01 Jan 2007 01:00:00 GMT
A continuación se muestran los comandos necesarios para enviar estos encabezados al cliente por medio de jsp (Java Server Pages):
Encabezado XML en JSP
<% response.setHeader("Content-Type", "text/xml;charset=utf-8"); response.setHeader("Expires", "Mon, 01 Jan 2007 01:00:00 GMT"); response.setHeader("Cache-Control", "must-revalidate"); response.setHeader("Cache-Control", "no-cache"); %>
WAR's
Toda aplicación en Tomcat se encuentra agrupada en WARS ("Web-Archives"), la estructura de un WAR es definida por Sun (el creador de Java) la cual debe ser implementada en cualquier producto de "Servlet Engine"(Web-Container).
WARS en Tomcat
Cuando recién se instala "Tomcat" éste ya contiene varios WARS, los cuales contienen ejemplos y documentación, estos WARS se encuentran bajo el directorio /usr/local/tomcat/webapps, donde /usr/local/tomcat es el directorio raíz de Tomcat (TOMCAT_HOME) definido al instalar Tomcat
Si se desciende a este directorio se observará que además de los archivos *.war existe además un directorio con el mismo nombre del WAR, esto es, si existen WAR's por nombre ROOT.war y examples.war también existen directorios llamados ROOT y examples.
Estos directorios son los que precisamente contienen la estructura del archivo WAR, esto es, el archivo WAR en sí no es legible sino que tiene que ser expandido/descomprimido para ser leído.
Estructura de un Archivo WAR
La estructura de un Archivo WAR es la siguiente:
/ *.html *.jsp *.css : Este directorio base contiene los elementos que comúnmente son utilizados en un sitio, Documentos en HTML , JSP's , CSS("Cascading Style Sheets") y otros elementos.
/WEB-INF/web.xml : Contiene elementos de seguridad de la aplicación así como detalles sobre los Servlets que serán utilizados dentro de la misma.
/WEB-INF/classes/ : Contiene las clases Java adicionales a las del JDK que serán empleadas en los JSP's y Servlets
/WEB-INF/lib/ : Contiene los JAR's que serán utilizados por su aplicación.
Este tipo de estructura permite portabilidad a las diversas aplicaciones que son desarrolladas en Java, esto es , si se genera una aplicación para Foros o transacciones financieras estas se pueden contener en un archivo WAR, concentrando cualquier clase Java dentro de /WEB-INF/classes, parámetros específicos en /WEB-INF/web.xml , archivos JAR's en /WEB-INF/lib/ y los diversos JSP's,CSS y documentos HTML bajo el directorio raíz del archivo WAR.
jueves, 20 de agosto de 2009
Grafica Dinamica OpenFlash en Pentaho 3.0
El tutorial muestra como crear una gráfica OpenFlash en la plataforma Pentaho BI 3.0. El parámetro para hacer dinámica la gráfica es enviado al xaction por medio de un archivo jsp que se conecta al datamart.
El tutorial y los archivos de las prácticas puede ser descargado del siguiente link:
Adjunto encontraras los archivos de las práctica realizada.
Saludos..
