Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как правильно использовать preg_match_all ?

Как правильно использовать preg_match_all ?


     29.04.2018    Все вопросы » Общие вопросы по PHP    329

вопрос
Исходный код приведен для первой картинки из shortstory. Помогите реализовать выбор картинки из из хfields.
Пример ссылки на фото из хfields: image|2018-04/1524541361_eksper.jpg
Пример ссылки на фото из shortstory
<img src="https://САЙТРУ/uploads/posts/2018-04/1524541361_eksper.jpg"


<?php  if( ! defined( 'DATALIFEENGINE' ) ) die( "Hacking attempt!" );

$widjet = dle_cache( 'mod_index' );

if( ! $widjet ) 
{
	$tpl = file_get_contents( ROOT_DIR . '/templates/' . $config['skin'] . '/mod/index.tpl' );
	
	$ResultCount = $db->super_query( "SELECT sum(rating) as `sum`
                        FROM " . USERPREFIX . "_post_extras" );
	
	$newsList = '';
	
	$tooday = date ('Y-m-d H:i:s', $_TIME); //Определяем сегодняшний день
	$news_day = "date <= '$tooday'"; //Запрет вывода новости на не наступившую дату.
	$news_day .= " AND date > '$tooday' - INTERVAL 7 DAY";

	$tb = $db->query("SELECT * FROM ".PREFIX."_post 
		LEFT JOIN " . USERPREFIX . "_post_extras ON " . USERPREFIX . "_post.id=" . USERPREFIX . "_post_extras.news_id
	WHERE {$news_day} ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0, 10");

	while ($row = $db->get_row($tb))
	{
		//формирование ссылки на новость ->
		$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 ) 
				{
					$t_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
				else
				{
					$t_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
			} 
			else 
			{
				$t_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
			}
		} else {
			$t_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
		}
		// < - формирование ссылки на новость

		$images = array();
		$row['short_story'] = stripslashes( $row['short_story'] );
		preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $row['short_story'], $media);
		$data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);
		
		
		$xfdata = xfieldsdataload($row['xfields']);
echo $xfdata['image'];
		
	
		foreach($data as $url) {
			$info = pathinfo($url);
			if (isset($info['extension'])) {
				if ($info['filename'] == "spoiler-plus" OR $info['filename'] == "spoiler-minus" OR strpos($info['dirname'], 'engine/data/emoticons') !== false) continue;
				$info['extension'] = strtolower($info['extension']);
				if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) { if($info['extension'] == 'jpg') $info['extension'] ='jpeg'; array_push($images, $url); }
			}
		}
		
		if( ! $images[0] )
		{
			$images[0] = '/templates/Default/assets/img/partner/4.png';
		}
		
		$newsList .= '<div class="col-xs-12">
                            <div class="item">
                                <figure>
                                    <a href="' . $t_link . '">
										<img src="'.$xfdata['image'] . '" alt="" style="width: 172px">
									</a>
								</figure>
                            </div>
                        </div>';
	}
	
	$tpl = str_replace('{list}', $newsList, $tpl );
	$tpl = str_replace('{n}', $ResultCount['sum'], $tpl );
	
    create_cache( 'mod_index', $tpl);
}

   echo $tpl;     
		
?>

Ответа пока нет


1 комментарий

Ivan Kharlov
Юзер

Ivan Kharlov - 30 апреля 2018 19:03 -

{image-X} - URL картинки из краткой новости, где X это её номер (DLE 12.0 и выше)

по выводу из доп поле если без хаков то можно по средсвам css - спятать первые картики из вывести допустим каждую третью картинку через


.img {
   display:none;
}
.img:nth-child(3) {
   display:block;
}

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх