Hola amigos!
Hoy les voy a facilitar la configuración para una vista en Drupal 7 que les puede resultar útil.
El sitio es multilenguaje por parámetro de sesión, debido a que no todo el sitio permite traducción.
El boceto planteaba la inclusión de un bloque a la derecha que mostraba los adjuntos del contenido que se estaba viendo... hasta ahí todo fácil, pero decidieron que se muestren los adjuntos en los distintos idiomas en los que está permitida la traducción! Inglés, Español y Portugués.
Con el módulo Views solamente hay que configurar algunas cosas más de lo normal.
(la vista la cree para mostrar archivos y no contenido, pero creo que es indistinto ya que terminamos mostrando contenido).
En la parte de Avanzadas hay que incluir un filtro contextual:
Uso del Archivo: ID de la Entidad
y luego agregar 2 relaciones:
Uso del archivo: Contenido
y relacionado con este último (Contenido) Traducción del contenido: Traducciones
Finalmente en los campos podemos agregar los campos vinculados a la relación Traducciones
(Traducciones) Contenido: Adjuntos
Espero que les sirva!!
saludos!
lunes, 26 de diciembre de 2016
lunes, 24 de octubre de 2016
MS SQL DateTime a formato Wordpress XML
Hola!!
Esta vez el trabajo era pasar un dump de 1GB de 5 años de laburo en formato MS SQL a un Wordpress en MySQL.
Encaré el problema con Python para traducirlo al formato de importación XML del Wordpress. En este post les pongo específicamente el conversor de fechas.
MS SQL el formato DateTime lo regresa en el dump como un hexadesimal. Me ayudó esta respuesta que lo traduce a MySQL http://stackoverflow.com/questions/4946292/how-to-cast-the-hexadecimal-to-varchardatetime.
Les dejo el código!
# necesito convertir las fechas de formato CAST(0x0000A5F000472C53 AS DateTime) = Viernes, 22 de Abril de 2016 import datetime import re # http://stackoverflow.com/questions/4946292/how-to-cast-the-hexadecimal-to-varchardatetime # SELECT # CAST( # '1900-01-01 00:00:00' + # INTERVAL CAST(CONV(substr(HEX(BinaryData),1,8), 16, 10) AS SIGNED) DAY + # INTERVAL CAST(CONV(substr(HEX(BinaryData),9,8), 16, 10) AS SIGNED)* 10000/3 MICROSECOND # AS DATETIME) AS converted_datetime # FROM # ( # SELECT 0x0000987C00000000 AS BinaryData # UNION ALL # SELECT 0x00009E85013711EE AS BinaryData # ) d def getFiletime(dt): # CAST(0x0000A5F000472C53 AS DateTime) # print dt.group(0) temphex = dt.group(0) # print 'temphex:' + temphex tempsub18 = temphex[7:15] # print 'tempsub18:' + tempsub18 tempsub916 = temphex[15:23] # print 'tempsub916:' + tempsub916 dias = int(tempsub18, 16) microsegundos = int(tempsub916, 16) * 10000/3 return format(datetime.datetime(1900, 1, 1) + datetime.timedelta(dias, 0, microsegundos), '%a, %d %B %Y %H:%M:%S %Z') fname = raw_input("Ingresa nombre de archivo: ") if len(fname) < 1 : fname = "contenido-demo.sql" fh = open(fname) f = open('contenido-fechasbien.sql','w+') for linea in fh: if linea.find("CAST(0x") != -1: linea = re.sub('CAST\(0x([^\s]+) AS DateTime\)', getFiletime, linea) f.write(linea) else: #guardar la linea en la tabla creada antes f.write(linea)
lunes, 3 de octubre de 2016
Separar una base de datos MS SQL por tablas - Python
Escenario:
Una anotación importante, el archivo que me habían pasado tenía como codificación UCS-2 Little Endian.... necesitás convertirlo a UTF-8
Con Python son un par de lineas hacer esto... les dejo el código:
- No tengo (y no voy a instalar) el MS SQL
- Me pasan un dump de muuuuchos megas
- Existe un encabezado de tabla donde está el nombre de la tabla por ejemplo:
/****** Object: Table [dbo].[Tabla] - Necesito importar solo algunas tabla de toda la base a un Wordpress
Decidí dividir el mega archivo en archivos más chiquitos por tabla...
Con Python son un par de lineas hacer esto... les dejo el código:
fname = raw_input("Ingresa nombre de archivo: ") if len(fname) < 1 : fname = "base-utf8.sql" fh = open(fname) for linea in fh: if linea.find("/******") != -1: #fijarse como se llama la tabla inibus = linea.find('[dbo].['); tabla = linea[inibus+7:linea.find(']',inibus+7)]
#crear un nuevo archivo, a+ lo crea o lo abre al final para agregar f = open(tabla + '.sql','a+') print "Se creo el archivo: " + tabla + ".sql" else: #guardar la linea en la tabla creada antes f.write(linea)
viernes, 30 de septiembre de 2016
Accesos Apache 2.4+ por archivo
Cortito y al pie...
Creo que tengo como 4 posteos encolados en borrador próximos a salir pero este lo quería poner por acá rápido.
Me pidieron subir un sitio Wordpress para trabajarlo online, pero que el resto de la humanidad no lo vea todavía... si, hay miles de soluciones, pongo una.
En el .htacces podés restringir el acceso por archivo entonces...
Subís un index.html con el mensaje que quieras, ojo que si accedes al dominio te tiene que reconocer la extensión html en DirectoryIndex
Espero le sirva a alguien.
Alek
Creo que tengo como 4 posteos encolados en borrador próximos a salir pero este lo quería poner por acá rápido.
Me pidieron subir un sitio Wordpress para trabajarlo online, pero que el resto de la humanidad no lo vea todavía... si, hay miles de soluciones, pongo una.
En el .htacces podés restringir el acceso por archivo entonces...
Subís un index.html con el mensaje que quieras, ojo que si accedes al dominio te tiene que reconocer la extensión html en DirectoryIndex
DirectoryIndex index.php index.html index.htm
<Files "index.php">
Require ip 131.111.111.111
Require ip 111.111.111.131
Require ip 111.111.111.11
Require ip 111.111.115.111
</Files>
Espero le sirva a alguien.
Alek
Suscribirse a:
Entradas (Atom)