54 lines
1.3 KiB
PHP
54 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* @package MasonrySlides
|
|
* @version 1.0
|
|
*/
|
|
/*
|
|
Plugin Name: Masonry Slides
|
|
Description: Allows to make slides from random images
|
|
Author: Alexander Yakovlev
|
|
Version: 1.0
|
|
Author URI: https://en.oreolek.ru/
|
|
*/
|
|
|
|
require_once('Masonry.php');
|
|
|
|
add_action('admin_menu', 'masonryslides_menu');
|
|
|
|
function masonryslides_menu() {
|
|
add_submenu_page(
|
|
'options-general.php',
|
|
'Masonry Slides',
|
|
'Masonry Slides',
|
|
'manage_options',
|
|
'masonryslides-menu',
|
|
'masonryslides_newslide'
|
|
);
|
|
}
|
|
|
|
function masonryslides_newslide() {
|
|
?>
|
|
<h1>New slide</h1>
|
|
<?php
|
|
$images = glob('images/*');
|
|
shuffle($images);
|
|
$masonry = new Masonry();
|
|
$masonry->minWidth = 5;
|
|
$masonry->maxWidth = 15;
|
|
$masonry->minHeight = 10;
|
|
$masonry->maxHeight = 30;
|
|
$masonry->fillTopProbability = 5;
|
|
$masonry->fillHalfwayProbability = 2;
|
|
$masonry->xsize = count($images) * ($masonry->maxWidth / ($masonry->ysize / $masonry->maxHeight));
|
|
|
|
try {
|
|
$position = $masonry->create($images);
|
|
} catch (Exception $e) {
|
|
echo $e->getMessage();
|
|
}
|
|
|
|
foreach($images as $k => $v) : ?>
|
|
<div style='top: <?php echo $position[$k]['y']; ?>%; left: <?php echo $position[$k]['x']; ?>%; width: <?php echo $position[$k]['w']; ?>%; height: <?php echo $position[$k]['h']; ?>%; background-image: url(<?php echo $images[$k]; ?>);'></div>
|
|
<?php endforeach;
|
|
}
|