Форум русской поддержки Joomla!® CMS
09.12.2016, 09:50:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывод материалов из другой базы

 (Прочитано 218 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Леон
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 266



« : 02.12.2015, 19:58:49 »

Здравствуйте. Можно ли такое реализовать и в в каком направлении двигаться.
Имеются 40 сайтов (на поддоменах). Один из них будем считать "главным" (домен).

Задача в том, чтобы некоторые материалы размещенные на главном сайте выводились на всех остальных сайтах.

Я заранее сделал каталог для файлов на отдельном поддомене, чтобы не копировать одинаковые файлы на все сайты.

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

Может есть какие-то скрипты или компоненты для этих дел?
Записан
Леон
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 266



« Ответ #1 : 03.12.2015, 01:07:41 »

Так как категории и пункты меню на сайтах одинаковые (даже id, были сделаны на одном шаблоне и раскопированы) хочу попробовать реализовать это скриптом.

Сделать php файл с формой создания материала, в которой будет заполняться заголовок, категория, дата создания и сам текст материала, затем данные будут подставляться в скрипт создания материала:

Код:
INSERT INTO `s1_content` (`id`, `asset_id`, `title`, `alias`, `introtext`, `fulltext`, `state`, `catid`, `created`, `created_by`, `created_by_alias`, `modified`, `modified_by`, `checked_out`, `checked_out_time`, `publish_up`, `publish_down`, `images`, `urls`, `attribs`, `version`, `ordering`, `metakey`, `metadesc`, `access`, `hits`, `metadata`, `featured`, `language`, `xreference`) VALUES
(0, 811, 'Заголовок', 'alias', '', '', 1, 104, '2015-10-19 18:20:29', 612, '', '2015-10-19 18:20:29', 0, 612, '2015-10-19 18:20:29', '2015-10-19 18:20:29', '0000-00-00 00:00:00', '{}', '{}', '{"show_title":"","link_titles":"","show_tags":"","show_intro":"","info_block_position":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":""}', 1, 1, '', '', 1, 4, '{"robots":"","author":"","rights":"","xreference":""}', 0, '*', '')

Скрипт выполняется и данный материал размещается на сайте. Циклом будет происходит подключение к каждой нужной базе и выполняться скрипт.

Может кто уже пытался сделать что-то подобное, стоит ли заморачиваться?





Находил на этом форуме примерный текст php файла, но он почему-то не работает:
В корне сайта создал file.php
Код:
<?php
$db = mysql_connect("localhost","имя","пароль");
mysql_select_db("имя базы" ,$db);

/*составляем запрос:*/
$result = "INSERT INTO `s1_content` (`id`, `asset_id`, `title`, `alias`, `introtext`, `fulltext`, `state`, `catid`, `created`, `created_by`, `created_by_alias`, `modified`, `modified_by`, `checked_out`, `checked_out_time`, `publish_up`, `publish_down`, `images`, `urls`, `attribs`, `version`, `ordering`, `metakey`, `metadesc`, `access`, `hits`, `metadata`, `featured`, `language`, `xreference`) VALUES (0, 811, 'Заголовок', 'alias', '', '', 1, 104, '2015-10-19 18:20:29', 612, '', '2015-10-19 18:20:29', 0, 612, '2015-10-19 18:20:29', '2015-10-19 18:20:29', '0000-00-00 00:00:00', '{}', '{}', '', 1, 1, '', '', 1, 4, '{'robots':'','author':'','rights':'','xreference':''}', 0, '*', '')";
 
$db->setQuery($result); //выполняем запрос
if ($db->query()) {
//проверяем, правильно ли всё сделали
echo 'это спарта, блеать!';
}
?>

При выполнении, подключение проходит, но после выдает ошибку:
Код:
Fatal error: Call to a member function setQuery() on resource in /var/www/leonkennedi/data/www/ds1.bkobr.ru/l.php on line 8

8-я строка это: $db->setQuery($result); //выполняем запрос
« Последнее редактирование: 03.12.2015, 01:14:32 от Леон » Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #2 : 03.12.2015, 15:50:57 »

Поищите на форуме программное создание материала. Ну и наверное это плагином можно как-то сделать. Только триггер нужный надо как-то передать, что типа этот материал надо раскопировать.
Записан
Леон
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 266



« Ответ #3 : 05.12.2015, 00:02:49 »

Да сложнова-то это все, сделал вот такой велосипед)


Логика такая, php скрипт по очереди проверяет, если отмечен первый чекбокс публикует материал на первом, отмечен второй публикует на втором....и выводит список сайтов и категорий где он его опубликовал.

Если закрыть глаза на примитивность кода и все костыли, работает отлично. Сначала нужно разместить новость на одном сайте, затем скопировать исходный код и вставить в поле на форме.
« Последнее редактирование: 05.12.2015, 00:06:45 от Леон » Записан
Леон
Давно я тут
****

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 266



« Ответ #4 : 08.12.2015, 22:43:43 »

Подскажите. Как при программном добавлении материала, получить ID этого материала?

Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #5 : 08.12.2015, 22:56:19 »

Код
$last_inserted_id=$db->insertid(); // по Jooml'овски 
// или
$last_inserted_id=mysqli_insert_id($connection);
 
cразу после выполнения команды INSERT.

P.S. Забыл скобки.
« Последнее редактирование: 08.12.2015, 23:12:16 от robert » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet