REFACTOR Refining comments for better understandability
This commit is contained in:
parent
3942ec94b7
commit
318edb5b6c
|
|
@ -9,16 +9,24 @@ function dynamiques_revue_save_post($post_id)
|
|||
$post_type = get_post_type($post_id);
|
||||
if ($post_type !== 'revues') return;
|
||||
|
||||
// DE-LINK ARTICLES NOT USED IN THE ACF CHAPTER HANDLER IN REVUE POST ('articles' field)
|
||||
// Remove articles that are no longer associated with the current review
|
||||
dynamiques_revue_empty_unmapped_articles($current_revue_ID);
|
||||
|
||||
// Link articles to the current review
|
||||
dynamiques_revue_link_mapped_articles($current_revue_ID);
|
||||
}
|
||||
add_action('acf/save_post', 'dynamiques_revue_save_post', 20);
|
||||
|
||||
|
||||
//*******************************************************************************************************/
|
||||
// Compare the articles linked to the current review being saved and remove those that are no longer associated
|
||||
//*******************************************************************************************************/
|
||||
|
||||
|
||||
function dynamiques_revue_empty_unmapped_articles($current_revue_ID)
|
||||
{
|
||||
$articles = get_field('articles', $current_revue_ID);
|
||||
if (!$articles) return;
|
||||
|
||||
// GET ALL ARTICLES RELATED TO THE REVUE AND CHECK IF THEY ARE HANDLED BY THE PARENT REVUE IN THE ARTICLE FIELD
|
||||
|
||||
|
|
@ -58,6 +66,7 @@ function dynamiques_revue_empty_unmapped_articles($current_revue_ID)
|
|||
function dynamiques_revue_link_mapped_articles($current_revue_ID)
|
||||
{
|
||||
$articles = get_field('articles', $current_revue_ID);
|
||||
if (!$articles) return;
|
||||
|
||||
foreach ($articles as $article) {
|
||||
$article_id = $article->ID;
|
||||
|
|
@ -65,3 +74,42 @@ function dynamiques_revue_link_mapped_articles($current_revue_ID)
|
|||
update_field('related_revue', $current_revue_ID, $article_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//*******************************************************************************************************/
|
||||
// Check if the issue number is already used by another revue
|
||||
//*******************************************************************************************************/
|
||||
|
||||
add_filter('acf/validate_value/name=issue_number', 'dynamiques_revue_check_issue_number', 10, 4);
|
||||
|
||||
function dynamiques_revue_check_issue_number($valid, $value, $field, $input)
|
||||
{
|
||||
if (!$valid) {
|
||||
return $valid;
|
||||
}
|
||||
|
||||
// Récupère l'ID du post en cours d'édition
|
||||
$current_revue_ID = isset($_POST['post_ID']) ? intval($_POST['post_ID']) : 0;
|
||||
|
||||
// Recherche d'autres revues avec le même numéro
|
||||
$args = array(
|
||||
'post_type' => 'revues',
|
||||
'post_status' => 'any',
|
||||
'posts_per_page' => 1,
|
||||
'post__not_in' => array($current_revue_ID),
|
||||
'meta_query' => array(
|
||||
array(
|
||||
'key' => 'issue_number',
|
||||
'value' => $value,
|
||||
'compare' => '=',
|
||||
),
|
||||
),
|
||||
);
|
||||
$query = new WP_Query($args);
|
||||
|
||||
if ($query->have_posts()) {
|
||||
return 'Ce numéro de revue existe déjà.';
|
||||
}
|
||||
|
||||
return $valid;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user