Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Сдам проект - переименуем :)
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Ну и книгу тогда сразу писать :)
Нет уж, книгу я оставлю на Вас :) а вот материальчика на нее возможно еще подкину  ;) *DRINK*
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Нет уж, книгу я оставлю на Вас :) а вот материальчика на нее возможно еще подкину  ;) *DRINK*
Давайте, книги я писать люблю...
Мелкий ремонт. skype poisk-plus
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А у кого есть опыт работы с 1С 8.3, настройка сервера для доступа из инета?

Вопрос в корне: доступ в серверу 1С и дальнейшая работа с базой 1С из J любыми доступными для 1С средствами/методами/технологиями/etc... (api/прямой доступ/прочее).

Все-таки ftp - крайне тормознутая штука, к тому же тормоза 1С не позволяют обрабатывать более 1 запроса за 3 секунды (150 000 записей договоров, в 7 раз больше записей документов по договорам, раскиданных по десятку регистров, сервак на E7-4860v2 с 32 гигами озу при отсутствующей нагрузки, сервер ftp там же, на соседнем разделе с базой, доступ в инет - оптика напрямую, полный безлимит), так тестовый запрос с J ожидает ответа порядка 7,5 секунд... Бред, а не скорость. Срочно ищу альтернативу.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Мега тема еще жива!

2 таблицы в базе:
#__mfo_credit_offers
id    offername             status    sm_from    sm_to    prc_from    prc_to    term_from    term_to    term_type
1    Аннуитетный          1       5000.00    50000.00    12.0000    12.0000    12       13       2
2    Добро пожаловать!       1       1000.00    15000.00    1.5000    1.5000    10       30       1
3    Вексель             1       1000.00    15000.00    1.5000    1.5000    10       30       1
4    До востребования       1       1000.00    15000.00    1.5000    1.5000    10       30       1
5    Аннуитет Брянск       1       500.00    15000.00    12.0000    12.0000    1       5       2
6    Аннуитет(неделя+неделя)    1       1000.00    15400.00    12.0000    12.0000    12       14       3
7    Аннуитет(неделя+день)    1       100.00    10000.00    14.0000    14.0000    1       12       3
8    С возвращением!       1       20000.00    50000.00    0.0000    0.0000    10       30       1

#__mfo_credit_offers_conditions
co_id    condition    
2       Только для потенциальных клиентов.
2       От вас паспорт и справка с работы!
8       С возвращением!
8       Минимальная сумма  20000 руб, максимальная 50000 р...
8       Минимальный срок 10 дней, Максимальный срок 30 дне...


Процедура выборки:
Код: php
  protected function getListQuery()
  {
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('id, offername, status, sm_from, sm_to, prc_from, prc_to, term_from, term_to, term_type')
          ->from('#__mfo_credit_offers');
    return $query;
  }
  
  public function getItems()
  {
    $store = $this->getStoreId();
    if (isset($this->cache[$store])) return $this->cache[$store];
 
    $query = $this->_getListQuery();
    try
    {
      $items = $this->getDbo()->setQuery($query)->loadObjectList('id');
      $query = $this->getDbo()->getQuery(true)->select('co_id, `condition`')->from('#__mfo_credit_offers_conditions');
      $conditions = $this->getDbo()->setQuery($query)->loadObjectList();
      foreach ($conditions as $condition) {
        if (isset($items[$condition->co_id]))
          $items[$condition->co_id]->conditions[] = $condition;
      }
    }
    catch (RuntimeException $e)
    {
      $this->setError($e->getMessage());
      return false;
    }
 
    $this->cache[$store] = $items;
    return $this->cache[$store];
  }

Вывод во вьюхе:
Код: php
      <tbody>
        <?php if (count($this->items)) {
          foreach ($this->items as $i => $item) {
            if (isset($item->conditions) && count($item->conditions)) $list = $item->conditions;
            switch ($item->term_type) {
              case 1: $term_type_str = JText::_('COM_MFO_TABLE_CO_TERM_TYPE_DAY'); break;
              case 2: $term_type_str = JText::_('COM_MFO_TABLE_CO_TERM_TYPE_WEEK'); break;
              case 3: $term_type_str = JText::_('COM_MFO_TABLE_CO_TERM_TYPE_MONTH'); break;
              case 4: $term_type_str = JText::_('COM_MFO_TABLE_CO_TERM_TYPE_FREE'); break;
            }
          ?>
            <tr>
              <td class="top-brd" rowspan="2"><?php echo $item->id; ?></td>
              <td class="top-brd"><?php echo $item->offername; ?></td>
              <td class="top-brd hc"><?php echo $item->status; ?></td>
              <td class="top-brd hr"><?php if ($item->sm_from != 0) {echo number_format($item->sm_from,2,$dcs,$ths);} ?></td>
              <td class="top-brd hr"><?php if ($item->sm_to != 0) {echo number_format($item->sm_to,2,$dcs,$ths);} ?></td>
              <td class="top-brd hr"><?php if ($item->prc_from != 0) {echo number_format($item->prc_from,4,'.','');} ?></td>
              <td class="top-brd hr"><?php if ($item->prc_to != 0) {echo number_format($item->prc_to,4,'.','');} ?></td>
              <td class="top-brd hr"><?php if ($item->term_from != 0) {echo $item->term_from;} ?></td>
              <td class="top-brd hr"><?php if ($item->term_to != 0) {echo $item->term_to;} ?></td>
              <td class="top-brd hc"><?php echo $term_type_str; ?></td>
            </tr>
            <tr><td colspan="9"><i>
              <?php if (isset($list) && count($list)) {
                $list_cnt = count($list);
                $list_ii = 1;
                foreach ($list as $listitem) {
                  if ($list_ii == $list_cnt)
                    {echo $listitem->condition;} else
                    {echo $listitem->condition.'<br />';}
                  $list_ii++;
                }
              } else {echo JText::_('COM_MFO_TABLE_CO_CONDITIONALITY_NONE');}
            echo '</i></td></tr>';
          }
        } else {echo '<tr><td colspan="10" class="top-brd">'.JText::_('COM_MFO_TABLE_CO_NO_DATA').'</td></tr>';} ?>
      </tbody>

Поведение по факту:
у итемов с 3 по 7 включительно выводятся conditions от 2-го итема, а должно быть пусто (т.е. JText::_('COM_MFO_TABLE_CO_CONDITIONALITY_NONE'); ).

В чем мой косяк?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Как всегда, 3 часа помучаюсь, потом задам вопрос, потом тут же сам найду ошибку...
В конце цикла foreach ($this->items as $i => $item) {.....  $list = null;}
« Последнее редактирование: 19.09.2014, 08:21:03 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Как записать значение переменной в параметр компонента?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Как записать значение переменной в параметр компонента?
В смысле в конфигурацию? Смотря где храняться... Если в config.xml, то добавлять прямо в него. Если в базе своя таблица, то туда.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В конфиг, программно (при импорте из xml).

Попробовать напрямую открыть config.xml и прописать в нужное место значение (имеется ввиду не в ручную, а на php)?
« Последнее редактирование: 19.09.2014, 11:45:13 от AlekVolsk »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Попробовать напрямую открыть config.xml и прописать в нужное место значение (имеется ввиду не в ручную, а на php)?
Походу я тебя обманул. Сами параметры хранятся в базе (таблица '#__extensions', поле params). В config.xml только форма. Получается, если новое значение, то добавлять в config.xml соответствующее поле.
Если текущее, то видимо params дергать.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А там json, с которым пока ни разу не сталкивался. JResponseJson в этом как-то поможет? Просто поменять значение параметра mfo_is_contributions_columns
« Последнее редактирование: 05.04.2015, 23:33:54 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А там json, с которым пока ни разу не сталкивался. JResponseJson в этом как-то поможет? Просто поменять значение параметра.
Код: php
$registry = new JRegistry();
$registry->set( 'param1', 'value1' );
$registry->set( 'param2', 'value2' );
$registry->set( 'param3', 'value2' );
$registry->toString(); // 'это записать в базу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Записанное в базу перезапишет все параметры или только те, что были посредством set() установлены?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Записанное в базу перезапишет все параметры или только те, что были посредством set() установлены?
Перезапишет! Если сохранить старые параметры то:
Код: php
$params = JComponentHelper::getParams('com_mycomponent'); // загружаем параметры компонента!
$params->set( 'param1', 'value1' );
$params->toString(); // 'это записать в базу
Если поле param1 есть в параметрах  компонента, то оно перезапишется, если нет то добавится...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В основном шаблоне сайта надо определить, установлен ли компонент com_mycomponent. Как?
Там же определить наличие в базе таблицы #_mytable. Как?
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
JComponentHelper::isEnabled('com_name');
SHOW TABLES LIKE 'tablename'
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Второе - это запрос, если таблица существует, кол-во строк будет > 0. Я правильно понял?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Второе - это запрос, если таблица существует, кол-во строк будет > 0. Я правильно понял?
Да, это запрос.

Цитировать
если таблица существует, кол-во строк будет > 0
В смысле? Запрос просто проверяет наличие таблицы.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Проверил: запрос возвращает 1 поле c именем 'tables_in_databasename', содержит одну запись с именем таблицы, указанной в параметре like.
В общем-то, это классический ansi sql'92 standart. Я рассчитывал, что может быть существует механизм такой проверки в api J.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Код: php
$db = JFactory::getDbo();
if ( in_array( $db->getPrefix(). 'content', $db->getTableList() ) ) {
echo 'Таблица существует';
}
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
При попытке послать файл по ftp долго думает. затем такое:
Цитировать
Warning: ftp_put(): PORT command successful in G:\home\mfo.local\www\administrator\components\com_mfo\models\loadinfo.php on line 215
Fatal error: Maximum execution time of 30 seconds exceeded in G:\home\mfo.local\www\administrator\components\com_mfo\models\loadinfo.php on line 215
Чей косяк, мой или связи?
В 215 сроке: $upload = ftp_put($conn_id, $ftp_fnameq, $xmlpath.$ftp_fnameq, FTP_ASCII);
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
спс, мегафон как всегда отжигает
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Пичальная картина: все, что в рамках топика было сделано (и еще много чего сверху), прахом пошло, начальство отказалось от проекта в моем исполнении, мне просто кидалово устроили, без оплаты.

Топик содержит множество решений многих вопросов, можно переименовать во что-то вроде "Учебник по созданию компонента на J3 на примерах".
Хотел все это (и еще несколько топиков) обобщить в отдельную доку, наподобие той, что на joomlablog, возможно  еще вернусь к этой идее, а пока - сори - даже думать не оч. приятно об этом. Может, кто и возьмется, материала более чем достаточно. Во всяком случае, дальнейшее развитие темы пока не предвидится.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться