Тут я думаю, или, если решения нет то:
Писать что то что бы всем картинкам которые уже есть проставилась метка в бд.
Или
брать в массив все ИД файлов с папки с картнками, и втсалсять уже в запрос - это конечно геморой если их будет тысячи..
Ссылаясь на первые два поста (чтобы понятней было, о чём речь)
- 1 -
- 2 -
[продолжая тему про functions::display_date()] должен признаться, что такая запись
date_default_timezone_set('Europe/Kiev');
echo date("Время H:i:s <br/> Дата d.m.Y", time() + $set_user['timeshift'] * 3600);
мне не подошла, потому что она меняет время по умолчанию (
т.е. если $set_user['timeshift'] равна 0, то у меня сдвиг +2 часа). Ну а так, как я не нашёл вывод системного времени в движке, то всё-таки написал быдлокод:
решение (+/-)
// Для получения даты и времени переводим часы на сутки вперёд
// (если не перевести, получим строку вида "Сегодня 20:30")
$dtTm = functions::display_date(time() + $set_user['timeshift'] + 86400);
// Получаем из строки "03.12.2015 / 20:30" текущее время "20:30"
preg_match('/[0-9]{2}:[0-9]{2}/', $dtTm, $tm);
// Получаем из строки "03.12.2015 / 20:30" текущую дату "03.12.2015"
preg_match('/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/', $dtTm, $dt);
// Отделяем в строке "20:30" часы и минуты
list($H, $i) = explode(':', implode($tm));
// Отделяем в строке "03.12.2015" день, месяц и год
list($d, $m, $Y) = explode('.', implode($dt));
// Получаем заданную метку времени, уменьшаем её на сутки и выводим дату
echo date('d.m.Y', (mktime($H, $i, date('s'), $m, $d, $Y) - 86400));
// Получаем заданную метку времени, уменьшаем её на сутки и выводим время
echo date('H:i:s', (mktime($H, $i, date('s'), $m, $d, $Y) - 86400));
Есть вариант по-красивее, предложенный
reaper'ом:
решение (+/-)
$d = strptime('03.12.2015 / 20:30', '%d.%m.%Y / %H:%M');
print_r($d);
/*
array(9) {
["tm_sec"]=>
int(0)
["tm_min"]=>
int(30)
["tm_hour"]=>
int(20)
["tm_mday"]=>
int(3)
["tm_mon"]=>
int(11)
["tm_year"]=>
int(115)
["tm_wday"]=>
int(4)
["tm_yday"]=>
int(336)
["unparsed"]=>
string(0) ""
}
*/
Но этот вариант для Windows-платформ не реализован
ВОбщем лоал ломал голову вчера, а сегодня просто подумал - чо я мкчаюсь -
Короч присвоил всем жипегам метки и все.
Примерно так вот делается если у кого есть такая проблемма с выводом картинок из папки.
echo '<h1>Присваеваем всем жипегам метки для бд</h1>';
$dir = '../library/images/';//путь до папки с картинками
$files = scandir($dir);//зырим папку
$k = 0; // ето прсото нолик
for ($i = 0; $i < count($files); $i++) { //цыкл
$path = $dir.$files[$i]; // Получаем путь к картинке
$filename = basename($path, ".jpg"); //зная расширение jpg функцией basename берем имя фала, в моем случае ИД статьти и ниже идет обновление ячейки таблицы, ставим метку для последующено вывода куда нужно
//mysql_query("UPDATE `lib` SET `test` = '1' WHERE `id` = '$filename'"); //обвнление ясейки нужной, если что раскоментировать !
echo '<a href="../library/index.php?id='.$filename.'">'.$filename.'</a><br />';
}
Желатеьно сперва проверить чокак с картинками, если все пучком, то раскометируем строчку //mysql_query("UPDATE `lib` SET `test` = '1' WHERE `id` = '$filename'");
И размо ставим метки всем картинкам, потом файл удалем за ненадобностью.
Fublin, как то все сложно. воткни тег имг
# Koenig (03.12.2015 / 11:34)
Fublin, как то все сложно. воткни тег имг
Не, с тегом страничка будет так долго грузится что пипец.. другое дело если есть миниатюры..
Тут просто вывод для глаза имен файлов и все тут минутное дело то, чик и готово, и не надо мосги дальше ломать по поводу вывода картнок к анонсам и т.д..
И если файлов несколько тысяч то... у ковото могет трафик кончится...
Друзья, скажите пожалуйста как в профиле сделать вывод только ник юзера без аватара и id? Ниже скрин
Fublin, а ты смотрел тег имг который я писал? там сделано кэширование, обработка только один раз идёт
Хочу аватар заменить фото из анкеты вот код, что не так, ошибку выдает!!!
code (+/-)
public static function display_user($user = 0, $arg = array())
{
global $mod;
$out = FALSE;
if (!$user['id']) {
$out = '<b>' . self::$lng['guest'] . '</b>';
if (!empty($user['name']))
$out .= ': ' . $user['name'];
if (!empty($arg['header']))
$out .= ' ' . $arg['header'];
} else {
echo '<table style="width: 100%;"><tr><td align="left">';
if (file_exists('../files/users/photo/' . $user['id'] . '_small.jpg')))
$out .= '<a href="../files/users/photo/' . $user['id'] . '.jpg"><img src="../files/users/photo/' . $user['id'] . '_small.jpg" alt="' . $user['name'] . '" border="0" /> ';
else
$out .= '<img src="' . $set['homeurl'] . '/theme/selemet/img/notfoto.png" width="64" height="64" alt="НЕТ ФОТО"/> ';
$out .= '</td><td>';
}
if ($user['sex'])
$out .= (time() > $user['lastdate'] + 300 ? functions::image(($user['sex'] == 'm' ? 'man' : 'woman') . ($user['rights'] > 5 && $user['rights'] < 10 ? '_new' : '') . ($user['rights'] > 0 && $user['rights'] < 6 ? '_mod' : '') . '_off.gif', array('class' => 'icon-inline')) : functions::image(($user['sex'] == 'm' ? 'man' : 'woman') . ($user['rights'] > 5 && $user['rights'] < 10 ? '_new' : '') . ($user['rights'] > 0 && $user['rights'] < 6 ? '_mod' : '') . '_on.gif', array('class' => 'icon-inline')));
else
$out .= functions::image('del.png');
$out .= !self::$user_id || self::$user_id == $user['id'] ? '<b>' . $user['name'] . '</b>' : '<a href="' . self::$system_set['homeurl'] . '/users/profile.php?user=' . $user['id'] . '"><b>' . $user['name'] . '</b></a>';
$rank = array(
0 => '',
1 => '(GMod)',
2 => '(CMod)',
3 => '(FMod)',
4 => '(DMod)',
5 => '(LMod)',
6 => '(Smd)',
7 => '(Adm)',
9 => '(SV!)'
);
Koenig, да мне надо было только метки поставить в бд для тех статей у которых есть фото, вот и всё..
Что бы потом на парится с выводом каким мне нужно, там еще будет кучи запросов с других баз, недобно тянуть со всего сайта все подряд..
# Oewgo (03.12.2015 / 12:50)
Хочу аватар заменить фото из анкеты вот код, что не так, ошибку выдает!!!
public static function display_user($user = 0, $arg = array())
{
global $mod;
$out = FALSE;
если ничего не пропустил и случайно не удалил ниже то все вроде нормално...