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

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #90 : 15.05.2009, 19:40:08 »
Пока пытаюсь разобраться с JTree и JNode. Как ни странно googl ничего не дает. Такое ощущение, что никто не знает. Исходные коды - тоже не все ясно, сказывается плохое знание PHP. О построении деревьев в coogle куча всяких способов. В JNode рекурсия кажется заложена, но level, .т.е. как понимаю глубины вложенности, нету. И как этим JNode пользоваться пока не ясно. Если 1.6 облегчит это дело очень хорошо, но знания лишними не бывают, пока с тем что есть покопаюсь.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #91 : 15.05.2009, 20:10:20 »
вот блин, когда они уже уйдут от рекурсивных вызовов?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #92 : 15.05.2009, 20:14:51 »
Угу. Глянул в запросы к БД. Сколько категорий, столько запросов. А если их тысяча будет или миллион. Не айс, SQL запросы у рекурсии крутить. Придется что-то делать.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #93 : 16.05.2009, 00:16:36 »
а причем тут кол-во запросов к рекурсии???
я говорил об избавлении от рекурсии в принципе.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #94 : 16.05.2009, 00:22:54 »
Да я понял. О чем думал, то и написал. Взял в сети функцейку построения дерева, а там SQL запрос в рекурсии. Вот и сидел думал, что с этим делать. Поэтому такой пост и получился. Есть и без рекурсии функции, но такая вложенность массивов, что страшно к ним притрагиваться и еще не известно что лучше.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #95 : 16.05.2009, 00:25:12 »
лучше - отбирать в память массив числовых индексов и с ним работать.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: Информация по написанию компонента
« Ответ #96 : 16.05.2009, 00:30:56 »
я говорил об избавлении от рекурсии в принципе.

Аргументы. Кроме "может уйти в бесконечность", ибо кривые руки в счет не берем.

Цитировать
Взял в сети функцейку построения дерева, а там SQL запрос в рекурсии.

Вам известен более компактный логичный и простой код построения дерева из базы данных MySQL? Не могли бы Вы поделиться со всеми нами.
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: Информация по написанию компонента
« Ответ #97 : 16.05.2009, 00:31:54 »
лучше - отбирать в память массив числовых индексов и с ним работать.

А как Вы дерево получите? Я без задних мыслей, мне действительно интересно.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #98 : 16.05.2009, 00:49:32 »
Вот нашел наконец
http://www.phpclub.ru/detail/article/2002-06-03
без рекурсии. Досконально, правда, не разбирался сегодня только нашел, потом потерял и вот нашел снова.
Цитировать
Вам известен более компактный логичный и простой код построения дерева из базы данных MySQL?
Мне сложно оценивать компактность, логичность и простоту, но единственное до чего додумался, это выбрать данные в массив одним запросом,
а в рекурсии крутить уже этот массив.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #100 : 16.05.2009, 01:11:11 »
А как Вы дерево получите?
как два пальца обосфальт :)

Вот нашел наконец
http://www.phpclub.ru/detail/article/2002-06-03
без рекурсии.
это там де второй пример кода?
ну это похоже на мою реализацию, только у них там вроде не все в порядке с сортировкой будет (это такой поверхностный взгляд)

Вам известен более компактный логичный и простой код построения дерева из базы данных MySQL?
скажем так - у меня есть альтернативный метод.
детальным тестированием быстродействия и занимаемым объемом памяти не занимался ибо способов рекурсивного вызова было много

Не могли бы Вы поделиться со всеми нами.
нет :)
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #101 : 16.05.2009, 01:15:15 »
Цитировать
Дмитрий Лебедев 2002-06-03
Возможно наука ушла далеко вперед. ::) Но придумать что-то самому пока не по силам. Хотя кто знает. ^-^
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: Информация по написанию компонента
« Ответ #102 : 16.05.2009, 01:21:07 »
> userxp

Хорошо, не нужно делиться :), но хоть чем рекурсия в принципе плоха скажи.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #103 : 16.05.2009, 01:34:50 »
ээээ... как бы так чтоб понятно...
потенциально, при не правильной реализации, это утечка памяти и "лишние" проходы, иначе говоря - холостые циклы.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Re: Информация по написанию компонента
« Ответ #104 : 16.05.2009, 01:50:35 »
Цитировать
ээээ... как бы так чтоб понятно...
Ничего, недельку подумаю и пойму.

Ну вот. Т.е. только ели изначально допускаем ошибку в реализации. Но ведь можно и запрос delete выполнить, не задав параметров и грохнуть всю информацию в таблице. Значит ли это, что нужно что-то другое использовать?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #105 : 16.05.2009, 12:56:32 »
И так дерево. Вот что, получилось. Взял рекурсивную функцию построения дерева из сети. Хм. Сейчас поискал где взял и не нашел. Да ладно, дальше.
После небольшой  переделки она приняла такой вид:
(в models/categoryes.php добавим)

Код
  function getTree($tree = array(), $parentID = 0, $level=0)
    {
        $q1 = array();
        $q = $this->_allcategoryes;//вот и понадобилась
        if (!$q)  return false;
        for ($i=0, $n=count( $q ); $i < $n; $i++){
            If ($q[$i]->parent_id == $parentID)
            $q1[] =  $q[$i];
        }
        $level++;
        for ($i=0, $n=count( $q1 ); $i < $n; $i++){
            $q1[$i]->title = str_repeat ('  -  ', $level).$q1[$i]->title.'<br />';           
            $tree[] = $q1[$i];
            $tree = $this->getTree($tree, $q1[$i]->id, $level);
        }
        return $tree;
    }
Вот такое деревце. Выводим в шаблон. Но сперва подготовим к выводу. В views/categoryes/view.html.php добавим функцию.
Код
function CTree()
       {
       $plist = array();
       $plist = & $this->get('Allcategoryes');//инициализируем $_ allcategoryes
       $tree =& $this->get('Tree');
       if (!$tree)  return JText::_( 'The list of categories is empty' );
      $tr = array();
            foreach ($tree as $tr)
      {
      $link = JRoute::_( 'index.php?option=com_simplecatalog&controller=categoryes&task=edit&cid[]='. $tr->id );
      echo '<a href="'.$link.'" title="'.JText::_( "Edit" ).'">'.$tr->title.'</a>';
      };
       }
Ну и поскольку в развернутом виде это дерево как-то не смотрится, сделаем его гармошкой. В views/categoryes/tmpl/default.php в самом верху сразу после кнопочек управления добавим перед закрывающим тегом ?>:
Код
jimport('joomla.html.pane');
$pane =& JPane::getInstance('Sliders', array('startOffset'=>1, 'allowAllClose' => true));
echo $pane->startPane('tree');
echo $pane->startPanel(JText::_( 'Tree Categories' ),'tree');
?>
 <div id='tree' style="padding:20px;">
     <?php
     print_r ($this->CTree());
     ?>
 </div>
<?php echo $pane->endPanel();
echo $pane->endPane();
В выпадающем списке как-то неудобно выбирать родительскую категорию не видя соподчиненности, то добавим это дерево и туда. В контроллере controllers/categoryes.php после строки :
Код
$allcategoryes = $model->getAllcategoryes();
Добавим
Код
$tree = $model->getTree();
А строку
Код
foreach ($allcategoryes as $k=>$catlist)
Перепишем
Код
foreach ($tree as $k=>$catlist)
Вот что получилось. Собрал в компонент и прикрепил к посту. Можно посмотреть. Но еще раз повторюсь. Для админки, это не подойдет, нет защиты «от дурака». Хотя наверное вполне подойдет для frontend-a, где нет возможности редактирования категорий.
И еще. Код не причесан и возможны ошибки, все наспех, ибо сегодня время на это есть, а завтра его уже нету.
Добавим еще удаление категорий. Сегодня понадобилось.
В файле models/categoryes.php добавим функцию удаления
Код
function delete()
    {
        $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' );

        $table =& $this->getTable();

        if (count( $cids ))
        {
            foreach($cids as $cid) {
                if (!$table->delete( $cid )) {
                    $this->setError( $table->getErrorMsg() );
                    return false;
                }
            }
        }else{
            if (empty( $cid )) {
                return JError::raiseWarning( 500, JText::_( 'No items selected' ) );
            }

        }

        return true;
    }
В контроллере controllers/categoryes.php
Зарегистрируем команду, благо кнопочка удаления в шаблоне уже есть.
Код
$this->registerTask( 'delete'     , 	'remove' );
Ну и сам обработчик
Код
Function remove()
{
JRequest::checkToken() or jexit( 'Invalid Token' );
$model = $this->getModel();
if(!$model->delete()) {
$msg = JText::_( 'Error: One or More Categories Could not be removed' );
} else {
$msg = JText::_( 'Categoty(s) Deleted' );
}

$this->setRedirect( 'index.php?option=com_simplecatalog&controller=categoryes', $msg );
}
canDelete() будет позже. Кажется нашел запрет удаления не пустых категорий, но не разобрался еще.
Все пока. Но дерево в админке нужно, буду думать дальше.


[вложение удалено Администратором]
« Последнее редактирование: 16.05.2009, 13:06:13 от Lex »
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #106 : 16.05.2009, 15:28:08 »
Изба индейца. Для одной таблицы canDelete не катит. Заглянул в исходник, только для разных таблиц.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #107 : 17.05.2009, 12:30:00 »
Потратил полдня на JNode  и JTree.
В модели построил вручную дерево:
Код
    function getDTree(){
        jimport('joomla.base.tree');
        $tree = new JTree();
        $node = new JNode();
        $node0 = new JNode();
        $node1 = new JNode();

        $node->set('name', 'Первый узел Node');
       //$node->set('level', 'Другой идентификатор');
        $node0->set('name', '-Второй узел Node');
        $node1->set('name', '--Третий узел Node');

        $node->addChild(&$node0);
        $node0->addChild(&$node1);

        $tree->addChild($node);
       
        return $tree;
    }
Передал в шаблон
Код
	$dtree = $this->get('Dtree');
        $this->assignRef('dtree', $dtree);
И там извлек
Код
$nod = $this->dtree->_root;
$ch = $nod->getChildren();
$ch1 = $ch[0]->getChildren();
$ch2 = $ch1[0]->getChildren();
echo $ch[0]->name.'<br>'.$ch1[0]->name.'<br>'.$ch2[0]->name.'<br>';
Вот это даааааа. :o
Каждый объект содержит в себе массив вложенных в него дочерних объектов, а тот в свою очередь содержит в себе массив своих дочерних объектов и т.д. Матрешка. Причем внутри не одна следующая матрешка, а много следующих матрешек.
Мало того, чтобы построить дерево нужна рекурсивная функция, но и чтобы его показать тоже нужна рекурсия. Тот плюс, что каждый узел знает о своем родительском и дочернем при этих обстоятельствах кажется очень маленьким плюсом.
Если не прав поправьте. А пока фтопку. :dry:

p.s. После такого, даже функция Лебедева о которой говорилось выше
Цитировать
но такая вложенность массивов, что страшно к ним притрагиваться
кажется сущим пустяком.
« Последнее редактирование: 17.05.2009, 17:20:05 от Lex »
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Информация по написанию компонента
« Ответ #108 : 24.05.2009, 15:34:25 »
Вот мне интересно все-таки, с чьей легкой руки пошло поверье, что количество запросов к БД влияет на производительность?
Системы управления базами данных были разработаны специально для оптимизации скорости доступа к данным и всячески для этого оптимизированы. Таким образом, правильно сформированные запросы "SELECT" будут всегда быстрее чем даже работа с массивами в интерпретируемом языке.
Мое мнение - самое правильное решение - это рекурсивный алгоритм выборки из базы нужных данных. И считать нужно не количество запросов к базе, а их тяжесть. Например, если вам не нужны все поля, не нужно делать "SELECT *" чтобы не тянуть лишнюю информацию, не нужно делать сложные джойны, чтобы запрос исполнялся быстрее.
Ну и, разумеется, надо помнить, что запросы на изменение данных в базе исполняются довольно долго, в отличие от запросов на выборку данных.
Так что ничего ужасного в нескольких сотнях очень простых запросов к базе не вижу.
А если у кого хостер уродский, у которого сервер БД работает на стопицот аккаунтов и до безобразия перегружен запросами, то тут надо хостера менять, а не на зеркало пенять :)
*

era

  • Администратор
  • 1587
  • 391 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Информация по написанию компонента
« Ответ #109 : 24.05.2009, 15:43:22 »
Мое мнение - самое правильное решение - это рекурсивный алгоритм выборки из базы нужных данных.
ага, вот только когда у тебя кол-во элементов дерева будет большое, да плюс к этому количество вхождений будет сотнями исчисляться.... зачем делать сотни запросов к БД?
Функция для "строительства" дерева за 15-20 минут пишется + проверка её минут 10
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Информация по написанию компонента
« Ответ #110 : 24.05.2009, 15:49:28 »
Функция для "строительства" дерева за 15-20 минут пишется + проверка её минут 10

С этим не спорю - если нужно полное дерево по всей таблице, то достаточно одного запроса к БД с полной выборкой.
Но в более сложных случаях, проще не париться и выбирать по одной записи из базы.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #111 : 29.07.2009, 14:23:31 »
Вот мне интересно все-таки, с чьей легкой руки пошло поверье, что количество запросов к БД влияет на производительность?
очень даже влияет!!!
если интересно - могу объяснить :)

Системы управления базами данных были разработаны специально для оптимизации скорости доступа к данным и всячески для этого оптимизированы. Таким образом, правильно сформированные запросы "SELECT" будут всегда быстрее чем даже работа с массивами в интерпретируемом языке.
между прочим, SQL - это тоже интерпретируемый язык ;D
зы. есть цифры об измерениях???

Мое мнение - самое правильное решение - это рекурсивный алгоритм выборки из базы нужных данных.
оооочень не согласен

И считать нужно не количество запросов к базе, а их тяжесть.
конечно. но память в системе нарастить горааааздно проще, чем поменять проц и/или мамку

Например, если вам не нужны все поля, не нужно делать "SELECT *" чтобы не тянуть лишнюю информацию, не нужно делать сложные джойны, чтобы запрос исполнялся быстрее.
Ну и, разумеется, надо помнить, что запросы на изменение данных в базе исполняются довольно долго, в отличие от запросов на выборку данных.
эээт правильно :)
подписываюсь :)

Так что ничего ужасного в нескольких сотнях очень простых запросов к базе не вижу.
А если у кого хостер уродский, у которого сервер БД работает на стопицот аккаунтов и до безобразия перегружен запросами, то тут надо хостера менять, а не на зеркало пенять :)
ну это чушь, простите :) и данный форум тому доказательство (я пр око-во запросов в БД)
прежде чем менять хостера, над овсе таки оптимизировать выполнение скрипта
большое кол-во запросов БД - это такой же вред, как большой объем выбранной информации

учитывать надо все: кол-во запросов, объем отбираемой информации, кэширование выполненных процедур... про циклы в $database упоминать? нет? а вы же ими пользуетесь, не так ли?

p.s. еще один момент - делая выборку loadObjectList или ассоциативного массива вы не пробовали сделать serialaze объекта и посмотреть его размер??
оч рекомендую - наталкивает на мысли...
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Информация по написанию компонента
« Ответ #112 : 29.07.2009, 16:30:45 »
прежде чем менять хостера, над овсе таки оптимизировать выполнение скрипта
большое кол-во запросов БД - это такой же вред, как большой объем выбранной информации

учитывать надо все: кол-во запросов, объем отбираемой информации, кэширование выполненных процедур... про циклы в $database упоминать? нет? а вы же ими пользуетесь, не так ли?

Я же писал про простые запросы. То есть, не такие, которые возвращают стопицот строк по писят полей :)
Про циклы в $database конечно помню, но на маленьких объемах данных их можно скинуть со счетов, а для крупных объемов применяются уже другие методы обработки - работа непосредственно с курсором БД, например.

p.s. еще один момент - делая выборку loadObjectList или ассоциативного массива вы не пробовали сделать serialaze объекта и посмотреть его размер??
оч рекомендую - наталкивает на мысли...

Специально не пробовал, но хорошо себе представляю его размер. Но тут еще надо учесть, что у сериализованного объекта довольно большой overhead.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #113 : 29.07.2009, 16:44:32 »
Я же писал про простые запросы. То есть, не такие, которые возвращают стопицот строк по писят полей :)
ну дык стопицот простых запросов в БД эт тоже не тема :)


Специально не пробовал, но хорошо себе представляю его размер. Но тут еще надо учесть, что у сериализованного объекта довольно большой overhead.
тут дело не в overhead-е :)
скажем так - "быстродействие" обычного массива с числовыми индексами в 1.5 раза быстрее, чем у ассоциативного
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Информация по написанию компонента
« Ответ #114 : 29.07.2009, 16:49:26 »
ну дык стопицот простых запросов в БД эт тоже не тема :)
Разумную меру никто не отменял, конечно :)

тут дело не в overhead-е :)
скажем так - "быстродействие" обычного массива с числовыми индексами в 1.5 раза быстрее, чем у ассоциативного
Это, кстати, не совсем так. То есть, разумеется, доступ к элементу массива по числовому индексу всегда быстрее, чем по ассоциативному, но для foreach разницы в быстродействии почти никакой.
Да и не надо пользоваться для данных БД ассоциативными массивами. loadObjectList куда удобнее и доступ к полям объекта быстрее, чем к элементам массива по ключу.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Информация по написанию компонента
« Ответ #115 : 29.07.2009, 16:54:47 »
Это, кстати, не совсем так.
очень даже так.
я сам ЛИЧНО специально занимался тестированием сортировки по ключам.

... но для foreach ...
а причем тут foreach?
foreach никому не интересен ибо не имеет отношения к индексному перебору.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Информация по написанию компонента
« Ответ #116 : 30.07.2009, 18:56:31 »
О, тема ожила. В отпуске влом было мозги морщить. А сейчас, сижу, думаю, продолжать или нет. Вроде не пользуется спросом, не очень актуально или изложение хреновое. В общем хз. :(
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Motor

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Информация по написанию компонента
« Ответ #117 : 30.07.2009, 22:53:10 »
Эт че за пессимизм (( ? Надо продолжать. По этой теме вообще больше никто не пишет. Мануала нормального по написанию компонентов 1.5  вообще нет. Только на допотопных примерах.

P.S. Не понимаю почему админы не поддерживают твою инициативу!!!!!!
« Последнее редактирование: 30.07.2009, 22:56:36 от Motor »
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Информация по написанию компонента
« Ответ #118 : 30.07.2009, 23:02:21 »
А мне вот интересно, создают ли в каких-нибудь форумах физиков темы про документацию на постройку, например лазера?
Казалось бы, что проще - прочитал книжку, купил материалы, собрал дома лазер киловатта на четыре.

Почему вам, уважаемые начинающие, кажется, что вы все поймете, прочитав книжку или статью?
Для профильно образованного человека, документации, необходимой и достаточной для написания чего угодно под Joomla - пруд пруди.
А для того, кто не знает, что такое MVC, что такое модель данных, да и собственно PHP не знает, есть два пути.
Первый путь - выучить сначала основы и принципы написания программ, а второй - обратиться со своими задачами к специалистам.
А с наскока, все, что можно сделать - это научиться писать ***код. А этого добра и так навалом :)
*

Motor

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Информация по написанию компонента
« Ответ #119 : 30.07.2009, 23:08:24 »
Тут дело не в MVC, тут дело в joomlaвских примочках. Не понятно за что каждая отвечает и зачем это вообще надо, почему так а не по другому.
Есть ядро и нужно знать как к нему правильно прицепиться.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При попытке войти в админку 404 ошибка компонента

Автор omezik

Ответов: 4
Просмотров: 2397
Последний ответ 31.08.2019, 22:41:46
от Taatshi
Вывод компонента в качестве модуля

Автор fMichail

Ответов: 4
Просмотров: 2967
Последний ответ 06.08.2014, 15:16:29
от anar4ik
Переменные, доступные из любого компонента

Автор Serjo_man

Ответов: 3
Просмотров: 1522
Последний ответ 03.02.2014, 05:22:00
от Arkadiy
Работа компонента Ninja RSS 1.1.11 на Joomla 1.5.26

Автор Adam.K

Ответов: 1
Просмотров: 1433
Последний ответ 16.12.2013, 21:26:31
от Adam.K
Доработка компонента - нужна помощь

Автор wfire

Ответов: 5
Просмотров: 1353
Последний ответ 24.09.2013, 13:17:28
от robert