Wordpress: eliminar el menú

Sábado, 1 de noviembre de 2008

Puede ser útil, a veces, de "ocultar" algunos de los menú de Wordpress, sobre todo si usted desarrolló un sitio web / blog para un cliente y no quieren permitir el acceso a las características sensibles. Existe ya Plugin desempeño de esta función, pero para tener un personal y un control completo, vemos en detalle cómo esta característica.
Como siempre aprovechar la utilidad de acción puestos a disposición por Wordpress, en este caso admin_menu A través de la variable global $menu puede acceder a la lista del menú. Podemos encontrar el menú para "eliminar" de dos maneras: a través de la etiqueta o a través del enlace al que apunta (véase el comentado acciones en el ejemplo a continuación). La propuesta es "oculta" los elementos de menú de diseño, configuración y plugins:

PHP:
  1. remove_menu_item función () (
  2. ; $ mundial menú;
  3. / / Por la etiqueta
  4. ( 'Design' , 'Impostazioni' , 'Plugins' ) ; $ Elimina = array ( 'Diseño', 'Configuración', 'Plugins');
  5. / / A través de los enlaces
  6. / / $ Elimina = array ( 'themes.php', 'opciones-general.php', 'plugins.php');
  7. $removes as $todel ) foreach ($ elimina como $ todel)
  8. $menu as $key => $sm ) if ( $sm [ 0 ] == $todel ) { unset ( $menu [ $key ] ) ; break ; } foreach ($ menú como $ key => $ SM) if ($ SM [0] == $ todel) (unset ($ menú [$ key]); break;)
  9. / / A través de los enlaces
  10. / / Foreach ($ menú como $ key => $ SM) if ($ SM [2] == $ todel) (unset ($ menú [$ key]); break;)
  11. )
  12. / /
  13. , 'remove_menu_item' ) ; add_action ( 'admin_menu', 'remove_menu_item');

Uso de los vínculos como clave para la eliminación $sm[2] en algunas partes de código comentado sorpresa aquí), es útil cuando existe la certeza de la lengua - ubicación - con la que ha instalado Wordpress. Con esta técnica, sin embargo, el menú se elimina sólo en la interfaz, así que aún puedes acceder a la página a través de un vínculo directo.

Post relacionados

Wordpress: escribir un personal logout

Lunes, 27 de octubre de 2008

A partir de post Wordpress: paso a paso cómo crear un inicio de sesión, realizado el procedimiento de conexión podría ser útil para indicar en nuestro blog un enlace a la desconexión, o cerrar la sesión. No vamos a utilizar de nuevo los procedimientos estándar de Wordpress, pero veremos la manera de salir bajo nivel. En primer lugar debemos entender si un usuario se registra o no. Esto es posible simplemente consultar $user_ID variable $ $user_ID de Wordpress. Por ejemplo:

PHP:
  1. $user_ID != '' ) { // oppure if( is_user_logged_in() ) { if ($ user_ID!''=) (/ / o si (is_user_logged_in ()) (
  2. / / El usuario es "conectado" ...
  3. )

Una vez que sabemos que un usuario se registra en el sistema, podemos insertar un simple enlace a nuestra página logout. Luego creamos una página, por ejemplo logout.php e insertar el siguiente código:

PHP:
  1. / **
  2. * Realiza logout
  3. *
  4. * @ Autor Giovambattista Fazioli
  5. * Email @ @ g.fazioli undolog.com
  6. * @ Web http://www.undolog.com
  7. * /
  8. / / Invocar WordPress bootstrap
  9. 'wp-config.php' ) ; @ Require_once ( 'wp-config.php');
  10. 'wp-includes/pluggable.php' ) ; @ Require_once ( 'wp-includes/pluggable.php');
  11. / / Wp logout
  12. wp_logout ();
  13. / / Carga otra página
  14. "Location: /" ) ; cabecera ( "Location: /");

Y sólo entonces "enlace" a nuestra página para ofrecer una sesión procedimientos:

PHP:
  1. $user_ID != '' ) { if ($ user_ID!''=) (
  2. ; echo 'Ejecutar la <a href="logout.php"> logout </ a>';
  3. )

Post relacionados

FireFox: gestión de perfiles

Jueves, 23 de octubre de 2008

Mozilla Firefox le permite gestionar múltiples perfiles, características útiles para quienes, como yo, desarrolla sitios web y requiere una serie de extensiones dedicadas a la depuración y el análisis de páginas Web. Mediante el uso de perfiles puede configurar diferentes ajustes de Firefox:

Firefox guardar su información personal como favoritos, preferencias y contraseñas en un archivo llamado perfil en una ubicación diferente que los archivos de programa para Firefox.

En Windows Vista (ver aquí para acceder a otros sistemas operativos) permite el acceso a la gestión de perfiles de Esegui usando:

CÓDIGO:
  1. firefox-ProfileManager

Gestión de perfiles

Una de las ventajas en la utilización de perfiles es tener una FireFox para navegar, sin ningún tipo de barra de herramientas y extensiones para FireFox y depuración de desarrollar, junto con Amaya, y todas las demás herramientas de desarrollo.

Post relacionados

Muy corto truco: indefinido valores en Javascript

Miércoles, 22 de octubre, 2008

Hay una forma abreviada para la asignación de "en vuelo" un valor a una variable si otro no está definido (no definido), utilizando el operador OR lógico (| |) - Doble-pipe:

JavaScript:
  1. / / Plutón está definido
  2. var Plutón;
  3. ; var foo = Plutón | |'5 ';
  4. pippo ) ; alert (foo);
  5. / / Resultado: 5

Esta técnica es útil para la escritura de funciones con los parámetros:

JavaScript:
  1. param ) { miaFunc función (parámetros) (
  2. ; var p1 = Param | | 'referencia';
  3. / / ...
  4. )

Pero debemos tener cuidado de usar este formulario como valores de cero como 0 false son mal interpretados, debido a la "culpabilidad" de la O lógica:

JavaScript:
  1. ; Plutón var = 0;
  2. ; var foo = Plutón | |'5 ';
  3. pippo ) ; alert (foo);
  4. / / Resultado: 5
  5. ; Plutón var = false;
  6. ; var foo = Plutón | |'5 ';
  7. pippo ) ; alert (foo);
  8. / / Resultado: 5
  9. ; Plutón var = 1;
  10. ; var foo = Plutón | |'5 ';
  11. pippo ) ; alert (foo);
  12. / / Resultados: 1

Post relacionados

Variedad de codificación y codificación

Martes, 14 de octubre de 2008

Alguien sostiene que la programación es un arte y, en última instancia, no puedo sino estar de acuerdo, especialmente cuando se encuentren soluciones muy diferentes para el mismo problema. Para entender cómo ocurre esto es como una necesidad idéntica en medisimo lenguaje (Javascript) se puede resolver con enfoques muy diferentes y originales.

Izquierda cero Pad

Un número, pero el discurso es también válido para cualquier cadena, tales 123 123 puede ser llenado a la izquierda - para llamar - con un número de ceros, por ejemplo: 00123 Esta necesidad se presenta en varias ocasiones y es útil para alineados - o mostrar - una serie limpiamente, indicando implícitamente su valor máximo. En el vídeo, por ejemplo, el clásico de puntuación (la puntuación) es a menudo indicado por 001234 en la mayoría de lo que se refiere a 999999 Aquí está la forma en que el problema ha sido resuelto por varios desarrolladores:

JavaScript:
  1. / **
  2. * Pad izquierda cadena
  3. *
  4. * @ Desde http://snipplr.com/view/8423/left-pad-string/
  5. * Autor @ web-http: / / www.mechanicmatt.com/
  6. *
  7. * @ Param num - para llenar Striga
  8. * @ Param totalChars - número total de caracteres, incluidos los "ceros"
  9. * @ Param padWidth - de caracteres utilizado para llenar, por defecto "0"
  10. * /
  11. num, totalChars, padWith ) { leadingZeros función (num, totalChars, padWith) (
  12. num num + = "";
  13. ? padWith = (padWith)? padWith: "0";
  14. num. length <totalChars ) { if (longitud interior el número de referencia <totalChars) (
  15. num. length <totalChars ) { while (longitud interior el número de referencia <totalChars) (
  16. padWith + num = num;
  17. )
  18. { } Otras ())
  19. num. length > totalChars ) { //if padWith was a multiple character string and num was overpadded if (longitud interior el número de referencia> totalChars) (/ / Si padWith fue una cadena de caracteres múltiples y fue número overpadded
  20. num. length - totalChars ) , totalChars ) ; Num = num. Subcadena ((Número de referencia interno de longitud - totalChars), totalChars);
  21. { } Otras ())
  22. num retorno;
  23. )
  24. leadingZeros ( "asdf" , 10 , "0" ) ) ; alert (leadingZeros ( "asdf", 10, "0"));

Esta solución es muy articular, pero puede añadir un número indeterminado de 0 número de num también la elección de la fuente utilizada por padWidth 0
Definitivamente original, sin embargo, esta solución:

JavaScript:
  1. / **
  2. * String_pad
  3. *
  4. * @ Desde http://snipplr.com/view/700/stringpad/
  5. * @ Autor http://d.hatena.ne.jp/brazil/20060721/1153489937
  6. *
  7. * @ Param str - para llenar Striga
  8. * @ Param len - número total de caracteres, incluidos los "ceros"
  9. * @ Param CH - de caracteres utilizado para llenar
  10. * /
  11. str, len, ch ) { return new Array ( len- ( '' +str ) . length + 1 ) . join ( ch ) + str } función de almohadilla (str, len, CH) (retorno new Array (len-(''+ str). longitud + 1). unirse (CH) + str)
  12. pad ( 56 , 4 , '0' ) ) ; // 0056 alert (almohadilla (56, 4,'0 ')); / / 0056

Mismo resultado, con un enfoque completamente diferente. Una vez más tenemos la oportunidad de decidir el número de caracteres de relleno a través del parámetro len y la fuente utilizada por ch No utilizar el valor por defecto en la función anterior.
Lo que yo uso en lugar ...:

JavaScript:
  1. / **
  2. * String_pad
  3. *
  4. * @ Autor Giovambattista Fazioli
  5. * @ Web http://www.undolog.com
  6. *
  7. * Param @ s - para llenar Striga
  8. * L @ Param - Una cadena que indica el carácter es que la duración
  9. * Tales como "0000" de caracteres = "0" de longitud 4
  10. * /
  11. s,l ) { return ( l. substr ( 0 , ( l. length -s. length ) ) +s ) ; } función de relleno (s, l) (return (l. substr (0, (l-s longitud. longitud)) + s);)
  12. padding ( '123' , '0000' ) ) ; alert (relleno ('123 ','0000'));

Si usted tiene otras interesantes soluciones comentario, por favor : D

Post relacionados

Una clase de cuenta en Javascript

Lunes 13 de octubre, 2008

En el puesto con 3D CuentaAtras FIVe3D (Ver ¿Cómo lo hice: escribir una cuenta atrás en Flash), fue una clase de propuesta para la creación de un CuentaAtras objeto en Actionscript, aquí tienes una versión similar en Javascript:

JavaScript:
  1. / **
  2. * Clase CuentaAtras
  3. *
  4. * @ Autor Giovambattista Fazioli
  5. * Email @ @ g.fazioli undolog.com
  6. * @ Web http://www.undolog.com
  7. *
  8. * @ Param dd (cadena) "día mes, año
  9. *
  10. * /
  11. dd ) { función de cuenta atrás (dd) (
  12. / / Init tiempo objetivo
  13. Date ( dd ) ; var target = nueva fecha (dd);
  14. = target. getTime ( ) ; este. targetTime = blanco. GetTime ();
  15. / **
  16. * Actualizar cuenta
  17. * /
  18. = function ( ) { este. refresco = function () (
  19. Date ( ) ; var hoy = new Fecha ();
  20. ( ) ; var = tiempo actual hoy en día. GetTime ();
  21. / / Hora izquierda
  22. this . targetTime - currentTime ) ; este. _leftMilliseconds = (this. targetTime - tiempo actual);
  23. ( this ._leftMilliseconds / 1000 ) ; este. _leftSeconds = Matemáticas. piso (this. _leftMilliseconds / 1000);
  24. ( this ._leftSeconds / 60 ) ; este. _leftMinutes = Matemáticas. piso (this. _leftSeconds / 60);
  25. ( this ._leftMinutes / 60 ) ; este. _leftHours = Matemáticas. piso (this. _leftMinutes / 60);
  26. / / N º módulo
  27. = Math. floor ( this ._leftHours / 24 ) ; este. leftDays = Matemáticas. piso (this. _leftHours / 24);
  28. / / Para imprimir
  29. = this ._leftMilliseconds % 1000 ; este. leftMilliseconds = esto. _leftMilliseconds% 1000;
  30. = this ._leftSeconds % 60 ; este. leftSeconds = esto. _leftSeconds% 60;
  31. = this ._leftMinutes % 60 ; este. leftMinutes = esto. _leftMinutes% 60;
  32. = this ._leftHours % 24 ; este. leftHours = esto. _leftHours% 24;
  33. )
  34. ( ) ; este. refresh ();
  35. )

Ejemplo

JavaScript:
  1. countDown ( '1 1, 2009' ) ; var = new fin de cuenta atrás (1 de 1, 2009 ');
  2. / / Mostrar el número de días, horas, minutos, segundos y milisegundos en el primer enero 2009
  3. cd. leftDays + "," + cd. leftHours + "," + cd. leftMinutes + "," + cd. leftSeconds + "," + cd. leftMilliseconds ) ; documento. escribir (es decir, leftDays + "," + cd. leftHours + "," + cd. leftMinutes + "," + cd. leftSeconds + "," + cd. leftMilliseconds);

Post relacionados

Muy corto truco: evitar mensaje de error en PHP

Miércoles, 8 de octubre, 2008

Si no queremos una cuestión PHP cualquier error o advertencia, simplemente introduzca la primera llamada a la función del caracol - o en - (@):

PHP:
  1. / / En lugar de utilizar la forma canónica
  2. ; $ Res = miaFunc ();
  3. / / Puede utilizar
  4. ; $ Res = @ miaFunc ();

Post relacionados

Muy corto truco: PHP eco de los coches

Jueves, 2 de octubre de 2008

En PHP se puede utilizar una forma abreviada, o contratados, para ver el regreso de variables o funciones:

PHP:
  1. / / En lugar de
  2. $miavar ?> <? Php echo $ miavar?>
  3. / / Se puede escribir
  4. ?> <? = $ Miavar?>
  5. / / En lugar de
  6. miaFunc ( ) ?> <? Php echo miaFunc ()?>
  7. / / Se puede escribir
  8. ?> <? MiaFunc = ()?>

Post relacionados

Skypemote versión de Adobe AIR

Martes, 30 de septiembre de 2008

Instalar Skypemote descargar la versión de Adobe AIR

Esta es la primera liberación, el 0,8 (alineado con la versión en línea), Skype Emociones Editor - Skypemote - versión en Adobe AIR. Por ahora medisime características son la versión en línea, con la ventaja de ser un escritorio y, a continuación, instalado en Windows, Mac y Linux.
Antes de recordar a la actualización y / o instalado por primera vez, el tiempo de ejecución de Adobe AIR, si aún no lo hayan hecho antes.

Descargar

Puede descargar Aire Skypemote Google Code.

Post relacionados

ActionScript 3.0 para principiantes: lección # 3

Domingo, 28 de septiembre de 2008

Seguimos analizando el ejemplo del juego Tic Tac Toe, en ActionScript 3.0 para principiantes: la lección # 2. Habíamos llegado a la función que crea la red de juego:

Actionscript:
  1. / **
  2. * Dibujo gráficamente la rejilla (3x3) en la pantalla
  3. *
  4. * @ Param vacío
  5. * Regreso vacío @
  6. * @ Privado
  7. * /
  8. createGrid ( ) : void { createGrid private function (): void (
  9. / / Puntero a un objeto MovieClip temporal
  10. / / Nota: aquí también puede utilizar un objeto Sprite
  11. / / Pero en este caso tengo que ser capaz de extender objeto
  12. / / Agregando algunos proproetà personal. El objeto Sprite
  13. / / Una clase está cerrado y, por tanto, no extenderse en tiempo de ejecución, mientras que
  14. / / Clase MovieClip es una clase dinámica y, por tanto, hace
  15. / / Posible Además de las propiedades en tiempo de ejecución
  16. , i:uint = 0 ; var tm: MovieClip, i: UINT = 0;
  17. / / Añadir un 3x3 en el MovieClip
  18. ; i < 9 ; i++ ) { for (i <9; i + +) (
  19. ( ) ; tm = new MovieClip ();
  20. ; addChild (tm);
  21. i% 3 ) * ( PLAYER_WIDTH+PLAYER_OFFSET ) ) tm. despx = x + ((i% 3) * (PLAYER_WIDTH + PLAYER_OFFSET))
  22. . floor ( i/ 3 ) * ( PLAYER_HEIGHT+PLAYER_OFFSET ) tm. offsety + y = Matemáticas. piso (i / 3) * (PLAYER_HEIGHT + PLAYER_OFFSET)
  23. tm._index = i;
  24. ) ; drawPlayer (tm, 0);
  25. )
  26. / / Dibujo veriticali el 2 líneas horizontales y 2
  27. this . graphics ) { con (this. gráficos) (
  28. 6 ,0x666666 ) ; LineStyle (6, 0x666666);
  29. OFFSETX,OFFSETY+ ( PLAYER_HEIGHT+ 15 ) ) ; moveTo (despx, offsety + (PLAYER_HEIGHT + 15));
  30. OFFSETX+ ( ( PLAYER_WIDTH+ 20 ) * 3 ) ,OFFSETY+ ( PLAYER_HEIGHT+ 15 ) ) ; LineTo (despx + ((PLAYER_WIDTH + 20) * 3), offsety + (PLAYER_HEIGHT + 15));
  31. OFFSETX,OFFSETY+ ( PLAYER_HEIGHT+ 20 ) * 2 ) ; moveTo (despx, offsety + (PLAYER_HEIGHT + 20) * 2);
  32. OFFSETX+ ( ( PLAYER_WIDTH+ 20 ) * 3 ) ,OFFSETY+ ( PLAYER_HEIGHT+ 20 ) * 2 ) ; LineTo (despx + ((PLAYER_WIDTH + 20) *