Новости Joomla

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

Вы уверенно чувствуете себя перед камерой, динамичны, обаятельны и всегда улыбаетесь? Чувствуете себя искателем приключений, готовым поделиться своими исследованиями CMS Joomla!, взять интервью у видных деятелей сообщества, пообщаться лично или по видеосвязи с волонтерами Joomla или отправиться на поиски новых идей?

Joomla ищет одного или нескольких волонтеров, готовых вдохнуть новую жизнь в обсуждение Joomla, ее CMS, пользователей, сообщества и многого другого.

Возможны самые разные форматы и темы: шортсы, интервью, аналитика и разборы в режиме реального времени, быстрые советы и рекомендации, знакомство с миром Joomla, изучение открытого исходного кода... Нет никаких ограничений!

Joomla! уже активно представлена ​​во многих социальных сетях:
- 155K подписчиков на Facebook,
- 55K подписчиков на X (ранее Twitter),
- 16K подписчиков на YouTube,
- 14K подписчиков на LinkedIn,
- 5,7K подписчиков в Instagram
а так же другие площадки ждут вас. Аккаунты Threads и Bluesky относительно новые, но их популярность только растёт!

А если хватит энергии, можно рассмотреть и TikTok!

❓ Итак, вы готовы?
👉 Свяжитесь с отделом маркетинга по адресу: marketing@community.joomla.org

Подробности в статье в Joomla Community Magazine.

@joomlafeed

SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

v.2.6.1. Что нового?

  • Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
  • Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
  • Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
  • Рефакторинг и правки кода. Текущее обновление кодовой базы.
  • Исправление ошибок.

Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

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

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Пишу простой php скрипт, нужно подключиться к двум базам, они обе на разных хостингах, получить данные и записать в 3-ю отдельную базу. У меня почти все работает, скрипт подключается к обеем базам, но если выполняю запрос он идет в последнюю подключенную базу. Вот пример чтобы было нагляднее:

Код
//ДБ1
$db1 = mysql_connect("194.194.196.129","soc","SOC201",true);
mysql_select_db("baza1" ,$db1);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");

//ДБ2
$db2= mysql_connect("185.185.205.9","soc","SOC201",true);
mysql_select_db("baza2" ,$db2);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");

Обе базы с сайтов на Joomla, у них одинаковые таблицы и многое другое.
Далее я выполняю любой запрос и он пойдет в $db2:

Код
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM contacts WHERE id = '1'");
$myrow = mysql_fetch_array($sql);
echo $myrow["name"];

Код выведет поле значение 'name' из таблицы 'contacts' из базы $db2. Подскажите как нужно переписать код чтобы я мог обратить этот код к $db1 или $db2? Или может нужно подругому переписать подключение к базам?

Просто у меня дальше будет код, он взял первую стркоу (с id=1), проверил наличие похожей стоки во второй базе и если его там нет записал туда и так он будет перебирать все строки. Каждй раз делать дисконенкт первой базы и подключение второй на каждом запросе это будет явно неверным решением.
« Последнее редактирование: 21.07.2017, 16:07:27 от Леон »
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
https://docs.joomla.org/Connecting_to_an_external_database
Тут я думаю такое не подойдет, это будет что-то отдельной админки (без joomla). Будет такой мини сервис по работе с заявками из форм обратной связи. Он будет собирать данные с нескольких сайтов (сайты на joomla) и выводить в красивой таблице сразу все обращения, где оператор будет присваивать им статусы и как-то обрабатывать.

Выше чуть неправильно объяснил, будет еще БД3 в которую будут этим скриптом копироваться записи которых там еще нет.

Или может у меня вообще вся затея провальная и делать нужно было не так)
Ваш способ думаю подойдет, если моя БД3 будет тоже от Joomla сайта. Но не хотелось из-за такой небольшой функции использовать cms. Там по сути будет просто страница, на которой будет таблица с заявками и дополнительное поле со статусом, "в работе", "выполнена" и т.д.
« Последнее редактирование: 21.07.2017, 16:36:07 от Леон »
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Типа вот что будет на странице:

Код
<body>
<table border="1">
<tr>
<th>ФИО</th>
<th>Email</th>
<th>Телефон</th>
<th>Сообщение</th>
<th>Дата начала</th>
<th>Статус</th>
</tr>

<?php
for($i=0; $i<$id_max; $i++) {
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM contacts WHERE id = '$i'");
$myrow = mysql_fetch_array($sql);
if ($myrow["name"] != '') {
?>

<tr>
<td><?php echo $myrow["name"];?></td>
<td><?php echo $myrow["email"];?></td>
<td><?php echo $myrow["phone"];?></td>
<td><?php echo $myrow["message"];?></td>
<td><?php echo $myrow["created_at"];?></td>
<td><?php echo '';?></td>
</tr>
<?php
}}
?>
</table>
</body>

Скрипт пробежится по таблице и выведет в HTML таблице данные) ***код?)
Но до этого мне бы из разных баз в одну эту слить все данные.


Пробовал с этой строкой играть, ничего не вышло, вот что пробовал:
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM $db1.contacts WHERE id = '$i'");
$sql = mysql_query ("SELECT name, email, phone, message, created_at FROM contacts.$db1 WHERE id = '$i'");
Ну и в таком духе пытался обратить этот запрос к нужной мне базе. Идут ошибки синтаксиса)
« Последнее редактирование: 21.07.2017, 16:51:10 от Леон »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
так в mysql_query тоже ж надо указывать второй параметр-идентификатор соединения. без его указания будет использован последний, что у вас и происходит.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
так в mysql_query тоже ж надо указывать второй параметр-идентификатор соединения. без его указания будет использован последний, что у вас и происходит.
Вот вот, я чуть выше про это упомянул, а как правильно то его указать)
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Код: php
<?
 
    /*
    *   The sample code below makes 2 database connections and the reference to each database connection is stored in separate variables.
    *   Whenever you connect multiple databases you have to specify the link in mysql_query function to tell PHP to run the query
    *   on the specified database.
    */
 
    $link1=mysql_connect("localhost","root","");
    mysql_select_db("qlets");
 
 
    $link2=mysql_connect("localhost","root","",true);
    mysql_select_db("sargodhabiz",$link2);
 
    $result1=mysql_query("select * from portfolio",$link1);
    show_data($result1);
 
    $result2=mysql_query("select * from categories",$link2);
    show_data($result2);
 
    mysql_close($link1);
    mysql_close($link2);
 
 
    function show_data($result){
        $x=mysql_num_fields($result);
        echo "<table border=\"1\">";
        while($row=mysql_fetch_array($result)){
            echo "<tr>";            
            for($i=0;$i<$x;$i++){
                echo "<td>".$row[$i]."</td>";
            }
            echo "</tr>";
        }
        echo "</table>";
    }
 ?>
вот простой пример подключения к 2 бд, так не заработает
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Вот вот, я чуть выше про это упомянул, а как правильно то его указать)

ну как в mysql_select_db указали, так и в mysql_query указывайте :)

второй параметр-идентификатор соединения

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

Леон

  • Захожу иногда
  • 333
  • 5 / 0
вот простой пример подключения к 2 бд, так не заработает
Спасибо, воспользовался вашим кодом все пошло, были вместо русских символов вопросы, добавил после подключения к базам еще mysql_query("SET NAMES utf8"); и все норм, работает как нужно.

Спойлер
[свернуть]
« Последнее редактирование: 21.07.2017, 19:31:33 от Леон »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
А мне не дали(((
ответил в личку, чтоб не флудить.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

step-di

  • Захожу иногда
  • 91
  • 5 / 0
Я соорудил системный плагин, в который положил часто используемые мною функции.
Среди них функция с именем sql для выполнения SQL команд с возможностью подключения к различным базам данных
в теле функции соорудил подключение к базам данных согласно настройкам из компонента com_mightysites (использую один движок Joomla и большое количество баз данных под отдельные сайты)

например, в коде пишу:
if ($items = sql ("select * from #__content where state=1"))
foreach ($items as $row) { .... }
код выполняет запрос в текущую базу данных, если второй параметр в функции не задан

или, например:
$title = sql ("select title from #__content where id={$id}", 'nameotherbd');
код выполняет запрос в базу данных с именем nameotherbd

если мне нужно что-то обновить, вставить или удалить, то пишу соответственно:
sql ("update .....", 'nameotherbd');
sql ("insert .....", 'nameotherbd');
sql ("delete .....", 'nameotherbd');

если нужно считать данные из нескольких баз,
то отдельно считываю информацию из каждой базы  затем создаю временную таблицу с именем
$newdb = '#__tbl'.rand(5, 15);

через команду
sql ("CREATE TEMPORARY TABLE {$newdb} LIKE #__baza");
у этой таблицы создаются поля такие же как у таблицы #__baza
таблицу #__baza я спроектировал с такими полями какие мне нужны

наполняю ее полученной и обработанной инфой из других баз
sql ("insert {$newdb} .....");

затем вывожу как мне надо сгруппировав и отсортировав
sql ("select * from {$newdb} where ... group by ... order by ... ");

и удаляю временную таблицу
sql ("DROP TABLE {$newdb}");

« Последнее редактирование: 09.08.2017, 18:01:36 от step-di »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сайт медленно работает, прошу советов

Автор Леон

Ответов: 14
Просмотров: 2033
Последний ответ 08.08.2017, 14:34:50
от flyingspook
Плагин для снятия копирайта с JoomShopping

Автор NightGuard

Ответов: 49
Просмотров: 12530
Последний ответ 05.11.2015, 22:48:46
от voland
Мегафон модем - ошибка DNS

Автор Леон

Ответов: 15
Просмотров: 11902
Последний ответ 08.10.2015, 09:35:35
от KKAAZZOO
Новая идея для гумно-бизнеса

Автор ecolora

Ответов: 7
Просмотров: 2041
Последний ответ 17.06.2015, 13:41:42
от wishlight
Перевод часов - неправильное время на сайт

Автор Maxum

Ответов: 29
Просмотров: 6139
Последний ответ 25.01.2015, 15:52:58
от AlekVolsk