Restaurant Zymphonies Theme. Не работает главная страница, Drupal 8

Аватар пользователя loup54 loup54 26 апреля 2018 в 14:04

Установил тему с орга , зелененькую, все было хорошо, пока сегодня не увидел белую страницу , сайт доступен везде кроме фронта, вот ошибка Error: Call to a member function getFileUri() on null в restaurant_zymphonies_theme_get_slider_content(), я так понимаю связано со слайдером, а именно с заменой картинок, может кто сталкивался уже с этой проблемой, вообще у этого автора многие темы с багами на орге, причем подсвечены зеленым, по некоторым могу помочь, знаю уже где косяки

Лучший ответ

Аватар пользователя loup54 loup54 26 апреля 2018 в 14:46
1

Вот решение, вдруг кому пригодится, потому что эти ошибки у него во многих темах для Drupal 8:

<?php/**
 * Slider
 * Implements custom function for get slider content.
 */
function restaurant_zymphonies_theme_get_slider_content() {
  $slider_content = array();
  for ($i = 1; $i <= theme_get_setting('no_of_slides'); $i++) {
     $fid = theme_get_setting('slide_image_path'.$i,'restaurant_zymphonies_theme');
    if (!empty($fid)) {
      $file = file_load($fid[0]);
      if(!empty($file)){
            $uri = $file->getFileUri();
            $path = file_create_url($uri);
          }
          else{
              $path = base_path() . drupal_get_path('theme', 'restaurant_zymphonies_theme') . theme_get_setting('slide_image_path_' . $i, 'restaurant_zymphonies_theme');
          }
    }
    $slider_content[$i] = '<li>
      <img src="' . $path . '" alt="Slider Banner" />
      <div class="slider-caption">
        <h2 class="slider-title">' . theme_get_setting('slide_title_' . $i, 'restaurant_zymphonies_theme').'</h2>
        <div class="clearfix"><p class="slider-description">' . theme_get_setting('slide_description_' . $i, 'restaurant_zymphonies_theme').'</p></div>
        <a href=' . theme_get_setting('slide_url_' . $i, 'restaurant_zymphonies_theme') . ' class="more-link">Read more</a>
      </div>
    </li>';
  }
  return $slider_content;
}
?>

Комментарии

Аватар пользователя loup54 loup54 26 апреля 2018 в 14:19

Вот код слайдера

<?php/**
 * Slider
 * Implements custom function for get slider content.
 */
function restaurant_zymphonies_theme_get_slider_content() {
  $slider_content = array();
  for ($i = 1; $i <= theme_get_setting('no_of_slides'); $i++) {
    $fid = theme_get_setting('slide_image_path'.$i,'restaurant_zymphonies_theme');
    if (!empty($fid)) {
      $file = file_load($fid[0]);
      $uri = $file->getFileUri();
      $path = file_create_url($uri);
    }
    else {
      $path = base_path() . drupal_get_path('theme', 'restaurant_zymphonies_theme') . theme_get_setting('slide_image_path_' . $i, 'restaurant_zymphonies_theme');
    }
    $slider_content[$i] = '<li>
      <img src="' . $path . '" alt="Slider Banner" />
      <div class="slider-caption">
        <h2 class="slider-title">' . theme_get_setting('slide_title_' . $i, 'restaurant_zymphonies_theme').'</h2>
        <div class="clearfix"><p class="slider-description">' . theme_get_setting('slide_description_' . $i, 'restaurant_zymphonies_theme').'</p></div>
        <a href=' . theme_get_setting('slide_url_' . $i, 'restaurant_zymphonies_theme') . ' class="more-link">Read more</a>
      </div>
    </li>';
  }
  return $slider_content;
}
?>
Аватар пользователя loup54 loup54 26 апреля 2018 в 14:23

Кстати, тут кто то спрашивал где удалять в его темах read more, так вот в этой функции)))

Аватар пользователя loup54 loup54 26 апреля 2018 в 14:46
1

Вот решение, вдруг кому пригодится, потому что эти ошибки у него во многих темах для Drupal 8:

<?php/**
 * Slider
 * Implements custom function for get slider content.
 */
function restaurant_zymphonies_theme_get_slider_content() {
  $slider_content = array();
  for ($i = 1; $i <= theme_get_setting('no_of_slides'); $i++) {
     $fid = theme_get_setting('slide_image_path'.$i,'restaurant_zymphonies_theme');
    if (!empty($fid)) {
      $file = file_load($fid[0]);
      if(!empty($file)){
            $uri = $file->getFileUri();
            $path = file_create_url($uri);
          }
          else{
              $path = base_path() . drupal_get_path('theme', 'restaurant_zymphonies_theme') . theme_get_setting('slide_image_path_' . $i, 'restaurant_zymphonies_theme');
          }
    }
    $slider_content[$i] = '<li>
      <img src="' . $path . '" alt="Slider Banner" />
      <div class="slider-caption">
        <h2 class="slider-title">' . theme_get_setting('slide_title_' . $i, 'restaurant_zymphonies_theme').'</h2>
        <div class="clearfix"><p class="slider-description">' . theme_get_setting('slide_description_' . $i, 'restaurant_zymphonies_theme').'</p></div>
        <a href=' . theme_get_setting('slide_url_' . $i, 'restaurant_zymphonies_theme') . ' class="more-link">Read more</a>
      </div>
    </li>';
  }
  return $slider_content;
}
?>