После публикации поста в блоге - ошибка Есть решение

1

После публикации первого поста в приложении блог получаю следующую ошибка на главной странице сайта.

PHP Version 7.3.27-1~deb10u1
[12-Oct-2021 11:49:40 Europe/Moscow] PHP Fatal error:  Uncaught Error: Call to undefined method BlogPost::getUrl() in /var/www/xxx/data/www/myjewels.ru/wa-apps/blog/lib/classes/blogHelper.class.php:188
Stack trace:
#0 /var/www/xxx/data/www/myjewels.ru/wa-apps/blog/lib/models/blogPost.model.php(381): blogHelper::extendUser(Array, Array, true)
#1 /var/www/xxx/data/www/myjewels.ru/wa-apps/blog/lib/models/blogItem.model.php(251): blogPostModel->prepareView(Array)
#2 /var/www/xxx/data/www/myjewels.ru/wa-apps/blog/lib/classes/blogViewHelper.class.php(115): blogItemModel->fetchSearchPage(1, 20, Array)
#3 /var/www/xxx/data/www/myjewels.ru/wa-cache/653d28/apps/shop/templates/compiled/shop_ru_RU/6d/3b/a7/6d3ba737c10b92f57b301eedf367ae349f72205f.file.sidebar.html.php(288): blogViewHelper->posts()
#4 /var/www/xxx/data/www/myjewels.ru/wa-system/vendors/smarty3/sysplugins/smarty_internal_templatebase.php(186): content_61653d2c115be5_01743385(Object(Smarty_Internal_Template))
#5 /var/www/xxx/data/www/myjewels.ru/wa- in /var/www/xxx/data/www/myjewels.ru/wa-apps/blog/lib/classes/blogHelper.class.php on line 188

4 комментария

  • +1
    replicant replicant 12 октября 2021 12:08 #

    Для начала можно попробовать посмотреть что там за проблемы в шаблоне

    sidebar.html
    • +1
      Евгений Евгений 12 октября 2021 14:01 #

      Забыл написать. На локалке все работает.

      Кусок sidebar.html относящийся к блогу выглядит как:

      {if $theme_settings.sidebar_show_latest_posts && $wa->blog}
          {if $theme_settings.sidebar_blog_id}
              {$latest_posts = $wa->blog->posts($theme_settings.sidebar_blog_id)}
          {else}
              {$latest_posts = $wa->blog->posts()}
          {/if}
          {if $latest_posts && $wa_app != 'blog'}
          <div class="side_block side_news_wrap hidden-xs">
              <div class="title">{$theme_settings.sidebar_blog_title|default:"`Blog`"}</div>
              <div class="side_news">
                  <ul>
                      {$i = 1}
                      {foreach $latest_posts as $post}
                          {if $i <= $theme_settings.sidebar_blog_count|default:3}
                          <li>
                              <div class="date">{$post.datetime|wa_datetime:"humandate"}</div>
                              <a href="{$post.link}">{$post.title}</a>
                          </li>
                          {/if}
                          {$i= $i+1}
                      {/foreach}
                  </ul>
                  <a class="all_news_link" href="{$wa->getUrl('blog')}">[`All posts`]</a>
              </div>
          </div>
          {/if}
      {/if}
      

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 12 октября 2021 14:42 #

      Возможно, у вас на сервере несколько файлов с классом BlogPost, в одном из которых нет метода getUrl(). Попробуйте найти такой файл и удалить его (на всякий случай сохраните себе копию).

      • +1
        Евгений Евгений 12 октября 2021 15:50 #

        Вы попали в цель на 100%. Огромное спасибо.

        Вопрос закрыт.

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите