Skip to content

Ajouter un role sur un document supprime le logo

Toujours dans mes tests

  • SPIP 4.1,
  • uniquement les plugins roles et roles_documents en master
  • un plugin de base produit par la fabrique avec un objet testrole et <utilise nom="roles_documents"/> dans le paquet

Dans le pipeline :

	$tables['spip_documents'] = array_merge_recursive(
		$tables['spip_documents'],
		[
			'roles_titres' => [
				'diaporama' => 'Diaporama',
			],
			'roles_objets' => [
				'testroles' => array_merge_recursive(
					$tables['spip_documents']['roles_objets']['*'],
					[
						'choix' => ['diaporama'],
					]
				),
				'rubriques' => array_merge_recursive(
					$tables['spip_documents']['roles_objets']['*'],
					[
						'choix' => ['diaporama'],
					]
				),
			],
		]
	); 

En faisant un dump de la description de ['spip_documents']['roles_objets'] dans testrole_options, j'obtiens donc bien un tableau de rôles qui me semble correct :

Array (3)
(
  ['*'] => Array (3)
  (
    ['choix'] => Array (2)
    (
      ['0'] String(8) "document"
      ['1'] String(4) "logo"
    )
    ['defaut'] String(8) "document"
    ['principaux'] => Array (1)
    (
      ['0'] String(4) "logo"
    )
  )
  ['testroles'] => Array (3)
  (
    ['choix'] => Array (3)
    (
      ['0'] String(8) "document"
      ['1'] String(4) "logo"
      ['2'] String(9) "diaporama"
    )
    ['defaut'] String(8) "document"
    ['principaux'] => Array (1)
    (
      ['0'] String(4) "logo"
    )
  )
  ['rubriques'] => Array (3)
  (
    ['choix'] => Array (3)
    (
      ['0'] String(8) "document"
      ['1'] String(4) "logo"
      ['2'] String(9) "diaporama"
    )
    ['defaut'] String(8) "document"
    ['principaux'] => Array (1)
    (
      ['0'] String(4) "logo"
    )
  )
)

Les tests que j'ai faits :

J'ajoute un logo à une rubrique => OK

J'ajoute un document à la rubrique, en cochant les rôles Document et Diaporama => il n'a que le rôle Diaporama qui est pris en compte, pas Document (vérifié dans spip_documents_liens)

Est ce voulu ?

Je lui ajoute le rôle Document => OK, mais plus de logo, il a disparu dans spip_documents_liens

Je rajoute un logo, je retire un des rôles du document => OK

La rubrique a un logo, je lui ajoute un document, puis je donne le rôle Logo à ce document => il disparait et la rubrique n'a plus de logo.

Mais si la rubrique n'a pas de logo, et que je donne le rôle Logo à un document, là ça fonctione.

Idem sur une rubrique ou un objet testrole d'ailleurs.

Est ce que vous reproduisez ?