Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Возникает ошибка Deprecated: Unparenthesized ... #159

Closed
Andreikoa opened this issue Nov 16, 2019 · 4 comments
Closed

Возникает ошибка Deprecated: Unparenthesized ... #159

Andreikoa opened this issue Nov 16, 2019 · 4 comments
Assignees
Labels

Comments

@Andreikoa
Copy link

Здравствуйте, подскажите пожалуйста как исправить ошибку.

Описание ошибки:

Некоторое время назад все работало без проблем. Но видимо после переноса сайта -
Не работают страницы пагинации у блоков. Ссылки на страницы есть, но они неактивны. Констоль браузера выдает ошибку следующего содержания:
Error: Syntax error, unrecognized expression: Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/admin/web/turkseason.ru/public_html/engine/modules/sitelogin.php on line 159

Deprecated: Unparenthesized a ? b : c ? d : e is deprecated. Use either (a ? b : c) ? d : e or a ? b : (c ? d : e) in /home/admin/web/turkseason.ru/public_html/engine/modules/base/blockpro.php on line 554

Deprecated: Unparenthesized a ? b : c ? d : e is deprecated. Use either (a ? b : c) ? d : e or a ? b : (c ? d : e) in /home/admin/web/turkseason.ru/public_html/engine/modules/base/blockpro.php on line 558
...

  • Модуль приустанавливался, но исправить ошибку это не помогло.
  • Версия DLE: 13.2
  • Версия PHP: 7.4.0RC6

Строка подключения с включенным параметром showstat:

{include file="engine/modules/base/blockpro.php?showstat=y&template=blockpro/serii&cacheLive=1440&limit=12&notPostId=this&xfSearch=field_for_related_news|{title}&catId=2&sort=xf|seria&order=old&showNav=y"}

Статистика генерации:

Содержимое блока в красной рамке в конце блока с новостями

Запрос(ы):
[1] SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.allow_comm, p.comm_num, p.fixed, p.allow_main, p.symbol, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.related_ids, e.view_edit, e.editdate, e.editor, e.reason, SUBSTRING_INDEX(SUBSTRING_INDEX(p.xfields, 'seria|', -1 ) , '||', 1 ) as sort_xfield FROM `dle_post` p LEFT JOIN `dle_post_extras` e ON (p.id=e.news_id) WHERE approve AND category regexp "[[:<:]](2)[[:>:]]" AND id NOT IN (99) AND (p.xfields LIKE '%field_for_related_news|%Ветреный%') AND p.date < "2019-11-16 16:00:48" ORDER BY fixed ASC, CAST(sort_xfield AS DECIMAL(12,2)) ASC LIMIT 0, 12
[1 время:] 0,11996603012085
[2] SELECT COUNT(*) as count FROM `dle_post` as p LEFT JOIN `dle_post_extras` e ON (p.id=e.news_id) WHERE approve AND category regexp "[[:<:]](2)[[:>:]]" AND id NOT IN (99) AND (p.xfields LIKE '%field_for_related_news|%Ветреный%') AND p.date < "2019-11-16 16:00:48"
[2 время:] 0,033895969390869
Время выполнения запросов: 0,15386199951172
Время выполнения скрипта: 0,17566 c.
Расход памяти: 3,55Мб 

Код используемого шаблона:

<div id="{$block_id}">
	<div class="sect-cont sect-items clearfix">
	{foreach $list as $key => $el}	
	<div class="th-item">
		<a class="th-in with-mask"  href="{$el.url}">
		<div>
			{*Пробегаем по массиву с сериями*}
				{* Определяем переменную, в которой будет картинка *}
				{set $image}
					{if $el.xfields['image']}
						{* Если в допполе есть ссылка на картинку - подставим её *}
						<img src="{$el.xfields['image']}">
					{else}
						{* Если ссылки нет, подставим заглушку *}
						<img src="{$theme}/blockpro/noimage.png">				
					{/if}
				{/set}
				{* А теперь работаем с полученной картинкой *}
				<img src="{$image|image:$noimage:'small':'1':'265x165':'75':'':true:false}" alt="{$el.title}">
		</div>
			{if $el.xfields['pleer1name']}
			<div class="th-desc">
				{$el.xfields['pleer1name']}
			</div>
			{else}
			{/if}
		<center><div class="ntvn">{$el.title}</div></center>
		</a>
	</div>
				{foreachelse}
					{*Если серий нет - выведем информацию об этом*}
					<div>Серий нет</div>
	{/foreach}
		<div style="clear:both;"></div>
		<center>{$pages}</center>
	</div>
</div> <!-- #{$block_id} -->
@pafnuty
Copy link
Member

pafnuty commented Nov 18, 2019

@Andreikoa Вероятно какой то функционал в php 7.4 признан устаревшим.

Попробуйте заменить:

$base->cfg['catId'] = ($base->cfg['subcats']) ? get_sub_cats($category_id) : ($base->cfg['thisCatOnly']) ? (int)$category_id : $category_id;

на

$base->cfg['catId'] = $category_id;
if($base->cfg['subcats']) {
	$base->cfg['catId'] = get_sub_cats($category_id);
} elseif ($base->cfg['thisCatOnly']) {
	$base->cfg['catId'] = (int)$category_id;
} 

$base->cfg['notCatId'] = ($base->cfg['notSubcats']) ? get_sub_cats($category_id) : ($base->cfg['thisCatOnly']) ? (int)$category_id : $category_id;

на

$base->cfg['notCatId'] = $category_id;

if ($base->cfg['notSubcats']) {
	$base->cfg['notCatId'] = get_sub_cats($category_id);
} elseif($base->cfg['thisCatOnly']) {
	$base->cfg['notCatId'] = (int)$category_id;
}

@Andreikoa
Copy link
Author

Спасибо, Ваше ответ оказался точным и помог решить проблему.

@pafnuty
Copy link
Member

pafnuty commented Nov 29, 2019

@Andreikoa Добавлю в код в следующей версии модуля.

@pafnuty pafnuty self-assigned this Nov 29, 2019
@pafnuty pafnuty added the баг label Nov 29, 2019
@pafnuty
Copy link
Member

pafnuty commented Dec 1, 2019

Исправлено в релизе 5.1.5 https://github.com/dle-modules/DLE-BlockPro/releases/tag/v5.1.5

@pafnuty pafnuty closed this as completed Dec 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants