Crear id único para tipo de nodo

Events happening in the community are now at Drupal community events on www.drupal.org.
Daniel Del Cabo's picture

Hola a todos.

Tengo una duda técnica y si me pudieseis orientar os lo agradecería.
En un proyecto de drupal 7 debo de generar un campo dni para cada usuario y debe de ser único.
El DNI debería ser progresivo ID-001 , ID-002 , ID-003 según se van generando nuevos nodos.
He probado con el módulo UUI pero no me sirve. Sabéis alguna manera de hacerlo.
Había pensado utilizar variable_get para ir guardando un número que me diría cual es el siguiente a asignar.
¿Sabéis si se puede dar la circunstancia de que el sistema actué a la vez y cree dos usuarios iguales con este método del variable_get? .

Cualquier observación es bienvenida.

Muchas gracias

Comments

Utiliza el identificador de

dclavain's picture

Utiliza el identificador de usuario (uid)

Cierto

Daniel Del Cabo's picture

Cierto. Lo malo es que algunos usuarios no serán "elegidos" y eso me crea huecos en la numeración correlativa.
Muchas gracias.

Semáforos

frankgil's picture

Como comentas, dos llamadas concurrentes a variable_get() implicaría que se crearan dos registros con el mismo valor. Prueba usando semáforos (locking system) https://api.drupal.org/api/drupal/includes%21lock.inc/group/lock/7

Dentro del semáforo lees la variable y la actualizas, antes de liberar nuevamente el semáforo.

el modulo

marcoscano's picture

el modulo https://www.drupal.org/project/serial te puede ayudar

Pienso que podrías probar y

mariano.barcia's picture

Pienso que podrías probar y evaluar https://www.drupal.org/project/serial
No lo he utilizado, pero veo que en su versión -dev ya incorpora soporte para user.

Gracias

Daniel Del Cabo's picture

Voy a probar vuestras soluciones y os comento.
Muchas gracias por la ayuda.

Posible solución

Daniel Del Cabo's picture

Finalmente creo que utilizare Serial. Es limitado porque no me deja configurar un prefijo ID-0001, simplemente es un counter 1, 2.
Generare otro campo que se base en el serial y creare lo que quiero ID-0001.
Para el tema de los user he creado un campo en la ficha de profile2 que tengo asociada y me genera el campo serial.

Otra solución que ha propuesto frankgil de semáforos me ha parecido interesante. He encontrado una solución mixta entre lo que yo preguntaba con las variables y el sistema de semáforos.
http://www.boylesoftware.com/blog/synchronizing-variable-access-in-drupa...
Esta última solución parece idónea para abordar el tema pero tiene algunos conceptos que no controlo del todo y prefiero reservarlo para investigar cuando tenga un hueco.

Espero que os sirva de ayuda.

Muchas gracias.

Spain

Group organizers

Group categories

Región geográfica

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: