Posted 8 мая, 20231 yr comment_193163 Привет! Я использую следующий код в файле postcontainer для отображения ранга пользователей. {{if $comment->author()->canHaveAchievements() and \IPS\core\Achievements\Rank::show() and \IPS\core\Achievements\Rank::getStore() and $rank = $comment->author()->rank()}} <div class="postlevel"> {{if $nextRank = $comment->author()->nextRank()}} <div class="postlevel_content"> <span class="postlevel_levels">{$rank->rankPosition()['pos']} level</span> <span class="postlevel_exp"><b>{$comment->author()->achievements_points}</b> / {$nextRank->points}</span> </div> <div class="postlevel_progress"> <div class="postlevel_progress_bar" style="width: calc({expression='$comment->author()->achievements_points'} / {$nextRank->points} * 100%);"></div> </div> {{endif}} </div> {{endif}} Сейчас я хочу разместить эти же коды в новом файле HTML и вызвать их из postcontainer используя следующий метод, но я получаю ошибку. {template="pst_dollafin" app="core" group="dollafin" location="front" params=""} В чем проблема? Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/ Share on other sites Больше вариантов
8 мая, 20231 yr comment_193164 Скорее всего, неправильный синтаксис в вызове шаблона. Это то, что отображает сайт при попытке использовать код: 13 минут назад, turk сказал: {template="pst_dollafin" app="core" group="dollafin" location="front" params=""} А что говорит журнал ошибок? Подробности бы лучше скидывать.... Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193164 Share on other sites Больше вариантов
8 мая, 20231 yr Author comment_193165 Error: Call to a member function author() on null in /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code:1062 Stack trace: #0 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_core_front_dollafin->pst_dollafin(Object(IPS\core\Achievements\Rank)) #1 /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code(3216): IPS\Theme\_SandboxedTemplate->__call('pst_dollafin...', Array) #2 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_forums_front_topics->postContainer(Object(IPS\forums\Topic), Object(IPS\forums\Topic\Post), Array, '') #3 /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code(5973): IPS\Theme\_SandboxedTemplate->__call('postContainer', Array) #4 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_forums_front_topics->topic(Object(IPS\forums\Topic), Array, NULL, Array, NULL, NULL, Array) #5 /home/*******/*******/applications/forums/modules/front/forums/topic.php(604): IPS\Theme\_SandboxedTemplate->__call('topic', Array) #6 /home/*******/*******/system/Dispatcher/Controller.php(118): IPS\forums\modules\front\forums\_topic->manage() #7 /home/*******/*******/system/Content/Controller.php(50): IPS\Dispatcher\_Controller->execute() #8 /home/*******/*******/applications/forums/modules/front/forums/topic.php(39): IPS\Content\_Controller->execute() #9 /home/*******/*******/system/Dispatcher/Dispatcher.php(153): IPS\forums\modules\front\forums\_topic->execute() #10 /home/*******/*******/index.php(13): IPS\_Dispatcher->run() #11 {main} Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193165 Share on other sites Больше вариантов
8 мая, 20231 yr comment_193166 31 минуту назад, turk сказал: Error: Call to a member function author() on null in /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code:1062 Stack trace: #0 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_core_front_dollafin->pst_dollafin(Object(IPS\core\Achievements\Rank)) #1 /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code(3216): IPS\Theme\_SandboxedTemplate->__call('pst_dollafin...', Array) #2 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_forums_front_topics->postContainer(Object(IPS\forums\Topic), Object(IPS\forums\Topic\Post), Array, '') #3 /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code(5973): IPS\Theme\_SandboxedTemplate->__call('postContainer', Array) #4 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_forums_front_topics->topic(Object(IPS\forums\Topic), Array, NULL, Array, NULL, NULL, Array) #5 /home/*******/*******/applications/forums/modules/front/forums/topic.php(604): IPS\Theme\_SandboxedTemplate->__call('topic', Array) #6 /home/*******/*******/system/Dispatcher/Controller.php(118): IPS\forums\modules\front\forums\_topic->manage() #7 /home/*******/*******/system/Content/Controller.php(50): IPS\Dispatcher\_Controller->execute() #8 /home/*******/*******/applications/forums/modules/front/forums/topic.php(39): IPS\Content\_Controller->execute() #9 /home/*******/*******/system/Dispatcher/Dispatcher.php(153): IPS\forums\modules\front\forums\_topic->execute() #10 /home/*******/*******/index.php(13): IPS\_Dispatcher->run() #11 {main} Ну по идее, если кратко, то ошибка из-за того, что функцию author() мы пытаемся вызвать на объекте, который не был инициализирован или не существует. И скорее всего на отдельной HTML странице, мы не сможем получить доступ к различным объектам и методам, определенным в IPS, например как требующиеся тебе $comment и $comment->author(). И для того, что бы реализовать то что ты хочешь, мы должны этот код запихнуть в PHP файл, где подключим необходимые файлы для IPS через require_once и уже этот PHP файл мы подключаем в твоем HTML, который мы выводим в Postcontainer. Жесть че я сказал? Это вообще легитно? Но по логике так... 😆 Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193166 Share on other sites Больше вариантов
8 мая, 20231 yr Author comment_193171 Разрешите мне дать вам более ясное объяснение. Я создал файл HTML, как показано на картинке, и поместил свой код в него: Spoiler alert Теперь я вызвал этот код в формате postcontainer, как показано на картинке ниже, но я получаю ошибку. Spoiler alert Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193171 Share on other sites Больше вариантов
10 мая, 20231 yr Author comment_193225 Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193225 Share on other sites Больше вариантов
10 мая, 20231 yr comment_193231 Я не программист или что-то в этом роде, но, может быть, я смогу помочь вам найти ответ, если вы покажете мне пример Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193231 Share on other sites Больше вариантов
10 мая, 20231 yr comment_193235 В 08.05.2023 в 15:31, turk сказал: Error: Call to a member function author() on null in /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code:1062 Stack trace: #0 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_core_front_dollafin->pst_dollafin(Object(IPS\core\Achievements\Rank)) #1 /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code(3216): IPS\Theme\_SandboxedTemplate->__call('pst_dollafin...', Array) #2 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_forums_front_topics->postContainer(Object(IPS\forums\Topic), Object(IPS\forums\Topic\Post), Array, '') #3 /home/*******/*******/system/Theme/Theme.php(885) : eval()'d code(5973): IPS\Theme\_SandboxedTemplate->__call('postContainer', Array) #4 /home/*******/*******/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_forums_front_topics->topic(Object(IPS\forums\Topic), Array, NULL, Array, NULL, NULL, Array) #5 /home/*******/*******/applications/forums/modules/front/forums/topic.php(604): IPS\Theme\_SandboxedTemplate->__call('topic', Array) #6 /home/*******/*******/system/Dispatcher/Controller.php(118): IPS\forums\modules\front\forums\_topic->manage() #7 /home/*******/*******/system/Content/Controller.php(50): IPS\Dispatcher\_Controller->execute() #8 /home/*******/*******/applications/forums/modules/front/forums/topic.php(39): IPS\Content\_Controller->execute() #9 /home/*******/*******/system/Dispatcher/Dispatcher.php(153): IPS\forums\modules\front\forums\_topic->execute() #10 /home/*******/*******/index.php(13): IPS\_Dispatcher->run() #11 {main} В params нужно передавать переменные вызываемые в шаблоне. А так ты подключил шаблон без данных в переменных, естественно будет ошибка при вызове любых функций Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193235 Share on other sites Больше вариантов
10 мая, 20231 yr Author comment_193237 3 hours ago, Mr Haim said: I'm not a programmer or anything but maybe I can help you find the answer if you show me an example Какой пример? 23 minutes ago, Exception said: In params, you need to pass variables called in the template. And since you connected the template without data in the variables, naturally there will be an error when calling any functions Я сделал это, но это все равно выдавало мне ошибку {template="pst_dollafin" app="core" group="dollafin" location="front" params="'$comment','$rank','$nextRank'"} Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193237 Share on other sites Больше вариантов
10 мая, 20231 yr comment_193238 Только что, turk сказал: Какой пример? Я сделал это, но это все равно выдавало мне ошибку {template="pst_dollafin" app="core" group="dollafin" location="front" params="'$comment','$rank','$nextRank'"} Пример того, что вам нужно/попросить/спросить Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193238 Share on other sites Больше вариантов
10 мая, 20231 yr Author comment_193240 3 minutes ago, Mr Haim said: An example of what you need/ask/ask Спойлер Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193240 Share on other sites Больше вариантов
10 мая, 20231 yr comment_193244 16 минут назад, turk сказал: Я сделал это, но это все равно выдавало мне ошибку ну здрасте в кавычках ' передается строковое значение, а не переменная, это вообще база php, зачем вы лезете туда с 0 знаний, не понятно. {template="pst_dollafin" app="core" group="dollafin" location="front" params="$comment, $rank, $nextRank"} в созданном шаблоне так же нужно указать, что они действительно принимаются через кнопку Переменные Edited 10 мая, 20231 yr by Exception Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193244 Share on other sites Больше вариантов
10 мая, 20231 yr comment_193245 я думаю что Извините, если я неправильно вас понял буду и дальше стараться помогать Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193245 Share on other sites Больше вариантов
11 мая, 20231 yr Author comment_193260 13 hours ago, Exception said: in the created template, you also need to indicate that they are really accepted through the Variables button как? Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193260 Share on other sites Больше вариантов
12 мая, 20231 yr Author comment_193285 Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193285 Share on other sites Больше вариантов
12 мая, 20231 yr comment_193290 turk попробуйте в свойствах своего файла добавить переменные $item, $comment а здесь params="'$comment','$rank','$nextRank' переменные указываются без кавычек Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193290 Share on other sites Больше вариантов
12 мая, 20231 yr Author comment_193292 56 minutes ago, AHristich said: turk try to add $item, $comment variables in your file properties and here params = "'$comment','$rank','$nextRank' variables are specified without quotes Это также не дало ответа. Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193292 Share on other sites Больше вариантов
12 мая, 20231 yr Author comment_193293 Может быть проблема в следующих настройках? Конечно, я проверил все пункты. Spoiler alert Link to comment https://ipbmafia.ru/topic/25644-add-user-rank-in-postbit/?&do=findComment&comment=193293 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.