Plesk y :/tmp

Author: Adrià Cidre  |  Category: PHP

Bueno estoy probando un servidor con Plesk, y me daba un error muy molesto cuando trataba de seguir los enlaces de sistema a través de apache, el problema viene de una línea de código como esta:

“php_admin_value open_basedir "/var/www/vhosts/midominio.com/httpdocs:/tmp"

situada en el fichero

“/var/www/vhosts/midominio.com/conf/httpd.include”

La solución “(aparente)” es comentar esta línea y punto. Sin embargo, Plesk en una de sus rutinas internas va sobreescribiendo periódicamente este fichero con lo que los cambios solo tienen efecto durante un corto periodo de tiempo.

La solución es crear el fichero:

“/var/www/vhosts/bariperfil.com/conf/vhost.conf”

En el que deberemos escribir el siguiente código:

<Directory /var/www/vhosts/midominio.com/httpdocs>
        php_admin_value open_basedir none
</Directory>

Para, a continuación forzar que plesk se actualice para el dominio en cuestión, con el siguiente comando:

/usr/local/psa/admin/sbin/websrvmng -u –vhost-name=midominio.com

 

Espero que os sirva como a mi! Un quebradero de cabeza menos!!!

Buddypress – Automatizar creacion de grupos

Author: Adrià Cidre  |  Category: MiniCodes, PHP

Con esta función podemos crear desde PHP nuestros grupos en PHP.

function create_a_group() {

  $new_group = new custom_group;

      $new_group->creator_id = 1;
      $new_group->name = ‘test’;
      $new_group->slug = ‘test’;
      $new_group->description = ‘nothing’;
      $new_group->news = ‘whatever’;
      $new_group->status = ‘public’;
      $new_group->is_invitation_only = 1;
      $new_group->enable_wire = 1;
      $new_group->enable_forum = 1;
      $new_group->enable_photos = 1;
      $new_group->photos_admin_only = 1;
      $new_group->date_created = current_time(‘mysql’);
      $new_group->total_member_count = 1;
      $new_group->avatar_thumb = ’some kind of path’;
      $new_group->avatar_full = ’some kind of path’;

  $new_group -> save();

  groups_update_groupmeta( $id, ‘total_member_count’, 1 );
  groups_update_groupmeta( $id, ‘last_activity’, time() );
  groups_update_groupmeta( $id, ‘theme’, ‘buddypress’ );
  groups_update_groupmeta( $id, ’stylesheet’, ‘buddypress’ );

}

JSON parser – Testea tus ficheros en JSON

Author: Adrià Cidre  |  Category: PHP

A veces cuando estamos desarrollando con AJAX, y utilizamos JSON como medio de intercambio de datos, se producen errores en el fichero JSON que por lo que sé no son detectados por firebug.
Encontré esta web donde ‘pegas’ tu JSON y te dice si es valido o no y donde ‘peta.

Online JSON Parser

Espero que os sirva como a mi :-)

En Defensa de los Derechos Fundamentales en Internet

Author: Adrià Cidre  |  Category: PHP

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

JQuery – Rellenar un calendario datepicker

Author: Adrià Cidre  |  Category: Java Script, PHP

Buenas,

después de mucho buscar, y no encontrar nada de nada, al final, desarrollé este código que inserta en la pagina un datepicker de JQueryUI, y lo rellena con datos servidos en JSON. Igual es una chorrada, pero no he encontrado nada mejor, así que aquí os lo dejo por si queréis echarle un vistazo.

Necesitaremos el siguiente script:

	$(function() {
		$("#datepicker").datepicker({
			numberOfMonths	: 3,
			monthNames			: ['Gener','Febrer','Març','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
			dayNamesMin			: ['Diu', 'Dill', 'Dim', 'Dim', 'Dij', 'Div', 'Dis'],
			firstDay				: 1,
			currentText			: 'Avui',
			onChangeMonthYear: function(year, month, inst) {
				setTimeout("populateDays("+year+", "+month+")", 500);
			}
		});

	});

	function populateDays(year, month) {
		var months = $("#datepicker .ui-datepicker-group");

		for(var i=0; i

A continuación colocamos el objeto html en el lugar que nos interese:

Y por último necesitaremos un script de parte del servidor que pasandole los paramentros año y mes nos devuelva un array como el siguiente, con los dias en que el calendario contiene algún evento.
Para no aburriros os pongo directamente el tipo de código de salida, y ya os apañais ;-)

echo "{'year': 2009, 'month' : 10, 'days' : [3,4,10,11,12,22,23,24,25,26]}";

El resultado es algo parecido a esto:

Autocompletar Datepicker en Jquery

Autocompletar Datepicker en Jquery

Si tenéis alguna duda ya sabéis :-)

Psicocanis Servicio de etología clínica veterinaria

Author: Adrià Cidre  |  Category: PHP

Recientemente he lanzado Psicocanis.com una web/blog sobre etología clínica veterinaria, que intenta posicionarse como sitio de referencia en este sector.

Psicocanis - Servicio de etología clinica canina

Psicocanis - Servicio de etología clinica veterinaria

Espero que os guste

PHP: Array 2 JSON

Author: Adrià Cidre  |  Category: PHP

Genial función en PHP que transforma un array PHP en una salida tipo Json. Genial para PHP4 que no integraba esta funcionalidad de serie.


function array2json($arr) {
  if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.
  $parts = array();
  $is_list = false; 

  //Find out if the given array is a numerical array
  $keys = array_keys($arr);
  $max_length = count($arr)-1;
  if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1
      $is_list = true;
      for($i=0; $i$value) {
      if(is_array($value)) { //Custom handling for arrays
          if($is_list) $parts[] = array2json($value); /* :RECURSION: */
          else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */
      } else {
          $str = '';
          if(!$is_list) $str = '"' . $key . '":'; 

          //Custom handling for multiple data types
          if(is_numeric($value)) $str .= $value; //Numbers
          elseif($value === false) $str .= 'false'; //The booleans
          elseif($value === true) $str .= 'true';
          else $str .= '"' . addslashes($value) . '"'; //All other things
          // :TODO: Is there any more datatype we should be in the lookout for? (Object?) 

          $parts[] = $str;
      }
  }
  $json = implode(',',$parts); 

  if($is_list) return '[' . $json . ']';//Return numerical JSON
  return '{' . $json . '}';//Return associative JSON
}

PHP: Contraseña aleatoria

Author: Adrià Cidre  |  Category: MiniCodes, PHP

Cuando damos de alta usuarios de forma automática a menudo necesitamos poner una contraseña por defecto. Este script PHP nos devuelve una contraseña aleatoria de la longitud en caracteres que le pasemos


function getRandomPWD($length = 10){
  $password = "";
  $possible = "0123456789bcdfghjkmnpqrstvwxyz";
  $i = 0; 

  while ($i < $length) {
    $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);

    if (!strstr($password, $char)) {
      $password .= $char;
      $i++;
    }
  }
  return $password;
}

Código original

PHP – Diferencia entre dos fechas

Author: Adrià Cidre  |  Category: MiniCodes, PHP

Bueno pues igual que en javascript, aquí tenéis la función PHP para calcular los días/noches de diferencia entre dos fechas.


function dateDifference($d1, $d2){
	$v1 = explode("-", $d1);
  $date1 = mktime(0, 0, 0, intval($v1[1]), intval($v1[0]), intval($v1[2]));

	$v2 = explode("-", $d2);
  $date2 = mktime(0, 0, 0, intval($v2[1]), intval($v2[0]), intval($v2[2]));

  $dateDiff = $date2 - $date1;

  return floor($dateDiff/(60*60*24));
}

Javascript: Subir Imagenes con AJAX

Author: Adrià Cidre  |  Category: PHP

Mirando en the Bakery de CakePHP he encontrado una librería genial tanto para JQuery como para prototype, para cargar imagenes con AJAX.

Es francamente sencilla de utilizar, y además podemos conseguir unos acabados muy al estilo de web 2.0. eliminando de una vez por todas el input.file de toda la vida que a mi parecer es horroroso.

Podéis encontrar el articulo original aquí.