1. tanyaromanyuk94
    Offline

    tanyaromanyuk94 Пользователь

    Joined:
    Sep 2, 2015
    Messages:
    44
    Likes Received:
    0
    История такова:
    Есть файл со скриптом, который должен при клике на кнопку выводитиь определенный пхп файл.
    Вот скрипт

    Код (javascript):
    1. jQuery(document).ready(function() {
    2.     jQuery('#class5').click(function() {
    3.         jQuery.ajax({
    4.             url:'/templates/at_conubia_free/filter.php',
    5.             type: 'POST',
    6.             success: function(data) {
    7.                 jQuery('#tables').text(data);
    8.             }
    9.         });
    10.     });
    11. });

    Код (PHP):
    1. <?php
    2. // Подключаемся к базе данных
    3. $db = JFactory::getDbo();
    4. // Создаем новый объект запроса
    5. $query = $db->getQuery(true);
    6. $query
    7.     ->select(array('b.introtext', 'b.metakey'))
    8.     ->from('#__content AS b')
    9.     ->where('b.metakey LIKE \'b%\'')
    10.     ->order('b.created DESC');
    11. // Устанавливаем запрос
    12. $db->setQuery($query);
    13. //Загружаем результаты как список stdClass объектов.
    14. $results = $db->loadObjectList();
    15. ?>
    16. <pre>
    17. <?php
    18. print_r($results);?>
    19. </pre>

    Скрипт работает.
    Но. После нажатия на кнопку выводилась ошибка
    Class 'JFactory' not found
    После чего гугл мне выдал, что мне нужно фреймворк подключить.
    Решение было перед пхп кодом вставить этот код

    Код (PHP):
    1. define('_JEXEC', 1);
    2. define('JPATH_BASE', dirname(__FILE__));
    3. define('DS', DIRECTORY_SEPARATOR);
    4.  
    5. /* Required files */
    6. require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
    7. require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';


    После чего выводит ошибку
    Код (html):
    1. Warning: require_once(H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\includes\defines.php): failed to open stream: No such file or directory in <b>H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\filter.php on line8
    2. Fatal error: require_once(): Failed opening required 'H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\includes\defines.php' (include_path='.;c:\php55\includes;c:\php55\pear') in H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\filter.php on line 8
     
  2.  
  3. woojin
    Offline

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    и будет такую ошибку выводить!
    разбираем последний код php:
    Код (PHP):
    1. define('JPATH_BASE', dirname(__FILE__));

    это определение переменной JPATH_BASE в которую вносится данное местоположение файла из которого была вызвана переменная __FILE__, а это /templates/at_conubia_free/filter.php (убираем имя файла и получаем путь)
    смотрим дальше (для наглядности распишу сразу с путями):
    Код (PHP):
    1. require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
    - /templates/at_conubia_free/includes/defines.php
    Код (PHP):
    1. require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';
    - /templates/at_conubia_free/includes/framework.php

    а на самом деле эти файлы файлы лежат в /includes/ начиная с корня сайта!

    прежде чем вставлять такого рода куски скриптов, надо хотя бы немного знать что у содержится в константах (define)
     
    AKopytenko likes this.
  4. tanyaromanyuk94
    Offline

    tanyaromanyuk94 Пользователь

    Joined:
    Sep 2, 2015
    Messages:
    44
    Likes Received:
    0


    Еще один вопрос. /templates/at_conubia_free/includes/defines.php - это вместо чего?
    Если можна как вот оно должно в целом выглядеть
     
  5. woojin
    Offline

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    поищи в своём шаблоне папку includes с файлом defines
    нету?!

    такое возможно только при вызове из корня сайта
    Код (PHP):
    1. define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT']);

    и возможно ещё слэш правый понадобится в конце ($_SERVER['DOCUMENT_ROOT'].DS)
    и что бы можно было DS использовать поставь его определение после JEXEC
     
  6. tanyaromanyuk94
    Offline

    tanyaromanyuk94 Пользователь

    Joined:
    Sep 2, 2015
    Messages:
    44
    Likes Received:
    0
    Файл defines есть.

    Вопрос как прописать вот эти строчки
    1. require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
    2. require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';

      Изменила
    Код (PHP):
    1. define('JPATH_BASE',dirname(__FILE__));

    на
    Код (PHP):
    1. define('JPATH_BASE', dirname(__templates/at_conubia_free/filter.php__));


    Все остальное оставила без изменений.
    В итоге выглядит так:
    Код (PHP):
    1. <?php
    2. define('_JEXEC', 1);
    3. define('JPATH_BASE', dirname(__templates/at_conubia_free/filter.php__));
    4. define('DS', DIRECTORY_SEPARATOR);
    5.  
    6. /* Required files */
    7. require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
    8. require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';



    Ошибка:
    Код (html):
    1. <br /> <b>Warning</b>: Division by zero in <b>H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\filter.php</b> on line <b>3</b><br /> <br /> <b>Warning</b>: Division by zero in <b>H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\filter.php</b> on line <b>3</b><br /> <br /> <b>Warning</b>: require_once(.\includes\defines.php): failed to open stream: No such file or directory in <b>H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\filter.php</b> on line <b>7</b><br /> <br /> <b>Fatal error</b>: require_once(): Failed opening required '.\includes\defines.php' (include_path='.;c:\php55\includes;c:\php55\pear') in <b>H:\root\home\deltaunion2-001\www\site1\templates\at_conubia_free\filter.php</b> on line <b>7</b><br />

    --- добавлено: Oct 8, 2015, первое сообщение размещено: Oct 8, 2015 ---
    @woojin
    Вопрос просто в том - как правильно прописать в моем случае этот фреймворк?
     
  7. woojin
    Offline

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    @tanyaromanyuk94, "епонский городовой"|H|
    я ж прям дал 100% рабочий пример строки с определением константы JPATH_BASE
    не читается вообще что ли?
    --- добавлено: Oct 8, 2015, первое сообщение размещено: Oct 8, 2015 ---
    это файл шаблона, а не системы!
     
    Last edited: Oct 8, 2015
  8. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Staff Member

    Joined:
    Sep 1, 2011
    Messages:
    1,963
    Likes Received:
    168
    Gender:
    Male
    Назовите тему нормально, чтобы было понятно о чём написано внутри и соответствовало правилам форума.
     
  9. Offline

    katenka141 Недавно здесь

    Joined:
    Feb 24, 2017
    Messages:
    1
    Likes Received:
    0
    Gender:
    Female
    и возможно ещё слэш правый понадобится в конце ($_SERVER['DOCUMENT_ROOT'].DS)
    и что бы можно было DS использовать поставь его определение после JEXEC
    Ссылки удалил. М.
     
    Last edited by a moderator: Feb 24, 2017
  10. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    А прочитать код в первом посту не потрудилась ?
    Так хочется свои ссылки впихнуть :priest:
     

Share This Page

Loading...