Files
medicalalert-web-reloaded/wp/wp-content/plugins/imagify/views/part-settings-custom-folders.php
Tony Volpe 4eb982d7a8 Merged in feature/from-pantheon (pull request #16)
code from pantheon

* code from pantheon
2024-01-10 17:03:02 +00:00

192 lines
7.0 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
defined( 'ABSPATH' ) || die( 'Cheatin uh?' );
if ( ! imagify_can_optimize_custom_folders() ) {
return;
}
// Get folders, remove excluded ones, sort them, add labels.
$custom_folders = Imagify_Folders_DB::get_instance()->get_active_folders_column( 'path' );
$themes = array();
if ( $custom_folders ) {
$custom_folders = array_combine( $custom_folders, $custom_folders );
$custom_folders = array_map( array( 'Imagify_Files_Scan', 'remove_placeholder' ), $custom_folders );
$custom_folders = array_map( 'trailingslashit', $custom_folders );
$custom_folders = array_filter( $custom_folders, array( 'Imagify_Files_Scan', 'is_path_autorized' ) );
}
if ( $custom_folders ) {
$custom_folders = array_map( array( $this->filesystem, 'make_path_relative' ), $custom_folders );
$custom_folders = array_map( 'untrailingslashit', $custom_folders );
natcasesort( $custom_folders );
$custom_folders = array_map( 'trailingslashit', $custom_folders );
if ( isset( $custom_folders['{{ROOT}}/'] ) ) {
$custom_folders['{{ROOT}}/'] = __( 'Site\'s root', 'imagify' );
}
}
// Current used theme(s).
if ( ! is_network_admin() ) {
$current_theme = wp_get_theme();
$themes_not_added = array();
foreach ( array( $current_theme, $current_theme->parent() ) as $theme ) {
if ( ! $theme || ! $theme->exists() ) {
continue;
}
$theme_path = trailingslashit( $theme->get_stylesheet_directory() );
if ( ! Imagify_Files_Scan::is_path_forbidden( $theme_path ) ) {
$theme = array(
'name' => $theme->display( 'Name' ),
'path' => Imagify_Files_Scan::add_placeholder( $theme_path ),
'label' => $this->filesystem->make_path_relative( $theme_path ),
);
$themes[ $theme['path'] ] = $theme;
$added = false;
$rel_path = strtolower( $theme['label'] );
foreach ( $custom_folders as $path => $label ) {
if ( strpos( $rel_path, strtolower( $label ) ) === 0 ) {
$added = true;
break;
}
}
if ( ! $added ) {
$themes_not_added[] = $theme['path'];
}
}
}
$themes_count = count( $themes );
}
?>
<div class="imagify-custom-folders-section">
<div class="imagify-col" id="custom-folders">
<h3 class="imagify-options-subtitle"><?php _e( 'Custom Folders', 'imagify' ); ?></h3>
<div id="imagify-custom-folders" class="hide-if-no-js imagify-mt2">
<?php if ( $themes ) { ?>
<div class="imagify-folder-themes-suggestion">
<div class="imagify-fts-header imagify-flex imagify-vcenter">
<span><i class="dashicons dashicons-info"></i></span>
<p>
<?php
$theme = reset( $themes );
/* translators: %s is a theme name. */
printf( __( 'Youre using %s', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
if ( $themes_count > 1 ) {
$theme = end( $themes );
echo '<br>';
/* translators: %s is a theme name. */
printf( __( 'child theme of %s', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
}
?>
</p>
</div>
<div class="imagify-fts-content">
<?php
if ( ! $themes_not_added ) {
?>
<p class="imagify-mb0"><?php echo _n( 'Your theme is already in the optimization process. All Good!', 'Your themes are already in the optimization process. All Good!', $themes_count, 'imagify' ); ?></p>
<?php
} elseif ( count( $themes_not_added ) !== $themes_count ) {
$theme = reset( $themes_not_added );
$theme = $themes[ $theme ];
?>
<p><?php _e( 'Only one of your current themes is in the optimization process, would you like to also optimize the other one?', 'imagify' ); ?></p>
<button id="imagify-add-themes-to-custom-folder"
class="button imagify-button-clean imagify-add-themes" type="button"
data-theme="<?php echo esc_attr( $theme['path'] ) . '#///#' . esc_attr( $theme['label'] ); ?>">
<span class="dashicons dashicons-plus"></span>
<span class="button-text"><?php
/* translators: %s is a theme name. */
printf( __( 'Add %s to optimization', 'imagify' ), '<strong>' . $theme['name'] . '</strong>' );
?></span>
</button>
<?php
} else {
foreach ( $themes as $path => $theme ) {
$themes[ $path ] = esc_attr( $theme['path'] ) . '#///#' . esc_attr( $theme['label'] );
}
?>
<p><?php echo _n( 'Would you like to optimize your theme?', 'Would you like to optimize your themes?', $themes_count, 'imagify' ); ?></p>
<button id="imagify-add-themes-to-custom-folder"
class="button imagify-button-clean imagify-add-themes" type="button"
data-theme="<?php echo implode( '" data-theme-parent="', $themes ); ?>">
<span class="dashicons dashicons-plus"></span>
<span
class="button-text"><?php echo _n( 'Add the theme to optimization', 'Add the themes to optimization', $themes_count, 'imagify' ); ?></span>
</button>
<?php
}
?>
</div>
</div>
<?php } ?>
<p class="imagify-kindof-title imagify-flex imagify-vcenter">
<span><?php _e( 'Select folders for optimization.', 'imagify' ); ?></span>
<span>
<button id="imagify-add-custom-folder"
class="button imagify-button-mini imagify-button-primary imagify-add-custom-folder"
type="button">
<span class="dashicons dashicons-plus"></span>
<span class="button-text"><?php _e( 'Add folders', 'imagify' ); ?></span>
</button>
<img class="imagify-loader" aria-hidden="true" alt="<?php esc_attr_e( 'Loading...', 'imagify' ); ?>" src="<?php echo esc_url( IMAGIFY_ASSETS_IMG_URL . 'loader-balls.svg' ); ?>" width="38" height="24"/>
</span>
</p>
<fieldset id="imagify-custom-folders-selected">
<?php
if ( $custom_folders ) {
foreach ( $custom_folders as $placeholder => $label ) {
$this->print_template( 'part-settings-row-custom-folder', array(
'value' => $placeholder,
'label' => $label,
) );
}
}
?>
</fieldset>
<p>
<?php
printf(
/* translators: 1 and 2 are <strong> opening and closing tags. */
__( '%1$sSelecting a folder will also optimize images in sub-folders.%2$s The only exception is "Sites root": when selected, only images that are directly at the sites root will be optimized (sub-folders can be selected separately).', 'imagify' ),
'<strong>',
'</strong>'
);
?>
<br/>
<?php _e( 'Folders that are hidden in the folder selector window are excluded and will not be optimized even if a parent folder is selected.', 'imagify' ); ?>
</p>
<p class="imagify-success hidden"><?php _e( 'You changed your custom folder settings, don\'t forget to save your changes!', 'imagify' ); ?></p>
<script type="text/html" id="tmpl-imagify-custom-folder">
<?php
$this->print_template( 'part-settings-row-custom-folder', array(
'value' => '{{ data.value }}',
'label' => '{{ data.label }}',
) );
?>
</script>
</div>
</div>
</div>
<?php