HEX
Server: nginx/1.27.1
System: Linux in-4 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: ilikadirect (1186)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v6964/testingff/public_html/fdfctr/wp-content/plugins/staff-list/inc/cnt-mp.php
<?php
//Before print delete.
//Returns MP content + container. 
//Called from cnt.php.

//== MP FIELD START ========================================== 
function abcfsl_cnt_MP( $par, $tplateOptns, $itemOptns ){

    $spanMP = '';
    $F = $par['F'];
    $masterF = $par['masterF'];
    if( $masterF == '' ){ $masterF = $F; }

    //-----------------------------------------------------------
    $addSpan = true;
    // Get field content. Each part enclosed in span tags.
    $spanMP = abcfsl_cnt_MP_field( $tplateOptns, $itemOptns, $F, $masterF, $par['isSingle'], $addSpan );
    if( abcfl_html_isblank( $spanMP ) ) { return ''; }
    //-----------------------------------------------------------

    // Checkbox Create link to single page.
    $sPgLnkMP = isset( $tplateOptns['_sPgLnkMP_' . $F] ) ? $tplateOptns['_sPgLnkMP_' . $F][0] :'0';
    if( $sPgLnkMP == 1 ) { 
        $spanMP = abcfsl_cnt_MP_SPTL( $par, $itemOptns, $spanMP );
    }
    //-----------------------------------------------------------

    $cntrS = abcfl_html_tag( $par['tagType'], '', $par['tagCls'] . $par['fieldTypeF'], $par['tagStyle'] );
    $cntrE = abcfl_html_tag_end( $par['tagType']);

    return $cntrS . $spanMP . $cntrE;

//<div class="abcfslMT15  abcfslF18_6 lstMP1">
//<span class="abcfslMP2">Ashworth, </span>
//<span class="abcfslMP1">Jessica </span>
//<span class="abcfslMP3">Title </span>
//<span class="abcfslMP4">Super </span>
//</div>
}

// Hyperlink to single page
function abcfsl_cnt_MP_SPTL( $par, $itemOptns, $spanMP ){

    // Staff member option
    $hideSPgLnk = isset( $itemOptns['_hideSPgLnk'] ) ? $itemOptns['_hideSPgLnk'][0] : '0';
    if( $hideSPgLnk == 1 ) { return $spanMP; }
    //-------------------------------------------------
    // Single Page Options. Link parts.
    $parLP['staffID'] = $par['itemID'];
    $parLP['sPageUrl'] = $par['sPageUrl'];
    // Template option: Show Link.
    $parLP['sPgLnkShow'] = $par['sPgLnkShow']; 
    $parLP['sPgLnkNT'] = $par['sPgLnkNT']; 
    $parLP['lineTxt'] = $spanMP;
    $parLP['imgLnkLDefault'] = 0;

    //-------------------------------------------------
    $isImgLink = false;
    $lnkParts = abcfsl_spg_a_tag_lnk_parts( $parLP, $itemOptns, $isImgLink );
    if( empty( $lnkParts['href'] ) ) {  return $spanMP; }
    //-------------------------------------------------

    $aTag = abcfl_html_a_tag_nb( $lnkParts['href'], $spanMP, $lnkParts['target'], $par['lnkCls'], $par['lnkStyle'], '', $lnkParts['onclick'], $lnkParts['args'] );
    return $aTag;
}

//Render MP parts enclosed in spans (display) or just parts (structular data).
function abcfsl_cnt_MP_field( $tplateOptns, $itemOptns, $F, $masterF, $isSingle, $addSpan ){

    $mp1 = isset( $itemOptns['_mp1_' . $masterF] ) ? esc_attr( $itemOptns['_mp1_' . $masterF][0] ) : '';
    $mp2 = isset( $itemOptns['_mp2_' . $masterF] ) ? esc_attr( $itemOptns['_mp2_' . $masterF][0] ) : '';
    $mp3 = isset( $itemOptns['_mp3_' . $masterF] ) ? esc_attr( $itemOptns['_mp3_' . $masterF][0] ) : '';
    $mp4 = isset( $itemOptns['_mp4_' . $masterF] ) ? esc_attr( $itemOptns['_mp4_' . $masterF][0] ) : ''; 
    $mp5 = isset( $itemOptns['_mp5_' . $masterF] ) ? esc_attr( $itemOptns['_mp5_' . $masterF][0] ) : ''; 
    
    if( abcfl_html_isblank( $mp1 . $mp2 . $mp3 . $mp4 . $mp5 ) ) { return ''; }

    // Field data comes from master. Order of fields should come from F main template.

    $orderP1 = isset( $tplateOptns['_orderLP1_' . $F] ) ?  $tplateOptns['_orderLP1_' . $F][0] : '0';
    $orderP2 = isset( $tplateOptns['_orderLP2_' . $F] ) ?  $tplateOptns['_orderLP2_' . $F][0] : '0';
    $orderP3 = isset( $tplateOptns['_orderLP3_' . $F] ) ?  $tplateOptns['_orderLP3_' . $F][0] : '0';
    $orderP4 = isset( $tplateOptns['_orderLP4_' . $F] ) ?  $tplateOptns['_orderLP4_' . $F][0] : '0';
    $orderP5 = isset( $tplateOptns['_orderLP5_' . $F] ) ?  $tplateOptns['_orderLP5_' . $F][0] : '0';

    $sfixP1 = isset( $tplateOptns['_sfixLP1_' . $F] ) ? esc_attr( $tplateOptns['_sfixLP1_' . $F][0] ) : '';
    $sfixP2 = isset( $tplateOptns['_sfixLP2_' . $F] ) ? esc_attr( $tplateOptns['_sfixLP2_' . $F][0] ) : '';
    $sfixP3 = isset( $tplateOptns['_sfixLP3_' . $F] ) ? esc_attr( $tplateOptns['_sfixLP3_' . $F][0] ) : '';
    $sfixP4 = isset( $tplateOptns['_sfixLP4_' . $F] ) ? esc_attr( $tplateOptns['_sfixLP4_' . $F][0] ) : '';
    $sfixP5 = isset( $tplateOptns['_sfixLP5_' . $F] ) ? esc_attr( $tplateOptns['_sfixLP5_' . $F][0] ) : '';

    $pfixP1 = isset( $tplateOptns['_pfixLP1_' . $F] ) ? esc_attr( $tplateOptns['_pfixLP1_' . $F][0] ) : '';
    $pfixP2 = isset( $tplateOptns['_pfixLP2_' . $F] ) ? esc_attr( $tplateOptns['_pfixLP2_' . $F][0] ) : '';
    $pfixP3 = isset( $tplateOptns['_pfixLP3_' . $F] ) ? esc_attr( $tplateOptns['_pfixLP3_' . $F][0] ) : '';
    $pfixP4 = isset( $tplateOptns['_pfixLP4_' . $F] ) ? esc_attr( $tplateOptns['_pfixLP4_' . $F][0] ) : '';  
    $pfixP5 = isset( $tplateOptns['_pfixLP5_' . $F] ) ? esc_attr( $tplateOptns['_pfixLP5_' . $F][0] ) : '';       
    
    if( $isSingle ){
        $orderP1 = isset( $tplateOptns['_orderSP1_' . $F] ) ? $tplateOptns['_orderSP1_' . $F][0] : '0';
        $orderP2 = isset( $tplateOptns['_orderSP2_' . $F] ) ? $tplateOptns['_orderSP2_' . $F][0] : '0';
        $orderP3 = isset( $tplateOptns['_orderSP3_' . $F] ) ? $tplateOptns['_orderSP3_' . $F][0] : '0';
        $orderP4 = isset( $tplateOptns['_orderSP4_' . $F] ) ? $tplateOptns['_orderSP4_' . $F][0] : '0';
        $orderP5 = isset( $tplateOptns['_orderSP5_' . $F] ) ? $tplateOptns['_orderSP5_' . $F][0] : '0';

        $sfixP1 = isset( $tplateOptns['_sfixSP1_' . $F] ) ? esc_attr( $tplateOptns['_sfixSP1_' . $F][0] ) : '';
        $sfixP2 = isset( $tplateOptns['_sfixSP2_' . $F] ) ? esc_attr( $tplateOptns['_sfixSP2_' . $F][0] ) : '';
        $sfixP3 = isset( $tplateOptns['_sfixSP3_' . $F] ) ? esc_attr( $tplateOptns['_sfixSP3_' . $F][0] ) : '';
        $sfixP4 = isset( $tplateOptns['_sfixSP4_' . $F] ) ? esc_attr( $tplateOptns['_sfixSP4_' . $F][0] ) : '';
        $sfixP5 = isset( $tplateOptns['_sfixSP5_' . $F] ) ? esc_attr( $tplateOptns['_sfixSP5_' . $F][0] ) : '';
        
        $pfixP1 = isset( $tplateOptns['_pfixSP1_' . $F] ) ? esc_attr( $tplateOptns['_pfixSP1_' . $F][0] ) : '';
        $pfixP2 = isset( $tplateOptns['_pfixSP2_' . $F] ) ? esc_attr( $tplateOptns['_pfixSP2_' . $F][0] ) : '';
        $pfixP3 = isset( $tplateOptns['_pfixSP3_' . $F] ) ? esc_attr( $tplateOptns['_pfixSP3_' . $F][0] ) : '';
        $pfixP4 = isset( $tplateOptns['_pfixSP4_' . $F] ) ? esc_attr( $tplateOptns['_pfixSP4_' . $F][0] ) : '';
        $pfixP5 = isset( $tplateOptns['_pfixSP5_' . $F] ) ? esc_attr( $tplateOptns['_pfixSP5_' . $F][0] ) : '';
    }

    $nameParts = array();
    if( abcfsl_cnt_MP_field_not_empty( $orderP1, $mp1 ) ) { $nameParts[1] = abcfsl_cnt_MP_field_array( $orderP1, $mp1, $pfixP1, $sfixP1, 'MP1' ); }
    if( abcfsl_cnt_MP_field_not_empty( $orderP2, $mp2 ) ) { $nameParts[2] = abcfsl_cnt_MP_field_array( $orderP2, $mp2, $pfixP2, $sfixP2, 'MP2' ); }
    if( abcfsl_cnt_MP_field_not_empty( $orderP3, $mp3 ) ) { $nameParts[3] = abcfsl_cnt_MP_field_array( $orderP3, $mp3, $pfixP3, $sfixP3, 'MP3' ); }
    if( abcfsl_cnt_MP_field_not_empty( $orderP4, $mp4 ) ) { $nameParts[4] = abcfsl_cnt_MP_field_array( $orderP4, $mp4, $pfixP4, $sfixP4, 'MP4' ); }
    if( abcfsl_cnt_MP_field_not_empty( $orderP5, $mp5 ) ) { $nameParts[5] = abcfsl_cnt_MP_field_array( $orderP5, $mp5, $pfixP5, $sfixP5, 'MP5' ); }

    //Rendered on the page. All parts are in span tag.
    if( $addSpan ){
        return abcfsl_cnt_MP_name_builder_spans( $nameParts );
    }

    //Structural data output - no spans.
    return abcfsl_cnt_MP_name_builder_struct_txt( $nameParts );
}

function abcfsl_cnt_MP_name_builder_struct_txt( $nameParts ){

    //Reorder arrays of field parts by field order.    
    usort( $nameParts, 'abcfsl_cnt_MP_fields_fix_sort' );

    $structTxt = '';
    foreach ( $nameParts as $values ) {
        foreach ($values as $key => $value) {
            switch ( $key ){
                case 'mp':
                    $structTxt .= $value . ' '; 
                    break;
                default:
                    break;
            }
        }
    }
    return $structTxt;
}

function abcfsl_cnt_MP_name_builder_spans( $nameParts ){

    // [1] => Array
    //     (
    //         [pfix] => 
    //         [mp] => Jan
    //         [sfix] => 
    //         [order] => 1
    //         [part] => MP1
    //     )

    //Reorder arrays of field parts by field order.    
    usort( $nameParts, 'abcfsl_cnt_MP_fields_fix_sort' );

    $partsQty = count( $nameParts );

    $partTxt = '';
    $spans = '';
    $i = 0;
    $partNo = '';
    $pfix = '';
    //Multidimensional associative array
    $partsArray = array();
    //associative array index
    $arrayIdx = 0;
    foreach ( $nameParts as $values ) {
        $arrayIdx++;
        foreach ($values as $key => $value) {
            switch ( $key ){
                case 'pfix':                    
                    $pfix = $value;
                    $i++;
                    break;
                case 'mp':
                    $partTxt .= $value;
                    $i++;
                    break;
                case 'sfix':
                    // Hide suffix if rendered as last part.
                    if( $arrayIdx < $partsQty ) { $partTxt .= $value; }                
                    //$partTxt .= $value;
                    $i++;
                    break;
                case 'part':
                    $partNo = $value;
                    $i++;
                    break;
                default:
                    break;
            }

            if( $i == 4 ){
                $partsArray = abcfsl_cnt_MP_prefix( $partsArray, $pfix, $arrayIdx, $partNo, $partTxt );
                $partTxt = '';
                $partNo = '';
                $pfix = '';
                $i = 0;
            }
        }
    }

    foreach ( $partsArray as $partArray ) {
        $spans .= '<span class="abcfslSpan' . $partArray['partNo'] . '">' . $partArray['txt'] . ' </span>';
    }
    return $spans;
}

//Add or move prefix.
function abcfsl_cnt_MP_prefix( $partsArray, $pfix, $arrayIdx, $partNo, $partTxt ){

    if( abcfl_html_isblank( $pfix ) ) { 
        $partsArray[$arrayIdx]['partNo'] = $partNo;
        $partsArray[$arrayIdx]['txt'] = $partTxt;
        return $partsArray;
    }

    $pfix = abcfsl_cnt_MP_prefix_space( $pfix );

    if ( $arrayIdx == 1 ) { 
        $partsArray[$arrayIdx]['partNo'] = $partNo;
        $partsArray[$arrayIdx]['txt'] = $pfix . $partTxt;
        return $partsArray;
    }    

    $moveTo = $arrayIdx -1;
    $partsArray[$moveTo]['txt'] = $partsArray[$moveTo]['txt'] . $pfix;
    $partsArray[$arrayIdx]['partNo'] = $partNo;
    $partsArray[$arrayIdx]['txt'] = $partTxt;
    
    return $partsArray;

    // $xarray[1]['partNo'] = 'MP1';
    // $xarray[1]['txt'] = 'Ashworth,';
    // $xarray[2]['partNo'] = 'MP1';
    // $xarray[2]['txt'] = 'Jessica;';
}

//Add nbsp before prefix to have leading or trailing space.
function abcfsl_cnt_MP_prefix_space( $pfix ){

    if( abcfl_util_starts_with ( $pfix, 'nbsp ' ) ){
        $pfix = ' ' . substr( $pfix, 5 );
        return $pfix;
    }

    if( abcfl_util_ends_with ( $pfix, ' nbsp' ) ){
        $pfix = substr($pfix, 0, -5) . ' ';
        return $pfix;
    }
    return $pfix;
}

function abcfsl_cnt_MP_field_not_empty( $order, $mp ){
    if( $order != 0 && !abcfl_html_isblank( $mp ) ){
        return true;
    }
    return false;
}

function abcfsl_cnt_MP_field_array( $order, $mp, $pfix, $sfix, $part ){
    return array(        
        'pfix' => $pfix,
        'mp' => $mp,         
        'sfix' => $sfix, 
        'order' => $order,         
        'part' => $part 
    );
}

function abcfsl_cnt_MP_fields_fix_sort( $a, $b ){
    return $a['order'] - $b['order'];
}