Napi beosztottak megjelenítése

Shortcode-on keresztül megjeleníthető az aktuális és a következő napra beosztottak listája. Csak azok a beosztottak jelennek meg, akik nem “szabadság” jellegű beosztással vannak beállítva.

Az aktuális nap beosztottai: [shift-schedule-users]

Egy adott nap beosztottai: [shift-schedule-users day="2020-12-20"]

A holnapi nap beosztottai: [shift-schedule-users day="tommorow"]

Az aktuálishoz képest 1 nappal későbbi beosztottak: [shift-schedule-users day="+1"]

Az aktuálishoz képest x nappal későbbi beosztottak: [shift-schedule-users day="+x"]

Műszak szűrő használata: [shift-schedule-users filter="slug1,slug2"]

Kategória szűrő használata: [shift-schedule-users category="category_slug1,category_slug2"]

A megjelenítés négy szűrőn keresztül módosítható. Ehhez az alábbi kódokat kell elhelyezni a (child) téma functions.php-ben, majd szükség szerint módosítani:

Egy dolgozó megjelenítése:

remove_filter('shift_schedule_show_user', 'shift_schedule_698_show_user');
function my_show_user($id, $flag) {

    $user = get_post($id);
    $image_src = get_the_post_thumbnail_url($id, 'post-thumbnail');
    $flag = shift_schedule_698_get_flag($flag);

    $html = '<li class="shift-schedule-user">'; 
    if (!empty($image_src)) {
        $html .= '<img src="'.$image_src.'" />';
    }
    $html .= '<span class="shift-schedule-user-title">'.$user->post_title.'</span>' .
             '<span class="flag" style="background-color:'.$flag->color.';">'.$flag->chars.'</span>'.
             '<span class="flag-title" data-slug="'.$flag->alias.'">'.$flag->title.'</span>';            
    
    $html .= '</li>';
    
    return $html;
}
add_filter('shift_schedule_show_user', 'my_show_user', 10, 2);

Csoportosítás:

remove_filter('shift_schedule_render_group', 'shift_schedule_698_render_group');
function my_render_group($html) {
    $html = '<ul class="shift-schedule-users">' . $html . '</ul>';
    return $html;    
}
add_filter('shift_schedule_render_group', 'my_render_group', 10, 1);

Dátum és beosztás típus megjelenítése:

Ez a szűrő a pluginban nincs definiálva, de ha a (chlid) témád functions.php-ben definiálod, akkor a plugin használni fogja. Segítségével a dátumot és a műszak típusokat tudod megjeleníteni.

function shift_schedule_my_render_properties($original_html, $day, $flags_text) {
    
    $day = date_i18n(get_option('date_format'), strtotime($day));
    
    $flags_html = '';
    $flags = array();
    if (!empty($flags_text)) {

        $flags = explode(',', $flags_text);
        $flags_html = array();
        $options = shift_schedule_698_get_options();

        foreach ($options['types'] as $type) {
            if (in_array($type->alias, $flags)) {
                $flags_html[] = '<div class="flag" style="background-color:'.$type->color.';">'.$type->title.'</div>';
            }
        }
        $flags_html = implode(', ', $flags_html);
    }

    $html = '<div class="shift-schedule-users-properties">' . 
            '<div class="shift-schedule-users-date '.implode(' ', $flags).'">'.$day.'</div>';
    if (!empty($flags_html)) {
        $html .= '<div class="shift-schedule-users-flags '.implode(' ', $flags).'">'.$flags_html.'</div>';
    }
    $html .= $original_html . '</div>';

    return $html;    
}
add_filter('shift_schedule_render_properties', 'shift_schedule_my_render_properties', 10, 3);

Ha nincs megjeleníthető dolgozó:

remove_filter('shift_schedule_no_sunordinates', 'shift_schedule_698_no_sunordinates');
function my_no_sunordinates($text) {
    return '<div class="shift-schedule-warning">' . $text . '</div>';
}
add_filter('shift_schedule_no_sunordinates', 'my_no_sunordinates', 10, 1);