turk Опубликовано 8 мая, 2023 Поделиться Опубликовано 8 мая, 2023 Привет! Я использую следующий код в файле 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=""} В чем проблема? ryancoolround 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ryancoolround Опубликовано 8 мая, 2023 Поделиться Опубликовано 8 мая, 2023 Скорее всего, неправильный синтаксис в вызове шаблона. Это то, что отображает сайт при попытке использовать код: 13 минут назад, turk сказал: {template="pst_dollafin" app="core" group="dollafin" location="front" params=""} А что говорит журнал ошибок? Подробности бы лучше скидывать.... turk 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 8 мая, 2023 Автор Поделиться Опубликовано 8 мая, 2023 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} ryancoolround 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ryancoolround Опубликовано 8 мая, 2023 Поделиться Опубликовано 8 мая, 2023 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. Жесть че я сказал? Это вообще легитно? Но по логике так... 😆 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 8 мая, 2023 Автор Поделиться Опубликовано 8 мая, 2023 Разрешите мне дать вам более ясное объяснение. Я создал файл HTML, как показано на картинке, и поместил свой код в него: Spoiler alert Теперь я вызвал этот код в формате postcontainer, как показано на картинке ниже, но я получаю ошибку. Spoiler alert Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 10 мая, 2023 Автор Поделиться Опубликовано 10 мая, 2023 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MrHaim Опубликовано 10 мая, 2023 Поделиться Опубликовано 10 мая, 2023 Я не программист или что-то в этом роде, но, может быть, я смогу помочь вам найти ответ, если вы покажете мне пример ryancoolround 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 10 мая, 2023 Поделиться Опубликовано 10 мая, 2023 В 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 нужно передавать переменные вызываемые в шаблоне. А так ты подключил шаблон без данных в переменных, естественно будет ошибка при вызове любых функций Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 10 мая, 2023 Автор Поделиться Опубликовано 10 мая, 2023 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'"} Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MrHaim Опубликовано 10 мая, 2023 Поделиться Опубликовано 10 мая, 2023 Только что, turk сказал: Какой пример? Я сделал это, но это все равно выдавало мне ошибку {template="pst_dollafin" app="core" group="dollafin" location="front" params="'$comment','$rank','$nextRank'"} Пример того, что вам нужно/попросить/спросить Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 10 мая, 2023 Автор Поделиться Опубликовано 10 мая, 2023 3 minutes ago, Mr Haim said: An example of what you need/ask/ask Спойлер Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 10 мая, 2023 Поделиться Опубликовано 10 мая, 2023 (изменено) 16 минут назад, turk сказал: Я сделал это, но это все равно выдавало мне ошибку ну здрасте в кавычках ' передается строковое значение, а не переменная, это вообще база php, зачем вы лезете туда с 0 знаний, не понятно. {template="pst_dollafin" app="core" group="dollafin" location="front" params="$comment, $rank, $nextRank"} в созданном шаблоне так же нужно указать, что они действительно принимаются через кнопку Переменные Изменено 10 мая, 2023 пользователем Exception turk 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MrHaim Опубликовано 10 мая, 2023 Поделиться Опубликовано 10 мая, 2023 я думаю что Извините, если я неправильно вас понял буду и дальше стараться помогать Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 11 мая, 2023 Автор Поделиться Опубликовано 11 мая, 2023 13 hours ago, Exception said: in the created template, you also need to indicate that they are really accepted through the Variables button как? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 12 мая, 2023 Автор Поделиться Опубликовано 12 мая, 2023 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 12 мая, 2023 Поделиться Опубликовано 12 мая, 2023 turk попробуйте в свойствах своего файла добавить переменные $item, $comment а здесь params="'$comment','$rank','$nextRank' переменные указываются без кавычек Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 12 мая, 2023 Автор Поделиться Опубликовано 12 мая, 2023 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 Это также не дало ответа. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
turk Опубликовано 12 мая, 2023 Автор Поделиться Опубликовано 12 мая, 2023 Может быть проблема в следующих настройках? Конечно, я проверил все пункты. Spoiler alert Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.