Форум русской поддержки Joomla!® CMS
06.12.2016, 20:03:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Создание модуля, подключение getTable

 (Прочитано 778 раз)
0 Пользователей и 1 Гость смотрят эту тему.
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« : 21.05.2015, 15:40:19 »

Добрый день.  Прошу прощение за ломанный язык Azn  просто в терминалогии плаваю....

Сейчас пытаюсь разобраться  с написанием модулей для JS.
Возник некий вопрос Azn

Как можно получить так сказать "доступ" к файлам в етом каталоге  ...\components\com_jshopping\tables\....

Попробовал таким образом:
          $test=JSFactory::getTable('attributvalue.php', 'jshop');

Сайт выдаёт ошибку:
Таблица attributvalue.php не поддерживается. Файл не найден.

В модулях вообше возможно ссылаться на те файлы ??  , там запросы к БД уже прописаны,
Кроме как через етот класс:        Но там мало доступных, для обработки
         $get_all_attr=JSFactory::getAllAttributes($resformat = 1);   

Или писать в своём модуле свои запросы.

Или если модуль пишу для себя, то в файл factory.php  добавить свои функции-запросы, Понимаю что будет затираться при обновлениях, чёрт с ним...
Помогите пожлуста разобраться с етой логикой... Sad
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7766



« Ответ #1 : 21.05.2015, 15:49:48 »

сделайте JTable::addIncludePath(JPATH_COMPONENT_SITE.'/tables'); до JSFactory::getTable
Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #2 : 21.05.2015, 15:56:00 »

Делал, у меня так и прописано Sad

JTable::addIncludePath(JPATH_ROOT.'/components/com_jshopping/tables');      // Работа с таблицами JoomShoping   

Или там надо прописывать определённый файл ? :
JTable::addIncludePath(JPATH_ROOT.'/components/com_jshopping/tables/attributvalue.php');      // Работа с таблицами JoomShoping
Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #3 : 21.05.2015, 16:11:44 »

Попробовал вывести что храниться в той ерунде:

$tttttttttt=   JTable::addIncludePath(JPATH_ROOT.'/components/com_jshopping/tables');      // Работа с таблицами JoomShoping   
      echo'<pre>***********************************';
      print_r ($tttttttttt);
      echo'</pre>***********************************';

Дало такой массив Azn
array
(
    
  • => сайт/administrator/components/com_jshopping/table
  • [1] => сайт/com_jshopping/tables
        [2] => сайт/components/com_jshopping/tables
        [3] => сайт/libraries/joomla/table
    )

« Последнее редактирование: 21.05.2015, 16:18:56 от avantyrist » Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7766



« Ответ #4 : 21.05.2015, 17:03:24 »

тьфу ты, слепой становлюсь. не увидел сразу лишнее

          $test=JSFactory::getTable('attributvalue.php', 'jshop');

Или там надо прописывать определённый файл ? :

нет, каталог
Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #5 : 21.05.2015, 17:27:18 »

Таки да Azn то лишнее.

Но чёто мои ожидания были другие Azn)

   $test=JSFactory::getTable('attributvalue', 'jshop');
      echo'<pre>********************';
      print_r($test);
      echo'</pre>**************';

Там такое вывело, я чуток в шоке был.....   Shocked

'attributvalue'  --  ето название файла в папке '/components/com_jshopping/tables  ?
, 'jshop'    --  что ето за параметр ?

Как можно обратиться к определённой функции файла attributvalue.php  ?  например       function getAllAttributeValues(){
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7766



« Ответ #6 : 21.05.2015, 17:34:50 »

как к методу объекта обращаются, так и обратится - $test->getAllAttributeValues(). доступные методы вы уже поняли где смотреть. плюс поскольку это расширение класса, то $test также наследует и все методы, которые есть у родителя. например, jshopAttributValue является потомком JTableAvto, и хотя у jshopAttributValue например нет (переопределенного) метода getBuildQueryListProductDefaultResult(), вы тем не менее можете вызвать его $test->getBuildQueryListProductDefaultResult(), потому что он есть у родителя. а JTableAvto в свою очередь является наследником JTable. в общем, вам надо по крайней мере изучить ООП, если хотите продвинуться дальше. а потом изучить уже классы Joomla
« Последнее редактирование: 21.05.2015, 17:38:26 от dmitry_stas » Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #7 : 21.05.2015, 17:44:02 »

dmitry_stas

Код:
JTable::addIncludePath(JPATH_ROOT.'/components/com_jshopping/tables'); // Работа с таблицами JoomShoping
$testAttr=JSFactory::getTable('attributvalue', 'jshop');
$testAttr->getAllAttributeValues();
echo'<pre>********************';
print_r($testAttr);
echo'</pre>**************';

Дело в том что я так и делал, чёто сразу пример не написал

Но оно выводит там всё подрят, такой масивчег получается что мама не горюй.....
Я щас читаю очень много всего, и от етого всего винигрет получился в голове ужасный, начинаеш тыкаться кудато, ступор, потом опять ступор, какието мелочи, на которые в итоге тратиш уйму времени, каша Angry
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7766



« Ответ #8 : 21.05.2015, 17:50:59 »

чем я то могу помочь? если вам будет от этого легче, то не вы один такой. у всех когда то была в голове каша и винегрет. изучайте, литературы масса, все общедоступно. и как правило бесплатно, не то что раньше. я в свое время ActionScript флешевский учил по книге, за которую отдал 120 баксов. а сейчас - их два вагончика в интернете на любой вкус. так что через тернии к звездам Azn ну а нет - то всегда есть ком. раздел.

Но оно выводит там всё подрят, такой масивчег получается что мама не горюй.....

а что вы ожидаете увидеть, делая print_r($testAttr)? что присвоили этой переменной - то и выводит.
Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #9 : 21.05.2015, 18:01:33 »

честно думал увижу результат запроса к БД Azn)
Наподобии того как выходит результат  через Класс,  JSFactory

$characteristic_3= JSFactory::getAllProductExtraFieldValueDetail();   // Выводит масив всех названий опций характеристик

КомРаздел, ето понятно, меня интерисует, не сделанное кемто решение, меня интерисует КАК ето сделать Azn хочется понять, научиться
Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #10 : 21.05.2015, 18:13:57 »

ОЙ ТУПАНУЛ ОПЯТЬ Azn

   $testAttr=JSFactory::getTable('attributvalue', 'jshop');
   $testAttrList =$testAttr->getAllAttributeValues();
         echo'<pre>********************';
         print_r($testAttrList);
      echo'</pre>**************';

Усё теперь получаю конкретный результат запроса к БД Azn

dmitry_stas  подскажите пожалуйста:
Допустим если меня устраивают результаты Етих запросов,  при писании модуля, лучше использовать такой метод, в плане нагрузки на сайт? -- который выше описан.


Либо лучше создавать допустим некий файл  helper.php   в нём создать некий клас JSTest, с функцией getTestTraliVali там делать нужные запросы в БД,
и потом в основном файле модуля подключать таким макаром:
    require_once (JPATH_SITE.'/modules/mod_test/helper/helper.php');

    $trali_vali = JSTest::getTestTraliVali();   // в итоге получаю доступ к Результирующему масиву
« Последнее редактирование: 21.05.2015, 18:18:24 от avantyrist » Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7766



« Ответ #11 : 21.05.2015, 20:02:55 »

ну если то, что вам нужно, уже написано, то зачем писать это второй раз? другое дело, что иногда бывает такое, что вроде как нужные методы уже есть, но для получения результата их надо выполнить скажем 3 раза (т.е. 3 запроса в базу), вместо одного, если переписать этот код в своем хелпере. тогда конечно имеет смысл. но если будете принимать такое решение, обратите внимание, что в Joomla вообще, и в ЖШ в частности, очень много случаев, когда метод возвращает static переменную, которая определяется всего 1 раз, независимо от того, сколько раз вы вызываете метод.
Записан
avantyrist
Давно я тут
****

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 203



« Ответ #12 : 22.05.2015, 11:07:55 »

Благадарю за обсуждение темы
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet