Новости Joomla

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #270 : 23.10.2007, 19:49:10 »
Не думаю что можно сходу вот так вот взять и сказать что же там быстрее. Трудно. Или делись серкетами джедаев.

Цитировать
Surrounding your string by ' instead of " will make things interpret a little faster since php looks for variables inside "..." but not inside '...'. Of course you can only do this when you don't need to have variables in the string.

Источник: 40 Tips for optimizing your php Code

Но вообще, я как-то видел более объемную статью, и там даже замеры времени были приведены для каждого из советов по оптимизации.

А вот в другой статье, написано что это смысла не имеет:

Цитировать
'var='.$var is faster than "var=$var"

This used to be true in PHP 4.2 and earlier. This was fixed in PHP 4.3. Note (22 June 2004): apparently the 4.3 fix reduced the overhead, but not completely. However I find the performance difference to be negligible.
« Последнее редактирование: 23.10.2007, 19:55:45 от smart »
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Re: Документация по компонентам
« Ответ #271 : 24.10.2007, 10:05:21 »
Отличие "" от '' в том что внутри двойных ковычек интерпритатор парсит текст, ищет переменные с $ и инх преобразовывает. Внутри одинарных ковычек такая операция не производится, отсюда и прирост скорости.
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Plazmid

  • Новичок
  • 3
  • 0 / 0
Re: Документация по компонентам
« Ответ #272 : 25.10.2007, 12:09:01 »
Здравствуйте!
Вопрос: Как добавить параметр, которые высвечиваются при добавлении компонента в меню сайта. И как их (параметры) обрабатывать в компоненте?
*

Plazmid

  • Новичок
  • 3
  • 0 / 0
Re: Документация по компонентам
« Ответ #273 : 25.10.2007, 13:06:51 »
Все, разобрался. спасибо.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #274 : 25.10.2007, 13:33:06 »
Здравствуйте!
Вопрос: Как добавить параметр, которые высвечиваются при добавлении компонента в меню сайта. И как их (параметры) обрабатывать в компоненте?
посмотрите: Вопрос о создании меню компонента в админке
*

Plazmid

  • Новичок
  • 3
  • 0 / 0
Re: Документация по компонентам
« Ответ #275 : 26.10.2007, 10:12:48 »
посмотрите: Вопрос о создании меню компонента в админке
Нет :-) мне другое нужно было. Сейчас покажу.
взято от сюда
в XML файл компонента Joomla добавляются параметры (которые будут высвечиваться при добавлении компонента в меню)
Код
<params>
<param name="param_1" type="list" default="1" label="Описание параметра"         
                    description="Подсказка для параметра">
<option value="1">Опция 1</option>
<option value="2">Опция 2</option>
<option value="3">Опция 3</option>
</param>
<param name="param_2" type="text" default=""
label="Описание" lenght="10" description="подсказка"/>
  </params>
при этом:
Цитировать
Секция params содержит:

    * параметры доступные при редактировании пункта меню для вашего компонента.
          o name - название параметра
          o type - тип параметра(может быть например list,text,radio )
          o default - значение по умолчанию
          o label - описание параметра
          o description - всплывающая подсказка
анализ в компоненте делается же:
Код
$menu =& new mosMenu( $database );
$menu->load( $Itemid );
 
$params =& new mosParameters( $menu->params );
 
$params->def( 'param_1', 1 );//проверяем заданы ли параметры, если нет то
$params->def( 'param_2', 0 );//заносим в них значения по умолчанию(второй параметр def());
 
        $param_1=$params->get('param_1');//получаем значение параметра в нужном месте компонента
        $param_2=$params->get('param_2');

Re: Документация по компонентам
« Ответ #276 : 12.12.2007, 19:57:49 »
Что за беда с компонентой не пойму. Я в этом деле новичок.
Когда в front вывожу данные из БД так
Код
global $mosConfig_offset; 
$database->setQuery("SELECT * FROM #__users");
$list = $database->loadObjectList();

foreach($list as $row) {
    echo " <li>" . $row->id ." : ". $row->name . "</li>\n";
то вроде все OK

А когда делаю так
Код
global $mosConfig_offset; 
$database->setQuery("SELECT * FROM #__users");
$list = $database->loadObjectList();

HTML_Joomlabook::showTable( &$list );
вылезает вот эта хрень, а потом таблица с данными

Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. in C:\apache\localhost\www\joom\components\com_mcomp\mcomp.php on line 29


Оба случая все выводят только во втором после вывода какая-то ошибка или предупреждение. Как от этого избавиться и почему это происходит?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #277 : 12.12.2007, 21:05:46 »
Оба случая все выводят только во втором после вывода какая-то ошибка или предупреждение. Как от этого избавиться и почему это происходит?
там же вроде понятно написано, что проблема в том, что вы пытаетесь передать ссылку вместо значения...

Поменяйте во втором случае:

HTML_Joomlabook::showTable( &$list );

на

HTML_Joomlabook::showTable$list );

либо измените объявлении функции HTML_Joomlabook::showTable, на

...
function 
showTable( &$list ) {
...

Re: Документация по компонентам
« Ответ #278 : 12.12.2007, 21:43:13 »

HTML_Joomlabook::showTable( $list );

Спасибо Smart помогло. ^-^
У меня есть еще один вопрос. Я хочу сделать в Front'e форму из однострочного поля типа text и кнопку для обработки формы. Но я не знаю как и каким методом передать данные из формя в script.php, который находится тамже где и mycomp.php и  mycomp.html.php в (/component/mod_mycomp/...)
Да и вообще как подключаются файлы?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #279 : 12.12.2007, 21:52:21 »
У меня есть еще один вопрос. Я хочу сделать в Front'e форму из однострочного поля типа text и кнопку для обработки формы. Но я не знаю как и каким методом передать данные из формя в script.php, который находится тамже где и mycomp.php и  mycomp.html.php в (/component/mod_mycomp/...)
у этой формы в action должен быть указан корневой index.php сайта, и обязательно присутствовать скрытая переменная option, в которой должно быть название вашего компонента с суффксом com_, т.е. что-то типа:

<form action="index.php" method="post">
<input type="hidden" name="option" value="com_mycomp" />
<input type="text" name="text" value="" />
<input type="submit" value="Send" />
</form>

Вот по нажатию кнопки, данные автоматом улетят на index.php, а оттудова по значению option подключится /components/com_mycomp/mycomp.php, в котором вы и сможете уже нужным образом обработать данные.

Re: Документация по компонентам
« Ответ #280 : 12.12.2007, 22:00:55 »
у этой формы в action должен быть указан корневой index.php сайта, и обязательно присутствовать скрытая переменная option, в которой должно быть название вашего компонента с суффксом com_, т.е. что-то типа:

<form action="index.php" method="post">
<input type="hidden" name="option" value="com_mycomp" />
<input type="text" name="text" value="" />
<input type="submit" value="Send" />
</form>

Вот по нажатию кнопки, данные автоматом улетят на index.php, а оттудова по значению option подключится /components/com_mycomp/mycomp.php, в котором вы и сможете уже нужным образом обработать данные.
Тут все понятно, а как эти данные цеплять в mycomp.php(например поле text получило значение 123)
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #281 : 12.12.2007, 22:07:49 »
Тут все понятно, а как эти данные цеплять в mycomp.php(например поле text получило значение 123)
а уже внутри mycomp.php вы пишете код, типа:


<?php
$text 
mosGetParam$_REQUEST'text''');
echo 
$text;
?>

Re: Документация по компонентам
« Ответ #282 : 12.12.2007, 22:23:34 »
а уже внутри mycomp.php вы пишете код, типа:


<?php
$text 
mosGetParam$_REQUEST'text''');
echo 
$text;
?>

Супер Супер..... ^-^
1)Я правильно понял, если работать с формой то независимо от кол-ва предаемых полей будь то text или select...
обязательно должно быть поле  "hidden" .

2)Что это  mosGetParam( $_REQUEST, 'text', '');и что за последний параметр(почему он пустой).

3)А если я передаю несколько параметров то они получаются так mosGetParam( $_REQUEST, 'text', 'text_1','text_2'...); ???
Меня просто прет от JOOMLA, и уж больно хочется узнать побольше.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #283 : 12.12.2007, 22:34:51 »
обязательно должно быть поле  "hidden" .
для того чтобы данные попали в ваш компонент, обязательно должен быть заполнен параметр option, именно благодаря ему Joomla знает куда передавать данные...

2)Что это  mosGetParam( $_REQUEST, 'text', '');и что за последний параметр(почему он пустой).
последний параметр это значение по-умолчанию, т.е. если ничего не пришло

Меня просто прет от JOOMLA, и уж больно хочется узнать побольше.
я бы порекомендовал бы внимательно поизучать код существующих компонентов, почитать к примеру статью Joseph L. LeBlanc'а о создании компонентов...

Re: Документация по компонентам
« Ответ #284 : 30.12.2007, 09:28:49 »
Создаю свой компонент.
Но почемуто кнопки толбара не работают.
При нажатии на кнопку New выдаёт ошибку js.
"document.adminForm.task" - усть null или не является обьектом.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Документация по компонентам
« Ответ #285 : 30.12.2007, 09:39:32 »
Когда ты выводишь какие-нить данные (формы), которые потом нужно заюзать (передать в скрипт), то нужно обрамлять данные формой:

Код
<form action="index2.php" method="post" name="adminForm">
...
тут вывод данных каких-нить, н-р:

...
  <input type="hidden" name="option" value="<!--тут_имя_твоего_компонента-->" />
  <input type="hidden" name="task" value="<!--тут_типа_какое_событие_выполнять-->" />
  </form>
*

Professor

  • Захожу иногда
  • 59
  • 10 / 0
Re: Документация по компонентам
« Ответ #286 : 29.07.2008, 17:11:05 »
Тренируюсь писать компоненты, и каждый раз поднимаю планку. Сейчас столкнулся вот с какой проблемой:
Мне нужно подключить из компонента свой css-файл, который я прописал в <files></files> xml файла, а проще, который входит в дистрибутив компонента.
Подскажите пожалуйста как это сделать.
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Re: Документация по компонентам
« Ответ #287 : 29.07.2008, 17:40:46 »
С точки зрения идеологи вернее

Код: php
$mainframe->addCustomHeadTag('<link href="'.$mainframe->getCfg(live_site).'/components/com_mycomponent/style.css" rel="stylesheet" type="text/css" />' );

да и проще потом будет на 1.5 переходить
*

Cutaneus

  • Новичок
  • 6
  • 0 / 0
Re: Документация по компонентам
« Ответ #288 : 25.08.2008, 00:08:11 »
Здраствуйте.
Передо мной такая проблема:
У меня в базе данных две таблицы amx_amxadmins (может кто знает что такое AMXBANS 5.0) и  #__comprofiler (community builder)
В таблице amx_amxadmins имеются поля cbid (неключевое), username, status, access, published
В таблице #__comprofiler имеются поля id (ключевое), firstname, lastname, cb_icq, cb_city, avatar

Каждая строка в каждой имеет уникальное поле id и cbid - то есть это индетификационные номера юзеров...
То есть мне надо вывести на сайт список пользователей у кого amx_amxadmins.status = '08' and amx_amxadmins.published = '1' and amx_amxadmins.cbid = #__comprofiler.id

И далее, чтобы эти "переменные"
avatar
username
access
firstanme
lastname
cb_icq
cb_city
приняли значение

Заранее спасибо!
*

Вовочка

  • Захожу иногда
  • 147
  • 21 / 0
Re: Документация по компонентам
« Ответ #289 : 25.08.2008, 02:47:59 »
ДЛя начала зададим глобальную переменную
Код
global $my;
Далее привожу пример запроса всех имён пользователей соответствующие вашим требованиям.
Код
$sql = "SELECT username FROM `#__amx_amxadmins` WHERE `published` = 1 AND cbid = ".$my->id
$database->setQuery($sql);
$list = $database->loadObjectList();
 
foreach($list as $user) {
 
    echo $user->username;
}
пись
подпись
*

Cutaneus

  • Новичок
  • 6
  • 0 / 0
Re: Документация по компонентам
« Ответ #290 : 25.08.2008, 07:29:12 »
Спасиюо... но у меня вот так получилось тоже
Код
$query = 'SELECT *  FROM `#__comprofiler`, `amx_amxadmins` 
                            WHERE `amx_amxadmins`.`status`=08 and `amx_amxadmins`.`published`=1 and `#__comprofiler`.`id`= `amx_amxadmins`.`cbid` ';

            $database->setQuery($query);

            $result = $database-> loadObjectList();

            foreach ($result as $row)
{
...
}
*

olex

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Документация по компонентам
« Ответ #291 : 12.09.2008, 16:21:46 »
Ребята, такой вопрос. Мне надо интегрировать в Joomla оналйн-библиотеку разных книг. Написать свой компонент, чтобы он в автономном режиме загружал на сайт и выводил из датабазы информацию про книги в разных конфигурациях в зависимости от запроса я могу. То есть в автономном режиме он вполне нормально будет работать. ВОПРОС: как это "припаять" к Джумле, чтобы оно работало внутри нее, чтобы можно было привязать его к пункту меню? То есть как сделать из этого комплекса скриптов полноценный Джумловский компонент, модуль или что-то такое? Как минимум чтобы он просто работал нормально на обычного юзера. Как максимум, чтобы он нормально инсталлировался-деинсталлировался по всем джумловским сценариям и прописывался во всех нужных меню.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Документация по компонентам
« Ответ #292 : 12.09.2008, 16:29:56 »
Пустой компонент тебе в помощь.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

olex

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Документация по компонентам
« Ответ #293 : 12.09.2008, 16:33:53 »
Thanks :)
*

werewolfe

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Документация по компонентам
« Ответ #294 : 19.10.2008, 11:57:57 »
Доброго времени суток!

Делаю компонент, возник вопрос, как через xml при установке создать таблицу в MySQL с определенными значениями в строках? 
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Документация по компонентам
« Ответ #295 : 19.10.2008, 12:07:37 »
Делаю компонент, возник вопрос, как через xml при установке создать таблицу в MySQL с определенными значениями в строках? 
Код: xml
<install>
 <queries>
  <query>CREATE TABLE IF NOT EXISTS `#__tablename` (
   `id` int(11) NOT NULL auto_increment,
   `name` varchar(50) default NULL,
   PRIMARY KEY  (`id`)
   ) TYPE=MyISAM;
  </query>
 </queries>
</install>
Аналогично следующий запрос будет уже INSERT INTO `#__tablename`
Примерно так, разбери любой компонент - увидишь конкретные примеры
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Документация по компонентам
« Ответ #296 : 19.10.2008, 12:11:01 »
если требуется создать таблицу при установке и занести сразу туда некоторые значения, то можешь просто их туда-же добавить:
Код
  <install>
    <queries>
      <query>
CREATE TABLE #__groups (
 id tinyint(3) unsigned NOT NULL default '0',
 name varchar(50) NOT NULL default '',
 PRIMARY KEY  (id)
) TYPE=MyISAM;
      </query>
      <query>
INSERT INTO #__groups (id, name) VALUES(0, 'Public');
      </query>
      <query>
INSERT INTO #__groups (id, name) VALUES(1, 'Registered');
      </query>
      <query>
INSERT INTO #__groups (id, name) VALUES(2, 'Special');
      </query>
    </queries>
  </install>

beliyadm, какой ты реактивный )
*

werewolfe

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Документация по компонентам
« Ответ #297 : 19.10.2008, 12:13:39 »
Спасибо!
*

Bickaze

  • Захожу иногда
  • 199
  • 18 / 3
Re: Документация по компонентам
« Ответ #298 : 05.12.2008, 04:46:28 »
Код
$query = 'SELECT *  FROM `#__comprofiler`   WHERE `amx_amxadmins`=1'; 

            $database->setQuery($query);
как определить количество результатов?
и выводиться ли количество результатов при действиее UPDATE?
Joomla-программист
Отзывы с 2012 года. Без предоплаты. Всегда на связи.
Skype: indadza, telegram: @ildar_kkk
*

Dead Krolik

  • Захожу иногда
  • 131
  • 33 / 4
  • Теперь я рыбка
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию user profile плагина для Joomla 1.6

Автор n_drey

Ответов: 13
Просмотров: 2887
Последний ответ 05.10.2011, 21:03:46
от n_drey