streams/Zotlabs/Widget/Photo_rand.php

79 lines
1.8 KiB
PHP
Raw Normal View History

<?php
namespace Zotlabs\Widget;
2021-12-02 22:33:36 +00:00
use App;
require_once('include/photos.php');
2021-12-02 23:02:31 +00:00
class Photo_rand
{
2021-12-02 23:02:31 +00:00
public function widget($arr)
{
2021-12-02 23:02:31 +00:00
$style = false;
2021-12-03 03:01:39 +00:00
if (array_key_exists('album', $arr) && isset($arr['album'])) {
2021-12-02 23:02:31 +00:00
$album = $arr['album'];
2021-12-03 03:01:39 +00:00
} else {
2021-12-02 23:02:31 +00:00
$album = '';
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$channel_id = 0;
2021-12-03 03:01:39 +00:00
if (array_key_exists('channel_id', $arr) && intval($arr['channel_id'])) {
2021-12-02 23:02:31 +00:00
$channel_id = intval($arr['channel_id']);
2021-12-03 03:01:39 +00:00
}
if (!$channel_id) {
2021-12-02 23:02:31 +00:00
$channel_id = App::$profile_uid;
2021-12-03 03:01:39 +00:00
}
if (!$channel_id) {
2021-12-02 23:02:31 +00:00
return '';
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$scale = ((array_key_exists('scale', $arr)) ? intval($arr['scale']) : 0);
2021-12-02 23:02:31 +00:00
$ret = photos_list_photos(array('channel_id' => $channel_id), App::get_observer(), $album);
2021-12-02 23:02:31 +00:00
$filtered = [];
2021-12-03 03:01:39 +00:00
if ($ret['success'] && $ret['photos']) {
foreach ($ret['photos'] as $p) {
if ($p['imgscale'] == $scale) {
2021-12-02 23:02:31 +00:00
$filtered[] = $p['src'];
2021-12-03 03:01:39 +00:00
}
}
}
2021-12-02 23:02:31 +00:00
if ($filtered) {
$e = mt_rand(0, count($filtered) - 1);
$url = $filtered[$e];
}
2021-12-03 03:01:39 +00:00
if (strpos($url, 'http') !== 0) {
2021-12-02 23:02:31 +00:00
return '';
2021-12-03 03:01:39 +00:00
}
2021-12-03 03:01:39 +00:00
if (array_key_exists('style', $arr) && isset($arr['style'])) {
2021-12-02 23:02:31 +00:00
$style = $arr['style'];
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
// ensure they can't sneak in an eval(js) function
2021-12-03 03:01:39 +00:00
if (strpos($style, '(') !== false) {
2021-12-02 23:02:31 +00:00
return '';
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$url = zid($url);
2021-12-02 23:02:31 +00:00
$o = '<div class="widget">';
$o .= '<img class="zrl" '
. (($style) ? ' style="' . $style . '"' : '')
. ' src="' . $url . '" alt="' . t('photo/image') . '">';
$o .= '</div>';
return $o;
}
}