Skip to content
Extraits de code Groupes Projets
Valider 50b2e3b2 rédigé par nicod's avatar nicod
Parcourir les fichiers

Dans l'espace privé, remonter tous les blocs, mais dans le public uniquement les publiés

Trier les blocs par rang_lien
parent 90be7adf
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -66,29 +66,35 @@ function balise_GENERER_BLOCK_dist($p) { ...@@ -66,29 +66,35 @@ function balise_GENERER_BLOCK_dist($p) {
} }
function _block_charger_block($id_bloc) { function _block_charger_block($id_bloc) {
// TODO : vérifier statut $retour = '';
$infos = sql_fetsel( $where = ['b.id_bloc = ' . (int)$id_bloc];
if (!test_espace_prive()) {
$where[] = 'b.statut = ' . sql_quote('publie');
}
if ($infos = sql_fetsel(
'b.valeurs, bt.saisies, bt.identifiant', 'b.valeurs, bt.saisies, bt.identifiant',
'spip_blocs_types bt join spip_blocs b using(id_blocs_type)', 'spip_blocs_types bt join spip_blocs b using(id_blocs_type)',
'b.id_bloc = ' . (int)$id_bloc $where
); )) {
$contexte = [
$contexte = [ 'id_bloc' => $id_bloc,
'id_bloc' => $id_bloc, ];
]; // transmettre les valeurs saisies dans le bloc au squelette
// transmettre les valeurs saisies dans le bloc au squelette $saisies_bloc_type = blocks_deserialize($infos['saisies']);
$saisies_bloc_type = blocks_deserialize($infos['saisies']); if ($valeurs_saisies = blocks_deserialize($infos['valeurs'])) {
if ($valeurs_saisies = blocks_deserialize($infos['valeurs'])) { include_spip('inc/saisies_lister');
include_spip('inc/saisies_lister'); $saisies_par_nom = saisies_lister_par_nom($saisies_bloc_type);
$saisies_par_nom = saisies_lister_par_nom($saisies_bloc_type); foreach ($saisies_par_nom as $nom => $saisie) {
foreach ($saisies_par_nom as $nom => $saisie) { $contexte[$nom] = $valeurs_saisies[$nom];
$contexte[$nom] = $valeurs_saisies[$nom]; }
} }
}
$squelette = blocks_trouver_squelette($infos['identifiant']); $squelette = blocks_trouver_squelette($infos['identifiant']);
return recuperer_fond($squelette, $contexte); $retour = recuperer_fond($squelette, $contexte);
}
return $retour;
} }
/** /**
...@@ -129,15 +135,27 @@ function balise_GENERER_BLOCKS_dist($p) { ...@@ -129,15 +135,27 @@ function balise_GENERER_BLOCKS_dist($p) {
function _block_charger_blocks($objet, $id_objet) { function _block_charger_blocks($objet, $id_objet) {
$retour = ''; $retour = '';
$blocs = objet_trouver_liens(['bloc' => '*'], [$objet => $id_objet]); $where = [
// TODO : vérifier statuts et rangs_liens 'bl.objet = ' . sql_quote($objet),
'bl.id_objet = ' . (int)$id_objet,
];
if (!test_espace_prive()) {
$where[] = 'b.statut = ' . sql_quote('publie');
}
$blocs = sql_allfetsel(
'b.id_bloc',
'spip_blocs_liens bl join spip_blocs b using(id_bloc)',
$where,
'',
'bl.rang_lien'
);
foreach ($blocs as $bloc) { foreach ($blocs as $bloc) {
$retour .= _block_charger_block($bloc['id_bloc']); $retour .= _block_charger_block($bloc['id_bloc']);
} }
return $retour; return $retour;
} }
/** /**
* Générer le titre d'un bloc * Générer le titre d'un bloc
* composé de son type et du titre de l'objet auquel il est lié * composé de son type et du titre de l'objet auquel il est lié
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter