Listado de Web
Desarrollo y Optimizacion Web
- CSS: Trucos y Efectos con imágenes
CSS: Trucos y Efectos con imágenes
Efectos con imágenes con CSS (reflejo, bordes difuminados, pulsado, ...) y multitud de trucos realmente interesantes (rotar imagenes, desplazar enlaces, ...) No es la primera entrada que escribo recopilando artículos relacionados con el CSS, por eso cuando vemos algo realmente interesante nos gusta tenerlo apuntado.... - Como publicar "Publish Web" con Visual Studio Express Edition
Como publicar "Publish Web" con Visual Studio Express Edition
Vamos a Explicar como publicar con aspnet_compiler.exe dado que en las versiones Express Edition no existe la opción "Publish Web". Aunque existen trucos para crear la opción de publicar un sitio web con algunas versiones del visual studio (VS2008 Express Edition), en la versión Web Developer VS2010 Express Edition no lo hemos logrado. Por ese motivo vamos a explicar como crear un método para publicar sitios web por línea de comando con aspnet_compiler.exe.Aspnet_compiler.exe
La herramienta de compilación de ASP.NET (Aspnet_compiler.exe) hace posible la compilación de una aplicación Web ASP.NET, en el propio lugar donde se encuentra o para implementarse en una ubicación de destino como un servidor de producción
... - xDebug Php For NetBeans and EasyPhp
xDebug Php For NetBeans and EasyPhp
Como Configurar xDebug en EasyPhp para poder debuggar desde NetBeans. Poder poner BreakPoints (Puntos de Ruptura) en desarrollos es importante, tanto que no pensamos en desarrollar sin esta posibilidad. El problema es que con Desarrollos PHP esta configuración no viene preestablecida por defecto, y el motivo es porque PHP no pose un IDE oficial. Nosotros utilizamos NetBeans para el Desarrollo Web en PHP, este es nuestro IDE, y por eso vamos a configurar la librería xDebug para poder debugar nuestro código PHP en NetBeans. PHP es código de servidor, por lo que necesita un Servidor Web. EasyPhp es un paquete de instalación que provee de Apache + PHP + MySql configurados por Defecto, toda una ventaja para los entornos de desarrollo.Pasos para Configurar xDebug en EasyPhp
... - Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.
Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.
La configuración del IIS es incorrecta. En las propiedades del Sitio Web configurado en el ISS, configurar en la pestaña ASP.NET el Framework 4.0 en lugar de la versión 2.0. Para las soluciones sencillas y rápidas. Que todo sea esto.... - CSS: Especifico para IE, Generador de Textos y Hacks
CSS: Especifico para IE, Generador de Textos y Hacks
Trucos Online CSS para generar efectos de texto con CSS, hacks específicos para el navegador Internet Explorer o generar clases de estilos que sean compatibles con todos los Navegadores. CSS Específico para IE en webdesignerwall. CSS condicionales y hacks para las diferentes versiones de Internet Explorer. Generador de Textos con efectos CSS en puntogeek. CSS Prefixer. Genera estilos para todos los navegadores con sus "Hacks" (Cross-Browsers) dzign... - No se puede cargar el archivo o ensamblado System.Web.Extensions Version=1.0.61025.0
No se puede cargar el archivo o ensamblado System.Web.Extensions Version=1.0.61025.0
Error No se puede cargar el archivo o ensamblado System.Web.Extensions Version=1.0.61025.0. En Servidor Windows 2003 Server con aplicaciones Web Asp.Net. En un entorno donde la version instalada de la aplicación web funcionaba, ha comenzado ha dar error en el fichero Web.config, indicando que no se puede cargar el ensamblado System.Web.Extensions.Problema
... - Tips CSS: Efecto Hover, Gaussiano, Texto 3D y Sombras sin Imagenes
Tips CSS: Efecto Hover, Gaussiano, Texto 3D y Sombras sin Imagenes
Algunos Trucos CSS que hemos ido encontrado los últimos días, de los cuales creamos una lista para que no se queden los enlaces en el olvido. Desenfoque Gaussiano y Texto en 3D con CSS3 dzign.us ToolTip CSS3 Evento OnHover (Hover) PureCSS3 CSS Clearing Floats with Overflow webdesignerwall CCS Drop Shadows without images nicolasgallagher... - Estilos de Sombras con CSS sin Imagenes
Estilos de Sombras con CSS sin Imagenes
Sorprendente utilización de las sombras con CSS sin utilizar imagenes. Diferentes efectos de Sombras con CSS sin imagenes que consiguen efectos asombrosos como levantar esquinas, curvar esquinas, perpectiva, levantar conjunto, rotar, personalizar sombras en vertical o horizontal. Podemos usar el efecto que mejor nos convenga, veamos por ejemplo como rotar y aplicarle sombra.... - Error de Analizador. Application ASP.NET, Web Site y Virtual Directory
Error de Analizador. Application ASP.NET, Web Site y Virtual Directory
Error de Analizador. No se puede cargar el Compilado al Publicar una Aplicación Web en ASP.NET. Hace poco he tenido un problemilla que me ha tenido ocupado un tiempo. El problema surge al publicar una aplicación web con ASP.NET precompilada al Servidor. Cuando le das a Publicar una Aplicación Web (Publish Web Site) desde el Visual Studio 2005, y cuando decides instalar la aplicación en el servidor da error (Recomiendo no esperar al último momento para hacer este paso. Por suerte no era este mi caso). Al poner la aplicación publicada (Compilada) aparecía el siguiente error.Error del analizador Descripción: Error al analizar el recurso requerido para dar servicio a esta solicitud. Revise los detalles de error de análisis específicos y modifique el archivo de código fuente en consecuencia. Mensaje de error del analizador: No se puede cargar el ensamblado 'App_Web_jok6qv5y'. Asegúrese de que está compilado antes de obtener acceso a la página.
Si por el contrario copiaba una página en particular con el fichero .aspx y .cs, la página se compilaba sin ningún problema y se cargaba sin error. Al Publicar una Aplicación Web con el Visual Studio, lo que hace es compilar todas las páginas para que el código .cs no quede a la vista, y copia el o los ficheros compilados dentro de la carpeta "Bin". Así que el problema que tenía era debido a la compilación, o porque la configuración del IIS no era correcta.Definiciones para Tener Claro los Conceptos
Web Site: Por defecto "Default Web Site" ubicado en "C:\inetpub\wwwroot\". Si creamos un nuevo sitio web, es donde se definirá la Ruta Base de la nueva aplicación Web. Es Decir, un dominio o ip ubicado en una carpeta física, en donde se encontrará la página principal de la aplicación. Virtual Directory: Un directorio virtual es crear dentro de un sitio web una carpeta en un determinado nivel de directorios, pero que en realidad, físicamente esta ubicada en cualquier otro lugar del disco. Normalmente utilizado para indicar donde se encuentran las imágenes, scripts, ... Aplication Web: Es como un directorio virtual, pero con la capacidad de poder ejecutar código ASP.NET. Se pueden crear tantas aplicaciones web asp.net como se quieran dentro de un Web SitePosibles Soluciones
Hemos encontrado 2 posibles opciones para solucionar el Error del Analizador, pero ambas son debido a la configuración realizada en el IIS 1: La más probable es que la versión del ASP.NET configurada en la Aplicación Web no este definida. Si nos fijamos en la parte inferior de la página de Error encontramos un mensaje tipo
La mayoría de los problemas encontrados por Error del Analizador es porque la version del Framework utilizado es la 1.1 y no la 2.0. Se soluciona accediendo a "Propiedades" de la Aplicación Web, y definir la versión del Framework .NET en la pestaña ASP.NET 2: Una Aplicación Web específica se crea dentro de un Sitio Web, pero primero se crea como un Directorio Virtual. Si no le indicamos en las propiedades de la aplicación web, en la pestaña "Virtual Directory", en el apartado "Application Settings" la opción de "Create". No configurará la aplicación como Aplicación ASP.NET. Aunque podrá ejecutar código html o scripts, no podrá ejecutar código precompilado asp.net. Esto es lo que creo, siguiendo estos pasos el problema del Error de Analizador al Publicar una Aplicación Web ASP.NET se ha solucionado. ¿Cual creéis que era mi problema? ¡Menudo Despiste!...Información de versión: Versión de Microsoft .NET Framework:2.0.50727.3615; Versión ASP.NET:2.0.50727.3618 - Service Unavailable en una Pool Aplicaciones del IIS o Proceso w3wp.exe
Service Unavailable en una Pool Aplicaciones del IIS o Proceso w3wp.exe
Cuando con Servidor Web IIS y una Aplicación Web esta con un Servicio No Disponible, podemos verificar una serie de causas. Normalmente es porque el Pool de Aplicaciones o el Proceso w3wp.exe que gestiona la Aplicación Web se ha saturado y se ha parado. Puede ser por rendiemiento del Servidor que esta con altos Picos, incluso del 100% de CPU. Si sospechamos que el problema esta en algún Proceso w3wp.exe, podemos ver con paciencia que proceso w3wp.exe esta dando el problema. Pero lo normal es pensar que la Aplicación Web se ha Parado, y que simplemente reiniciando se soluciona. Si después de reiniciar el IIS (iisreset) o la aplicación web, sigue sin solucionarse el problema entonces la causa es otra.Que Podemos Hacer
Revisar el Visor de Sucesos. Es muy probable que nos encontremos un Error del Tipo Active Server Pages con la siguiente descripción:Error: No se pudo realizar la inicialización de la caché permanente de plantillas para el grupo de aplicaciones 'xxx' debido al siguiente error: No se pudo crear un subdirectorio de caché de disco para el grupo de aplicaciones. Los datos pueden tener códigos de error adicionales..
Este problema es debido a Permisos de Usuario. A mi me ha pasado que la Aplicación Web funcionaba correctamente pero de vez en Cuando daba el Error de Active Server Pages en el Visor de Sucesos. Sospecho que llegado a un punto, y dependiendo de la gravedad del Error, el Pool de Aplicaciones deja de funcionar y da el Error Service Unavailable.Pasos a Seguir Para la Solucion
Abrir el Administrador del IIS (Internet Information Server). Expandir el "Grupo de Aplicaciones". Clic derecho sobre el grupo de aplicaciones "xxx" (el identificador del grupo de aplicaciones para el que el visor de eventos devuelve un error). Seleccionar "Propiedades" e ir a la pestaña "Identidad". Ver el usuario del grupo de aplicaciones. Editar la seguridad de la carpeta: "C:\WINDOWS\system32\inetsrv\ASP Compiled Templates" y dar todos los permisos al usuario del grupo de aplicaciones. Reiniciar el IIS.Recurso Fácil
Reiniciar IIS, Reiniciar Servicios, Reiniciar la Máquina. Quizás se solucionen los problemas inmediatos, pero no se ha solucionado el problema. Ya que el Servidor Web será propenso a que vuelva a dar el Error Service Unavailable en una Aplicación Web. NOTA: En mi caso utilice el Recurso Fácil, funcionó, pero era el Entorno de Desarrollo y no perjudicaba a ningún Usuario. Pasados unos días y con tiempo Revisé los permisos de Usuarios y efectivamente no estaba configurado correctamente.... - Nuevas Caracteristicas de los Formularios Web en HTML5
Nuevas Caracteristicas de los Formularios Web en HTML5
Las Nuevas propiedades en los Web Forms en HTML5. De las novedades que trae HTML5, nos centraremos en aquellos que están relacionadas con los Formularios Web. Ya se ha hablado de las etiquetas Header, Article, Aside, Section, .... Pero esta vez nos centraremos en los Formularios, y ofrecer la ayuda necesaria para validar y pintar los formularios como es debido.Ejemplos de nuevos tipos de INPUT
La etiqueta para Introducir datos en los formularios.<input type="number"> <input type="range"> <input type="date"> and other date/time controls <input type="color"> <input type="search"> <datalist> element and list attribute <input type="tel"> <input type="email"> <input type="url">Nuevas Formas de Representar Datos
<output> <progress> <meter>Propidades para las Validaciones
required type patternReferencias
Más información en dev.opera.com Y tambíen en JavierCasares en Parte 1 y Parte 2... - Round-Corners y Gradient CSS para Todos los Navegadores
Round-Corners y Gradient CSS para Todos los Navegadores
Bordes Redondos y fondo degradado en todos los navegadores. Con CSS3 aparecen nuevas propiedades como border-radius, text-shadow o box-shadow. El problema es que todos los navegadores No cumplen con CSS3, por eso el poder utilizar un estilo CSS de bordes redondos o fondos degradados que funcione en todos los navegadores es un poco más difícil.Bordes Redondos Con CSS
Poniendo las siguientes líneas funciona en todos los navegadores. Como siempre tenemos la Excepción del Internet Explorer, pero para eso los chicos de google nos proporcionan un código Javascript que redondea el "Elemento" en función de lo indicado en la propiedad "border-radius". Este código es un fichero llamado "border-radius.htc" que hay que copiar en la raiz de nuestra página web (o Theme de Wordpress). .box-rounded{ background-color:#CEE3F6; color:#0101DF; width: 300px; margin: auto; padding-left: 30px; -moz-border-radius: 20px; -webkit-border-radius: 20px; -khtml-border-radius: 20px; border-radius: 20px; behavior: url(border-radius.htc); } .box-gradient{ background:#CEE3F6; color:#0101DF; border: 1px solid navy; margin: auto; padding-left: 30px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#CEE3F6', endColorstr='#ffffff'); /* for IE */ background: -webkit-gradient(linear, left top, left bottom, from(#CEE3F6), to(#fff)); /* for webkit browsers */ background: -moz-linear-gradient(top, #CEE3F6, #fff); /* for firefox 3.6+ */ } .box-shadow-down{ -moz-box-shadow: 5px 5px 5px #888; -webkit-box-shadow: 5px 5px 5px #888; box-shadow: 5px 5px 5px #888; } .box-rounded{ background-color:#CEE3F6; width: 300px; margin: auto; padding-left: 30px; /*Para Redondear Bordes*/ -moz-border-radius: 20px; -webkit-border-radius: 20px; -khtml-border-radius: 20px; border-radius: 20px; behavior: url(border-radius.htc); } El código podemos descargarlo de code.google - curved-cornerFondo Degradado Con CSS
El Degradado también requiere de 3 líneas en el Estilo CSS, de esta forma se verá el fondo degradado en todos los Navegadores. Con Internet Explorer también se ve el degradado, aunque tenemos menos opciones de configuración. .box-gradient{ background:#CEE3F6; border: 1px solid navy; margin: auto; padding-left: 30px; /*Para Fondo degradado*/ /* for IE */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#CEE3F6', endColorstr='#ffffff'); /* for webkit browsers */ background: -webkit-gradient(linear, left top, left bottom, from(#CEE3F6), to(#fff)); /* for firefox 3.6+ */ background: -moz-linear-gradient(top, #CEE3F6, #fff); }Bordes Redondos y Fondo Degradado Con CSS
Si juntamos dentro de un estilo CSS las propiedades del Borde Redondo y lo del Fondo Degradado, podemos tener un "elemento" con Bordes Redondos y Fondos Degradados. Como siempre Internet Explorer es una Excepción y los dos estilos no conseguimos hacer que funcione. Aplicando las clases CSS box-gradient y box-rounded al mismo elemento tenemos Bordes Redondos y DegradadoDegradado Redondo Sombra y CSS
Ejemplo Anterior + Propiedad sombra del CSS3 ¡combinando estilos!Referencias
Más información sobre Redondear Bordes en Border Round Corner With CSS Más información sobre Degradados en CSS en Gradient CSS Cross Browsers Más información sobre Las Sombras del CSS3 en box-shadow, features CSS3... - Herramientas para Optimizar Imagenes Online en momentos de apuros
Herramientas para Optimizar Imagenes Online en momentos de apuros
Las imágenes en una página web son casi necesarias, pero su correcta optimización lo son aún mas. Una imagen que ocupe mucho puede repercutir negativamente en la carga de nuestro sitio web, por eso optimizarlas y reducirlas al tamaño deseado mejorará sensiblemente la velocidad de carga.Redimensionar
Redimensiona de forma "escalada" la imagen indicando el Width o Height deseado. De esta forma podemos redimensionar la imágen y no hacer que wordpress o el navegador hagan el trabajo. ResizerOptimizar
Optimiza la Imagen minimizando el número de colores a utilizar en la imagen. Por regla general, para las páginas web con tan sólo 256 colores podemos obtener casi los mismos resultados que con las imagenes que tiene "Miles de Colores". Incluso con 64 colores podemos ver prácticamente los mismos resultados reduciendo el peso de las imagenes. Optimizer Haced la pruebas y lo comprenderéis.Recomendación
Siempre que incluyamos una imágen en nuestra página es muy recomendable indicar el "width" y "height" de la imágen en la propia etiqueta. Por ejemplo
Al hacer escribir esto, evitamos que el Navegador tenga que calcular el Alto y Ancho de la imagen evitando gastae tiempo de procesado con este objetivo. Esta información la tenemos, así que es sólo cuestión de tener ganas ¿Tenéis ganas Normalmente?....<IMG src="images/name.png" width="200px" height="200px" /> - Menus Dinamicos en Vertical con CSS y Javascript
Menus Dinamicos en Vertical con CSS y Javascript
Pasos para saber como crear Menus Dinámicos en Vertical para los Proyectos Web. Sin pensarlo demasiado creía que sólo con CSS ya se podía hacer los menus en verticales. Cierto, pero no Menus tipo DropDown List, Menu tipo Lista Desplegable que se muestre u oculte en función del movimiento del ratón. Por lo que Necesitas Javascript, y después de buscar un poco de información encontré un artículo que Recopila Ejemplos de Menus Desplegables Navegables Multinivel (Ejemplos y Tutoriales de Drop Down Navigation Menus). Algunos utilizan código javascript personalizado y otros librerías tipo JQuery, Prototype, Mootools. Pero las funcionalidades básicas se pueden encontrar en el primer ejemplo de dynamicdrive, sencillo, funcional y encima nos podemos descargar el código fuente de ejemplo. También hemos encontrado un Plugin de Wordpress para generar Menus Navegables Multilevel Navigation Plugin (No lo he probado) Recomiendo utilizar primero un Ejemplo Sencillo que podamos modificar e intentar adaptarlo a nuestras necesidades, y después ya nos iremos complicando la vida. Pensad que es posible que a más complicación, más tiempo de carga. ¿Existe alguna forma de Crear Menus Dinámicos en Vertical sin usar Javascript?... - Como Saber la Version del IIS instalada
Como Saber la Version del IIS instalada
Para saber la versión del Internet Information Services instalada, lo común es ir a "Ayuda" - "Acerca de...", pero en algunas versiones es más difícil encontrarlo.Como Ver la Version del IIS (Internet Information Service)
Existen diferentes formas para saber la versión del IIS instalada Abrir el navegador y poner "http://localhost/iishelp", aparece la ayuda del IIS con la versión Ir al registro para saber la versión instalada "HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ W3SVC\ Parameters\ MajorVersion" También se comenta que desde "Programas - Accesorios - Herramientas del Sistema - Información del Sistema", dentro de Servicios el llamador "Servición de Publicación World Wide Web" con nombre "W3SVC". En mi caso no me ha servido Vía ForoselWebVersión IIS Desde Páginas ASP
También podemos saberlo por código (vía babelias)<%=System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + "\\inetsrv\\inetinfo.exe")%>
Mostrando una información tipo
...File: C:\WINDOWS\system32\inetsrv\inetinfo.exe InternalName: INETINFO.EXE OriginalFilename: INETINFO.EXE FileVersion: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) FileDescription: Internet Information Services Product: Internet Information Services ProductVersion: 5.1.2600.2180 Debug: False Patched: False PreRelease: False PrivateBuild: False SpecialBuild: False Language: English (United States)
- Como crear un Planeta de Blogs
Como crear un Planeta de Blogs
Crear un Planeta de Blogs Planet-Blog es una página que obtiene la información a través de otros blogs. Es contenido Duplicado evidentemente, pero para recopilar noticias puede ser una muy buena idea. Siempre me he preguntado como crear un Planeta de Blogs, así que me puse a buscar. Tomando como base el artículo Como crear Planeta de Blogs de dreig, vi que se podían reunir noticias de diferentes blogs de forma online. También me había preguntado como incorporar esta funcionalidad a un blog Wordpress, y este artículo también me lo respondió.Que Necesitamos
Antes de instalar los plugins para obtener la sindicación, tenemos que saber como vamos a obtener los Feeds. ¿De forma manual? o ¿queremos programar una tarea en el servidor que se dedique a obtener artículos automáticamente?. Para programar una tarea automática necesitamos tener permiso en el servidor para poder configurar tareas programadas, por ejemplo Cron-Jobs (Unix).Los Plugins
Os ofrezco dos opciones: FeedWordpress Wp-0-Matic De las dos opciones, que he instalado en Local para ver las opciones que me ofrece cada uno, prefiero el FeedWordpress, aunque el Wp-o-Matic tiene una opción muy buena de Reescribir palabras clave por otras (incluso links). Con FeedWordpress puedes utilizar custom fields posts, que será algo parecido.... - Agregar Atributos para acceder desde Javascript
Agregar Atributos para acceder desde Javascript
Agregar atributos a los controles para utilizarlos desde Javascript. Javascript es un lenguaje muy flexible, en ocasiones limitado por seguridad ya que se ejecuta en el ordenador del cliente, pero a su vez es muy flexible. La idea es poder agregar a todos los controles que componen una página web (labels, textbox, inputs, ...) un atributo personalizado. El Ejemplo que veremos a continuación esta orientado a las páginas Web Asp.Net.Primero Crear el Atributo Customizable
Lo más normal sería llamarlo desde el Evento Page_Load, pero sólo cuando "!IsPostBack", de esta forma no resetearemos el valor cada vez que recarguemos la página. Y este atributo nos puede servir para guardar alguna información personalizada.protected void AgregarAtributoMyId(ControlCollection controls) { foreach (Control ctrl in controls) { if (ctrl is WebControl) ((WebControl)ctrl).Attributes.Add("myId", ctrl.ID); } }Recuperar el Valor del Atributo desde Javascript
Ahora necesitamos obtener el valor, y para eso necesitamos saber el ClientID del Control en Cuestión.var ctrl = document.getElementById(txtControlClientID); aux = ctrl.attributes.item('myId').value+'='+ctrl.value;Conclusión
Realmente no se las posibilidades que tiene, vamos a ser sinceros. Pero cuando lo descubrí lo vi interesante y por eso me lo apunte para escribirlo y así tenerlo presente en el momento que me haga falta. Si llega el Día. Una manera de Almacenar Valores en Atributos Personalizables y Recuperarlos desde Javascript.... - Alternativa al Adsense Asincrono, para mejorar la velocidad
Alternativa al Adsense Asincrono, para mejorar la velocidad
Como cargar Adsense Asíncrono no es posible, por mucho que lo intentes y consigas cargar el Script Adsense asíncronamente, no te funcionará. Una de las especifícaciones que veo en Google Support es que no se permite la carga asícrona del Adsense.Very Best method for Load Adsense
Una de las mejoras para cargar Adsense más rápido, aunque sea para la percepción del usuario, es Situar todos los Scripts al final de la página (footer.php) siguiendo las indicaciones de semplicewebsites. Las bases son situar el código de Adsense en la parte inferior de la página, después mediante el método .onload de la página, situar el código adsense dentro del bloque DIV que nos interesa. Algo parecido al siguiente código.
Lo que no entiendo es porque Google ya nos optimiza el código de Analytics para que se cargue asíncronamente y el de Adsense todavía no, espero que en breve tengamos noticias al respecto<html> ... <body> <!-- ... Header, Menu, Content, --> <!-- Article --> <div id="ad1_inline"></div> <!-- Article End --> <!-- ... Footer --> <!-- Adsense Code Abajo del Todo --> <div id="ad1_footer" style="display: none;"> <script type="text/javascript"><!-- <em>Google ad params</em> //--></script> <script type="text/javascript" src="...show_ads.js"></script> </div> <script type="text/javascript"> window.onload = function() { document.getElementById('ad1_inline').appendChild(document.getElementById('ad1_footer')); document.getElementById('ad1_footer').style.display = ''; } </script> </body> </html>Cargar Asíncronamente Javascript
Para mejorar aún más el código de optimización de carga de nuestros javascript, ya sean internos o externos, podemos seguir las pautas de anieto2k. Fichero javascript lo más reducido posible La idea es utilizar un fichero .js que contenga una función de carga asíncrona de ficheros javascript, y otro fichero javascript con el resto de nuestro código. Creamos un fichero llamado min.js, el cual contendrá el método loadScript. Recibirá la url donde se encuentre el fichero javascript que queremos cargar asíncronamente, y un método de Callback, el cual nos servirá de inicialización si fuera necesario.
Para utilizarlo seríafunction loadScript(url, callback){ var script = document.createElement("script") script.type = "text/javascript"; if (script.readyState){ //IE script.onreadystatechange = function(){ if (script.readyState == "loaded" || script.readyState == "complete"){ script.onreadystatechange = null; callback(); } }; } else { //Others script.onload = function(){ callback(); }; } script.src = url; document.getElementsByTagName("head")[0].appendChild(script); }
Si aplicamos esta técnica con el código de Adsense, no nos funcionará (ya lo he intentado y no aparece ningún anuncio). Pero si es cierto que si juntamos las dos optimizaciones minimizaremos el impacto de carga que tenga el Javascript en nuestra página web....<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/min.js"></script> <script type="text/javascript"> loadScript("<?php bloginfo('template_url'); ?>/js/utils.js", function(){ }); </script> - Auto Eventos del PostBack en Paginas aspx
Auto Eventos del PostBack en Paginas aspx
Configurar que la página o controles específicos realicen un PostBack automático, es decir, cuando queremos relacionar que los eventos de la página o de los controles produzca una devolución de datos desde el Servidor. Por eso, ado que el entorno de Microsoft te ofrece una gran facilidad para programar páginas web, es normal que casi sin darnos cuenta, nos encontramos con que la página ya pose una propiedad llamada AutoEventWireup, lo que hace es definir si queremos que los eventos de la página se gestionen automáticamente desde el Servidor o no. Pero más profundamente, podemos configurar la propiedad AutoPostBack en controles como un CheckBox o un TextBox, de esta manera podemos hacer que los eventos típicos de estos controles se ejectuten en el servidor. Aunque hay que reflexionar si realmente lo necesitamos o si es debido a que de esta manera es más fácil para desarrollar. Tenemos que preguntarnos ¿Puedo hacerlo con Javascript? Esta propiedad nos viene bien, por ejemplo, cuando tenemos un GridView con CheckBoxes, es probable que cuando configuremos el evento Click o CheckChanged del CheckBox no pase nada, para eso tenemos que configurar la propiedad AutoPostBack=True para solucionar el problema. Vía GeeksWithBlogs Más información en Propiedad AutoEventWireUp de la Página y los AutoPostBack de un TextBox o un CheckBox.... - Como aplicar estilos CSS o Themes a paginas o Skins a controles en asp.net
Como aplicar estilos CSS o Themes a paginas o Skins a controles en asp.net
Aplicar estilos "Themes" al proyecto, páginas y controles individualmente en ASP.Net. En ocasiones nos encontramos con que las cosas más sencillas son a las que no les prestamos atención. El entorno de Microsoft te incluye varias líneas de código a tus proyectos web, y si tenemos bien definidos los estilos también te incluye el código necesario para incluir el CSS. Los Temas de Estilos en un proyecto web ASP.NET se situan en una carpeta llamada "App_Themes", y dentro creamos todos los temas que queramos. La estructura del proyecto asp.net será parecido a ...Configurar el Proyecto Entero
Para configurar que theme queremos utilizar, sólo tenemos que modificar el web.config del proyecto web.
Si el Theme que creamos se llama "Default", no hace falta que incluyamos el código necesario porque aplica ese Theme por defecto<configuration> <system.web> <pages theme="ThemeName" /> </system.web> </configuration>Aplicar un estilo concreto a una Página
Para aplicar estilos concretos a una página determinada, tenemos que utilizar las siguientes directivas en el fichero .aspx
Si queremos saber más sobre las directivas de las páginas .aspx, tenemos más información en la MSDN Page Attibutes.<%@ Page Theme="ThemeName" %> <%@ Page StyleSheetTheme="ThemeName" %>Aplicar estilo a un WebControl
Podemos aplicar estilos específicos a nuestros WebControls utilizando Skins. Cuando utilizamos los controles asp, podemos configurarlos y aplicarles estilos personalizados y definir la funcionalidad que deseamos. Esta tarea probablemente la repitamos para que todos los controles del mismo tipo tengan el mismo aspecto y configuración. Los Skins lo que hacen es definir una configuración, estilo y comportamiento para un tipo de control, el cual podemos aplicarlo en donde queramos. Los Skins forman parte del Theme, por lo que se aplican directamente por defecto. Dentro del theme "botón Derecho" - "Add New Item" - "Skin File". Creamos el Skin y definimos el estilo de los controles que vamos a utilizar. Por Ejemplo (dentro del fichero .skin)
Y en la página que aplique este Theme, todos los botones tendrán un aspecto como este Pero si lo que queremos es personalizar un Control, tenemos que identificar el estilo del Control con el SkinID<asp:button runat="server" BackColor="lightblue" BorderColor="AliceBlue" Font-Bold ="true" ForeColor="black"/>
y para utilizarlo definimos que tipo de Skin queremos<asp:button runat="server" SkinID="mySkin" BackColor="Brown" BorderColor="AntiqueWhite" Font-Bold ="true" ForeColor="black"/><asp:Button ID="btnMySkinButton" runat="server" SkinID="mySkin" />Referencias
La base del artículo esta en Como Aplicar Themes de la MSDN.... - Como conseguir busquedas voy a tener suerte en Wordpress
Como conseguir busquedas voy a tener suerte en Wordpress
Búsquedas en un Blog Wordpress personalizas con voy a tener suerte. El Objetivo es que si el resultado es de un sólo artículo, redirija directamente al único artículo encontrado, Pero si el resultado es de más de un artículo nos muestre todo el listado. Es similar a la técnica "I'm Feeling" o "Voy a Tener Suerte" de Google, pero un poco más ajustado a nuestras necesidades. Para conseguirlo no es necesario ningún plugin, ya que el cambio a realizar en nuestro Theme de Wordpress es muy sencillo.Pasos a Seguir
Hacer una copia del archivo llamado "header.php" Modificar el fichero y poner arriba del todo el siguiente código
Este código hace lo siguiente: Si es un resultado de búsqueda y tiene artículos, y sólo tiene 1 artículo, entonces recuperamos el artículo y redirigimos al mismo. Probar si funciona, sino resturar la copia del Header.php Si por casualidad queremos que se comporte siempre como el Voy a Tener suerte de Google, y redirija siempre al primer artículo, independientemente de si el resultado es de 1 o más artículos. Tenemos que eliminar la línea de código<?php if ((is_search()) && (have_posts())) { if (count($posts)==1) { the_post(); $mypermalink = get_permalink(get_the_ID()); header( "Location: $mypermalink"); } } ?>
Esperamos ser de ayuda....if (count($posts)==1) - Llamadas al servidor desde el cliente con DoCallBack y DoPostBack ASP.NET
Llamadas al servidor desde el cliente con DoCallBack y DoPostBack ASP.NET
Microsoft incluye por defecto librerías Javascript para poder realizar DoPostBack y DoCallback. Llamadas a métodos del Servidor desde el lado Cliente. Esta posibilidad es interesante, y en ocasiones es realmente útil, aunque hay que tener bien controlado el repintado de pantalla sino queremos volvernos locos. Por definición el DoPostBack es síncrono y el CallBack es asíncrono, aunque es configurable. De ambas manera podemos llamar a métodos de la parte Servidor desde Javascript.Ejemplo DoCallBack
DoCallBack utiliza la tecnología Ajax para llamar al Servidor y retorna el flujo del proceso a un método CallBack de Javascript. Para conseguirlo debemos implementar la Interface ICallbackEventHandler
Código necesario de la Interfazpublic partial class mipage : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
El código que realiza la llamada doCallBack desde Javascript es#region ICallbackEventHandler private string respuestaCallBack = string.Empty; void ICallbackEventHandler.RaiseCallbackEvent(string eventArg) { respuestaCallBack = "Es posible "+eventArg; } String ICallbackEventHandler.GetCallbackResult() { return respuestaCallBack; } #endregion
Aunque podemos utilizar el método Page.ClientScript.GetCallbackEventReference(this,...) para generar el código javascript y almacenarlo en alguna variable o atributo de nuestra página. Nosotros nos guardamos en una variable el Control que implementa la Interfaz para llamarlo desde Javascript, aunque se puede hacer más directo.WebForm_DoCallback(controlImplementInterfaz,datosenvio,funcionJScallback,idllamada,funcionJSerror, esAsincrono);
Ejemplo del Código Javascript//Llamamos al siguiente método desde el PageLoad protected void RegisterScriptVariables() { System.Text.StringBuilder sbJS = new System.Text.StringBuilder(); sbJS.Append("var controlImplementInterfaz = '" + this.UniqueID + "';"); // registrar en la página el código JavaScript Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"ScriptVariablesJS", sbJS.ToString(), true); }function CallServer() { WebForm_DoCallback(controlImplementInterfaz, datosenvio, CallServerCallBack, null, null, false); } function CallServerCallBack(result, idLlamada) { alert(result); }Referencias de Ayuda Callbacks
oscarsotorrio.com, ejemplo 1 en castellano. dotnetslackers.com, ejemplo 2 en ingles. edndoc.esri.com, ejemplo 3 en ingles. Los tres ejemplos son complementarios entre sí.Ejemplo DoPostBack
Últimamente el DoPostBack se genera automáticamente por regla general al pulsar cualquier botón o evento en la página, donde el control tenga puesto el "runat=server". Pero podemos utilizar un truco con esta tecnología para llamar a métodos concretos. Aunque no es muy recomendable porque existen otras opciones que con un poco más de tiempo les sacaremos más rentabilidad y a la larga nos vendrá mejor. Los parámetros son: eventTarget: Control que provocará el evento eventArgument: Los parámetros que se desean mandar Para controlar los eventos de las páginas, Microsoft añade dos cajas de texto por cada página ASP.NET que tengamos.
Después cuando realizamos el envío del formulario al servidor, utiliza estos campos para enviar la información del objeto y los parámetros.<input type="hidden" name="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" value="" />
Sabiendo esto podemos generar un código en momentos de "crisis" para llamar al método que queramos.function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } }
Referencia en ForosDelWeb....//Javascript function CallServerMethod() { __doPostBack('OpcionA',''); } //Código Servidor protected void Page_Load(object sender, EventArgs e) { if (Request.Params["__EVENTTARGET"] == "OpcionA") ServerMethod(); else //ServerMethodWithParameters(Request.Params["__EVENTARGUMENT"]); if (!Page.IsPostBack) { //... } } protected void ServerMethod() { //Ponemos el código que necesitamos en el lado Servidor } - Las Claves del ModalPopupExtender ASP.NET
Las Claves del ModalPopupExtender ASP.NET
Cosas a tener en cuenta cuando creamos un Modal Popup Extender de las librerias Ajax Control Kit. En ocasiones nos decidimos a mostrar información tipo "PopUp" pero sin que sea directamente un PopUp. El Control ModalPopupExtender nos ayudará para mostrar información tipo PopUp y desactivar el resto de la pantalla. (Que los usuarios tiene el ratón muy suelto).
Este Código hay que completarlo con código Javascript para terminar de cuadrar nuestro Panel Modal.<asp:Button ID="btnModal" runat="server" Text="Consultar 1" CausesValidation="False" OnClientClick="javascript:showmpe();"/> <ajaxToolkit:ModalPopupExtender runat="server" ID="mpeSelec" BehaviorID="mpeSelec" TargetControlID="btnModal" PopupControlID="pnlModal" BackgroundCssClass="modalBackground" OkControlID="btnAceptarModal" OnOkScript="Aceptar()" CancelControlID="btnCancelarModal" OnCancelScript="Cancelar()"> </ajaxToolkit:ModalPopupExtender> <asp:Panel ID="pnlModal" runat="server" style="margin:auto; text-align:center;" Width="400px" class="panel1" BackColor="white" Height="400px"> <!--Aqui el Código que queremos tipo PopUp--> <asp:Panel ID="pnlInfo" runat="server" ScrollBars="Vertical" Height="80%"> <!--Más Código--> </asp:Panel> <div style="text-align: center; margin:auto;"> <asp:Button id="btnAceptarModal" runat="server" Text="Aceptar" CssClass="boton" CausesValidation="False" ></asp:Button> <asp:Button id="btnCancelarModal" runat="server" Text="Cancelar" CssClass="boton" CausesValidation="False" ></asp:Button> </div> </asp:Panel> </asp:Panel>
Este Ejemplo consta de: Un Botón para provocar el evento y mostrar el Panel tipo Modal. La configuración del Control ModalPopupExtender Un Panel que utilizaremos para mostrar la información tipo PopUp en modo Modal Código Javascript para establecer el comportamiento y pasar informaciónfunction showmpe() { var modal=$find('mpeSelec'); if (modal!=null) { modal.show(); } } function Aceptar() { alert('Ok'); } function Cancelar() { alert('Cancel'); }A tener en Cuenta
El ModalPopupExtender se cerrará siempre y cuando se produzca un PostBack. Esta restricción es la clave para controlar correctamente la información que mostramos, ya que si no veremos una especie de parpadeo, o que el PopUp se abre y se cierra sin ningún tipo de control.Posibles Problemas
Aparece y desaparece: escribir style="display:none;" en el Control que identifica la propiedad "PopupControlID" del ModalPopupExtender. Como Recuperar información del Servidor cuando estamos en el lado Cliente. Existen algunas técnicas para realizar llamadas al Servidor sin provocar un PostBack. Webservices, Ajax o utilizando CallBacks, todo requiere de un esfuerzo, así que primero valorar si realmente hace falta. (más adelante explicaremos los "dopostback" y los "docallbacks")Referencias y ayudas
asp.net Ayuda de Referencia sobre las opciones disponibles geeks, excelente ejemplo de como montar el ModalPopupExtender. elrincon de aspnet y ajax ejemplo que incluye el uso de un WebServices.... - Buenas practicas Javascript y Php
Buenas practicas Javascript y Php
Recomendaciones de desarrollo en buenas prácticas de Javascript y Php. Hace ya algún tiempo escribí unas Buenas Prácticas en Php para Principiantes (como yo), ya que el lenguaje que utilizo normalmente no es este. Hace poco gracias a SentidoWeb, encuentro las buenas prácticas de desarrollo Javascript por parte de Google, que siempre te las tienes que tomar como recomendación y aceptarlas bajo tu propio criterio. Sobre todo, el artículo tiene como objetivo tener apuntado los enlaces a las buenas prácticas de Javascript, que aunque sean de Google son muy completas con ejemplos y con el "deberías y no deberías hacer" de cada cosa. De esta manera encuentro las cosas más fácilmente. Y de paso ya hago referencia al artículo que escribí en su día sobre las buenas prácticas de Php.... - No puede cargar Assembly microsoft.office.interop.word
No puede cargar Assembly microsoft.office.interop.word
Problemas con el Assembly microsoft.office.interop.word en un proyecto web asp.net. Si cuando estamos preparando una aplicación web en un servidor IIS nos aparece un error indicando que no puede cargar o no encuentra la librería, lo más problable es porque no esté instalada. Aunque tengamos el Office instalado, puede que la versión que se encuentra en el servidor no tenga las librerias de interoperabilidad del Offices. Las librerías de interoperabilidad del Office, son componentes COM que nos ayudarán a manejar los ficheros Word, Excel desde nuestras aplicaciones .NET. (en teoría desde otros lenguajes también, puesto que son componentes COM).Solución
Descargar O2003PIA Redistributable Primary Interoperability Assemblies e instalarlas en el Servidor.... - Ha intentado ejecutar un programa CGI, ISAPI u otro programa ejecutable desde un directorio que no permite ejecutar programas
Ha intentado ejecutar un programa CGI, ISAPI u otro programa ejecutable desde un directorio que no permite ejecutar programas
Configurar un Sitio Web (Site Web) .Net en un Servidor IIS. Aunque mi conocimiento en sistemas sea escaso, las pocas veces que he podido pelearme al crear o configurar un sitio web con el Internet Information Services, siempre he estado dando vueltas por las mismas opciones de las Propiedades del Sitio Web Configuración del Usuario, Pestaña "Seguridad de Directorios" - "Atenticación y Control de Acceso": Verificar el Usuario configurado por defecto y revisar si permitimos el "Acceso Anónicmo" Ficheros de inicio, Pestaña "Documentos", verificar que esta agregada la página de inicio. Version Framework .Net, Pestaña "ASP.NET", indicar que versión del Framework queremos que utilice nuestra aplicación web Permisos de Ejecución, Pestaña "Directorio Particular", incidar a la apliación que permite la ejecución de comandos. Cuando estamos configurando una aplicación web .net y nos aparece el error Ha intentado ejecutar un programa CGI, ISAPI u otro programa ejecutable desde un directorio que no permite ejecutar programas el motivo principal es por los permisos de ejecución de la aplicación.Tipos de Permisos de Ejecución
Prestamos atención a las opciones que tenemos a la hora de Administrar la aplicación en el IIS Ninguno, por defecto, para impedir la ejecución de todos los programas o secuencias de comandos Solo secuencias de comandos, para permitir que la aplicación pueda ejecutar código "script" en el directorio. (ActiveX, VBScript, ¿asp.net?) Sec. comandos y ejecutables, para permitir ejecuciones en el motor de secuencia de comandos y ejecutables (.exe, .dll)... - Utilizar la API Ajax de Google para Las Busquedas Relacionadas
Utilizar la API Ajax de Google para Las Busquedas Relacionadas
Utilizar API Ajax Google Search Engine Javascript para ofrecer información, vídeos y artículos relacionados a las búsquedas de los usuarios. El usuario busca en el buscador y la página lo que hace es mostrar artículos y vídeos relacionados en función de las palabras que escribió el usuario en el buscador. Es interesante y útil para el usuario, y se consigue con un pequeño código Javascript que utiliza la API de Google para las Búsquedas (Search Engine).API Google Ajax Javascript
La documentación necesaria esta en Code.Google. Es completa y fácil de seguir para utilizarlo sin muchas complicaciones. Actualmente podemos verlo desarrollado en komoloves. Imaginar que un usuario busca "Configurar Torrent" en un buscador, y accede a un artículo nuestro, ¿No sería interesante mostrar al usuario resultados relacionados a esas palabras?. Podemos mostrar al usuario los artículos relacionados a "Configurar Torrent" que poseemos en el blog, además podemos complementar esos artículos con vídeos relacionados a lo que el usuario esta buscando. Todo esto podemos hacerlo utilizando la API de Google para búsquedas.Conseguir las búsquedas Relacionadas
Para mostrar el resultado correcto, lo primero que tenemos que hacer es obtener las palabras que ha utilizado el cliente en el Buscador. Una vez conseguido, ya podemos utilizar esa información para mostrarle información relevante al usuario. El código lo vamos a estructura en 3 partes, Carga, Desarrollo y Presentación (Mas o Menos). En el head de nuestra página, obtenemos las palabras utilizadas por el usuario e inicializamos la librería de Google tal y como nos indican en la API de Búsquedas, siempre y cuando haga falta.
El método en Javascript OnLoadSearchRelated crear y configura las búsquedas que queremos mostrar al usuario con información relevante. Necesita las palabras clave y un domino para restringir los resultados a un dominio concreto.<?php $keysreferrer = getKeywords(); if($keysreferrer!='') { ?> <script src="http://www.google.com/jsapi?key=ABCDF" type="text/javascript"> </script> <script language="Javascript" type="text/javascript"> //<![CDATA[ google.load("search", "1", {"language" : "es"}); function OnLoad() { var keys = ''; var domain = 'komoloves.com'; keys = "<?php echo $keysreferrer; ?>"; OnLoadSearchRelated(domain, keys); } google.setOnLoadCallback(OnLoad); //]]> </script> <?php } ?>
Por último un lugar donde queremos ubicar los resultados, en el caso de komoloves, en el sidebar.function OnLoadSearchRelated(domain, keywords) { // Create a search control var searchControl = new google.search.SearchControl(); var options = new google.search.SearcherOptions(); options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); var siteKomoloves = new google.search.WebSearch(); siteKomoloves.setUserDefinedLabel(domain); siteKomoloves.setUserDefinedClassSuffix("site"+domain); siteKomoloves.setSiteRestriction(domain); searchControl.addSearcher(siteKomoloves, options); var siteYoutube = new google.search.VideoSearch(); siteYoutube.setUserDefinedLabel("Videos"); siteYoutube.setUserDefinedClassSuffix("siteYoutube"); searchControl.addSearcher(siteYoutube, options); searchControl.draw(document.getElementById("searchcontrol")); searchControl.setResultSetSize(google.search.Search.SMALL_RESULTSET); // Execute an inital search searchControl.execute(keywords); }
Espero que os sea de ayuda....<?php $showdiv = getKeywords(); if($showdiv!=''){ ?> <div class="box-sidebar-380"> <div id="searchcontrol">Loading...</div> </div> <?php } ?> - Plugins de Desarrollo Web para Varios Navegadores
Plugins de Desarrollo Web para Varios Navegadores
Herramientas de Navegador para el desarrollo web. Siempre es útil tener uno de estas herramientas para poder debugar nuestras aplicaciones web. Visualizar el CSS, la estructura de la página, o lo más importante, debugar el Javascript de la página.Internet Explorer
IE Developer Toolbar, para Investigar y modificar la estructura y elementos de la página, así como el CSS aplicado. Download Script Debugger, para debugar el Javascript. Aunque es un poco complicado, puede que en algún momento específico lo utilicemos.
Download y Ayuda Si utilizas Visual Studio, puedes Debuggar el Javascript sin problemas siempre que el código se encuentre en un .js y no esté incrustado en la misma Página.Para habilitar el Debug en el Navegador Tools - Internet Options - Pestaña "Advanced" desmarcar "Disable Script Debugging" <em>(Las dos opciones existentes)</em> Para Abrirlo y Utilizarlo View - Script Debugger - OpenFirefox
Firebug, para la estructura web, los CSS, debugar el Javascript y mucho más. addons Web Developer, Una buena herramienta para el Desarrollo web, fácil e intuitiva de utilizar, y mientras más la utilicemos más nos gustará. addonsChrome
Web Developer Chrome, herramienta para el desarrollo web, css, imágenes, validaciones. Equivale al Web Developer de Firefox. Plugin Dual View, una curiosa herramienta que te divide el Navegador en dos, pudiendo navegar por dos páginas a la vez. PluginConclusión
Cada vez se hace más dificil por la gran cantidad de navegadores, como siempre lo que funciona en uno no funciona en otro. Por eso siempre viene bien este listado de herramientas para Navegadores que nos ayudan en nuestros desarrollos web.... - Acortar las URL con la Api de Bit.ly para PHP
Acortar las URL con la Api de Bit.ly para PHP
Documentación y explicación de como utilizar la Librería Bit.Ly. Hace días vimos como crear métodos para enviar nuestros artículos a twitter o facebook, pero también nos dimos cuenta que se podía mejorar si utilizábamos la Api de Bit.ly.Recursos
Registro en Bit.ly Descargar Librería Bit.Ly Documentación Bit.lyEjemplo de Uso
Para poder utilizar la librería es necesario registrarse, una vez echo esto podemos crear una función para construir la clase y así poder utilizarla sin tener que recordar el login y la contraseña.
Para utilizarlo esfunction CreateBitly() { include_once("bitly.php"); return new Bitly("yourlogin","yourapikey"); }
De esta manera podemos acortar las url en Php, pero si seguimos investigando podemos llegar a utilizar la funcionalidad Bit.ly en Javascript (en la documentación encontraréis lo necesario para utilizar Bit.Ly en Javascript)...function myfunction($title, $url) { $bitly = CreateBitly(); $urlbit = $bitly->shorten($url); //utilizar $urlbit como queramos ... - Crear metodos para enviar a Twitter y a Facebook desde Wordpress (I)
Crear metodos para enviar a Twitter y a Facebook desde Wordpress (I)
Métodos para enviar a Twitter o a Facebook un artículo escrito en Wordpress. La idea es formar una url tal y como la espera Twitter o tal y como la espera Facebook, de momento esta en funcionamiento en Komoloves. Para conseguirlo crearemos dos métodos en el fichero functions.php que nos devuelva la ruta específica, para ello pasamos por parámetro el Título y la Ruta del Artículo del mismo.
Para utilizarlo sólo tenemos que llamarlo de la siguiente manera.function GetTwitter($title, $url) { $link = 'http://www.twitter.com/home?status=RT+@komoloves+'.str_replace(' ','+',$title).'+'.str_replace(' ','+',$url); echo $link; } function GetFacebook($title, $url) { $link = 'http://www.facebook.com/share.php?u='.str_replace(' ','+',$url).'&t='.str_replace(' ','+',$title); echo $link; }
De momento esta es una primera aproximación, ya que se debería mejorar juntando estas funciones con la librería Bitly en PHP, ya que Twitter sólo acepta 140 caracteres. Actualización: Este método es Lento, ya que repercute en la carga de la Página. De momento no se el motivo, pero si he reconocido el problema. Esperemos estar al corriente....<div class="social"> <a href="<?php GetTwitter(the_title('','',false), get_permalink(get_the_ID())); ?>" target="blank" title="send to twitter" rel="nofollow"><img src="<?php bloginfo('stylesheet_directory');?>/images/twitter.png" title="twitter send" alt="Enviar a Twitter" width="165px" height="30px" ></a> <a href="<?php GetFacebook(the_title('','',false), get_permalink(get_the_ID())); ?>" target="blank" title="send to facebook" rel="nofollow"><img src="<?php bloginfo('stylesheet_directory');?>/images/facebook.png" title="facebook send" alt="Enviar a Facebook" width="165px" height="30px" ></a> </div> - 7 Cosas que nos recomiendan para mejorar en el SEO
7 Cosas que nos recomiendan para mejorar en el SEO
Cuestiones a tener en cuenta para mejorar en el posicionamiento web. Hacernos comprender correctamente a los motores de búsqueda es fundamental para que nos premien y nos den una buena posición en las búsquedas. Para ello no viene de más tener en cuenta una buenas recomendaciones. Títulos descriptivos y descripciones tipo resumen acordes al contenido (Nunca Dupliques) Urls con palabras y una estructura de directorios simple Usa un Archivo Sitemap XML para los motores de búsqueda y una ruta de navegación "breadcrumb links" para los usuarios, tipo "Home - Categoria1 - SubCategoria2". Restringir al Robots.txt adecuadamente de todas aquellas páginas repetitivas, o definir mediante la metaetiqueta de la cabecera "robots" con noindex, follow o nofollow Personalizar la página para el error 404 Not Found útil y que no se indexe Textos clarosy un uso del sentido común para las palabras claves Descripciones acordes en los textos Ancla de los enlaces. La mejor recomendación para una correcta optimización y así comenzar por algún sitio, es evitar a toda costa la duplicidad de los textos, en los títulos y las descripciones. Pero una de las mejores prácticas para seguir aprendiendo sobre el tema SEO es suscribirse al Blog de Google para Webmasters... - 9 Cosas que Debemos evitar para ganar puntos SEO
9 Cosas que Debemos evitar para ganar puntos SEO
Cuestiones que tenemos que evitar para una correcta optimización web y un buen posicionamiento en los motores de búsqueda. Títulos repetidos en varias páginas o con nombres genéricos. Tampoco se recomienda que sean muy largos, ni con muchas palabras claves y mucho menos que no estén relacionados con la página Descripciones duplicadas o genéricas, que no tengan nada que ver con la página o que sólo conste de palabras clave URL largas e indescifrables, con varios parámetros o con textos repetitivos. Que varias URL apunten al mismo contenido, vigilar el acceso mediante www o sin él. Una navegación excesivamente complicada para el Usuario o que desde todas las páginas puedas ir a todos los sitios. Tampoco se recomienda el uso de imágenes o animaciones para la barra de navegación (menus) Mala Ortografía, descuidada y que el usuario no entienda. También hay que estructurarlo adecuadamente mediante las metaetiquetas de cabecera siempre que haga falta Texto Ancla de los enlaces genéricos como aquí, este link,... Nombres de imágenes genéricas que no describen su contenido, o nombres muy largos. Tampoco nos ayuda sin en la propiedad "Alt" ponemos muchas palabras clave o descripciones muy largas. Uso de imágenes para indicar texto. Los robots no pueden leer el contenido de la imagen, se centran en su propiedad Alt, les es más fácil y sencillo leer Texto plano, por eso es normal que se premie Que los robots de los motores de búsqueda puedan acceder a todos los lugares de tu página. Permitir que obtengan muchas páginas similares sin valor añadido Una de las frases que escuche en una conferencia fueTodo lo que hagamos que le de más trabajo a los robots de los motores de búsqueda ¡Malo!
Por lo que deducimos que la sencillez y simplicidad es un premio para los desarrolladores del que se beneficia el usuario.... - SEO para principiantes orientado a Motores de Busqueda
SEO para principiantes orientado a Motores de Busqueda
Basado en el Informe de Google Guía de Optimización para Motores de Búsqueda especialmente escrito para Principiantes, del cual vamos a sacar los puntos claves en el SEO, y después todo aquello que tenemos que evitar hacer y que nos recomiendan.Puntos Clave
Crear títulos únicos y precisos para cada página Utilizar descripciones mediante la etiqueta meta description únicas URL claras y descriptivas Una buena Navegación orientada al Usuario Crear contenidos originales Utilizar las etiquetas de Cabecera <h1>,<h2>,... bien estructuradas Los enlaces mediante un texto Ancla descriptivo Optimizar el uso de Imágenes y no olvidarse de la propiedad "Alt" Definir un Robots.txt acorde a nuestras necesidades Preguntarse si podemos poner la propiedad "nofollow" a los enlaces Todos estos puntos clave, son apreciaciones que deberíamos ir profundizando uno a uno, y para ello es cuestión de leer y tener paciencia.Conclusión
De momento ya tenemos trabajo, porque la duplicidad del contenido es uno de los temas más penalizados por los motores de búsqueda y uno de los más difíciles de conseguir. Este pequeño resumen pretender ser una guía SEO para principiantes (donde me incluyo) y así poder ir optimizando nuestras páginas webs....