develmax 17 октября 2020 в 19:23 Drupal 8 @ commerce 2 Задача-вывести на странице продукта количество комментариев, которые оставляют на данной странице. Может кто сталкивался или подскажет в какой стороне копать-буду благодарен) Drupal8 Есть вопрос Решение проблем Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
buldozer_kpi 18 октября 2020 в 0:44 1 Для 7 работала следующая конструкция: $node->comment_count. С 8 не работал, не знаю. Посмотрите, может что-то похожее.
develmax 18 октября 2020 в 16:46 Пока склепал временное решение: function count_review_preprocess_commerce_product(&$variables) { //dump($variables['product']['CUSTOM_FIELD']['0']['comments']); $variables['array_review'] = $variables['product']['CUSTOM_FIELD']['0']['comments']; $variables['count_review'] = count($variables['array_review'] ) - 3; } /* пока не нашел , как посчитать количество ключей, которые имеют индекс(нужно выбрать 24,25,26) в переменной array_review сейчас вид такой: array[ "#sorted" => true "#pre_render" => array:1 [▶] 24 => array:6 [▶] 25 => array:6 [▶] 26 => array:6 [▶] "pager" => array:3 [▶] ] */ Тупо минуснул 3 ключа а в Twig вывел условием {% if count_review == -3 %}0 {% elseif count_review == -2 %}1 {% elseif count_review == -1 %}2 {% else %}{{ count_review }} {% endif %}
Комментарии
агрегация в views
не хочется вьюху тянуть из-за одного вывода количества комментариев
Для 7 работала следующая конструкция: $node->comment_count. С 8 не работал, не знаю. Посмотрите, может что-то похожее.
Пока склепал временное решение:
function count_review_preprocess_commerce_product(&$variables) {
//dump($variables['product']['CUSTOM_FIELD']['0']['comments']);
$variables['array_review'] = $variables['product']['CUSTOM_FIELD']['0']['comments'];
$variables['count_review'] = count($variables['array_review'] ) - 3;
}
/* пока не нашел , как посчитать количество ключей, которые имеют индекс(нужно выбрать 24,25,26) в переменной array_review
сейчас вид такой:
array[
"#sorted" => true
"#pre_render" => array:1 [▶]
24 => array:6 [▶]
25 => array:6 [▶]
26 => array:6 [▶]
"pager" => array:3 [▶]
]
*/
Тупо минуснул 3 ключа а в Twig вывел условием
{% if count_review == -3 %}0
{% elseif count_review == -2 %}1
{% elseif count_review == -1 %}2
{% else %}{{ count_review }}
{% endif %}