вопрос
Я решил модифицировать стандартный модуль топа новостей и у меня такая проблема: в общем я сделал что бы при наведении на новость появлялась картинка новости, но когда нет картинки у новости выводит саму новость, а то есть краткое описание.
Вот файлы которые я модифицировал.
Это в стили:
вот сам файд topnews:
Мне нужно будет сделать, что бы когда картинка отсутствует выводилась картинка noavatar.png
Заранее спасибо ! :)
Вот файлы которые я модифицировал.
Это в стили:
div#izo{
margin: 0 auto;
}
div.background{
position: relative;
}
div.info{
background:#ccc;
opacity:0.8;
height:150px;
width:110px;
position:absolute;
bottom:0;
right:-180px;
display:none;
padding:10px;
}
div.background:hover div.info{
display: block;
}
вот сам файд topnews:
Мне нужно будет сделать, что бы когда картинка отсутствует выводилась картинка noavatar.png
Заранее спасибо ! :)
Как то вот так:
Думаю ясно что и как, лого гугла это картинка в случае если не будет в новости найдено изображения.
Ищем картинки, если есть совпадения по шаблону, то помещаем их в matches.
Проверяем есть ли картинка в тексте новости, если нету то лого гугла, тот же самый if только форма записи короткая.
Что не понятно спрашивайте, отвечу.
<?php
if (!defined('DATALIFEENGINE')) {
die("Hacking attempt!");
}
$topnews = dle_cache("topnews", $config['skin']);
if ($topnews === false) {
$this_month = date('Y-m-d H:i:s', $_TIME);
$db->query("SELECT id, title, date, category, short_story, flag FROM " . PREFIX . "_post WHERE approve='1' ORDER BY date DESC LIMIT 20");
while ($row = $db->get_row()) {
$row['date'] = strtotime($row['date']);
$row['category'] = intval($row['category']);
if ($config['allow_alt_url'] == "yes") {
if ($row['flag'] and $config['seo_type']) {
if ($row['category'] and $config['seo_type'] == 2) {
$full_link = $config['http_home_url'] . get_url($row['category']) . "/" . $row['id'] . "-" . ".html";
} else {
$full_link = $config['http_home_url'] . $row['id'] . "-" . ".html";
}
} else {
$full_link = $config['http_home_url'] . date('Y/m/d/', $row['date']) . ".html";
}
} else {
$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
}
preg_match_all('/<img.+src=[\'"
]([^\'"]+)[\'"].*>/i', $row['short_story'], $matches);
$row['short_story'] = $matches[1][0] = $matches[1][0] ? $matches[1][0] : 'http://www.google.ru/images/srpr/logo3w.png';
if (dle_strlen($row['title'], $config['charset']) > 55)
$title = dle_substr($row['title'], 0, 55, $config['charset']) . " ...";
else
$title = $row['title'];
$link = "<div id=\"izo\"><div class=\"background\"><a href=\"{image}\">" . stripslashes($title) . "</a><div class=\"info\"><img src=" . $row['short_story'] . " width=\"110\" height=\"150\"></div></div></div>";
$topnews .= "<li>" . $link . "<li>";
}
$db->free();
create_cache("topnews", $topnews, $config['skin']);
}
?>
Думаю ясно что и как, лого гугла это картинка в случае если не будет в новости найдено изображения.
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $row['short_story'], $matches);
Ищем картинки, если есть совпадения по шаблону, то помещаем их в matches.
$row['short_story'] = $matches[1][0] = $matches[1][0] ? $matches[1][0] : 'http://www.google.ru/images/srpr/logo3w.png';
Проверяем есть ли картинка в тексте новости, если нету то лого гугла, тот же самый if только форма записи короткая.
Что не понятно спрашивайте, отвечу.