Casiva Agustin

Engineering, Development and IT Management

Hi there! 👋

I’m Agustin Casiva, I’m a Software Engineer from Argentina.

I have been working on IT for many years now, I worked in many fields of the industry, such as hardware support, networking, sysadmin but what I do love most is development.

I have worked for many organizations, public and private, local and remote, filling many roles.

My expertise is on Web Development, Linux, Open Source, CMSs, HTML, CSS, PHP, JavaScript, Backend Development, Product Development, Project Management, Team Leading, among others.

In 2013 I have founded 42mate, a Web Development Agency focused on the design, development, maintenance of Web Apps. I still work on 42mate where I work leading development teams and scoping new projects.

Besides 42mate I also work as an independent consultant where I provide services such as

  • Development Training, for individuals or teams.
  • Architecture Design and Review.
  • Tech Advisor for non tech startup founders.
  • Tech Advisor for Digital Design Agencies.

If you are interested on my services let’s talk!

More about me

Drupal, Quitar fields de un Content Type

Obviamente que usando el editor de content types en drupal es muy sencillo agregar o quitar fields de una manera visual, pero eso no nos sirve cuando trabajamos en equipo y tenemos multiples entornos.

Sabido también es que features es nuestro aliado para estos casos en Drupal 7, el gran problema que tiene es que feature es muy piola para fields nuevas pero no tanto para eliminar fields que no usamos mas, features no tiene forma de saber que una field debe ser borrada en otro entorno. Por esto es que si queremos eliminar fields de un content type debemos hacerlo via código con un hook_update.

El código para borrar una field es bien sencillo, sería algo asi.

  if (field_info_field('field_my_field_name')) {
    field_delete_field('field_my_field_name');
  }

Eso hará el trabajo, peeeeeero, tengan en cuenta que una field posee instancias, y por cada content type que la utiliza (recuerden que las fields se pueden reutilizar) existe una instancia. El problema del snippet anterior es que al borrar la field la borra de todos los content types y tal vez nosotros solo deseemos borrar la field de un solo content type. Si este es su caso el sinnipet a utilizar es el siguiente

 
  if ($instance = field_info_instance('node', 'field_my_field_name', 'node_type_name')) {
    field_delete_instance($instance);
  }

Esto eliminará la field field_my_field_name del tipo de contenido node_type_name. Si otro content type utiliza field_my_field_name la tendrá disponible. Si nadie mas utiliza la field esta será eliminada por completo.

Recomendación, utilicen siempre el segundo caso dado que con este no hay forma de equivocarse y borrar una field en otro content type accidentalmente.

Mas info en

https://api.drupal.org/api/drupal/modules%21field%21field.crud.inc/function/field_delete_instance/7

Leave a Reply

Your email address will not be published. Required fields are marked *

*