Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

martes, 17 de septiembre de 2013

Drupal 7 - Editar El label, de los comentarios

Para poder editar el label de los comentarios, y mas concretamente quitar esos ":" tan molestos que aparecen delante del comentario tendremos que hacer un poco de submarinismo por Drupal, Iremos a:

Estructura->Tipos de contenido -> Articulo->
Una vez allí iremos hasta Presentación de Comentarios y pondremos la Etiqueta en Oculto

lunes, 16 de septiembre de 2013

Drupal 7 - Cambiar el texto a los campos de contraseña y validar contraseña

Para ello en nuestro template.php deberemos:
function insurance_form_user_profile_form_alter(&$form, &$form_state, $form_id) {
       $form['account']['pass']['#process'] = array('form_process_password_confirm', 'register_alter_password_confirm');
       break;
   }
}
/**
* Implementation of expand_password_confirm.
*/
function register_alter_password_confirm($element) {
  
$element['pass1']['#title'] = t("Password");
  
$element['pass2']['#title'] = t("Repeat password");
   return
$element;
}

lunes, 9 de septiembre de 2013

Fatal error: Call to undefined function session_register()

Este error en php nos puede dar si estamos manteniendo un sitio antiguo, o si aprendimos a utilizar sesiones hace tiempo.
Fatal error: Call to undefined function session_register()

Es debido a que la función session_register() esta obsoleta desde la versión 4.3 si no recuerdo mal de php, por lo que ahora deberemos utilizarla del siguiente modo

$_SESSION["NombreUsu"] = $reg[Nombre]; 
en lugar del antiguo
session_register("NombreUsu"); 

martes, 27 de agosto de 2013

Drupal 7 - Quitar el campo de N/D, N/A, No Responde

Este es un problemilla que nos aparece siempre que hay valores para seleccionar y no son obligatorios.
Para deshabilitar o quitar ese campo deberemos ir al alter del formulario y pegar este código en template.php:

unset($form['Nombre del campo']['und']['#options']['_none']);

Por ejemplo: si quisiéramos quitar el campo sexo en el formulario de contacto

function TuTheme_form_user_profile_form_alter(&$form, &$form_state, $form_id) {
    unset($form['field_sexo']['und']['#options']['_none']);
}

Así solo nos aparecerá :

  • Hombre
  • Mujer


En lugar de:

  • N/D
  • Hombre
  • Mujer

viernes, 23 de agosto de 2013

Añadir elementos a un array php

En ocasiones nos sera necesario guardar elementos en un array, pero no siempre vamos a saber cuantos; y no podremos declarar el tamaño del array; para ello tenemos la funcion push en php
$nuestroArray= array();array_push($nuestroArray, valor1);array_push($nuestroArray, valor2);
Espero os resulte de utilidad

Drupal 7 - Parse error: syntax error, unexpected 'id' (T_STRING), expecting ',' or ';' in TuSitio/modules/php/php.module(80) : eval()'d code on line 37

Este error en drupal se debe a que en la programación php del bloque hemos dejado algún elemento sin cierre seguramente nos falte algún ; o "

jueves, 22 de agosto de 2013

Solución - Undefined index: uid in views_handler_field->get_value() (line 375 of views_handler_field.inc) Drupal 7

Me aparecio este error al quitar el enlace del nombre de usuario mostrado en un bloque de una vista; la solucion es simplemente marcar el penultimo check:


If checked, the username will be formatted by the system. If unchecked, it will be displayed raw.

Guardamos y listo.

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, 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 ;)

domingo, 9 de junio de 2013

Proteger ataques de inyeccion SQL

Una buena costumbre es usar la siguiente orden en todos nuestros formularios
mysql_real_escape_string()

Escribiendo entre parentesis la variable a pasar en las consultas que hagamos, para así poder evitar ataques de inyección SQL en PHP


jueves, 6 de junio de 2013

Acceder a la carpeta Config en Symfony 2

Hoy he tenido un gran comedero de cabeza, estoy usando una API externa a Symfony, la cual requiere un archivo de configuración, la forma mas sencilla de usarlo es copiar y editar ese archivo de configuración en la carpeta Vendor del mismo, pero como sabemos los vendor se instalan y actualizan por separado, así que eso para hacer pruebas esta genial, pero no para trabajar, así que e pensado que lo mas correcto seria almacenar ese archivo de configuración dentro de la carpeta app/config de Symfony, el problema me lo he encontrado al decirle al controlador donde estaba ese archivo.

En symfony (1) tenemos la orden: sfConfig::get('sf_app_config_dir')
Pero en Symfony2 no existe así que debemos decírselo a mano, por lo que el siguiente código podría decirse que es su equivalente; una vez sepamos como es muy sencillo, pero no hay demasiada información en la red, así que aquí os lo dejo, y espero que os resulte de gran utilidad, como a mi cuando hoy he dado con ello.

$ConfigFile = $this->get('kernel')->getRootDir() . '/config';

sábado, 25 de mayo de 2013

Symfony - An exception has been thrown during the rendering of a template

Seguramente nos de este error a muchos de los que empezamos con Symfony y usamos de referencia el libro de desarrollo ágil con Symfony.

An exception has been thrown during the rendering of a template ("No route found for "GET Default:listaCiudades"") in "OfertaBundle:Default:portada.html.twig".

[3/3] Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("No route found for "GET Default:listaCiudades"") in "OfertaBundle:Default:portada.html.twig"


[2/3] NotFoundHttpException: No route found for "GET Default:listaCiudades"


[1/3] ResourceNotFoundException:


este error nos indica que no encuentra la vista de listaCiudades, en realidad el problema esta en que lo busca donde no debe, esta buscándolo dentro del Bundle de Oferta, y claro, esta en Ciudades....

Esto es debido a que en el libro nos viene este código:
<li>{% render "CiudadBundle:Default:listaCiudades" 
                        with {'ciudad': ciudadSeleccionada } %}</li>

el cual debemos poner en la plantilla del frontend, pero esto no es valido para versiones de Symfony superiores a la 2.1, versión para la cual esta escrita la versión mas actual a día de hoy del libro; para versiones superiores debemos poner este otro código:

<li>{{ render (controller("CiudadBundle:Default:listaCiudades" , { 'ciudad': ciudadSeleccionada })) }}</li>

PD: el libro lo podéis encontrar en: http://symfony.es/libro/ cuesta 10€, esta en perfecto castellano, son mas de 600 paginas, y por lo general esta bien, aunque contiene algunos errores de este tipo.

PD2: este código esta probado para la versión 2.2.1 de Symfony.

sábado, 18 de mayo de 2013

Instalacion de symfony2

Instalar symfony 2 es muy sencillo, el problema es que hay mucha documentacion obsoleta en la red, y a veces cuesta encontrar la correcta para comenzar con symfony 2 tenemos 2 opciones, descargar desde la web oficial http://symfony.com  la version con vendors; o si solemos utilizar git la version sin vendors, para descargar la version con vendors, solo debemos descargar el paquete necesario y descomprimirlo en nuestra raiz del servidor

Por lo que voy a explicar como instalarlo sin Vendors; descargaremos el paquete sin ellos, actualmente el ultimo estable es: http://symfony.com/download?v=Symfony_Standard_Vendors_2.2.1.zip; despues deberemos ejecutar este comando de consola, una vez localizados en nuestro directorio raiz del servidor

php composer.phar install

y no php bin/vendors install como nos dicen en muchos otros sitios, esto dara error al descargarnos el paquete bin vacio

pero esto seguramente nos de error al no tener el composer instalado; auque tiene facil solucion, tan solo debemos entrar en https://getcomposer.org/installer
y guardar el contenido en el directorio raiz de nuestro proyecto, como instalador.php
ejecutar en la consola php instalador.php, dejaremos que termine de trabajar, y ahora si podemos usar
php composer.phar install

desoues de esperar un rato a que se descarguen todos los paquetes, ya deberemos tener preparado todo para trabajar con symfony

viernes, 17 de mayo de 2013

Symfony - Doctrine\ORM\Mapping\MappingException

[Doctrine\ORM\Mapping\MappingException]
Class "Cupon\TiendaBundle\Entity\Tienda" is not valid entity or mapper super class.

Este error ocurre si tenemos mal las anotaciones de la Entidad es decir si tenemos algo al estilo:

/*
*@ORM\Entity
*/
class Tienda{
.......


En lugar de

/**
*@ORM\Entity
*/
class Tienda{
.......

el segundo asterisco de la parte superior es vital para que Doctrine lo pueda reconocer como anotacion

domingo, 12 de mayo de 2013

symfony requisitos minimos

Aunque sea una cosa basica, es bueno tener en consideracion que la version minima de php que necesita symfony es la PHP 5.3.3

martes, 7 de mayo de 2013

symfony - Instalación y primeros pasos

Genial video de las charlas de desymfony, en el que nos hacen uan pequeña introduccion, y comparacion con otros frameworks, no solo de php, si no de otros lenguajes, tambien veremios la instalacion y comienzan con una aplicacion y vemos una manera rapida de hacer con symphony el controlador, y varias paginas estaticas, todo ello casi sin codigo, y en aproximadamente una hora
Gracias a David por darmelo a conocer ;)

martes, 24 de abril de 2012

Combo o Select en formulario Zend Dinamico

Al igual que en el anterior, deberemos copiar este código:

     $parametros= new Application_Model_Parametros();
     $valor = $parametros->TodoMochila();
    $this->addElement(
        'select','TipoObjeto',array(
            'label' => 'Tipo de Objeto',
            'value' => 'parametro',
            'multiOptions' => $valor
               
            )
    ); 
En el que  declaramos una variable llamada parametros, para inicializar un modelo que tenemos creado llamado paramatros, después declaramos otra variable llamada valor y la llenemos con los valores que nos devuelve un Action que tenemos dentro de parametros, llamado TodoMochila, añadimos el select como vimos en el punto anterior, y a los valores (multiOptions) le asignamos la variable Valor, con todos los datos de nuestro action.

Es muy importante que nuestro action solo nos devuelva 2 columnas, ya que el select no puede gestionar mas de 2 columnas y nos devolvería un error, o no se mostraría el formulario directamente.

Combo o Select en formulario Zend

Para poder sacar un Select estático en un formulario Zend deberemos añadir el siguiente codigo:

    $this->addElement(
        'select','TipoObjeto',array(
            'label' => 'Tipo de Objeto',
            'multiOptions' => array(
                '1'=>'Opcion1',
                '2'=>'Opcion2')
            )
    ); 

en donde le decimos que nos añada un nuevo elemento, que es del tipo Select, con el nombre TipoObjejo, le añadimos un label con el mismo nombre, y le damos las opciones en un array.