2023-12-08 23:23:32 +00:00
< ? php
/**
* File : Cdnfsd_BunnyCdn_Popup_Pull_Zones . php
*
* Assists with configuring Bunny CDN as a full - site delivery CDN .
* A pull zone selection is presented along with a form to add a new pull zone .
*
2024-04-19 10:59:45 +00:00
* @ since 2.6 . 0
2023-12-08 23:23:32 +00:00
* @ package W3TC
*
* @ param array $details {
* Bunny CDN API configuration details .
*
* @ type array $pull_zones Pull zones .
* @ type string $error_message Error message ( optional ) .
* }
*/
namespace W3TC ;
defined ( 'W3TC' ) || die ();
?>
< form class = " w3tc_cdn_bunnycdn_fsd_form " method = " post " >
< input type = " hidden " name = " pull_zone_id " />
< input type = " hidden " name = " cdn_hostname " />
< div class = " metabox-holder " >
< ? php Util_Ui :: postbox_header ( esc_html__ ( 'Select a pull zone' , 'w3-total-cache' ) ); ?>
< table class = " form-table " >
< tr >
< select id = " w3tc-pull-zone-id " >
< option value = " " < ? php echo empty ( $details [ 'pull_zone_id' ] ) ? ' selected' : '' ; ?> >Add a new pull zone</option>
< ? php
if ( ! empty ( $details [ 'pull_zones' ] ) ) {
// List pull zones for selection.
foreach ( $details [ 'pull_zones' ] as $pull_zone ) {
// Skip pull zones that are disabled or suspended.
if ( ! $pull_zone [ 'Enabled' ] || $pull_zone [ 'Suspended' ] ) {
continue ;
}
// Get the CDN hostname and custom hostnames.
$cdn_hostname = '?' ;
$custom_hostnames = array ();
foreach ( $pull_zone [ 'Hostnames' ] as $hostname ) {
// Get the CDN hostname. It should be the system hostname.
if ( ! empty ( $hostname [ 'Value' ] ) ) {
if ( ! empty ( $hostname [ 'IsSystemHostname' ] ) ) {
// CDN hostname (system); there should only be one.
$cdn_hostname = $hostname [ 'Value' ];
} else {
// Custom hostnames; 0 or more.
$custom_hostnames [] = $hostname [ 'Value' ];
}
}
}
// Determine the origin URL/IP.
$origin_url = empty ( $pull_zone [ 'OriginUrl' ] ) ? $cdn_hostname : $pull_zone [ 'OriginUrl' ];
// Determine if the current option is selected.
$is_selected = isset ( $details [ 'pull_zone_id' ] ) && $details [ 'pull_zone_id' ] === $pull_zone [ 'Id' ];
// Print the select option.
?>
< option value = " <?php echo esc_attr( $pull_zone['Id'] ); ?> "
< ? php echo $is_selected ? ' selected' : '' ; ?>
data - origin = " <?php echo esc_html( $origin_url ); ?> "
data - name = " <?php echo esc_attr( $pull_zone['Name'] ); ?> "
data - cdn - hostname = " <?php echo esc_attr( $cdn_hostname ); ?> "
data - custom - hostnames = " <?php echo esc_attr( implode( ',', $custom_hostnames ) ); ?> " >
< ? php echo esc_attr ( $pull_zone [ 'Name' ] ); ?>
( < ? php echo esc_html ( $origin_url ); ?> )
</ option >
< ? php
// If selected, then get the origin URL/IP and pull zone name.
if ( $is_selected ) {
$selected_origin_url = $origin_url ;
$selected_name = $pull_zone [ 'Name' ];
$selected_custom_hostnames = implode ( " \r \n " , $custom_hostnames );
}
}
}
// Determine origin URL and pull zone name for the fields below.
$field_origin_url = isset ( $selected_origin_url ) ? $selected_origin_url : $details [ 'suggested_origin_url' ];
$field_name = isset ( $selected_name ) ? $selected_name : $details [ 'suggested_zone_name' ];
$field_custom_hostnames = isset ( $selected_name ) ? $selected_name : $details [ 'suggested_custom_hostname' ];
?>
</ select >
</ tr >
< tr >
< td >< ? php esc_html_e ( 'Pull Zone Name' , 'w3-total-cache' ); ?> :</td>
< td >
< input id = " w3tc-pull-zone-name " name = " name " type = " text " class = " w3tc-ignore-change "
style = " width: 550px " value = " <?php echo esc_attr( $field_name ); ?> "
< ? php echo ( empty ( $details [ 'pull_zone_id' ] ) ? '' : 'readonly ' ); ?>
data - suggested = " <?php echo esc_attr( $details['suggested_zone_name'] ); ?> " />
< p class = " description " >
< ? php esc_html_e ( 'Name of the pull zone (letters, numbers, and dashes). If empty, one will be automatically generated.' , 'w3-total-cache' ); ?>
</ p >
</ td >
</ tr >
< tr >
< td >< ? php esc_html_e ( 'Origin URL / IP' , 'w3-total-cache' ); ?> :</td>
< td >
< input id = " w3tc-origin-url " name = " origin_url " type = " text " class = " w3tc-ignore-change "
style = " width: 550px " value = " <?php echo esc_attr( $field_origin_url ); ?> "
< ? php echo ( empty ( $details [ 'pull_zone_id' ] ) ? '' : 'readonly ' ); ?>
data - suggested = " <?php echo esc_attr( $details['suggested_origin_url'] ); ?> " />
< p class = " description " >
< ? php esc_html_e ( 'Pull origin site URL or IP address.' , 'w3-total-cache' ); ?>
</ p >
</ td >
</ tr >
< tr >
< td >< ? php esc_html_e ( 'Custom Hostnames' , 'w3-total-cache' ); ?> :</td>
< td >
< input id = " w3tc-custom-hostnames " name = " custom_hostnames " type = " text " class = " w3tc-ignore-change "
style = " width: 550px " value = " <?php echo esc_attr( $field_custom_hostnames ); ?> "
< ? php echo ( empty ( $details [ 'pull_zone_id' ] ) ? '' : 'readonly ' ); ?>
data - suggested = " <?php echo esc_attr( $details['suggested_custom_hostname'] ); ?> " />
< p class = " description " >
< ? php esc_html_e ( 'Custom hostnames can be used instead of the default *.b-cdn.net hostname. After adding a hostname, create a CNAME record to the CDN hostname provided after the pull zone is configured.' , 'w3-total-cache' ); ?>
< br />
< ? php esc_html_e ( '* Separate hostnames using commas (",").' , 'w3-total-cache' ); ?>
</ p >
</ td >
</ tr >
</ table >
< p class = " submit " >
< input type = " button "
class = " w3tc_cdn_bunnycdn_fsd_configure_pull_zone w3tc-button-save button-primary "
value = " <?php esc_attr_e( 'Apply', 'w3-total-cache' ); ?> " />
</ p >
< ? php Util_Ui :: postbox_footer (); ?>
</ div >
</ form >