Всего 125 670 комментариев

Евгений
11 февраля 2021, 18:35
+1
Здравствуйте, Алексей! Благодарю за компонент, удобный.

Есть небольшое добавление по выводу звёзд на рейтингах. Текущий ваш вариант не учитывает пробел между звёздами (который необходим, чтобы они выводились не слитно), поэтому выводит не совсем корректно. Т.е. если рейтинг 4.5, к примеру, то на 5-ой звезде он закрашен лишь чуть, а не наполовину и т.п…

Добавил небольшую функцию в сниппет ecThreadRating, для корректной заливки.
Кусок кода ниже. Верхушка и конец те же.

Надеюсь пригодится!

$count = $thread->get('count');
    
    function percent($v, $max) {
    	$sw = 1/4; # space/width (depends on stars space/width on background image) default - 4px/16px
    	$percent = (intval($v) * (1 + $sw) + ($v - intval($v))) / ((1 + $sw) * $max - $sw); # percent
    	return number_format($percent * 100, 3);
    }
    
    foreach($ratingFields as $field) {
        $data = array_merge($data, array(
            $field.'_wilson_percent' => percent($thread->get($field.'_wilson'), $ratingMax),
            $field.'_simple_percent' => percent($thread->get($field.'_simple'), $ratingMax),
            // TEST only
            $field.'_votes' => array(),
        ));

P.s. Также для кастомизации звезд (свой дизайн), перевёл в scss и задал для своих размеров.
Размеры звёзд задавать целыми (px), отступ справа тоже. Легко делается в Figma по размерам, экспорт в svg.
Может кому пригодится (часть кода, для понимания):

/*
 * Rating input
 **/

// Depends on stars width/height/space on background image (default values below)
$es_w: 16; // es star width
$es_h: 16; // es star height
$es_space: 4; // horizontal right space (space between stars)
........................
.ec-stars {
	background-position: 0 -#{$es_h}px;
	background-repeat: repeat-x;
	margin: 10px 0;
	width: #{($es_w + $es_space)*5 - $es_space}px;
	height: #{$es_h}px;
	//transform: scale(1.5);
	//transform-origin: 0 0;
}
........................
.ec-stars span.rating-0{width: 0;}
@for $i from 1 through 5 {
	.ec-stars span.rating-#{$i} {
		width: #{($es_w + $es_space)*$i - $es_space}px;
	}
}
........................
Aleksanders
11 февраля 2021, 18:32
0
Вообще не отображается
olik
11 февраля 2021, 18:32
0
Да у меня error.log с этой ошибкой в день по 5-7Mb выростает
Alexey
11 февраля 2021, 18:20
0
А так?

[[!dateLocale? &val=`[[+publishedon]]`]]
Николай Савин
11 февраля 2021, 18:18
0
Кто-нибудь может дать алгоритм как эту ошибку поймать у себя? Пофиксим, главное понять как ее увидеть
Алексей
11 февраля 2021, 17:53
0
почему-то не даёт скачать, ссылки битые, а так всё красиво на видео!
Приятной работы!
Скачать
Bitbucket
Сергей
11 февраля 2021, 17:36
0
Аналогичная проблема после обновления ModX на 2.8.1 и последние версии pdoTools 2.12.10-pl и minishop2 2.8.0-pl
Артур Шевченко
11 февраля 2021, 16:41
-1
Код вызова и полный код шаблона в студию. Можно ещё showLog приложить.
Aleksanders
11 февраля 2021, 15:51
0
Ребята, 3й день бьюсь и не могу разобраться, почему у меня в rss дата стоит на всех новостях:
<pubDate>Thu, 01 Jan 1970 03:33:40 +0300</pubDate>
Создал сниппет:
<?php
setlocale(LC_ALL, 'en_US');
return strftime($options,$input);
В tpl прописал:
[[+publishedon:dateLocale=`%a, %d %b %Y %H:%M:%S %z`]]
Пробовал сниппет такой:
<?php
setlocale(LC_ALL, 'en_US.UTF-8');
if ( $val == '' ) $val=time();
if ($format == '' ) $format = "%a, %d %b %Y %H:%M:%S";
return strftime($format, $val);
Всё равно на всех новостях дата 1970 год. Подскажите, как исправить?
Виноградов Тимур
11 февраля 2021, 15:24
0
Да, мне тогда помог форумчанин, а сейчас надо доработать немного.
Nik
Nik
11 февраля 2021, 15:05
0
Тоже показалось что когда-то я уже видел это
Виноградов Тимур
11 февраля 2021, 13:57
0
Может быть будет проще если отправлю скрины в мессенджере?
Там на самом деле чехарда есть с выводом этих авторов, не знаю что именно показывать лучше.
Александр Мельник
11 февраля 2021, 13:53
0
Тогда у вас неверно заполняются значения ТВ поля.
Если вы говорите что 89 это родитель статей, то почему вы его используете в EVAL привязке?
У вас вместо имен авторов, в ТВ поле значит попадают имена статей. (если быть совсем корректным то идентификаторы. )
Alexey
11 февраля 2021, 13:49
0
Прямо глаз режет тире в названии tv-поля. Могу ошибаться, но где-то видел пост, как раз связанный с такого плана именованием и проблемой в выполнении запроса.

Не зря же тире не входит в список разрешенных символов для именования переменных в php. Попробуйте сменить тире на нижнее подчеркивание.

И, да — LIKE в данном случае неуместен, полностью согласен с Артуром и Александром.
Александр Мельник
11 февраля 2021, 13:49
0
дело не только в равно.
во первых символ равно не нужно ставить, условие в json формате будет такое {«text»:«hello»}
Но у вас и без "=" мешанина в коде жуткая.
У вас 89 это родитель ресурсов, в которых хранятся имена авторов.
Но этот же родитель 89 у вас участвует в выборке, которая должна выводить новости.
Что-то странное у вас твориться и я по прежнему считаю, что пока вы детально со скринами не расскажите, что вы там напридумывали, никто вам не сможет помочь.
Виноградов Тимур
11 февраля 2021, 13:47
0
Моя почта:
mechmedia@yandex.ru
Телеграм:
@Timurkin

Если кто-то готов помочь за вознаграждение.
Виноградов Тимур
11 февраля 2021, 13:44
0
В шаблоне статьи автор выводится вот так:
<div class="row">
            [[#[[*autor-res]].autor-image:!empty=`
            	<div class="col-md-2 col-sm-2 col-xs-4">
            		<div class="autor-article">
            		<a href="[[~[[*autor-res]]]]"><img src="[[#[[*autor-res]].autor-image]]" class="img-circle"></a>
            		</div>
            	</div>
            `]]
            <div class="col-md-5 col-sm-5 col-xs-8">
            	<span itemprop="author" itemscope itemtype="http://schema.org/Person" class="author-title publishedby">
            		<a href="[[~[[*autor-res]]]]"><span itemprop="name">[[#[[*autor-res]].pagetitle]]</span></a>
            	</span>
            	[[#[[*autor-res]].autor-subject:!empty=`
            		<p>[[#[[*autor-res]].autor-subject]]</p>
            	`]]
            </div>
            <div class="col-md-5 col-sm-5 col-xs-12">
                <div class="info-article">
                   <div class="category">
                       <span itemprop="datePublished" class="publishedon">[[*publishedon:strtotime:date=`%d-%m-%Y`]]</span>
                    [[getCategoryLink]]
                  </div>
                </div>
            </div>    
            </div>
Виноградов Тимур
11 февраля 2021, 13:43
0
Пробовал ставить "=" по документации с where, не работает
Виноградов Тимур
11 февраля 2021, 13:42
0
Да, дело в том что автор как отдельное TV-поле используется, не как родная сущность users
Виноградов Тимур
11 февраля 2021, 13:41
0
&parents=`4,89`
4 — это родитель ресурсов автора — страницы автора
89 — это родитель(ресурс блог) — страницы блога, т.е. да, список статей