Ok - better, you know French - right? If yes, I can pass the ticket to supporter who can support you in French to avoid this language issue. Sounds good?
Bonjour! Minesh m'a demandé de continuer avec vous sur ce ticket en français.
Du moment que nous n'avons pas encore ouvert le forum français, je préfère qu'on continue on anglais. Pour que d'autres utilisateurs peuvent y trouver la réponse à leur besoins aussi.
J'ai essayé d'implementer ce shortcode sur votre site, mais je rencontre des problème lors de l'enregistrement de la content template. Le boutton "Mettere à jour" ne s'active pas systématiquement. Et je ne sais pas comment le réactiver. C'est d'ailleurs très bizarre. hidden link
Je pense qu'il y a une erreur de copier/coller avec les double guillemets et les simples guillemets, mais avec ce problème d'enregistrement, je n'arrive pas à travailler dessus. Quand j'active le bout de code que j'ai ajouté sur Toolset->Paramètres->Code personnalisé, la page ne fonctionne plus et devienne blanche.
Ci dessous les shortcodes qu'il faut utiliser, j'ai mis le slug de la relation Artists<>Livres:
- Previous link:
Je vous laisse le soin d'essayer de votre coté, et de voir si vous pouvez le régler. Si ça ne marche pas, j'aurais besoin de prendre une copie de votre site et de travailler locallement. Comme ça je peux désactiver d'autres extensions et changer de thème pour essayer de faire fonctionner le boutton "Mettre à jour".
Et aussi pour déboguer s'il y a une erreur(copier/coller) sur le bout de code. par ce que je soupçonne que le code fonctionne pour une relation one-to-many et non pas une relation many-to-many que vous avez actuellement.
Bonjour Jamal
Pour le bouton Mettre à jour bloqué, la seule solution que j'ai trouvé
c'est d'activer l'éditeur de code et ensuite de revenir à l'éditeur visuel
et le bouton Mettre à jour est actif
Mystère
Guy
Toutes mes excuses pour la réponse tardive, mais je ne travaille pas les mercredis et jeudis.
Basculer entre l'éditeur de code et l'éditeur de block n'active pas systématiquement le bouton mise à jour. J'avais aussi pu l'activer en basculant entre la vue bureau/tabletter/phone, mais ce n'est pas systématique non plus.
En activant le code personnalisé pour le shortcode la page devient toute blanche et rien n'est généré à part le menu de l'entête.
J'aimerais bien prendre une copie de votre site et travailler dessus localement. J'aurais la chance de désactiver toutes les autres extensions et d'utiliser une thème par défaut. J'aurais aussi la change de déboguer plus facilement que de le faire directement sur votre site. Et pour cela j'aurais besoin de votre accord avant de pouvoir prendre une copie. Est ce possible?
Comme la relation actuelle entre artists et livre est une relation many-to-many, il est peut être impossible de savoir correctement quel livre est le précédent ou suivant. Surtout quand le livre actuel est relié à plusieurs artists, avec quel artist on devrait chercher?
Alors j'ai créé un bout de code qui va chercher les livres du premier artiste lié au livre courant et j'ai pu générer correctement le précédent et suivant livres. Voir cette capture d'écran hidden link
Le bout de code qui a permis de le faire est le suivant:
// get a link to the next or previous sibling post in child post content template
// example: [tssupp-next-prev-child current="[wpv-post-id]" step="1" relslug="book-chapter"][/tssupp-next-prev-child]
// @current: current post id
// @step: 1 for next or -1 for previous
// @relslug: slug of the post relationship
function tssupp_next_prev_child($atts) {
$a = shortcode_atts( array(
'current' => 0,
'step' => '1',
'relslug' => '',
), $atts );
$link = '';
// get all child posts
$relationship_slug = $a['relslug'];
$current_child_id = $a['current'];
$parent_id = toolset_get_related_posts( (int) $current_child_id, $relationship_slug, array( 'query_by_role' => 'parent', 'return' => 'post_id' ) );
$sibling_args = array(
'query_by_role'=>'child',
'limit'=>1000,
'return' => 'post_id'
);
if ( count( $parent_id ) > 0 ) $parent_id = $parent_id[0];
$siblings = toolset_get_related_posts( $parent_id, $relationship_slug, $sibling_args );
// loop over child posts and get index of the current post
foreach($siblings as $i=>$sibling) {
if( $sibling == $current_child_id ) {
break;
}
}
// increment or decrement index for next or previous sibling
$i += $a['step'];
// create link to next/previous sibling
if(isset($siblings[$i])){
$perm = get_the_permalink( $siblings[$i] );
$title = get_the_title( $siblings[$i] );
$link .= $a['step']=='1' ? "Next: " : "Previous: ";
$link .= "<a href='" . $perm . "'>" . $title . "</a>";
}
// output the link, or empty string if not set
return $link;
}
add_shortcode( 'tssupp-next-prev-child', 'tssupp_next_prev_child' );
Sur la ligne 24, on prent le premier artiste(parent post) lié au livre courant:
Le code ne gérait pas un cas ou il n'existe pas de post parent, ce qui arrive sur l'éditeur de block. Alors j'ai mis à jour la ligne 24 pour gérer ce cas: