Делюсь законченным интерфейсом и наработками

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Делюсь законченным интерфейсом и наработками

Сообщение gagarin74 » Вс июн 14, 2015 6:46 pm

DiArt писал(а):У меня вроде работают....
а можно получить "рабочую" версию ?
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Делюсь законченным интерфейсом и наработками

Сообщение dmw » Пн июн 15, 2015 10:30 am

В настройках сцен есть параметры:
Backround Fixed
Background No repeat

за что они отвечают? разные комбинации данных параметров никакого визуального эффекта у меня не дают.
И вообще скажите как замостить маленькую картинку на фоне для сцены, ато растягивается она на весь фрейм и никакой красоты.
Вот сама картинка:
Изображение
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Делюсь законченным интерфейсом и наработками

Сообщение directman66 » Пт ноя 03, 2017 8:27 am

добавлю свой вариант вывода снапшотов с видеокамеры
создаем файл cam1.php для каждой камеры.

Скрипт просто выводит все фотографии из папки, отсортированные по дате, самые последние находятся вверху. Показывает титл=имя файла и по клику ссылка на сам файл

Код: Выделить всё

<?php

function aksort(&$array,$valrev=false,$keyrev=false) {
  if ($valrev) { arsort($array); } else { asort($array); }
    $vals = array_count_values($array);
    $i = 0;
    foreach ($vals AS $val=>$num) {
        $first = array_splice($array,0,$i);
        $tmp = array_splice($array,0,$num);
        if ($keyrev) { krsort($tmp); } else { ksort($tmp); }
        $array = array_merge($first,$tmp,$array);
        unset($tmp);
        $i = $num;
    }
}


$dir = "./cam/cam1/";
 $files = array();
 foreach (scandir($dir) as $v) $files[$v] = filemtime("$dir/$v");
 aksort($files, true);
 $files = array_keys($files);

//print_r($files);

//$arr = scandir('./cam/cam1/');
$arr =$files;
foreach($arr as $b) {

//echo $b
if(stripos($b,'.jpg')) echo '<a href="./cam/cam1/'.$b.'" title='.$b.'><img src="./cam/cam1/'.$b.'" width="200" hegiht="200"  /></a>';

}
?>
Последний раз редактировалось directman66 Пт ноя 03, 2017 8:31 am, всего редактировалось 1 раз.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Делюсь законченным интерфейсом и наработками

Сообщение nick7zmail » Пт ноя 03, 2017 8:30 am

Background fixed и no repeat как раз отаечают за фиксированное положение фона, и за "замостить". Но обратите внимание, что есть фон сцены, а есть обои сцены...вот эти параметры именно к фону относятся.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Делюсь законченным интерфейсом и наработками

Сообщение directman66 » Сб ноя 04, 2017 3:06 pm

Добавил календарь и фильтрацию снапшотов по ссылкам в календаре, думаю очень круто
СпойлерПоказать

Код: Выделить всё

<?php

function aksort(&$array,$valrev=false,$keyrev=false) {
  if ($valrev) { arsort($array); } else { asort($array); }
    $vals = array_count_values($array);
    $i = 0;
    foreach ($vals AS $val=>$num) {
        $first = array_splice($array,0,$i);
        $tmp = array_splice($array,0,$num);
        if ($keyrev) { krsort($tmp); } else { ksort($tmp); }
        $array = array_merge($first,$tmp,$array);
        unset($tmp);
        $i = $num;
    }
}



////////////////
 
function showdate($dir,$fdate) {

 $files = array();
 foreach (scandir($dir) as $v) {$files[$v] = filemtime("$dir/$v");

}
 aksort($files, true);
 $files = array_keys($files);

//print_r($files);

//$arr = scandir('./cam/cam1/');
$arr =$files;
foreach($arr as $b) {

if(stripos($b,'.jpg')){


//echo $dir.$b.":".date ("d.m.Y",filemtime ($dir.$b))."==".$fdate;
//echo $fdate;
if (date ("d.m.Y",filemtime($dir.$b))==$fdate)
{echo '<a href="'.$dir.$b.'"  title='.$b.'><img src="'.$dir.$b.'" width="200" hegiht="200"  /></a>';}
}
//echo "<br><br>";
}
}



function draw_calendar($month, $year, $action = 'none', $ch) {
//echo '23'.$ch;
    $calendar = '<table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    
    // вывод дней недели
    $headings = array('Пн','Вт','Ср','Чт','Пт','Сб','Вс');
    $calendar.= '<tr class="b-calendar__row">';
    for($head_day = 0; $head_day <= 6; $head_day++) {
        $calendar.= '<th class="b-calendar__head';
        // выделяем выходные дни
        if ($head_day != 0) {
            if (($head_day % 5 == 0) || ($head_day % 6 == 0)) {
                $calendar .= ' b-calendar__weekend';
            }
        }
        $calendar .= '">';
        $calendar.= '<div class="b-calendar__number">'.$headings[$head_day].'</div>';
        $calendar.= '</th>';
    }
    $calendar.= '</tr>';

    // выставляем начало недели на понедельник
    $running_day = date('w',mktime(0,0,0,$month,1,$year));
    $running_day = $running_day - 1;
    if ($running_day == -1) {
        $running_day = 6;
    }
    
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
    $day_counter = 0;
    $days_in_this_week = 1;
    $dates_array = array();
    
    // первая строка календаря
    $calendar.= '<tr class="b-calendar__row">';
    
    // вывод пустых ячеек
    for ($x = 0; $x < $running_day; $x++) {
        $calendar.= '<td class="b-calendar__np"></td>';
        $days_in_this_week++;
    }
    
    // дошли до чисел, будем их писать в первую строку
    for($list_day = 1; $list_day <= $days_in_month; $list_day++) {
        $calendar.= '<td class="b-calendar__day';

        // выделяем выходные дни
        if ($running_day != 0) {
            if (($running_day % 5 == 0) || ($running_day % 6 == 0)) {
                $calendar .= ' b-calendar__weekend';
            }
        }
        $calendar .= '">';

        // пишем номер в ячейку
//str_pad($month, 2,"0",STR_PAD_LEFT)
//echo '123'.$ch;
        $calendar.= '<a href="cam2.php?cam='.$ch.'&dt='.str_pad($list_day, 2,"0",STR_PAD_LEFT).".".str_pad($month, 2,"0",STR_PAD_LEFT).".".$year.'"><div class="b-calendar__number">'.'    '.$list_day.'</div>';
        $calendar.= '</td></a>';

        // дошли до последнего дня недели
        if ($running_day == 6) {
            // закрываем строку
            $calendar.= '</tr>';
            // если день не последний в месяце, начинаем следующую строку
            if (($day_counter + 1) != $days_in_month) {
                $calendar.= '<tr class="b-calendar__row">';
            }
            // сбрасываем счетчики 
            $running_day = -1;
            $days_in_this_week = 0;
        }

        $days_in_this_week++; 
        $running_day++; 
        $day_counter++;
    }

    // выводим пустые ячейки в конце последней недели
    if ($days_in_this_week < 8) {
        for($x = 1; $x <= (8 - $days_in_this_week); $x++) {
            $calendar.= '<td class="b-calendar__np"> </td>';
        }
    }
    $calendar.= '</tr>';
    $calendar.= '</table>';

    return $calendar;
}



/////////////////////////////////////////////
///////////main
/////////////////////////////////////////////
//echo $HTTP_POST_VARS['date'] 
//echo '<pre>'.print_r(array_keys($_GET), true).'</pre>';

//$dt=date("d.m.Y");
//str_pad($month, 2,"0",STR_PAD_LEFT)
$mm=str_pad(date("m"), 2,"0",STR_PAD_LEFT);
$yy=str_pad(date("Y"), 4,"0",STR_PAD_LEFT);
//$cam="cam2";


if (empty($_GET['cam']))  {$cam="cam2";} else {$cam = $_GET['cam'];}
if (empty($_GET['dt']))  $dt=date("d.m.Y"); else $dt = $_GET['dt'];

//$cam = $_GET['cam'];
//$dt = $_GET['dt'];

//foreach($_GET as $key => $value){
//$key = $value;  
//echo $key."=".$value;echo "<br>";
//echo $_GET;
//parse_str($_GET, $output);
//echo $output['first'];  // value
//echo $output['arr'][0]; // foo bar
//echo $output['arr'][1];


//}
//echo "<br>";
$path="./cam/".$cam."/";

echo 'dt='.$dt;
//echo "<br>";
//echo  "cam=".$cam;
//echo "<br>";
//echo  '$path='.$path;




//Calendar();

echo draw_calendar($mm,$yy,null,$cam);


showdate($path,$dt);



?>
СпойлерПоказать
wewewedfdf.jpg
wewewedfdf.jpg (569.71 КБ) 7623 просмотра
За это сообщение автора directman66 поблагодарил:
webms (Чт дек 07, 2017 2:47 pm)
Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: Делюсь законченным интерфейсом и наработками

Сообщение webms » Чт дек 07, 2017 2:48 pm

Спасибо за код directman66, немного улучшил его
*внизу настройка кол-во месяцев в календаре
*подключил стиль автора календаря
*показывает какой день выделен
КодПоказать

Код: Выделить всё

<style type="text/css">
        hr {
            height: 1px;
            overflow: hidden;
            font-size: 0;
            line-height: 0;
            background: #ccc;
            margin: 50px 0;
            border: 0;
        }

        /* css for calendar */
        .b-calendar {
            font: 14px/1.2 Arial, sans-serif;
            background: #f2f2f2;
        }
        .b-calendar--along {
            width: 300px;
            padding: 30px 40px;
            margin: 50px auto;
        }
        .b-calendar--many {
            padding: 20px;
            width: 250px;
            display: inline-block;
            vertical-align: top;
            margin: 0 20px 20px;
        }
        .b-calendar__title {
            text-align: center;
            margin: 0 0 20px;
        }
        .b-calendar__year {
            font-weight: bold;
            color: #333;
        }
        .b-calendar__tb {
            width: 100%;
        }
        .b-calendar__head {
            font: bold 14px/1.2 Arial, sans-serif;
            padding: 5px;
            text-align: left;
            border-bottom: 1px solid #c0c0c0;
        }
        .b-calendar__np {
            padding: 5px;
        }
        .b-calendar__day {
            font: 14px/1.2 Arial, sans-serif;
            padding: 8px 5px;
            text-align: center;
        }
        .b-calendar__weekend > a{
            color: red;
        }
        .day<?php echo date("dm");?>, .selectday<?php if (!empty($_GET["dt"])) { echo date('dm', strtotime($_GET['dt'])); } ?> { 
        color: #fff !important;
        background-color: #f00;
        border: 1px solid #f00;
        border-radius: 50%;
        display: block;
        }
        
        a {text-decoration: none; color: #000;}
        .b-calendar__number:hover {font-weight: 600;}
</style>

<?php

function aksort(&$array,$valrev=false,$keyrev=false) {
  if ($valrev) { arsort($array); } else { asort($array); }
    $vals = array_count_values($array);
    $i = 0;
    foreach ($vals AS $val=>$num) {
        $first = array_splice($array,0,$i);
        $tmp = array_splice($array,0,$num);
        if ($keyrev) { krsort($tmp); } else { ksort($tmp); }
        $array = array_merge($first,$tmp,$array);
        unset($tmp);
        $i = $num;
    }
}

//////////////// НАСТРОЙКИ ВНИЗУ
 
function showdate($dir,$fdate) {

 $files = array();
 foreach (scandir($dir) as $v) {$files[$v] = filemtime("$dir/$v");

}
 aksort($files, true);
 $files = array_keys($files);

$arr =$files;
foreach($arr as $b) {

if(stripos($b,'.jpg')){

if (date ("d.m.Y",filemtime($dir.$b))==$fdate)
{echo '<a href="'.$dir.$b.'"  title='.$b.'><img src="'.$dir.$b.'" width="200" hegiht="200"  /></a>';}
}
}
}



function draw_calendar($month, $year, $action = 'none', $ch) {
    
    if ($month == date('m', strtotime("-11 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Январь</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-10 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Февраль</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-9 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Март</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-8 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Апрель</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-7 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Май</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-6 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Июнь</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-5 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Июль</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-4 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Август</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-3 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Сентябрь</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-2 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Октябрь</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m', strtotime("-1 month"))) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Ноябрь</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    if ($month == date('m')) $calendar = '<div class="b-calendar b-calendar--many"><div class="b-calendar__title"><span class="b-calendar__month">Декабрь</span> <span class="b-calendar__year">\''.date("y").'</span></div><table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    
    // вывод дней недели
    $headings = array('Пн','Вт','Ср','Чт','Пт','Сб','Вс');
    $calendar.= '<tr class="b-calendar__row">';
    for($head_day = 0; $head_day <= 6; $head_day++) {
        $calendar.= '<th class="b-calendar__head';
        // выделяем выходные дни
        if ($head_day != 0) {
            if (($head_day % 5 == 0) || ($head_day % 6 == 0)) {
                $calendar .= ' b-calendar__weekend';
            }
        }
        $calendar .= '">';
        $calendar.= '<div class="b-calendar__number">'.$headings[$head_day].'</div>';
        $calendar.= '</th>';
    }
    $calendar.= '</tr>';

    // выставляем начало недели на понедельник
    $running_day = date('w',mktime(0,0,0,$month,1,$year));
    $running_day = $running_day - 1;
    if ($running_day == -1) {
        $running_day = 6;
    }
    
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
    $day_counter = 0;
    $days_in_this_week = 1;
    $dates_array = array();
    
    // первая строка календаря
    $calendar.= '<tr class="b-calendar__row">';
    
    // вывод пустых ячеек
    for ($x = 0; $x < $running_day; $x++) {
        $calendar.= '<td class="b-calendar__np"></td>';
        $days_in_this_week++;
    }
    
    // дошли до чисел, будем их писать в первую строку
    for($list_day = 1; $list_day <= $days_in_month; $list_day++) {
        $calendar.= '<td class="b-calendar__day';

        // выделяем выходные дни
        if ($running_day != 0) {
            if (($running_day % 5 == 0) || ($running_day % 6 == 0)) {
                $calendar .= ' b-calendar__weekend';
            }
        }
        $calendar .= '">';
        
        //стиль
        $styleday = str_pad($list_day, 2,"0",STR_PAD_LEFT).str_pad($month, 2,"0",STR_PAD_LEFT);
        if (!empty($_GET["dt"])) {
        if ($styleday == date('dm', strtotime($_GET['dt']))) { $selectday =  date('dm', strtotime($_GET['dt'])); } else { $selectday = ""; }
        } else { $selectday = "0"; }
        
        // пишем номер в ячейку
        $calendar.= '<a class="day'.$styleday.' selectday'.$selectday.'" href="img_security.php?cam='.$ch.'&dt='.str_pad($list_day, 2,"0",STR_PAD_LEFT).".".str_pad($month, 2,"0",STR_PAD_LEFT).".".$year.'"><div class="b-calendar__number">'.'    '.$list_day.'</div>';
        $calendar.= '</td></a>';

        // дошли до последнего дня недели
        if ($running_day == 6) {
            // закрываем строку
            $calendar.= '</tr>';
            // если день не последний в месяце, начинаем следующую строку
            if (($day_counter + 1) != $days_in_month) {
                $calendar.= '<tr class="b-calendar__row">';
            }
            // сбрасываем счетчики 
            $running_day = -1;
            $days_in_this_week = 0;
        }

        $days_in_this_week++; 
        $running_day++; 
        $day_counter++;
    }

    // выводим пустые ячейки в конце последней недели
    if ($days_in_this_week < 8) {
        for($x = 1; $x <= (8 - $days_in_this_week); $x++) {
            $calendar.= '<td class="b-calendar__np"> </td>';
        }
    }
    $calendar.= '</tr>';
    $calendar.= '</table></div>';

    return $calendar; 
}

/////////////////////////////////////////////НАСТРОЙКИ ПАПКИ КАМЕРЫ
$imgcam = "backup";
/////////////////////////////////////////////КОНЕЦ

$mm2=str_pad(date("m", strtotime("-1 month")), 2,"0",STR_PAD_LEFT);
$mm1=str_pad(date("m"), 2,"0",STR_PAD_LEFT);
$yy=str_pad(date("Y"), 4,"0",STR_PAD_LEFT);

if (empty($_GET['cam']))  {$cam=$imgcam;} else {$cam = $_GET['cam'];}
if (empty($_GET['dt']))  $dt=date("d.m.Y"); else $dt = $_GET['dt'];

/////////////////////////////////////////////НАСТРОЙКИ ПАПКИ ГДЕ ХРАНЯТЬСЯ ПАПКИ КАМЕР
$path = "../ipcam/".$cam."/";
/////////////////////////////////////////////КОНЕЦ

//Calendar();
echo draw_calendar($mm2,$yy,null,$cam);
echo draw_calendar($mm1,$yy,null,$cam);
echo "<div></div>";
showdate($path,$dt);

?>
СкриншотПоказать
Изображение
За это сообщение автора webms поблагодарил:
Amarok (Пн дек 11, 2017 9:44 am)
Рейтинг: 1.16%
Аватара пользователя
xor
Сообщения: 2036
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 283 раза
Поблагодарили: 628 раз

Re: Делюсь законченным интерфейсом и наработками

Сообщение xor » Чт дек 07, 2017 10:26 pm

к webms
Что такое img_security.php?
Приведите, пожалуйста, полный путь и название ваших файлов.

У меня, к примеру, вот так:
D:\myftp\ipc\cam2\20171203\IMG001\IMG_chn0_TIMER_MNG_20171203233740_003.jpg
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: Делюсь законченным интерфейсом и наработками

Сообщение webms » Чт дек 07, 2017 11:09 pm

xor писал(а):Что такое img_security.php?
название файла куда я код выше вставил
xor писал(а): У меня, к примеру, вот так:
D:/myftp/ipc/cam2/20171203/IMG001/IMG_chn0_TIMER_MNG_20171203233740_003.jpg
/////////////////////////////////////////////НАСТРОЙКИ ПАПКИ КАМЕРЫ
$imgcam = "IMG001";
/////////////////////////////////////////////КОНЕЦ

/////////////////////////////////////////////НАСТРОЙКИ ПАПКИ ГДЕ ХРАНЯТЬСЯ ПАПКИ КАМЕР
$path = "D:/myftp/ipc/cam2/20171203/".$cam."/";
/////////////////////////////////////////////КОНЕЦ
За это сообщение автора webms поблагодарил:
xor (Пт дек 08, 2017 12:20 am)
Рейтинг: 1.16%
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: Делюсь законченным интерфейсом и наработками

Сообщение webms » Пт дек 08, 2017 6:22 pm

подскажите пожалуйста, а то знаний в php не хватает
как сделать чтоб цифры в календаре были серыми если папка пустая?
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Делюсь законченным интерфейсом и наработками

Сообщение directman66 » Пн фев 26, 2018 10:37 pm

Дабы ускорить вывод снапшотов, переделал процедуру вывода по папкам. Файлы теперь требуется сохранять cam/cam1/20180227/*.jpg
СпойлерПоказать

Код: Выделить всё


 "<script type="text/javascript" src="/css/simplebox_util.js"></script>
<script type="text/javascript">
(function(){
var boxes=[],els,i,l;
if(document.querySelectorAll){
els=document.querySelectorAll('a[rel=simplebox]');    
Box.getStyles('simplebox_css','/css/simplebox.css');
Box.getScripts('simplebox_js','/css/simplebox.js',function(){
simplebox.init();
for(i=0,l=els.length;i<l;++i)
simplebox.start(els[i]);
simplebox.start('a[rel=simplebox_group]');            
});
}
})();</script>


<?php


function aksort(&$array,$valrev=false,$keyrev=false) {
  if ($valrev) { arsort($array); } else { asort($array); }
    $vals = array_count_values($array);
    $i = 0;
    foreach ($vals AS $val=>$num) {
        $first = array_splice($array,0,$i);
        $tmp = array_splice($array,0,$num);
        if ($keyrev) { krsort($tmp); } else { ksort($tmp); }
        $array = array_merge($first,$tmp,$array);
        unset($tmp);
        $i = $num;
    }
}



////////////////
 
function showdate($dir,$fdate) {

 $files = array();
 foreach (scandir($dir) as $v) {$files[$v] = filemtime("$dir/$v");

}
 aksort($files, true);
 $files = array_keys($files);

//print_r($files);

//$arr = scandir('./cam/cam1/');
$arr =$files;
foreach($arr as $b) {

if(stripos($b,'.jpg')){


//echo $dir.$b.":".date ("d.m.Y",filemtime ($dir.$b))."==".$fdate;
//echo $fdate;
if (date ("d.m.Y",filemtime($dir.$b))==$fdate)
{
//echo '<a href="'.$dir.$b.'"  title='.$b.'>                 <img src="'.$dir.$b.'" width="200" hegiht="200"  /></a>';}
echo   '<a rel="simplebox" href="'.$dir.$b.'" title='.$b.' > <img src="'.$dir.$b.'" width="200" hegiht="200" /></a>';}

}
//echo "<br><br>";
}
}


function showpath($dir) {
echo $dir."<br>";
 $files = array();
 foreach (scandir($dir) as $v) {$files[$v] = filemtime("$dir/$v");

}
 aksort($files, true);
 $files = array_keys($files);

//print_r($files);

//$arr = scandir('./cam/cam1/');
$arr =$files;
foreach($arr as $b) {

if(stripos($b,'.jpg')){


//echo $dir.$b.":".date ("d.m.Y",filemtime ($dir.$b))."==".$fdate;
//echo $fdate;


//echo '<a href="'.$dir.$b.'"  title='.$b.'>                 <img src="'.$dir.$b.'" width="200" hegiht="200"  /></a>';}
echo   '<a rel="simplebox" href="'.$dir.$b.'" title='.$b.' > <img src="'.$dir.$b.'" width="200" hegiht="200" /></a>';}


//echo "<br><br>";
}
}




function draw_calendar($month, $year, $action = 'none', $ch) {
//echo '23'.$ch;
//    $calendar = '<table cellpadding="6" cellspacing="6" class="b-calendar__tb">';
    $calendar = '<table cellpadding="6" cellspacing="6">';
    
    // вывод дней недели
    $headings = array('Пн','Вт','Ср','Чт','Пт','Сб','Вс');
    $calendar.= '<tr class="b-calendar__row">';
    for($head_day = 0; $head_day <= 6; $head_day++) {
        $calendar.= '<th class="b-calendar__head';
        // выделяем выходные дни
        if ($head_day != 0) {
            if (($head_day % 5 == 0) || ($head_day % 6 == 0)) {
                $calendar .= ' b-calendar__weekend';
            }
        }
        $calendar .= '">';
        $calendar.= '<div class="b-calendar__number">'.$headings[$head_day].'</div>';
        $calendar.= '</th>';
    }
    $calendar.= '</tr>';

    // выставляем начало недели на понедельник
    $running_day = date('w',mktime(0,0,0,$month,1,$year));
    $running_day = $running_day - 1;
    if ($running_day == -1) {
        $running_day = 6;
    }
    
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
    $day_counter = 0;
    $days_in_this_week = 1;
    $dates_array = array();
    
    // первая строка календаря
    $calendar.= '<tr class="b-calendar__row">';
    
    // вывод пустых ячеек
    for ($x = 0; $x < $running_day; $x++) {
        $calendar.= '<td class="b-calendar__np"></td>';
        $days_in_this_week++;
    }
    
    // дошли до чисел, будем их писать в первую строку
    for($list_day = 1; $list_day <= $days_in_month; $list_day++) {
        $calendar.= '<td class="b-calendar__day';

        // выделяем выходные дни
        if ($running_day != 0) {
            if (($running_day % 5 == 0) || ($running_day % 6 == 0)) {
                $calendar .= ' b-calendar__weekend';
            }
        }
        $calendar .= '">';

        // пишем номер в ячейку
//str_pad($month, 2,"0",STR_PAD_LEFT)
//echo '123'.$ch;
//echo date("d.m.Y");
//echo $list_day.".".$month.".".$year;
        if (date("d.m.Y")==str_pad($list_day, 2,"0",STR_PAD_LEFT).".".str_pad($month, 2,"0",STR_PAD_LEFT).".".$year)
{$calendar.= '<a href="cam2.php?cam='.$ch.'&dt='.$year.str_pad($month, 2,"0",STR_PAD_LEFT).str_pad($list_day, 2,"0",STR_PAD_LEFT).'"><b><h1 style="background-color: #E1F896; color: Black"><font size="4" color="Purple" face="Arial"><div class="b-calendar__number">'.'    '.$list_day.'</font></b></div></h1>';}
else {
$calendar.= '<a href="cam2.php?cam='.$ch.'&dt='.$year.str_pad($month, 2,"0",STR_PAD_LEFT).str_pad($list_day, 2,"0",STR_PAD_LEFT).'"><div class="b-calendar__number">'.'    '.$list_day.'</div>';
}
        $calendar.= '</td></a>';

        // дошли до последнего дня недели
        if ($running_day == 6) {
            // закрываем строку
            $calendar.= '</tr>';
            // если день не последний в месяце, начинаем следующую строку
            if (($day_counter + 1) != $days_in_month) {
                $calendar.= '<tr class="b-calendar__row">';
            }
            // сбрасываем счетчики 
            $running_day = -1;
            $days_in_this_week = 0;
        }

        $days_in_this_week++; 
        $running_day++; 
        $day_counter++;
    }

    // выводим пустые ячейки в конце последней недели
    if ($days_in_this_week < 8) {
        for($x = 1; $x <= (8 - $days_in_this_week); $x++) {
            $calendar.= '<td class="b-calendar__np"> </td>';
        }
    }
    $calendar.= '</tr>';
    $calendar.= '</table>';

    return $calendar;
}



/////////////////////////////////////////////
///////////main
/////////////////////////////////////////////
//echo $HTTP_POST_VARS['date'] 
//echo '<pre>'.print_r(array_keys($_GET), true).'</pre>';

//$dt=date("d.m.Y");
//str_pad($month, 2,"0",STR_PAD_LEFT)
$mm=str_pad(date("m"), 2,"0",STR_PAD_LEFT);
$m1=str_pad(date("m")-1, 2,"0",STR_PAD_LEFT);
$m2=str_pad(date("m")-2, 2,"0",STR_PAD_LEFT);
//$m1=date("m")-1;
$yy=str_pad(date("Y"), 4,"0",STR_PAD_LEFT);
//$cam="cam2";


if (empty($_GET['cam']))  {$cam="cam2";} else {$cam = $_GET['cam'];}
//if (empty($_GET['dt']))  $dt=date("d.m.Y"); else $dt = $_GET['dt'];
if (empty($_GET['dt']))  $dt=date("Ymd"); else $dt = $_GET['dt'];

//$cam = $_GET['cam'];
//$dt = $_GET['dt'];

//foreach($_GET as $key => $value){
//$key = $value;  
//echo $key."=".$value;echo "<br>";
//echo $_GET;
//parse_str($_GET, $output);
//echo $output['first'];  // value
//echo $output['arr'][0]; // foo bar
//echo $output['arr'][1];


//}
//echo "<br>";
$rootpath="./cam/".$cam."/".
$path="./cam/".$cam."/".$dt."/";

echo 'dt='.$dt;
//echo "<br>";
//echo  "cam=".$cam;
//echo "<br>";
echo  '$path='.$path;




//Calendar();


//    $cals = '<table cellpadding="1" cellspacing="1">';
    $cals = '<table border="0" >';
        $cals.= '<tr>';
        $cals.= '<td style="text-align:center;" bgcolor=#98FB98>';
//        $cals.= jdmonthname ('01.'.$m2.'.'.$yy,0);
        $cals.= '01.'.$m2.'.'.$yy;
        $cals.= '</td>';
        $cals.= '<td style="text-align:center;" bgcolor=#90EE90>';
//        $cals.= jdmonthname ('01.'.$m1.'.'.$yy,1);
        $cals.= '01.'.$m1.'.'.$yy ;

        $cals.= '<td style="text-align:center;" bgcolor=#00FA9A>';
//        $cals.= jdmonthname ("01".$mm.".".$yy,1);
//        $cals.= jdmonthname ('01.'.$mm.'.'.$yy,1);
        $cals.= '01.'.$mm.'.'.$yy ;
        $cals.= '</td>';

        $cals.= '</tr>';
        $cals.= '<tr>';
        $cals.= '<td  style="vertical-align:top;" bgcolor=#98FB98>';
        $cals.= draw_calendar($mm-2,$yy,null,$cam);
        $cals.= '</td>';
        $cals.= '<td  style="vertical-align:top;" bgcolor=#90EE90>';
        $cals.= draw_calendar($mm-1,$yy,null,$cam);
        $cals.= '</td>';
        $cals.= '<td  style="vertical-align:top;" bgcolor=#00FA9A>' ;
        $cals.= draw_calendar($mm,$yy,null,$cam);
        $cals.= '</td>';

        $cals.= '</tr>';
        $cals.= '</table>';

//        $cals.= echo draw_calendar($mm-1,$yy,null,$cam);


//    return $cals;
echo $cals;

    $photo = '<table >';
        $photo.= ' <tr><td>';
//        $photo.= showdate($rootpath,$dt);
//        $photo.= showpath($rootpath.date("Ymd"));
        $photo.= showpath($path);

        $photo.= '</table>';
        $photo.= ' </td></tr>';
//echo $photo;


//showdate($path,$dt);

//        $cals.=showdate($path,$dt);

//echo draw_calendar($mm-1,$yy,null,$cam);
//echo draw_calendar($mm,$yy,null,$cam);
//echo "<br>";







?>
работает намного шустрее

Интересно, можно это представить в виде модуля?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ответить