RastaPopoulos


Ohloh profile for RastaPopoulos

Attention

Toute demande directement envoyée à moi uniquement, et non pas sur le forum public dédié à chaque contribution, se verra facturée 75 € HT de l’heure. Merci de votre attention. :)

Moi

Je suis potentiellement humain.
Je ne sais rien faire.
J’aime le fromage.
C’est tout.

Bloc-notes SPIP 3

Redirection lors de la migration depuis un très vieux SPIP
Ce sont les plugins-dist qui merdoient. Renommer le dossier, faire la migration du noyau tout seul, puis remettre le dossier et terminer la migration des plugins.

Les fonctions sur les objets :

// Dans ce fichier
include_spip('base/objets.php');
// Lister tous les vrais objets
$objets = lister_tables_objets_sql();
// Connaître la clé primaire d'un objet
$cle_objet = id_table_objet('patate');

Les icônes à créer pour un objet :

  • patate-16/24/32.png
  • patate-add-16/24/32.png
  • patate-del-16/24/32.png
  • patate-new-16/24/32.png

Les chaînes de langue reconnues automatiquement pour un objet (càd sans les déclarer dans le pipeline “tables_objets_sql”) :

array(
'icone_creer_patate' => 'Ajouter une nouvelle patate',
'icone_modifier_patate' => 'Modifier cette patate',
'info_1_patate' => 'Une patate',
'info_aucun_patate' => 'Aucune patate',
'info_nb_patates' => '@nb@ patates',
'titre_patate' => 'Patates',
'titre_patate' => 'Patate',
'titre_logo_patate' => 'Logo de cette patate',
)

Les fonctions CVT génériques :

include_spip('inc/editer');
 
// Charger une édition (tout est facultatif)
formulaires_editer_objet_charger('patate', $id_patate, $id_rubrique, $id_trad, $retour, 'fonction_config', $row, $hidden);
 
// On peut créer une fonction pour précharger les champs
// Ça doit être dans inc/precharger_patate.php
include_spip('inc/precharger_objet'); // Fonction générique de préchargement
function inc_precharger_article_dist($id_article, $id_rubrique=0, $lier_trad=0) {
	return precharger_objet('patate', $id_patate, $id_rubrique, $lier_trad, 'titre');
}
 
// Vérifier une édition (tableau pour les champs obligatoires)
formulaires_editer_objet_verifier('patate', $id_patate, array('titre', 'obligatoire'));
 
// Traiter une édition (tout est facultatif)
formulaires_editer_objet_traiter('patate', $id_patate, $id_rubrique, $id_trad, $retour, 'fonction_config', $row, $hidden);
// Ça appelle l'action/editer_patate.php
action_editer_patate_dist($id_patate);

Action pour modifier les champs dans une action editer_patate :

$erreur_eventuelle = objet_modifier_champs(...);
// au lieu de l'ancien
modifier_contenu(...)

Déclarer une fonction alternative pour trouver les jointures de recherche
Lorsqu’on déclare des tables jointes dans lesquelles faire des recherches, SPIP essaye de trouver tout seul comment joindre la table. Mais lorsque ça ne correspond pas à un cas par défaut, il est possible de déclarer des fonctions alternatives pour faire la jointure nous-même.

// Par exemple si pour une recherche sur un article, j'ai déclaré qu'il faut aussi chercher dans les patates liées, alors SPIP va chercher dans l'ordre :
inc_rechercher_joints_article_patate[_dist]($table, $table_lie, $ids_trouves, $serveur)
inc_rechercher_joints_objet_patate[_dist]($table, $table_lie, $ids_trouves, $serveur)
inc_rechercher_joints_article_objet_lie[_dist]($table, $table_lie, $ids_trouves, $serveur)
 
// Dans cette fonction on doit renvoyer un tableau avec la clé de chaque table et le résultat d'un SELECT trouvant les objets ayant un lien avec les $ids_trouves
 
// Exemple : Polyhiérarchie a une table standard spip_rubriques_liens MAIS utilise un champ "id_parent" plutôt qu'un champ "id_rubrique", et donc SPIP ne sait pas faire la jointure tout seul. On utilise donc :
function inc_rechercher_joints_objet_rubrique_dist($table, $table_liee, $ids_trouves, $serveur){
	$cle_depart = id_table_objet($table);
	$s = sql_select(
		"id_objet as $cle_depart, id_parent as id_rubrique",
		'spip_rubriques_liens',
		array("objet='$table'", sql_in('id_parent', $ids_trouves)),
		'','','','',$serveur
	);
	return array($cle_depart, 'id_rubrique', $s);
}

View online : Les Développements Durables

RastaPopoulos a commenté :

1 | ... | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | ... | 213

Send a message