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

  • 12 Ответов
  • 1220 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

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

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

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

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

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

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

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

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

*

dmitry_stas

  • ********
  • 9652
  • 929
Re: Создание модуля, подключение getTable
« Ответ #1 : 21.05.2015, 16:49:48 »
сделайте JTable::addIncludePath(JPATH_COMPONENT_SITE.'/tables'); до JSFactory::getTable
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

Re: Создание модуля, подключение getTable
« Ответ #2 : 21.05.2015, 16:56:00 »
Делал, у меня так и прописано :(

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

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

Re: Создание модуля, подключение getTable
« Ответ #3 : 21.05.2015, 17:11:44 »
Попробовал вывести что храниться в той ерунде:

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

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

« Последнее редактирование: 21.05.2015, 17:18:56 от avantyrist »

*

dmitry_stas

  • ********
  • 9652
  • 929
Re: Создание модуля, подключение getTable
« Ответ #4 : 21.05.2015, 18:03:24 »
тьфу ты, слепой становлюсь. не увидел сразу лишнее

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

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

нет, каталог
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

Re: Создание модуля, подключение getTable
« Ответ #5 : 21.05.2015, 18:27:18 »
Таки да :) то лишнее.

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

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

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

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

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

*

dmitry_stas

  • ********
  • 9652
  • 929
Re: Создание модуля, подключение getTable
« Ответ #6 : 21.05.2015, 18:34:50 »
как к методу объекта обращаются, так и обратится - $test->getAllAttributeValues(). доступные методы вы уже поняли где смотреть. плюс поскольку это расширение класса, то $test также наследует и все методы, которые есть у родителя. например, jshopAttributValue является потомком JTableAvto, и хотя у jshopAttributValue например нет (переопределенного) метода getBuildQueryListProductDefaultResult(), вы тем не менее можете вызвать его $test->getBuildQueryListProductDefaultResult(), потому что он есть у родителя. а JTableAvto в свою очередь является наследником JTable. в общем, вам надо по крайней мере изучить ООП, если хотите продвинуться дальше. а потом изучить уже классы Joomla
« Последнее редактирование: 21.05.2015, 18:38:26 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

Re: Создание модуля, подключение getTable
« Ответ #7 : 21.05.2015, 18: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>**************';

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

Но оно выводит там всё подрят, такой масивчег получается что мама не горюй.....
Я щас читаю очень много всего, и от етого всего винигрет получился в голове ужасный, начинаеш тыкаться кудато, ступор, потом опять ступор, какието мелочи, на которые в итоге тратиш уйму времени, каша >:(

*

dmitry_stas

  • ********
  • 9652
  • 929
Re: Создание модуля, подключение getTable
« Ответ #8 : 21.05.2015, 18:50:59 »
чем я то могу помочь? если вам будет от этого легче, то не вы один такой. у всех когда то была в голове каша и винегрет. изучайте, литературы масса, все общедоступно. и как правило бесплатно, не то что раньше. я в свое время ActionScript флешевский учил по книге, за которую отдал 120 баксов. а сейчас - их два вагончика в интернете на любой вкус. так что через тернии к звездам :) ну а нет - то всегда есть ком. раздел.

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

а что вы ожидаете увидеть, делая print_r($testAttr)? что присвоили этой переменной - то и выводит.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

Re: Создание модуля, подключение getTable
« Ответ #9 : 21.05.2015, 19:01:33 »
честно думал увижу результат запроса к БД :))
Наподобии того как выходит результат  через Класс,  JSFactory

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

КомРаздел, ето понятно, меня интерисует, не сделанное кемто решение, меня интерисует КАК ето сделать :) хочется понять, научиться

Re: Создание модуля, подключение getTable
« Ответ #10 : 21.05.2015, 19:13:57 »
ОЙ ТУПАНУЛ ОПЯТЬ :)

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

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

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


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

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

*

dmitry_stas

  • ********
  • 9652
  • 929
Re: Создание модуля, подключение getTable
« Ответ #11 : 21.05.2015, 21:02:55 »
ну если то, что вам нужно, уже написано, то зачем писать это второй раз? другое дело, что иногда бывает такое, что вроде как нужные методы уже есть, но для получения результата их надо выполнить скажем 3 раза (т.е. 3 запроса в базу), вместо одного, если переписать этот код в своем хелпере. тогда конечно имеет смысл. но если будете принимать такое решение, обратите внимание, что в Joomla вообще, и в ЖШ в частности, очень много случаев, когда метод возвращает static переменную, которая определяется всего 1 раз, независимо от того, сколько раз вы вызываете метод.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

Re: Создание модуля, подключение getTable
« Ответ #12 : 22.05.2015, 12:07:55 »
Благадарю за обсуждение темы