Вход • Регистрация

При переходе с PHP 5.2 на 5.3 что-то поломалось...

  • 18 февраля 2019 г.
  • Здравствуйте!
    Исходные данные. diafan.CMS версия 5.0
    На сайте есть функционал, пусть назовем онлайн калькулятором, на ajax. Много лет назад мне помог один программист это всё в Диафан интегрировать. И всё работало, ровно до переключение хостером с PHP 5.2 на PHP 5.3 Проблема в том, что в логи PHP вообще никаких ошибок не падает. Вторые сутки ломаю голову, но я не программист и не понимаю куда копать. Очень надеюсь на помощь общественности.
    Сам скрипт этого калькулятора работает, если к нему обратиться напрямую. Но интеграция с Диафан - перестала работать. Собственно там вся интеграция:
    На страницу вставляется через <insert name="show_orbit" module="banners">
    В файл /modules/banners/banners.php было добавлено:

    Код
    public function show_orbit()
    {
    Customization::inc('modules/banners/banners.model.php');
    $model = new Banners_model($this->diafan);
    $result = $model->show_orbit();

    $this->diafan->_tpl->get('show_orbit', 'banners', $result);
    return TRUE;
    }


    В файл /modules/banners/banners.model.php:
    Код
    public function show_orbit()
    {
    $content = file_get_contents(BASE_PATH.'orbit_script/index.php');
    return $content;
    }


    Создан файл: /modules/banners/views/banners.view.show_orbit.php. с таким кодом:

    Код
    <?php
    /**
    * Diafan.CMS
    *
    */

    if (!defined('DIAFAN')) {
    include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
    }
    if (empty($result)) {
    return FALSE;
    }

    echo $result;


    Подскажите пожалуйста, где тут может быть проблема после изменения версии PHP? Обратился к разработчику, который это всё делал, он уже не занимается этой деятельностью и по сути мне не к кому обратиться. Если тут надо копаться и с ходу не скажешь, я готов оплатить работу. Заранее всем спасибо за помощь!
    • 18 февраля 2019 г. , редакция: 18 февраля 2019 г.
    • Код
      public function show_orbit()
      {
      Customization::inc('modules/banners/banners.model.php');
      $model = new Banners_model($this->diafan);
      $result = $model->show_orbit();

      $this->diafan->_tpl->get('show_orbit', 'banners', $result);
      return TRUE;
      }

      Попробуйте вот эту строчку:
      Код
      Customization::inc('modules/banners/banners.model.php');
      заменить на вот эту:
      Код
      Custom::inc('modules/banners/banners.model.php');
      Жирным шрифтом отмечено то, что необходимо изменить.

      И вот эти строчки:
      Код
      if (!defined('DIAFAN')) {
      include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
      }
      замените на эти:
      Код
      if ( ! defined('DIAFAN'))
      {
      $path = __FILE__;
      while(! file_exists($path.'/includes/404.php'))
      {
      $parent = dirname($path);
      if($parent == $path) exit;
      $path = $parent;
      }
      include $path.'/includes/404.php';
      }
  • 18 февраля 2019 г.
  • Спасибо огромное за желание помочь! К сожалению у меня же Диафан 5.0 и поэтому я получаю ошибку:
    Class 'Custom' not found

    нет у меня файла custom.php, только customization.php

    Вторую часть попробовал выполнить, но результата это не дало. :(
    • 18 февраля 2019 г. , редакция: 18 февраля 2019 г.
    • Я не заметил, что cms Вы не обновляли. А так как читаю сообщения диагонально, вот и пропустил. Дело в том, что в актуальной версии используется вместо Customization класс Custom. Поэтому дал ложный вектор решения.

      Вообще надо смотреть предметно. Так получается некоторое гадание. Попробуйте сбросить кеш сайта и включить режим Разработчика в Параметрах сайта. На хостинге в корне сайта найдите директорию cache. Там удалите все файлы и поддиректории, кроме файла .htaccess. Перед этим, конечно, сделайте резервную копию файлов и базы данных сайта. Возможно ошибка вывалится. Так же на странице, где калькулятор, посмотрите в консоле браузера - нет ли ошибок javascript.
  • 18 февраля 2019 г.
  • Виталий, поставил Вам виртуальный памятник! Огромное спасибо. Как же я забыл, что в этой крутой CMS - Диафан есть отличный инструмент - режим разработчика. Проблема была на 1 минуту решения.
    file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0
    И всего-то... allow_url_fopen в On и заработало. А хостер убеждал, что настройки PHP не изменились. :(

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум