Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Создаю данную тему для решения проблем создания компонентов для Joomla.

А именно функционал административной части и не только. Все у кого есть ссылки на качественные ресурсы по созданию компонента с рабочими примерами.
Свои собственные компоненты. Описание создания компонента. Функционал кнопок админ панели, чекбоксы, редакторы.
Так как в интернете есть минимальная база по созданию, а про функционал почти нет. Вот я и хочу провести обмен опытом всех тех кто пишет компонент, давайте обмениваться опытом и помогать друг другу.
А именно акцент на административной части.

Начнём с рабочих примеров сортировки даннх, параметров публикации, чек боксов, или предлагайте что то своё. *DRINK*
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
 8)Разобрался я как сделать функционал публикации в Joomla не без разных форумов, крупиц, и метода тыка. На это ушло у меня массу времени надеюсь вы сэкономите своё время и не будете так мучаться как я первопроходец.
Щас я интересующимся всё подробно объясню.

Итак делаем мы функционал для админки а именно функцию function publish()
Структура моей админки такова.
Цитировать
1.controllers/priceleaf.php
2.models/priceleaf.php
3.models/priceleafs.php
4.tables/priceleaf.php
5.views/priceleaf/view.html
6.views/priceleafs/view.html
7.views/priceleaf/tmpl/form.php
8.views/priceleafs/tmpl/default.php
9.admin.priceleaf.php
10.controller.php
11.install.sql

1.И так начнём мы с того что добавим в базу данных в таблицу поле published Тип varchar

2.Открываем файл  views/priceleafs/tmpl/default.php
Это наш шаблон в него мы должны внести значки публикации. Сначала выведем верхнее значение
Цитировать
<th width="5%" align="center">
<?php echo JHTML::_('grid.sort',   'Published', 'm.published', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>
</th>
Затем мы должны провести цикл и присвоить id для это после </thead> пишем
Цитировать
<?php
$k = 0;
for ($i=0, $n=count( $this->items ); $i < $n; $i++)   {
$row = &$this->items[$i];
$checked = JHTML::_('grid.id',   $i, $row->id );
$published = JHTML::_('grid.published', $row, $i );
$link = JRoute::_( 'index.php?option=com_priceleaf&controller=priceleaf&task=edit&cid[]='. $row->id );
?>

Затем уже в самой таблице шаблона нужно написать ячейку статус нашего раздела
Цитировать
<td align="center"><?php echo $published;?></td>

После всего это нужно перед закрывающимся тегом </form>
поставить
Цитировать
<?php echo JHTML::_( 'form.token' ); ?>
Это нужно для того чтобы защитить данные передаваемые формой через POST-запрос.

Вот полный код шаблона.
Цитировать
<?php defined('_JEXEC') or die('Restricted access'); ?>
<form action="index.php" method="post" name="adminForm">
<div id="editcell">
   <table class="adminlist">
   <thead>
      <tr>
         <th width="5">
            <?php echo JText::_( 'ID' ); ?>
         </th>
         <th width="20">
            <input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count( $this->items ); ?>);" />
         </th>         
         <th>
            <?php echo JText::_( 'PRICELEAF' ); ?>
         </th>
         <th width="5%" align="center">
            <?php echo JHTML::_('grid.sort',   'Published', 'm.published', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>
         </th>
      </tr>
   </thead>
   <?php
   $k = 0;
   for ($i=0, $n=count( $this->items ); $i < $n; $i++)   {
      $row = &$this->items[$i];
      $checked    = JHTML::_('grid.id',   $i, $row->id );
      $published    = JHTML::_('grid.published', $row, $i );
      $link       = JRoute::_( 'index.php?option=com_priceleaf&controller=priceleaf&task=edit&cid[]='. $row->id );
      ?>
      <tr class="<?php echo "row$k"; ?>">
         <td>
            <?php echo $row->id; ?>
         </td>
         <td>
            <?php echo $checked; ?>
         </td>
         <td>
            <a href="<?php echo $link; ?>"><?php echo $row->name; ?></a>
         </td>
         <td align="center">
            <?php echo $published;?>
         </td>
      </tr>
      <?php
      $k = 1 - $k;
   }
   ?>
   </table>
   
</div>

<input type="hidden" name="option" value="com_priceleaf" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="boxchecked" value="0" />
<input type="hidden" name="controller" value="priceleaf" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>

3.Открываем файл views/priceleafs/view.html
В него добавлем нужные нам кнопки
Цитировать
      JToolBarHelper:: publishList ();
      JToolBarHelper:: unpublishList ();
Это опубликовать и снять с публикации.
Если сохранить и посмотреть то он выведет вам поле Публикация. и 2 кнопки + статус расздела опубликован он или нет. Но работать они не будут так как мы его не написали действия для них. вот полный код вида.
Цитировать
<?php
//Защита от прямого обращения к скрипту
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.application.component.view' );

class PriceleafsViewPriceleafs extends JView
{
   function display($tpl = null)
   {
      JToolBarHelper::title(   JText::_( 'PRICELEAF' ), 'generic.png' );
      JToolBarHelper::deleteList();
      JToolBarHelper::editListX();
      JToolBarHelper::addNewX();
      JToolBarHelper:: publishList ();
      JToolBarHelper:: unpublishList ();
      $items      = & $this->get( 'Data');

      $this->assignRef('items',      $items);

      parent::display($tpl);
   }
}

4.Нам нужно записать в контроллер значение.     var $published = null;
Вот полный код

Цитировать
<?php
//Защита от прямого обращения к скрипту
class TablePriceleaf extends JTable
{

   var $id = null;

   var $name = null;
   
    var $published = null;

   function TablePriceleaf(& $db) {
      parent::__construct('#__priceleaf_razdel', 'id', $db);
   }
}

5.Завершающий этап для того что бы кнопки заработали, а так же можно было нажать на стаус публикации конкретного раздела и изменить его значение нужно зайти и открыть следующий файл. controllers/priceleaf.php

В нём описывается задача и метод функции function publish() тоесть публикация.

вот код
Цитировать
function publish()
    {
   JRequest::checkToken() or jexit( 'Invalid Token' );
    $data = JRequest::getVar('cid',  0, '', 'array');
    if (empty($data)) {
   $message = JText::_('No data');
           $this->setRedirect( 'index.php?option=com_priceleaf', $msg );
        }
    $model = $this->getModel('priceleaf');
    $table = $model->getTable();
       if ($this->_task == 'publish')
       {
          if ($table->publish($data))
          {
           $message = JText::_('Category').' '.JText::_('Published');
          }
          else
          {
           $message = JText::_('Category no Published. Failed');
           $message .= ' ['.$table->getError().']';
          }
           }
       if ($this->_task == 'unpublish')
       {
          if ($table->publish($data,0))
          {
             if ($data>1)
           $message = JText::_('Category').' '.JText::_('Unpublished.');
          }
          else
          {
           $message = JText::_('Category no Unpublished. Failed');
           $message .= ' ['.$table->getError().']';
          }
       }
    $this->setRedirect( 'index.php?option=com_priceleaf', $msg );
    }

Так же не забудьте написать тут же функцию конструкции что бы он знал к какой функции обратиться.
Цитировать
   function __construct()
   {
      parent::__construct();

//Функции кнопок добавить редактировать
      $this->registerTask( 'add'  ,    'edit' );
      $this->registerTask( 'publish'    ,    'publish' );
      $this->registerTask( 'unpublish'  ,    'publish' );
   }

Помните мы в шаблоне писали <?php echo JHTML::_( 'form.token' ); ?>
Так вот если бы мы этого там не поставили то строчка в контроллере JRequest::checkToken() or jexit( 'Invalid Token' ); выдавала бы нам ошибку страницу Invalid Token. Строка  $this->setRedirect( 'index.php?option=com_priceleaf', $msg ); это то куда нас вернёт при нажатии ссылки функция. у меня это ведёт на туже страницу. Вот эта строка очень важна изначально у меня она выглядела так $model = $this->getModel(); Из за чего ничего не работало конечно ведь мы не указали нашу модель, тоесть когда мы нажали опубликовать, функция должна передать значение в модель и выглядеть эта строка должна так $model = $this->getModel('priceleaf'); естественно значение priceleaf должно быть вашим у меня так называется файл модели.
Ну а дальше в файлах идёт проверка, 1 или 0 что пишем в базу. Теперь у Вас должно всё работать.

ЕСТЕСТВЕННО Моя структура может отличаться от вашей, название моделей классов. так что не забывайте всё менять на свои значения.
Будет интересно узнать Ваши отзывы. Следующим я собираюсь узнать как делать постраничную навигацию Joomla методом.
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
разобрался я как делать пагинацию спасибо товарищу по работе! и методу тыка!
Есть это всё на сайте http://docs.joomla.org/Using_JPagination_in_your_component официальный сайт Joomla.
Главное не перепутайте модель вит и шаблон!
Так же есть статья по написанию пагинации одного человека он обитает на этом форуме это его сайт http://blog.contra.lv/2010/11/17/ajax-pagination-v-joomla-chast-1-pagination/comment-page-2/#comments
Спасибо и ему за его труды.
Но как ни странно ни там ни там я не смог это сделать, причины две было это там небыло описано function _buildQuery которая делает запрос и мой недосмотр это то что я не в ту модель изначально поставил запрос.

И так структура компонента админки у меня как описано выше постом.
Цитировать
1.controllers/priceleaf.php
2.models/priceleaf.php
3.models/priceleafs.php
4.tables/priceleaf.php
5.views/priceleaf/view.html
6.views/priceleafs/view.html
7.views/priceleaf/tmpl/form.php
8.views/priceleafs/tmpl/default.php
9.admin.priceleaf.php
10.controller.php
11.install.sql

1. Открываем файл можели у меня он называется так (не перепутайте модели.)
3.models/priceleafs.php

У меня там класс в него я заношу вот эти данные. поменяйте Priceleafs на название своей модели
Цитировать
class PriceleafsModelPriceleafs extends JModel
{
   var $_total = null;
    var $_pagination = null;
function __construct()
   {
      parent::__construct();
 global $mainframe, $option;
 
        // Get pagination request variables
        $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int');
        $limitstart = JRequest::getVar('limitstart', 0, '', 'int');
 
        // In case limit has been changed, adjust it
        $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
 
        $this->setState('limit', $limit);
       

2. и следом добавляем следующии функции.

Цитировать
function getData()
  {
        // if data hasn't already been obtained, load it
        if (empty($this->_data)) {
            $query = $this->_buildQuery();
            $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit'));
        }
        return $this->_data;
  }
 
    function getTotal()
  {
        // Load the content if it doesn't already exist
        if (empty($this->_total)) {
            $query = $this->_buildQuery();
            $this->_total = $this->_getListCount($query);   
        }
        return $this->_total;
  }
 
   function getPagination()
  {
        // Load the content if it doesn't already exist
        if (empty($this->_pagination)) {
            jimport('joomla.html.pagination');
            $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
        }
        return $this->_pagination;
  }

И последним обязательно ставим функцию. Не забудьте поменять таблицу на свою у меня  она называется priceleaf_razdel  и имя поля я задал name
Цитировать
function _buildQuery()
     {
         
          $query = ' SELECT * '
               . ' FROM #__priceleaf_razdel
               ORDER BY name DESC';
          return $query;
     }

Вот полный пример кода модели

Цитировать
<?php
//Защита от прямого обращения к скрипту
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.application.component.model' );

//Класс модели
class PriceleafsModelPriceleafs extends JModel
{
   var $_total = null;
    var $_pagination = null;
function __construct()
   {
      parent::__construct();
 global $mainframe, $option;
 
        // Get pagination request variables
        $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int');
        $limitstart = JRequest::getVar('limitstart', 0, '', 'int');
 
        // In case limit has been changed, adjust it
        $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
 
        $this->setState('limit', $limit);
        $this->setState('limitstart', $limitstart);
   }
   
    function getData()
  {
        // if data hasn't already been obtained, load it
        if (empty($this->_data)) {
            $query = $this->_buildQuery();
            $this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit'));
        }
        return $this->_data;
  }
 
    function getTotal()
  {
        // Load the content if it doesn't already exist
        if (empty($this->_total)) {
            $query = $this->_buildQuery();
            $this->_total = $this->_getListCount($query);   
        }
        return $this->_total;
  }
 
   function getPagination()
  {
        // Load the content if it doesn't already exist
        if (empty($this->_pagination)) {
            jimport('joomla.html.pagination');
            $this->_pagination = new JPagination($this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
        }
        return $this->_pagination;
  }
 
  function _buildQuery()
     {
         
          $query = ' SELECT * '
               . ' FROM #__priceleaf_razdel
               ORDER BY name DESC';
          return $query;
     }
}

3. Открываем файл 6.views/priceleafs/view.html тоесть делаем вид. туда нужно добавить 2 строчки
Цитировать
      $pagination =& $this->get('Pagination');
      $this->assignRef('pagination', $pagination);

Вот полный вид.

Цитировать
<?php
//Защита от прямого обращения к скрипту
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.application.component.view' );

class PriceleafsViewPriceleafs extends JView
{
   function display($tpl = null)
   {
      JToolBarHelper::title(   JText::_( 'PRICELEAF' ), 'generic.png' );
      JToolBarHelper::deleteList();
      JToolBarHelper::editListX();
      JToolBarHelper::addNewX();
      JToolBarHelper:: publishList ();
      JToolBarHelper:: unpublishList ();
      $items      = & $this->get( 'Data');

      $this->assignRef('items',      $items);
      $pagination =& $this->get('Pagination');
      $this->assignRef('pagination', $pagination);
      parent::display($tpl);
   }
}

4. Шаблон, мы должны вывести пагинацию в шаблон. Для это в форму добавляем вот эти строчки.
Цитировать
<tfoot>
    <tr>
      <td colspan="9"><?php echo $this->pagination->getListFooter(); ?></td>
    </tr>
  </tfoot>
Всё это всё что нужно неочень сложно, но я потратил на это много времени.
И хотел бы заметить что в каждом компоненте всё по разному незнаю с чем это связано, но это факт. Следующим хочу сделать сортировку но у меня с этим проблемы не могу задействовать это для своей таблицы. Чтож буду пробовать. И ещё бы я хотел узнать как сделать позиции что бы я мог их менять местами и как в последствии это вывести на сайт.
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

max.mix

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Приветствую klubnichkaaa,

не подскажите что изменить в коде, для того чтобы в материалах, в админке, в компоненте К2, по умолчанию стояло опубликовано?

ниже - код файла (administrator/components/com_k2/views/items/tmpl/default.php) с таблицей с материалами в админке, код колонки со значком опубликовано/неопубликовано выделен красным:

Цитировать
<?php
/*
// "K2" Component by JoomlaWorks for Joomla! 1.5.x - Version 2.0.0
// Copyright (c) 2006 - 2009 JoomlaWorks Ltd. All rights reserved.
// Released under the GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
// More info at http://www.joomlaworks.gr
// Designed and developed by the JoomlaWorks team
// *** Last update: June 20th, 2009 ***
*/

// no direct access
defined('_JEXEC') or die ('Restricted access');

?>
<script type="text/javascript">
function submitbutton(pressbutton) {
   if (pressbutton == 'import') {
      var answer = confirm('<?php echo JText::_('WARNING: You are about to import all articles from com_content! If you have executed this operation before you might produce duplicate content!', true);?>')
      if (answer){
         submitform( pressbutton );
      } else {
         return;
      }
   }
   if (trim( document.adminForm.name.value ) == "") {
      alert( '<?php echo JText::_('Category must have a Name', true);?>' );
   } else {
      submitform( pressbutton );
   }
}
</script>

<?php $ordering = ($this->lists['order'] == 'i.ordering' || $this->lists['order'] == 'category');?>

<form action="index.php" method="post" name="adminForm">
  <table width="100%">
    <tr>
      <td align="left" width="50%"><?php echo JText::_('Filter:'); ?>
        <input type="text" name="search" id="search" value="<?php echo $this->lists['search'] ?>" class="text_area" onchange="document.adminForm.submit();" title="<?php echo JText::_('Filter by title'); ?>"/>
        <button onclick="this.form.submit();"><?php echo JText::_('Go'); ?></button>
        <button onclick="document.getElementById('search').value='';this.form.getElementById('filter_category').value='0';this.form.getElementById('filter_trash').value='0';this.form.getElementById('filter_author').value='0';this.form.getElementById('filter_state').value='-1';this.form.getElementById('filter_featured').value='-1';this.form.submit();"><?php echo JText::_('Reset'); ?></button></td>
      <td align="right" width="50%"><?php echo "{$this->lists['trash']}&nbsp;{$this->lists['featured']}&nbsp;&nbsp; | &nbsp;&nbsp;{$this->lists['categories']}&nbsp;{$this->lists['authors']}&nbsp;{$this->lists['state']}"; ?></td>
    </tr>
  </table>
  <table class="adminlist">
    <thead>
      <tr>
        <th width="5">#</th>
        <th width="5"><input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count( $this->rows ); ?>);" /></th>
        <th class="title"><?php echo JHTML::_('grid.sort', JText::_('Title'), 'i.title', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th width="1%" nowrap="nowrap"><?php echo JHTML::_('grid.sort', JText::_('Featured'), 'i.featured', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th width="1%" nowrap="nowrap"><?php echo JHTML::_('grid.sort', JText::_('Published'), 'i.published', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th width="8%"><?php echo JHTML::_('grid.sort', JText::_('Order'), 'i.ordering', @$this->lists['order_Dir'], @$this->lists['order']); ?>
          <?php if ($ordering) echo JHTML::_('grid.order',  $this->rows ); ?></th>
        <th class="title" width="8%" nowrap="nowrap"><?php echo JHTML::_('grid.sort', JText::_('Category'), 'category', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th class="title" width="8%" nowrap="nowrap"><?php echo JHTML::_('grid.sort', JText::_('Author'), 'author', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th class="title" width="8%" nowrap="nowrap"><?php echo JHTML::_('grid.sort', JText::_('Last modified by'), 'moderator', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th width="7%"><?php echo JHTML::_('grid.sort', JText::_('Access Level'), 'i.access', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th align="center" width="10"><?php echo JHTML::_('grid.sort', JText::_('Created'), 'i.created', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th align="center" width="10"><?php echo JHTML::_('grid.sort', JText::_('Modified'), 'i.modified', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
        <th align="center" width="10"><?php echo JHTML::_('grid.sort', JText::_('hits'), 'i.hits', @$this->lists['order_Dir'], @$this->lists['order'] ); ?></th>
        <th width="1%" class="title"><?php echo JHTML::_('grid.sort', JText::_('ID'), 'i.id', @$this->lists['order_Dir'], @$this->lists['order']); ?> </th>
      </tr>
    </thead>
    <tfoot>
      <tr>
        <td colspan="14"><?php echo $this->page->getListFooter(); ?></td>
      </tr>
    </tfoot>
    <tbody>
      <?php
      $k = 0; $i = 0;   $n = count( $this->rows );
         $user=& JFactory::getUser();
         foreach ($this->rows as $row) :
            $checked    = JHTML::_('grid.checkedout', $row, $i );
            $published = JHTML::_('grid.published', $row, $i );
            $access = JHTML::_('grid.access', $row, $i );
            $link = JRoute::_('index.php?option=com_k2&view=item&cid='.$row->id);
         ?>
      <tr class="<?php echo "row$k"; ?>">
        <td><?php echo $i+1; ?></td>
        <td align="center"><?php echo $checked; ?></td>
        <td><?php if (JTable::isCheckedOut($user->get('id'), $row->checked_out )):?>
          <?php echo $row->title;?>
          <?php else: ?>
          <a href="<?php echo $link; ?>"><?php echo $row->title;?></a>
          <?php endif;?></td>
        <td align="center"><a href="javascript:void(0);" onclick="return listItemTask('cb<?php echo $i;?>','featured')" title="<?php echo ( $row->featured )? JText::_( 'Unmark featured' ) : JText::_( 'Mark as featured' );?>"> <img src="images/<?php echo ( $row->featured )? 'tick.png' :  'publish_x.png' ;?>" width="16" height="16" border="0" alt="<?php echo ( $row->featured )? JText::_( 'Unmark featured' ) : JText::_( 'Mark as featured' );?>" /> </a></td>
        <td align="center"><?php echo $published;?></td>
        <td class="order"><span><?php echo $this->page->orderUpIcon($i, ($row->catid == @$this->rows[$i-1]->catid), 'orderup', 'Move Up', $ordering); ?></span> <span><?php echo $this->page->orderDownIcon($i, $n, ($row->catid == @$this->rows[$i+1]->catid), 'orderdown', 'Move Down', $ordering); ?></span>
          <?php $disabled = $ordering ?  '' : 'disabled="disabled"'; ?>
          <input type="text" name="order[]" size="5" value="<?php echo $row->ordering; ?>" <?php echo $disabled ?>   class="text_area" style="text-align: center" /></td>
        <td><a href="<?php echo JRoute::_('index.php?option=com_k2&view=category&cid='.$row->catid);?>"><?php echo $row->category; ?></a></td>
        <td><a href="<?php echo JRoute::_('index.php?option=com_users&task=edit&cid[]='.$row->created_by);?>"><?php echo $row->author; ?></a></td>
        <td><a href="<?php echo JRoute::_('index.php?option=com_users&task=edit&cid[]='.$row->modified_by);?>"><?php echo $row->moderator; ?></a></td>
        <td align="center"><?php echo $access;?></td>
        <td nowrap="nowrap"><?php echo $row->created; ?></td>
        <td nowrap="nowrap"><?php echo $row->modified; ?></td>
        <td nowrap="nowrap" align="center"><?php echo $row->hits ?></td>
        <td align="center"><?php echo $row->id; ?></td>
      </tr>
      <?php $k = 1 - $k; $i++; endforeach; ?>
    </tbody>
  </table>
  <input type="hidden" name="option" value="<?php echo $option;?>" />
  <input type="hidden" name="view" value="<?php echo JRequest::getVar('view'); ?>" />
  <input type="hidden" name="task" value="<?php echo JRequest::getVar('task'); ?>" />
  <input type="hidden" name="filter_order" value="<?php echo $this->lists['order']; ?>" />
  <input type="hidden" name="filter_order_Dir" value="<?php echo $this->lists['order_Dir']; ?>" />
  <input type="hidden" name="boxchecked" value="0" />
  <?php   echo JHTML::_('form.token'); ?>
</form>

Заранее спасибо за подробный ответ!
« Последнее редактирование: 12.06.2011, 17:04:58 от max.mix »
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Незаню как на счёт подробный и точный, всётаки к 2 не маленький.
Это обычно пишется в sql файле по умолчанию писать всегда 1 или всегда ноль!

Вот пример sql файла

Цитировать
CREATE TABLE IF NOT EXISTS #__mycomponent
(`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL default 'Бештау',
`opisanie` text,
`adres` varchar(255) NOT NULL default 'ул.Калинина №7',
`published` varchar(255) NOT NULL default '1',
`ordering` varchar(255) NOT NULL default '1',
PRIMARY KEY (`id`)
) TYPE=MyISAM;

INSERT INTO #__mycomponent
(`name`, `opisanie`, `adres`, `published`, `ordering`)
VALUES
('Бештау', 'Гостиница класса люкс со всеми удобствами', 'ул.Калинина №7', '1', '1');
Это значит если я сохраняю, а поля пустые он запишет данные по умолчанию а именно
('Бештау', 'Гостиница класса люкс со всеми удобствами', 'ул.Калинина №7', '1', '1');

Посмотрите есть ли в k2 такой вот sql файл.

То что вы прислали это файл отображает вообще что есть за статьи, параметры, порядок. В нём меня менять смысла нет.
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

max.mix

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Это обычно пишется в sql файле по умолчанию писать всегда 1 или всегда ноль!


пробовал менять дефолтные 0 на 1 везде где только можно - результата нет, потому и обратился, что в базе это никак не решается
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Это обычно пишется в sql файле по умолчанию писать всегда 1 или всегда ноль!
Значение по умолчанию в базе данных не используется, так как при создании материала отправляется форма, в которой это поле уже есть и имеет значение.

пробовал менять дефолтные 0 на 1 везде где только можно - результата нет, потому и обратился, что в базе это никак не решается
добавьте в файл с формой для создания материала

defined
('_JEXEC') or die ('Restricted access');



if (!$row->id)
{
    
$row->published 1;
}


K2 незнаю, возможно "published" как-то по другому называется и "$row" тоже
« Последнее редактирование: 12.06.2011, 17:57:25 от Виталик »
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
*

max.mix

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
добавьте в файл с формой для создания материала

defined
('_JEXEC') or die ('Restricted access');



if (!$row->id)
{
    
$row->published 1;
}


K2 незнаю, возможно "published" как-то по другому называется и "$row" тоже

Спасибо, попробую этот вариант
*

max.mix

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
вы выложили не тот файл в который надо внести изменения

вот файл с формой:

Цитировать
<?php
/*
// "K2" Component by JoomlaWorks for Joomla! 1.5.x - Version 2.0.0
// Copyright (c) 2006 - 2009 JoomlaWorks Ltd. All rights reserved.
// Released under the GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
// More info at http://www.joomlaworks.gr
// Designed and developed by the JoomlaWorks team
// *** Last update: June 20th, 2009 ***
*/

// no direct access
defined('_JEXEC') or die ('Restricted access');

jimport('joomla.application.component.controller');

class K2ControllerItem extends JController
{

   function display() {
      
      $model=&$this->getModel('itemlist');
      $document =& JFactory::getDocument();
      $viewType = $document->getType();
      $view = &$this->getView('item', $viewType);
      $view->setModel($model);
      JRequest::setVar('view', 'item');
      parent::display(true);
   }

   function edit() {
   
      $view = & $this->getView('item', 'html');
      $view->setLayout('form');
      $view->edit();
   }
   
   function add() {
   
      $view = & $this->getView('item', 'html');
      $view->setLayout('form');
      $view->edit();
   }
   
   function save() {
   
      JRequest::checkToken() or jexit('Invalid Token');
      require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'.DS.'item.php');
      $model= new K2ModelItem;
         if(JRequest::getVar('front') == 1)
      $model->save2();
      else
      $model->save(true);
   }
   
   function deleteAttachment() {
   
      require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'.DS.'item.php');
      $model= new K2ModelItem;
      $model->deleteAttachment();
   }
   
   function tag() {
   
      require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'.DS.'tag.php');
      $model= new K2ModelTag;
      $model->addTag();
   }
   
   function download(){
   
      require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'.DS.'item.php');
      $model= new K2ModelItem;
      $model->download(true);
   }
   
   function extraFields(){
      
      global $mainframe;
      $itemID=JRequest::getInt('cid',NULL);

      JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
      
      $catid = JRequest::getVar('id');
      
            $category = & JTable::getInstance('K2Category', 'Table');
      $category->load($catid);
      
      require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'.DS.'extrafield.php');
      $extraFieldModel= new K2ModelExtraField;
      
      $extraFields = $extraFieldModel->getExtraFieldsByGroup($category->extraFieldsGroup);
      
      $output='';
      
         
      
      $output.='<table class="admintable" id="extraFields">';
      $counter=0;
      if (count($extraFields)){
         foreach ($extraFields as $extraField){
            $output.='<tr><td align="right" class="key">'.$extraField->name.'</td>';
            $output.='<td>'.$extraFieldModel->renderExtraField($extraField,$itemID).'</td></tr>';
            $counter++;
         }
      }
      $output.='</table>';      
               
      if ($counter==0) $output=JText::_("This category doesn't have assigned extra fields");
               
      echo $output;
      $mainframe->close();
      
      
   }
   
   function showforms(){   
      
      global $mainframe;
      $itemID=JRequest::getInt('cid',NULL);

      JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
      
      $catid = JRequest::getVar('id');
      
         
      $category = & JTable::getInstance('K2Category', 'Table');
      $category->load($catid);
      
      require_once(JPATH_COMPONENT_ADMINISTRATOR.DS.'models'.DS.'extrafield.php');
      $extraFieldModel= new K2ModelExtraField;
      
      $extraFields = $extraFieldModel->getExtraFieldsByGroup($category->extraFieldsGroup);
      
      $output='';
      
         if(JRequest::getVar('showmode') == 1)   $output.='
         <div class="body">
         <fieldset style="margin:0px"><legend><font color="#135CAE">Добавить объявление</font></legend>
         </fieldset>
         <br />
</div>
';

         if(JRequest::getVar('showmode') == 2) $output.='
         <div class="body">
         <fieldset style="margin:0px"><legend><font color="#135CAE">Добавить объявление</font></legend>
         </fieldset>
         <br />
</div>
';
         
         if(JRequest::getVar('showmode') == 3) $output.='
         <div class="body">
         <fieldset style="margin:0px"><legend><font color="#135CAE">Добавить объявление</font></legend>
         </fieldset>
         <br />
</div>
';
         
         if(JRequest::getVar('showmode') == 4) $output.='
         <div class="itemHeader">
         <h1 class="itemTitle" >Здесь Вы можете разместить объявление о покупке нежвижимости</h1>
         </div>
         ';
         
                     
            
      $counter=0;
      
      $output.="<form name='comment-form' id='comment-form'></form>";
      
      ///здесь добавим форму начало
      $output.="<form name='addform' action='index.php?option=com_k2&view=item&task=add&tmpl=component' enctype='multipart/form-data' method='POST' onsubmit=\"return sendform();\" >";   
      
      $output.="<input type='hidden' name='submit' value='Submit' />";      
      $output.="<input type='hidden' name='id' />";
      $output.="<input type='hidden' name='option' value='com_k2' >";
      $output.="<input type='hidden' name='view' value='item' />";
      $output.="<input type='hidden' name='task' value='save' />";
      $output.=JHTML::_('form.token');
      $output.="<input type='hidden' name='published' value='1' />";
      $output.="<input type='hidden' name='created_by' value='64' />";
      
      $output.="<input type='hidden' name='catid' value='".$catid."' />";
      
      $output.="<input type='hidden' name='access' value='0' />";
      
      $output.="<input type='hidden' name='created' value='' />";
      $output.="<input type='hidden' name='publish_up' value='2009-07-23 00:00:00' />";
      
      $output.="<input type='hidden' name='published' value='0' />";
      
      
      $output.="<input type='hidden' name='publish_down' value='Never' />";
      
      $output.="<input type='hidden' name='front' value='1' />";
      
      ///здесь добавим форму конец
      
      
      $output.='<fieldset style="margin:0px"><legend><font color="#135CAE">заполните форму:</font></legend><table class="admintable" id="extraFields"><br/>';
      $output.="<tr>
        <td align='right' class='key' >Заголовок ( введите заголовок: сдам.. или сниму.., продам.. или куплю..)</td> <td><input type='text' name='title' /></td></tr>";
      
      
      //////////////ajax activity
      $output.= '<tr><td align="right" class="key" >Страна </td> <td><select style="width:200px" id="ajax-country" disabled="disabled"  onchange="javascript:getRegion();" >';
      $flagseloptions = 0;
      if(isset($_SESSION['country'])){
         $output.= '<option value="'.$this->getIdByCountry($_SESSION['country']).'">'.$_SESSION['country'].'</option>';
         $flagseloptions = 1;
      }
      
      $output.= '</select></td> </tr>';
      if(!$flagseloptions)
      $output.= "      
      <script>
      var select = ajaxSelect('ajax-country');
      select.load('".JURI::base()."templates/rhuk_milkyway/html/options.php?w=country');
      </script>
      ";        
      
      
      $output.= '<tr><td align="right" class="key" >Регион </td> <td><select style="width:200px" id="ajax-region" disabled="disabled" onchange="javascript:getCity();" ></select></td> </tr>';
      
      if($flagseloptions)
      $output.= "      
      <script>
      var sel = document.getElementById('ajax-country');
      var selindex = sel.options[0].value;      
      var select = ajaxSelect('ajax-region');      
      select.load('".JURI::base()."templates/rhuk_milkyway/html/options.php?w=region&id='+selindex);
      </script>
      ";
      
      $output.= "
      <script>
      function getRegion(){
      var sel = document.getElementById('ajax-country');
      var selindex = sel.options[sel.selectedIndex].value;
      
            
      if(selindex != 0){
      var select = ajaxSelect('ajax-region');      
      select.load('".JURI::base()."templates/rhuk_milkyway/html/options.php?w=region&id='+selindex);      
      
      }
      
      }
      </script>";
      
      $output.= '<tr><td align="right" class="key" >Город </td> <td><select style="width:200px" id="ajax-city" disabled="disabled"  ></select></td> </tr>';
      
      $output.= "
      <script>
      function getCity(){
      var sel = document.getElementById('ajax-region');
      var selindex = sel.options[sel.selectedIndex].value;
      
         
      var select = ajaxSelect('ajax-city');
      select.load('".JURI::base()."templates/rhuk_milkyway/html/options.php?w=city&id='+selindex);
      
      
      }
      </script>";
      
      ////////////////
      
      
      if (count($extraFields)){
         $exhidden = '';
         foreach ($extraFields as $extraField){
            
            $flagshow = 1;
            
            if($this->checkadfield24($extraField->name, 'Станция метро'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Количество комнат'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Улица'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Дом'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Время до станции'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Способ передвижения'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Срок аренды'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Сдается начиная с (dd/mm/yy)'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Стоимость аренды за период'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Предоплата'))
            $flagshow = 0;
            if($this->checkadfield24($extraField->name, 'Комиссия для клиента'))
            $flagshow = 0;
            
            
            if($this->checkadfield3($extraField->name, 'Срок аренды'))
            $flagshow = 0;
            if($this->checkadfield3($extraField->name, 'Сдается начиная с (dd/mm/yy)'))
            $flagshow = 0;
            if($this->checkadfield3($extraField->name, 'Стоимость аренды за период'))
            $flagshow = 0;
            if($this->checkadfield3($extraField->name, 'Комиссия для клиента'))
            $flagshow = 0;
            
            if($this->checkadfieldAll($extraField->name, 'Страна'))
           $flagshow = 0;            
            if($this->checkadfieldAll($extraField->name, 'Город'))
            $flagshow = 0;            
            if($this->checkadfieldAll($extraField->name, 'Регион'))
            $flagshow = 0;
            
                              
            
            $eftext = $extraFieldModel->renderExtraField($extraField,$itemID);
            
            
            if($flagshow){                        
            $output.='<tr><td align="right" class="key">'.$extraField->name.'</td>';
            $output.='<td>'.$eftext.'</td></tr>';
            }else{
               $p=array();
               preg_match("/name=\"([^\"]*)\"/", $eftext, $p);
               $output.='<input type="hidden" '.$p[0].' />';
               
               }
            
            $counter++;

         }
      }
      
      if (JRequest::getVar('showmode') == 1)
      $output=str_replace('<option value="4" >Сниму квартиру</option><option value="5" >Сниму комнату</option><option value="6" >Сниму офис</option><option value="7" >Продам квартиру</option><option value="8" >Куплю квартиру</option><option value="9" >Куплю жильё</option><option value="10" >Куплю другую недвижимость</option>','',$output);
      if (JRequest::getVar('showmode') == 2){
      $output=str_replace('<option value="7" >Продам квартиру</option><option value="8" >Куплю квартиру</option><option value="9" >Куплю жильё</option><option value="10" >Куплю другую недвижимость</option>','',$output);
      $output=str_replace('<option value="1" >Сдам квартиру</option><option value="2" >Сдам комнату</option><option value="3" >Сдам офис</option>','',$output);
      }
      
      if (JRequest::getVar('showmode') == 3){
      $output=str_replace('<option value="11" >Сдам койко-место</option>','',$output);
      $output=str_replace('<option value="4" >Сниму квартиру</option><option value="5" >Сниму комнату</option><option value="6" >Сниму офис</option>','',$output);
      $output=str_replace('<option value="9" >Куплю жильё</option><option value="10" >Куплю другую недвижимость</option>','',$output);
      $output=str_replace('<option value="1" >Сдам квартиру</option><option value="2" >Сдам комнату</option><option value="3" >Сдам офис</option>','',$output);
      }
      
      if (JRequest::getVar('showmode') == 4){
      $output=str_replace('<option value="7" >Продам квартиру</option><option value="8" >Куплю квартиру</option>','',$output);
      $output=str_replace('<option value="11" >Сдам койко-место</option>','',$output);
      $output=str_replace('<option value="4" >Сниму квартиру</option><option value="5" >Сниму комнату</option><option value="6" >Сниму офис</option>','',$output);
      //$output=str_replace('<option value="9" >Куплю квартиру</option><option value="10" >Куплю дачу</option>','',$output);
      $output=str_replace('<option value="1" >Сдам квартиру</option><option value="2" >Сдам комнату</option><option value="3" >Сдам офис</option>','',$output);
      }
      
      
      
      $output.="<tr><td></td>
      <td>Можете загрузить фото своей квартиры, размером до 70 кб:</td>
      </tr>";
      
      $output.='<tr><td align="right" class="key" >Фото1</td><td><input type="file" name="uplfoto1" ></td></tr>';
      $output.='<tr><td align="right" class="key" >Фото2</td><td><input type="file" name="uplfoto2" ></td></tr>';
      $output.='<tr><td align="right" class="key" >Фото3</td><td><input type="file" name="uplfoto3" ></td></tr>';
      
      if(JRequest::getVar('id') == '3'){
      $output.="<tr><td></td><td>Ваше фото:</td></tr>";
      $output.='<tr><td align="right" class="key" >Фото</td><td><input type="file" name="fotouser" ></td></tr>';
         }
      
      
      $output.="<tr><td></td></tr>";
      $output.="<tr><td></td></tr>";
      $output.="<tr><td></td></tr>";
      $output.="<tr><td></td><td><input type='submit' value='       Разместить объявление       ' ></td></tr>";
      $output.='</table>';
      //$output.=$exhidden;
      $output.="</fieldset></form><br/><br/><br/>";
   
   
      
            
      if ($counter==0) $output=JText::_("This category doesn't have assigned extra fields");
      
      
      $output.='         
                        <script language="javascript">
                           function sendform() {
                              if (document.addform.title.value == "") {
                                 alert(\'Пожалуйста, введите заголовок.\');
                                 document.addform.title.focus();
                                 return false;
                              }
                              
                              var sel = document.getElementById(\'ajax-country\');
                              try {
                             var selcountry = sel.options[sel.selectedIndex].text;
                             
                             var selval = sel.options[sel.selectedIndex].value;
                                      if(selval == 0){
                                      alert(\'Пожалуйста, выберите страну.\');
                                      return false;
                                      }
                             
                              } catch (error) {
                              alert(\'Пожалуйста, выберите страну.\');
                             return false;
                              }
                              
                              var sel = document.getElementById(\'ajax-region\');
                              try {
                             var selreg = sel.options[sel.selectedIndex].text;
                             
                             var selval = sel.options[sel.selectedIndex].value;
                                      if(selval == 0){
                                      alert(\'Пожалуйста, выберите регион.\');
                                      return false;
                                      }
                             
                              } catch (error) {
                              alert(\'Пожалуйста, выберите регион.\');
                             return false;
                              }
                              
                              var sel = document.getElementById(\'ajax-city\');
                              try {
                             var selcity = sel.options[sel.selectedIndex].text;
                             
                             var selval = sel.options[sel.selectedIndex].value;
                                      if(selval == 0){
                                      alert(\'Пожалуйста, выберите город.\');
                                      return false;
                                      }
                             
                              } catch (error) {
                              alert(\'Пожалуйста, выберите город.\');
                             return false;
                              }
                              
                              
                              document.addform.K2ExtraField_5.value = selcountry;   
                              document.addform.K2ExtraField_6.value = selcity;   
                              document.addform.K2ExtraField_33.value = selreg;                        
                              
                              
                              
                           return true;
                        }
                     </script>      
            ';
         
         //echo "==>>";      
      echo $output;
      if(JRequest::getVar('debug') ==   1){
               if(JRequest::getVar('merge') == 'ok'){
                  
                  //INSERT
                  //$mysql = "INSERT INTO region_city SET id_region = '".JRequest::getVar('ajax-region')."', id_city = '".JRequest::getVar('ajax-city')."'";
                  
                  //DELETE
                  $mysql = "DELETE FROM region_city WHERE id_region = '".JRequest::getVar('ajax-region')."' AND id_city = '".JRequest::getVar('ajax-city')."'";
                  
                  //$db1 =& JFactory::getDBO();
                  //$db1->setQuery($mysql);
                 //$db1->query();
                  
                  echo $mysql;
               }
         
         $output = "<form method='post'>";
         
         $output.= '<table>';
      
      
      $output.= '<tr><td align="right" class="key" >Регион </td> <td><select name = "ajax-region" style="width:200px" id="ajax-region"  >      
      <option value="4605" >Эстония<option>
      </select></td> </tr>';
      
      $output.= "
      <script>
      
         
      
      //var select = ajaxSelect('ajax-region');      
      //select.load('".JURI::base()."templates/rhuk_milkyway/html/options.php?w=region&id=1290');      
      
      
      
      
      </script>";
      
      

            $output.= '<tr><td align="right" class="key" >Город </td> <td><select name = "ajax-city" style="width:200px" id="ajax-city" disabled="disabled"  ></select></td> </tr>';
      
      $output.= "
      </table>
      <script>
      
         
      var select = ajaxSelect('ajax-city');
      select.load('".JURI::base()."templates/rhuk_milkyway/html/options.php?w=city&id=4605');      
      
      
      </script>";      
      

         
         $output .= "<input type='submit'>
         <input type='hidden' name='merge' value='ok'>
         </form>
         ";
         
         //echo $output;
      }
      
   }

   function checkin(){
      
      $model = & $this->getModel('item');
      $model->checkin();
   }
   
   function vote()   {
      
      $model = & $this->getModel('item');
      $model->vote();
   }
   
   function getVotesNum()   {
      
      $model = & $this->getModel('item');
      $model->getVotesNum();
   }
   
   function getVotesPercentage()   {
      
      $model = & $this->getModel('item');
      $model->getVotesPercentage();
   }
   
   function comment(){
   
      $model = & $this->getModel('item');
      $model->comment();
   }
   
   function checkadfield24($extf,$fname){      
      if(($extf == $fname ) && (JRequest::getVar('showmode') == 2 || JRequest::getVar('showmode') == 4))
            return 1;
      else
          return 0;
   }
   
   function checkadfield3($extf,$fname){      
      if(($extf == $fname ) && (JRequest::getVar('showmode') == 3))
            return 1;
      else
          return 0;
   }
   
   function checkadfieldAll($extf,$fname){      
      if($extf == $fname )
            return 1;
      else
          return 0;
   }
   
   function getIdByCountry($c){      
   $database =& JFactory::getDBO();
   $query = "SELECT id FROM country WHERE country='".$c."'";
         $database->setQuery($query);
        $database->query();
       
        return $database->loadResult();
   
   }

}

Вы его имели в виду?
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
*

max.mix

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
уберите эту строку
Код: php
$output.="<input type='hidden' name='published' value='0' />";

Огромное спасибо!, все работает
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
У меня если формы пустые то они не имеют никаких значений изначально, за исключением разве что публикации, она может стоять в зависимости от того как я компонент написал! Но если я сохраню ПУСТУЮ форму! То данные в бд запишутся те которые я прописал в sql по умолчанию.
Помог бы ты ещё мне в соседней форме сортировку сделать на 1.6. Вообще бы супер было! Ты там так и не ответил!
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

max.mix

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Ты там так и не ответил!

К кому обращаетесь?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как и чем можно обращаться с запросами из Joomla к GraphQL?

Автор bmf1982

Ответов: 0
Просмотров: 904
Последний ответ 03.10.2019, 15:46:00
от bmf1982
Joomla как система авторизации

Автор kav

Ответов: 23
Просмотров: 2731
Последний ответ 29.04.2018, 11:10:30
от Aleks.Denezh
Нужна помощь в доработке модуля под Joomla 3

Автор kik84

Ответов: 5
Просмотров: 2688
Последний ответ 30.01.2018, 22:40:30
от Елeна
Как отучить Joomla стартовать session для гостей?

Автор commeta

Ответов: 8
Просмотров: 3398
Последний ответ 20.08.2015, 14:06:38
от acyp
Модуль отправки сообщений для Joomla 1.5 и 2.5 (ajax)

Автор gaalferov

Ответов: 7
Просмотров: 6072
Последний ответ 02.06.2015, 18:05:52
от gaalferov