composer install.', 'sage'));
}
require $composer;
/*
|--------------------------------------------------------------------------
| Register The Bootloader
|--------------------------------------------------------------------------
|
| The first thing we will do is schedule a new Acorn application container
| to boot when WordPress is finished loading the theme. The application
| serves as the "glue" for all the components of Laravel and is
| the IoC container for the system binding all of the various parts.
|
*/
if (! function_exists('\Roots\bootloader')) {
wp_die(
__('You need to install Acorn to use this theme.', 'sage'),
'',
[
'link_url' => 'https://roots.io/acorn/docs/installation/',
'link_text' => __('Acorn Docs: Installation', 'sage'),
]
);
}
\Roots\bootloader()->boot();
/*
|--------------------------------------------------------------------------
| Register Sage Theme Files
|--------------------------------------------------------------------------
|
| Out of the box, Sage ships with categorically named theme files
| containing common functionality and setup to be bootstrapped with your
| theme. Simply add (or remove) files from the array below to change what
| is registered alongside Sage.
|
*/
collect(['setup', 'filters'])
->each(function ($file) {
if (! locate_template($file = "app/{$file}.php", true, true)) {
wp_die(
/* translators: %s is replaced with the relative file path */
sprintf(__('Error locating %s
for inclusion.', 'sage'), $file)
);
}
});
//ajout des champs personnalisés Minutage et Images; pour les afficher rdv dans le fichier content-single
//le faire qu'une suele fois et après mettre en commentaire
// function ajout_champs() {
// add_post_meta(get_the_ID(), 'Index', true);
// add_post_meta(get_the_ID(), 'Minutage', true);
// add_post_meta(get_the_ID(), 'Images', true);
// add_post_meta(get_the_ID(), 'BandeSon', true);
// add_post_meta(get_the_ID(), 'Ecrits', true);
// add_post_meta(get_the_ID(), 'VoixOffIn', true);
// add_post_meta(get_the_ID(), 'isMainPart', true);
// add_post_meta(get_the_ID(), 'isSubPart', true);
// }
// add_action('init', 'ajout_champs');
function cacher_bloc_head_admin() {
// Cache le bloc head du plugin de PublicPress
echo '';
echo '';
}
add_action('admin_head', 'cacher_bloc_head_admin');
function cacher_bloc_foot_admin() {
// Cache le bloc foot du plugin de PublicPress
echo '';
echo '';
echo '';
echo '';
}
add_action('admin_footer', 'cacher_bloc_foot_admin');
function custom_filter_dropdown() {
global $typenow;
if ($typenow == 'post') { // Adjust post type if needed
$selected = isset($_GET['custom_field_filter']) ? $_GET['custom_field_filter'] : '';
$options = array(
'isMainPart' => __('isMainPart', 'textdomain'),
'isSubPart' => __('isSubPart', 'textdomain'),
);
echo '';
}
}
add_action('restrict_manage_posts', 'custom_filter_dropdown');
function filter_by_custom_field($query) {
global $pagenow;
if (is_admin() && $pagenow == 'edit.php' && isset($_GET['custom_field_filter'])) {
$custom_field_key = sanitize_text_field($_GET['custom_field_filter']);
if (!empty($custom_field_key)) {
$meta_query = array(
array(
'key' => $custom_field_key,
'compare' => 'EXISTS',
),
);
$query->query_vars['meta_query'] = $meta_query;
}
}
}
add_filter('parse_query', 'filter_by_custom_field');
add_action('wp', 'generate_csv');
function generate_csv() {
if ('csv' === (isset($_GET['format']) ? $_GET['format'] : null)) {
// Query to get all posts
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => 'index',
'meta_type' => 'NUMERIC',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$posts = get_posts($args);
if (!empty($posts)) {
// Initialize CSV data array
$csvData = array();
// Add CSV header row
$csvData[] = array('Temps', 'Images', 'Voix Off et In', 'Bande Son', 'Écrits', 'Section');
// Loop through posts and add them to the CSV data array
foreach ($posts as $post) {
$post_content = wp_strip_all_tags($post->post_content);
$content_array = explode("---", $post_content);
$temps = $post->post_title;
$images = isset($content_array[1]) ? $content_array[1] : '';
$images = substr($images, 0, -15);
$voixOffIn = isset($content_array[2]) ? $content_array[2] : '';
$voixOffIn = substr($voixOffIn, 0, -10);
$bandeson = isset($content_array[3]) ? $content_array[3] : '';
$bandeson = substr($bandeson, 0, -8);
$ecrits = isset($content_array[4]) ? $content_array[4] : '';
if (get_post_meta($post->ID, 'isMainPart', true)) {
$section = get_post_meta($post->ID, 'isMainPart', true);
} elseif (get_post_meta($post->ID, 'isSubPart', true)) {
$section = get_post_meta($post->ID, 'isSubPart', true);
} else {
$section = '';
}
$csvData[] = array(
$temps,
$images,
$voixOffIn,
$bandeson,
$ecrits,
$section,
);
}
$csvFileName = 'partition_livre_d_image.csv';
header('Content-Encoding: UTF-8');
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $csvFileName);
echo "\xEF\xBB\xBF"; // UTF-8 BOM
// Output CSV data
$output = fopen('php://output', 'w');
foreach ($csvData as $row) {
fputcsv($output, $row);
}
fclose($output);
exit;
}
}
}
function custom_admin_styles() {
wp_enqueue_style('custom-admin', get_template_directory_uri() . '/resources/styles/admin_custom.css');
wp_enqueue_script('custom-admin-script', get_template_directory_uri() . '/resources/scripts/custom-admin-script.js', array(), null, true);
}
add_action('admin_enqueue_scripts', 'custom_admin_styles');
function restrict_revisions_by_author($query) {
global $current_user;
// Check if the user is logged in
if (is_user_logged_in()) {
get_currentuserinfo();
$author_id = $current_user->ID;
// Modify the query to filter revisions by author
if (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'revision') {
$query->set('author', $author_id);
}
}
}
add_action('pre_get_posts', 'restrict_revisions_by_author');
function customize_editor_for_editor_role() {
if (current_user_can('revisor')) {
wp_enqueue_script('custom-editor-script', get_template_directory_uri() . '/resources/scripts/custom-editor-script.js', array(), null, true);
wp_enqueue_style('custom-editor-style', get_template_directory_uri() . '/resources/styles/custom-editor-style.css');
// Create my revisions page
$current_user = wp_get_current_user();
$author_id = $current_user->ID;
$revisionary_page = admin_url('admin.php?page=revisionary-q&author=' . $author_id);
// Get the content of the specific page (replace '123' with the actual page ID)
$page_id = 13940;
$page_content = get_post_field('post_content', $page_id);
$website_url = site_url();
// Localize the page content to be accessible in your custom script
wp_localize_script('custom-editor-script', 'pageContentData', array(
'content' => $page_content,
'websiteUrl' => $website_url,
'myRevisionsUrl' => $revisionary_page,
));
}
}
add_action('admin_enqueue_scripts', 'customize_editor_for_editor_role');
function remove_roles() {
remove_role('author');
remove_role('editor');
remove_role('subscriber');
remove_role('contributor');
}
add_action('init', 'remove_roles');
// Redirect all post URLs to the homepage
function redirect_single_posts_to_homepage() {
if (is_single() && isset($_GET['p'])) {
wp_redirect(home_url(), 301);
exit();
}
}
add_action('template_redirect', 'redirect_single_posts_to_homepage');
function log_posts_with_user_revisions() {
$current_user = wp_get_current_user();
if (current_user_can('revisor')) {
if ($current_user instanceof WP_User) {
$current_user_id = $current_user->ID;
$args = array(
'post_type' => 'revision', // Fetch all post types including revisions
'post_status' => 'inherit', // Fetch all post statuses including revisions
'posts_per_page' => -1, // Retrieve all posts
'author' => $current_user_id,
'fields' => 'ids', // Retrieve only IDs to speed up the query
);
$all_posts = get_posts($args);
$parents_posts_ids = array();
$revisions_dates = array();
foreach ($all_posts as $post_id) {
$current_revision_date = array();
$current_revision_date[] = get_post(wp_get_post_parent_id($post_id))->post_title;
$current_revision_date[] = get_post($post_id)->post_date;
$revisions_dates[] = $current_revision_date;
$parents_posts_ids[] = wp_get_post_parent_id($post_id);
}
$parents_posts_ids = array_unique($parents_posts_ids);
$history_posts_titles = array();
$history_posts_contents = array();
foreach ($parents_posts_ids as $parent_post_id) {
$history_posts_titles[] = get_post($parent_post_id)->post_title;
$history_posts_contents[] = strip_tags(get_post($parent_post_id)->post_content);
}
// Enqueue the script
wp_enqueue_script('contribution-history-script', get_template_directory_uri() . '/resources/scripts/contribution_history.js', array('jquery'), '1.0', true);
// Localize script to pass data to JavaScript
wp_localize_script('contribution-history-script', 'historyData', array(
'titles' => $history_posts_titles,
'contents' => $history_posts_contents,
'dates' => $revisions_dates
));
}
}
}
add_action('admin_enqueue_scripts', 'log_posts_with_user_revisions');
// function supprimer_tous_les_articles() {
// $args = array(
// 'post_type' => 'post',
// 'posts_per_page' => -1,
// );
// $posts = get_posts($args);
// foreach ($posts as $post) {
// wp_delete_post($post->ID, true);
// }
// }
// add_action('init', 'supprimer_tous_les_articles');