miércoles, 21 de agosto de 2013

En ocasiones puede que queramos colocar un fondo a nuestros listados html <ul> <ol> hasta aquí sin problemas, pero si ademas queremos usar los números que nos proporciona el "ol" es necesario hacer algo al estilo:

ol {
    counter-reset:li; /* Initiate a counter */
    margin-left:0; /* Remove the default left margin */
    padding-left:0; /* Remove the default left padding */
}
ol > li {
    position:relative; /* Create a positioning context */
}
ol > li:before {
    content: counter(li);
    counter-increment: li;
    position: absolute;
    left: -1.5em;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 1.5em;
    padding: 4px;
    border-top: 2px solid #31759f;
    color: #fff;
    background: #31759f;
    border-bottom-left-radius: 2em;
    border-bottom-right-radius: 2em;
    border-top-left-radius: 2em;
    border-top-right-radius: 2em;
    font-weight: bold;
    font-size: 16pt;
    text-align: center;
}
li ol,
li ul {margin-top:6px;}
ol ol li:last-child {margin-bottom:0;}

martes, 20 de agosto de 2013

Añadir un label a un formulario en Drupal

Tan solo deberemos añadir estas lineas en el hook del formulario que deseemos editar

        $form['titular'] = array(
            '#markup' => '<h1>Contacta con nosotros y le atenderemos personalmente</h1>',
            '#weight' =>-10,
          );

Probado en Drupal 7

jueves, 15 de agosto de 2013

Registrar tu web en google

Siempre que creo o ayudo a alguien ha crear por primera vez su pagina web, blog, o presencia en Internet en general, he de buscar como registrar o "avisar" a google que existe una nueva pagina web; muchos diréis, ese es trabajo de google, rastrear y encontrar las nuevas webs, y su contenido, y si; estamos de acuerdo, pero si le decimos donde debe hacerlo, no lo hará antes??
Todos queremos aparecer en dicho buscador lo antes posible así que, este es el método:

Tan solo ir a esta url https://www.google.com/webmasters/tools/submit-url pegar la url que queremos que indexe y resolver el captcha

Espero que os resulte de utilidad.

jueves, 1 de agosto de 2013

ver elementos nombres y valores de un formulario Drupal


Con este codigo veremos en pantalla un json de todos los elementos del formulario con sus valores, muy util en algunas ocasiones
  1.  function insurance_form_alter(&$form, &$form_state, $form_id) {
  2.  if ($form_id == "user_register_form"){
  3.        echo "<pre>"; print_r($form); exit;
  4.    }
  5. }

Probado en Drupal 7

miércoles, 31 de julio de 2013

Formulario de registro personalizado (Drupal 7)

Esta vez soy yo el que os pide ayuda, a ver si entre todos conseguimos dar con una solución ;)

lo que pretendo es:
Mostrar el formulario de registro de drupal 7 simplemente con el campo de email y contraseña, mas el registro por redes sociales, y algunos textos escritos manualmente, para las redes sociales utilizo un modulo que me lo saca perfectamente.
Alguien sabría como hacer esto?

He probado con este articulo https://drupal.org/node/350634?goback=%2Egna_103062 y algunos parecidos, pero ninguno me modifica el formulario de registro, parece que nunca pasa por allí entrando en user/register, sin embargo para el de login va fenómeno :(

He conseguido modificar un poco el formulario de registro con el siguiente código:

function insurance_form_alter(&$form, &$form_state, $form_id) {
        if ($form_id == 'search_block_form') {
          $form['search_block_form']['#title'] = t(''); // Change the text on the label element
          $form['search_block_form']['#title_display'] = 'invisible'; // Toggle label visibilty
          $form['search_block_form']['#size'] = 25;  // define size of the textfield
          $form['search_block_form']['#attributes']['placeholder'] = t('¿Qué quieres buscar?'); // Set a default value for the textfield
         
          $form['actions']['submit']['#value'] = t(''); // Change the text on the submit button
          $form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . 'sites/default/files/btnBusqueda.png');
          $form['actions']['submit']['#id'] = t('edit-submit-search');
         
          /*$form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = 'Search';}";
          $form['search_block_form']['#attributes']['onfocus'] = "if (this.value == 'Search') {this.value = '';}";*/
        }elseif ($form_id == "user_register_form") {
            echo 'Blah Bla bla';
            echo '<hr>Paso 1 de 2<hr>';

            $form['name']['#title'] = t("Custom title");
            $form['actions']['submit']['#value'] = t("CREA UNA CUENTA");

             $form['campo_personalizado']=array(
              '#type' => 'weight',
              '#title' => t('campo personalizado'),
                '#size' => 60,
              '#maxlength' => 128,
              '#required' => TRUE,  
            );
        }
    }

Pero             $form['name']['#title'] = t("Custom title"); no me modifica el label del campo name, ni tampoco me deja cambiarlo de orden

¿Algún consejo?
Un saludo y gracias de antemano

martes, 16 de julio de 2013

Drupal 7 Problema al activar URL Limpias

Hoy es la 2 vez que me ocurre, y de nuevo no recuerdo como se solucionaba, por suerte google a vuelto a ser mi salvación mediante el post de corE https://drupal.org/node/1042626#comment-5214544 aunque en realidad no hay que hacer tantos pasos.

tan solo hay que descomentar la linea que corresponda del RewriteBase / en el .htaccess según vuestra configuración deberéis descomentar rewriteBase / o RewriteBase /drupal, hay que descomentar esta ultima si vuestro drupal esta en una carpeta al estilo www.vuestraweb.com/carpetaDrupal deberéis cambiar en el .htaccess también vuestro nombre de carpeta
Si esta en raíz hay que descomentar RewriteBase / simplemente

una vez hecho esto y sustiuido en el servidor deberemos cambiar la ruta de la URL /?q=admin/config/search/clean-urls por: /admin/config/search/clean-urls

Ya lo tenemos hecho, solo debemos activar la casillita ;)

lunes, 15 de julio de 2013

Cambiar el color al placeHolder de un input, mediante css

Hoy me he encontrado con el problema a la hora de cambiar el color a un placeholder en concreto, aquí os dejo la solución ;)

Tan solo es dar el Id del elemento al que deseamos cambiarle, y agregarle la coletilla para todos los motores de los navegadores

#edit-search-block-form--2::-webkit-input-placeholder{
    color: black !important;
}
#edit-search-block-form--2::-moz-placeholder{
    color: black !important;
}
#edit-search-block-form--2:-moz-placeholder{
    color: black !important;
}
#edit-search-block-form--2:-ms-input-placeholder{
    color: black !important;
}

viernes, 28 de junio de 2013

Maquetación fija o liquida??

Hoy os planteo esta cuestión y de paso a ver si conseguimos abrir un poco debate para sacar conclusiones y aprender todos de todos.
Yo personalmente uso un mixto; es decir suelo dar un mínimo y un máximo de ancho y alto a mis diseños, pero después todo el contenido lo manejo mediante porcentajes; esta pregunta la abro a raíz de un desacuerdo en mi trabajo, puesto que uno de mis compañeros con el que estoy llevando a cabo un proyecto prefiere utilizar únicamente tamaños fijos en PX, vosotros como lo veis? Cual es vuestra opinión? que y como trabajáis día a día?

Un saludo a tod@s y que empiece la fiesta!!

Curso programación desde 0 - Tema 7 - Funciones

En este tema vamos a introducirnos en el concepto de las funciones, algo elemental para cualquier lenguaje de programación; una función no es más que un conjunto de órdenes, las cuales se suelen usar en distintos puntos de un programa, así que al agruparlas en una función evitamos repetir el código.
Una función puede devolver un resultado, o solo realizar una serie de operaciones, también admite que se le pasen una serie de parámetros (variables) o ejecutarla sin ellas, todo esto depende del caso, vamos a ver algunos ejemplos.
La estructura de una función sería algo de este estilo:

Función NombreDeLaFuncion (parametro1, parámetro2,….) {
                Operaciones;
                Operaciones;
                …..
}

                 Y ya esta así de sencillo, eso sería una función; una función sencilla sería algo así:

Función EscribeMensaje () {
Muestra “Hola esta es mi primera Función”;
}

                En esta función escribiremos cada vez que la llamemos; lo cual se haría simplemente tecleando EscribeMensaje (); dentro de nuestro código, y lo que nos hará esta función es que cada vez que la llamemos, nos escriba en pantalla Hola esta es mi primera Función.
Esta función no recibe ningún parámetro, ni tampoco devuelve ningún resultado, solo ejecuta una operación, la cual consiste en escribir un mensaje.

Otro ejemplo un poco más complejo seria este:

Función EscribeMensaje (mensaje) {
Muestra mensaje;
}

Esta funcion está esperando un parámetro, el cual se llama mensaje, y lo que hará será escribir en pantalla ese mensaje, si la llamamos del siguiente modo:

MuestraMensaje (“Hola esta es mi primera Función”);

Nos dará el mismo resultado que antes, con la salvedad de que cada vez que la llamemos podremos mandarle un mensaje distinto, el cual sera mostrado.
                Este ejemplo es muy sencillo, y poco práctico, aunque por su simplicidad es el mejor modo de entender que es una función.

                Ahora vamos a ver otra función prácticamente igual de sencilla, pero que nos devuelva un resultado.

Función JuntandoTextos (Mensaje) {
Mensaje = Mensaje + “ Nuevo Texto”;
return Mensaje;
}

Bien vamos a ver unas cuantas cosas un poco complejas, que están escritas en el ejemplo anterior; podemos ver como a la variable Mensaje, la sumamos una cadena de texto, y lo volvemos a guardar en la variable Mensaje; esto es totalmente valido, y si tenemos una variable Mensaje, fuera de la función, esa variable es distinta a la que está dentro; es decir podemos tener 2 variables con el mismo nombre, una dentro y otra fuera de la función, las 2 son distintas, y totalmente ajenas, la una a la otra, podemos cambiar el valor de una que no afectara a la otra.


                Otro detalle importante de la función anterior es que en la última línea tenemos el texto return Mensaje, la palabra return es común para casi todos los lenguajes, he decidido usarla así, por su semejanza al castellano, y por que al ser algo “estándar”, es bueno que lo veáis ya, después de esta introducción sigo con lo que estamos haciendo, en esa línea, retornamos (devolvemos) el valor de Mensaje, si nuestro programa fuera algo así:

Var Mensaje texto;
Mensaje = “Hola estoy mandando un texto”;
Var MensajeAMostrar = JuntandoTextos(Mensaje);
Muestra Mensaje;
Muestra MensajeAMostrar;
Mensaje = mensaje + “ Otro Texto”;
Muestra Mensaje;

Función JuntandoTextos(Mensaje){
Mensaje = Mensaje + “ Nuevo Texto”;
return Mensaje;
}

Podemos ver que tenemos la función declarada al final del código, en la mayoría de lenguajes se puede hacer así, en otros hay que hacer las declaraciones antes de llamar a la función, pero bueno eso ya son características de cada lenguaje, lo importante aquí es ver que tenemos en el mismo código, por un lado el programa, y por otro lado la declaración de la función, por lo que queda más separado, claro, y fácil de mantener, las funciones pueden declararse, al final, principio o entre medias del código, eso depende de las características del lenguaje, y de la necesidad de cada programa; tambien utilizaremos muy a menudo funciones que esten almacenadas en otros archivos distintos al que contiene el programa.

En este programa comenzamos declarando una variable, a la que en la siguiente línea le asignamos un valor, en la tercera línea, declaramos otra variable y en la misma línea le asignamos el valor de la función, pasándole como parámetro la variable Mensaje, el valor que almacenara la variable MensajeAMostrar será: Hola estoy mandando un texto Nuevotexto
En la 4 línea mostramos el valor de la variable Mensaje, lo cual nos dará como resultado: Hola estoy mandando un texto.
En la 5 línea mostramos el valor de la variable MensajeAMostrar, lo cual nos mostrara: Hola estoy mandando un texto Nuevo texto
En la sexta línea cambiamos el valor de la variable Mensaje, y en la séptima lo mostramos, lo cual nos mostrara Hola estoy mandando un texto Otro texto ; ya que como hemos explicado anteriormente la variable Mensaje de fuera de la función es independiente a la variable Mensaje de dentro


Ahora vamos a ver otro ejemplo de funciones, quizás un poco más útil, ya que lo que hemos hecho hasta ahora no nos ha servido para demasiado.

Función Operaciones(Numero1, Numero2){
Var Resultado;
Resultado = Numero1 + Numero2;
Muestra Resultado;
Resultado = Numero1 - Numero2
Muestra Resultado;
Resultado  = Numero1 * Numero2
Muestra Resultado;
Resultado  = Numero1 / Numero2
Muestra Resultado;
}

                Cada vez que llamemos a esta función con 2 variables, nos mostrara en pantalla los 4 resultados posibles, uno tras otro, nos dará la suma, la resta, la división y la multiplicación de ambos números, tan solo escribiendo una llamada a la función como podría ser Operaciones(8, 26);

Un Ejercicio interesante seria hacer un programa que recorra todos los números del 1 al 10 y que por cada número nos diga si es par o es impar.

Recuerda que el mejor modo para la corrección es publicarlo como comentario debajo del ejercicio, así tú y todos tus compañeros podréis aprender y ayudaros los unos a los otros, pero estoy disponible en el email: rogamainformatica@gmail.com

Resto de temas:
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones (Tema actual)
Tema 6 - Bucles Repetitivos
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?

viernes, 21 de junio de 2013

Curso programación desde 0 - Tema 6 - Bucles repetitivos

Otra de las cosas más Utilizadas y de las que más apuros y facilidades nos pueden dar en la programación son los bucles, tenemos varios de ellos, aunque básicamente podemos englobarlos en:
·         los que se cumplen siempre que una condición se cumpla.
·         los que se repiten hasta que se cumpla una condición

El más usado con diferencia es el conocido como bucle for, que podría traducirse como “para” el cual tendría el siguiente aspecto:

Para (var i =0; i< 20; i++)
                Muestra i;
FinPara

Ahora que hemos visto la estructura vamos a explicar que es esto que a primera vista parece tan complejo; en la primera línea tenemos: Para (var i =0; i< 20; i++)

Lo cual nos dice que es un bucle Para, y entre los paréntesis tenemos los datos que debemos pasarle, separados por “;” lo cual nos lo deja en 3 partes:

·         Var i =0; Aquí estamos declarando la variable i es el nombre más utilizado en este tipo de bucles, pero podemos darle el nombre que más nos apetezca, podría ser juanito sin ningún problema, a la vez que la declaramos, le damos el valor de 0; por lo que usaremos la variable llamada i y comenzara con un valor de 0.
·         I< 20; los siguientes datos que le damos son una condición, i menor a 20; con esto le decimos que repitamos lo que tengamos dentro del bule hasta que i sea 20, en el momento en que sea 20 saldremos del bucle sin hacer el código que hay dentro.
·         I++; este es el ultimo código que tenemos en el bucle, esto se lo podremos dar a cualquier variable de tipo Numero es algo sencillo, simplemente sumamos 1 al valor que tenga i; también podemos usar i—por ejemplo lo cual restaría 1 al valor de i
Este bucle nos mostraría 20 números, el primero sería el 0 y el ultimo el 19, cuando entramos en un bucle solo se ejecutara el código que hay en su interior, es decir desde donde tenemos escrito Para, hasta donde pone FinPara, por lo que hay que prestar atención a lo que hacemos, ya que si tuviéramos algo parecido a esto:



Para (var i =0; i< 20; i++)
                Si (i = 15)
                               i= i -10;
                FinSi
Muestra i;
FinPara

Restaríamos 10 a i siempre que valga 15, por lo que volveríamos al 5 y del 5 hasta que llegáramos al 15, y otra vez restaríamos 10, y así una y otra vez, por lo que nunca saldríamos del bucle, y habríamos hecho lo que se conoce como bucle infinito, esto suele bloquear el sistema, es un error y hay que evitar que se produzca

Otro de los bucles más usados son los bucles hasta (while), con la siguiente estructura

Hasta (condición)
                Lo que sea;
FinHasta

Este bucle se repetirá siempre hasta que la condición se cumpla; un ejemplo podría ser algo así:

Hasta (¡SentimosSed)
                Ejercicio de calmar la sed;
FinHasta

En este ejemplo hemos puesto el signo de admiración delante de la variable SentimosSed, el símbolo ¡ puede traducirse como No, por lo que esto lo que hace es volver a lo contrario la variable, es decir, si es verdadera, la convierte en falsa, si es falsa la convierte en verdadera, así  ejecutaremos una y otra vez el ejercicio de calmar la sed, hasta que No tengamos sed.

El último Bucle que vamos a ver es el Do-While o lo que vendría siendo en castellano haz- hasta, este bucle se repetirá siempre hasta que se de la condición en el hasta, pero con la salvedad de que siempre se ejecutara como mínimo una vez, su estructura es la siguiente:

Haz
                Lo que sea;
Hasta(condición);




Piensa que tipo de bucle sería el más adecuado para hacer una tabla de multiplicar del 5 y desarrolla el pseudocódigo;

Recuerda que el mejor modo para la corrección es publicarlo como comentario debajo del ejercicio, así tú y todos tus compañeros podréis aprender y ayudaros los unos a los otros, pero estoy disponible en el email rogamainformatica@gmail.com

Resto de temas:
Tema 8 - Programación Orientada a Objetos POO
Tema 7 - Funciones
Tema 6 - Bucles Repetitivos (Tema actual)
Tema 5 - Usando condicionales
Tema 4 - Arrays
Tema 3 - Pensando con variables
Tema 2 - Pensando como Programadores
Tema 1 - ¿Que es la programacion?