5 часов назад
Искал ответ примерно на тот же вопрос. Мне нужно было сделать file.php который будет выводить определенный ресурс из modx. Вот, может, кому то пригоди...
Как получить HTML код всей страницы в сниппете? 10
Вчера в 16:14
Путем ковыряния несколько часов поля, что взял заказ, с кучей костылей. Много старых пакетов написаных еще в 14 году, которые не работаю php 5.6 стоял...
Не добавляется запись в MIGX 1
Вчера в 12:48
Установил компонент. PHP 7.4, Modx 2.8.4. Созданные кастомные поля юзера не отображаются, в логе ошибка:
No foreign key definition for parentClass: e...
ExtraFields. Дополнительные поля для ресурса (modResource) и пользователя (modUserProfile). 33
Вчера в 11:21
[2024-05-13 11:18:51] (ERROR @ Unknown0) PHP warning: Unknown: Cannot call session save handler in a recursive mannerЗапись в базу работает, н...
Еще немного про сессии MODX, компонент smartSessions 73
Вчера в 09:02
На странице есть описание, скриншоты и видео ролик. Посмотрите, есть ли там нужные вам функции.
Есть чтото в духе StarRating или LikeDislike для оценок пользователями для MODX3? 5
12 мая 2024, 18:28
Спасибо, если вдруг не получится воспроизвести – пиши, сделаю демку
PageBlocks. Удобное управление контентом сайта. 28
12 мая 2024, 13:48
Ну так они у тебя такие же будут если ты не будешь использовать дополнение
StaticElementsLive 29
12 мая 2024, 06:41
Так ты сделай нормальное composer дополнение для MODX — и пусть его себе ставит кто хочет, вместе с остальными mmx-дополнениями. Древний транспортный ...
Facade Laravel в Modx 2/3 20
11 мая 2024, 14:20
Я для себя нашел решение, такое как описал для Василия. Я не использую образу напрямую из dockerhub, а строю свои образы на их основании. Это позволяе...
mmxApp - разработка новых composer дополнений 11
— рейтинг автора;
— количество лайков за посты автора;
— количество добавленных им в избранное;
— в общем те значения, что находятся в таблице tickets_authors.
Интересует, чтоб выводило в панелях как в общей ленте. Вызывая, например, так:
[[!pdoPage? &element=`getTickets` &tpl=`tpl_Tickets.list.row`]]
Так и в панели по самим тикетом. Вызывая, например, так:
[[!TicketMeta? &tpl=`tpl_Tickets.meta`]]
Вопрос, можно ли в вызове этих сниппетов, прописать какой-то параметр, который будет делать дополнительную выборку в таблице tickets_authors и отдавать соответствующие плейсхолдеры?
Если нет, то как оптимально это реализовать?
У меня в чанке tpl_rating_users вызывается еще один сниппет (VoteProcent), который, например, умножает один плейсхолдер выданый pdoUsers на другой, после чего выдает свой плейсхолдер [[+ticketprocent]].
Как мне, вызывая pdoUsers, сделать сортировку выдачи по плейсхолдеру [[+ticketprocent]]?
А вызов этого третьего сниппета вставил в шаблон вывода сниппета pdoUsers.
Пока не знаю насколько это оптимально, но главное, что работает…
P.S. На самом деле я сделал так изначально, но результат выдывало = 0;
Оказалось, что я не внимательно прописал один плейсхолдер pdoUsers.
Пожалуйста, подскажите.
Я вызываю два сниппета:
1-й — тот, что вы написали чуть выше (находит максимальное значение в массиве голосов за тикеты и комменты). Он дает мне два значения: [[+maxticketsvote]] и [[+maxcommvote]]
и
2-й сниппет:
Мне нужно, чтоб при выводе результатов сниппета pdoUsers, помимо всех его плейсхолдеров выводилося плейсхолдер, например: «ticketprocent».
Моя задача:
Голоса за тикеты = [[+votes_tickets]] = X;
Максимальное значение голоса за тикеты = [[+maxticketsvote]] = Y
Плейсхолдер [[+ticketprocent]] = Z = X / Y *100;
Василий, благодаря вашему ответу, я уже понял, как сниппетом создать свой плейсхолдер и, более-менее, понял, как делать выборку из нужной мне таблицы БД. Как написать на php формулу подсчета плейсхолдера [[+ticketprocent]] я тоже знаю.
Мое замешательство в том, какой мой порядок действий? Куда мне нужно вписать несколько строк кода, который создаст плейсхолдер Z, который будет выводить: X / Y *100? Или как я могу в выдаче pdoUsers делать какие-то математические манипуляции с плейсхолдерами? Может все гораздо проще и я захожу не с той стороны…
Если коротко, то мне, вызывая pdoUsers, нужно получить результат:
— Пользователь Петров получил: 10 балов за тикеты, что составляет Z процентов;
— Пользователь Иванов получил: 8 балов за тикеты, что составляет Z процентов;
— Пользователь Сидоров получил: 5 балов за тикеты, что составляет Z процентов.
Соответственное, если в массиве максимальное значение =10, то вместо Z было бы: 100, 80, 50.
Пожалуйста, помогите мистеру Сuriosity.
Единственное, поправьте немного ваш ответ… в
скорей всего нужно не складывать, а вычитать… потому как в таблице БД только положительные цифры…
тоесть должно быть так:
Поправьте меня, если ошибаюсь…
Дело в том, что я пока не программист, а потому для меня это вопрос, пока сложный. Но логически понимаю, что дело в нескольких не сложных строчках нового сниппета.
Вот так я вывожу рейтинг списка пользователей с цифрами их заслуг:
В чанеке «tpl_rating_users» соответственно оформление выводов строк.
Теперь, собственно, просьба…
Мне нужен сниппет, который должен давать два плейсхолдера:
1) maxticketsvote — выводит максимальное значение из массива общего рейтинга тикетов.
2) maxcommvote — выводит максимальное значение из массива общего рейтинга комментариев.
Пример:
Петрову дали = 10 голосов за его тикеты и 5 голосов за его комменты.
Сидорову дали = 5 голосов за его тикеты и 10 голосов за его комменты.
Иванову дали = 12 голосов за его тикеты и 9 голосов за его комменты.
Результат сниппета:
1) maxticketsvote = 12
2) maxcommvote = 10
Василий, пожалуйста, подарите этот сниппет вашему доброжелателю. :)
P.S. Видел еще вчера, но был настолько занят, что не мог добраться к комментированию этой хорошей новости! Но, как говорится, лучше поздно, чем никогда…
Василий, подводя итоги, просьба:
В таблице tickets_authors добавить:
— подсчет суммы голосов пользователей за тикеты текущего пользователя;
— подсчет суммы голосов пользователей за комментарии текущего пользователя;
В идеале было бы хорошо, если б там же были колонки:
— количество положительных голосов за тикеты текущего пользователя;
— количество отрицательных голосов за тикеты текущего пользователя;
— количество положительных голосов за комментарии текущего пользователя;
— количество отрицательных голосов за комментарии текущего пользователя;
Соостветственно, если будет и возможность фильтровать по этим параметрам в админке, то вообще будет супер…
Можно будет видеть яростных рецидивистов и ангелов проекта…
P.S. Ну и соответствующие плейсхолдеры.
P.P.S. Весело пляшу у рабочего стола…
P.S. я не резидент РФ. напрямую с карты не получается. Пей пал — эт какая-то чертовщина, Киви вообще для каких-то умолишенных… а через вебмани тройные комиссии… вначале за конвертацию, потом доходит до третьего лица, а потом третье лицо уже шлет вам… жесть какая-то.
P.P.S. Зайдите пожалуйста на пару минут в скайп.
:(
Надо разделить:
Голоса за посты и голоса за комменты.
Так ждал этого релиза, а теперь аж голова бо…
Вы говорите, что устали. Надеюсь, оплата этого момента (нужного для многих хоть они и сами этого не знают) вас промотивирует…
Но в самой таблице отсутствует соответствующий столбец.
Это ж очень важный пункт, который всегда может пригодится.
Вы представьте, если на стрице рейтинга выводить 500 пользователей:
Где у каждого будет выводиться:
— количество оставленных тикетов;
— количество оставленных комментариев;
— количество просмотров тикетов пользователя;
— количество звезд (кол-во пользовоталей, которые добавили в избранное);
— количество голосов за тикеты пользователя;
— количество голосов за комментарии пользователя.
Одно дело, когда все берется с одной таблицы (все пункты, кроме последнего), и другое дело, когда нужно делать дополнительный запрос к другой таблице (где нужно еще подсчитать… а если таких комментов 1000 у каждого юзера, так вообще жесть).
Если вы внесете в табилцу tickets_authors подсчет голосов за комментарии, это решит вопрос многих разработчиков сайтов с элементами соцсети.
Василий, я понимаю, что вам далеко не комильфо принимать всякие хотелки, которые под ваши цели не нужны. Но не судите сразу строго. Подумайте, какие возможности это может дать другим, в том числе и вам.
Например:
можно выводить все эти данные и на основе их составлять свой рейтинг (где одну из ключевых ролей играет и голосование за комментарии пользователя).
Подскажите.
Если мне надо вывести, то, понятно, я вывожу такие плейсхолдеры:
+votes = количество голосов, которые поставили пользователи
+comments = Количество комментариев, которые оставил пользователь
А как вывести количество голосов за комментарии пользователя?
В коде выглядит так:
Эт так и задуманно?
Нужно отвыкать от того, что было раньше… И вкручивать самому. Тем более, что jQuery сейчас необходим практически на любом современном сайте…