LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 23:45:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как вставить контент массово в joomla?  (Прочитано 6054 раз)
0 Пользователей и 1 Гость смотрят эту тему.
egilyad
Захожу иногда
**

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

Сообщений: 8


« : 11.09.2008, 20:16:05 »

Как вставить контент массово?


Первый вариан вопроса

Вопрос в следушем есть тысячи текстовых фаелов контента как можно их преврать в статьи на joomla кроме того что вставлять по одной ?  пусть даже в title стараниц будит 1,2,3 итд

Второй вариант вопроса

Есть огромный текставый фаил в каторам текста на несколько сот страниц  можно ево опубликавать так чтоб произашло разбиение текста на страницы ??? чтоб был не длинный текст а короткий и снизу 1,2,3,4 итд
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

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


тружусь даже во сне...


« Ответ #1 : 11.09.2008, 20:17:29 »

Написать небольшой скрипт и вставить данные прямо в БД...
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #2 : 11.09.2008, 20:28:31 »

Написать небольшой скрипт и вставить данные прямо в БД...

а готовые версии такого скрипта есть?
Записан
Вовочка
Осваиваюсь на форуме
***

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

Сообщений: 189



« Ответ #3 : 11.09.2008, 20:46:12 »

Внимательно изучите таблицу jos_content. В phpmyadmin добавте в неё несколько строк и посмтотрите какой sql-запрос оно выдаст.

Готового скрипта не встречал, но даже с базовыми знаниями php это можно зделать. Посмотрите функции php по работе с файлами и с базой данных.
Записан
pedrosoft
Завсегдатай
*****

Репутация: +111/-7
Offline Offline

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



« Ответ #4 : 11.09.2008, 22:18:17 »

есть компонент MassContent. я правда не знаю то ли но судя по названию что то похожее. все равно если вы его посмотрите хуже не будет
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #5 : 14.09.2008, 01:34:14 »

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

Спасибо канешно компонент неплохой но это не то

Разработчик Johann Eriksen опубликовал компонент Mass Content. Этот компонент очень полезен при создании сайтов на CMS Joomla, поскольку позволяет создавать сразу несколько категорий, разделов, а также создавать ссылки на них в различных меню, что избавляет от необходимости многократно повторять одни и теже операции при построении структуры сайта.

Нужно именно способ выставить контент массово тысячи текстовых документов чтоб превратить в статьи в сайте.
Жду любой информации по теме .
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

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


Севастополь==Россия


« Ответ #6 : 14.09.2008, 02:11:55 »

есть контент в 100 статей в формате Excel, создаем структуру документа, аналогичную таблице jos_content, перегоняем в формат CSV, дальше PHPMyAdmin и загоняем в БД - а дальше нужно расписывать и рассказывать особенности каждого пункта, что в рамках данного форума делать никто не будет.
Изучайте матчасть, эксперементируйте и задавайте конкретные вопросы.
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #7 : 18.09.2008, 05:36:40 »

хотел спросить вот ты пишиш "есть контент в 100 статей в формате Excel, создаем структуру документа, аналогичную таблице jos_content" а как потом эти 100 статей добавить в файл с аналогичной jos_content структурой в Excel есть возможность взять текст из файлов и в таблицу за раз?чтоб не открывать каждый файл отдельно?(или разделить как то один длиный файл на куски и в таблицу как-то автоматом:? )

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

Репутация: +1438/-61
Offline Offline

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


Севастополь==Россия


« Ответ #8 : 18.09.2008, 05:51:22 »

хм. я исходил из того, что изначально мы имеем документ Excel из 100 строк и к примеру 3-х столбцов (название, начальный текст и полный текст).
Чтобы добавить нужные столбцы в соответствии с структурой таблицы content необходимо 10 минут и минимальные (МИНИМАЛЬНЫЕ) навыки работы с электронными таблицами.
Объяснять пошагово пока не буду. Если сами не справитесь - тогда уже дополнительные вопросы и приведу пошаговый пример конвертации
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #9 : 18.09.2008, 08:21:15 »

хм. я исходил из того, что изначально мы имеем документ Excel из 100 строк и к примеру 3-х столбцов (название, начальный текст и полный текст).
Чтобы добавить нужные столбцы в соответствии с структурой таблицы content необходимо 10 минут и минимальные (МИНИМАЛЬНЫЕ) навыки работы с электронными таблицами.
Объяснять пошагово пока не буду. Если сами не справитесь - тогда уже дополнительные вопросы и приведу пошаговый пример конвертации

Так именно в этом и проблема что нет Excel файла в катором уже все страницы контента в виде одной таблицы вот его нужно создать а потом то не проблема добавить еше пару параметров и загнать в базу у меня контент энциклопедий несколько тысячь страниц(или несколько мега текстов) как из него сделать таблицу есть идеи .???
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #10 : 26.09.2008, 00:39:29 »

статейка на тему

    Явная нехватка материала на эту тему побудила меня к написанию этой статьи. Сразу же оговорюсь - метод, показанный здесь, неоригинален, я нашел описание его использования где-то на просторах Рунета и просто немного доработал. Метод же касается разделения большого количества данных (новостных лент, списков и т.д.) на страницы, т.е. создание на вашей веб-странице постраничного вывода информации.

    Здесь я приведу пример, работающий с БД MySQL, но при желании его не трудно будет перенастроить на использование текстовых файлов, если вы храните данные в них.

    Итак, начнем. У нас имеется некоторое количество записей в таблице базы данных, условно назовем ее table. Эти данные выводятся на страницу одним потоком, а должны бы несколькими. Т.е. при достижении на странице количества записей, например, в 10 штук, скрипт бы автоматически "заворачивал" ленту так, чтобы следующая часть данных находилась уже на другой странице. И при этом формировал гиперссылки примерно такого вида - "1 2 3", которые мы часто видим на современных веб-сайтах. При переходе на 2 страницу желательно, чтобы ссылка на нее становилась неактивной, зато появлялась гиперссылка не первую. В общем, и так далее.

    Перейдем к самому скрипту.

    Допустим, ключи-идентификаторы полей у нас хранятся в поле ID, которое является ключевым и самовозрастающим. Тогда для получения количества записей просто считываем количество находящихся в базе ключей:

    $query=mysql_query("SELECT id FROM table");
    $num_of_rows=mysql_num_rows($query);

    Следующая строка нужна для указания того, что количество полей как раз соответствует количеству материала (в принципе, можно вполне обойтись и без нее, но это уж мое хобби - вводить множество нужных и ненужных переменных):

    $total_mat_number=$num_of_rows;

    Дальше указываем количество материала на одной странице:

    $mat_per_page=10;

    Рассчитываем, сколько всего у нас получится страниц:

    $total_pages=ceil($total_mat_number/$mat_per_page);

    Далее, собственно, создаем сам цикл разбиения данных на страницы и создания ссылок, для этого используем оператор for

    for ($i=0; $i<$total_pages; $i++){
    $page_number=$i*$mat_per_page;
    if ($page_number!=$page) {
    echo "a href=file.php?page=$page_number target=_self>".($i+1)."a";
    } else {
    echo "($i+1)";
    };

    Как видно из этого цикла, скрипт постоянно подсчитывает количество уже опубликованного на странице материала, и по достижении числа, указанного в $total_pages (у нас это 10), "заворачивает" ленту на другую страницу, заодно формируя на нее гиперссылку. Что собственно от него и требовалось!

    Enjoy!
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #11 : 26.09.2008, 00:40:46 »

и еше одна

Прочитал я статейку известного всем DDeveloper’a по той же теме. Рассудив что материала по этой теме и правда очень мало, я решил написать еще одну статью на эту тему. Действительно, а почему бы и нет? Тем более, что я использую совсем иные конструкции и методы вывода информации. К тому же в своей статье DDeveloper описал общие принципы, не вдаваясь в подробности и тонкости. Стоит это исправить.

Так, только не надо хвататься сразу за свой PhpExpertEditor (или что ты там используешь?). Во превых, стоит поговорить о творческой стороне проблемы. Ты пишешь скрипт, а это процесс весьма и весьма творческий. Замечу, что я не собираюсь выкладывать тебе код скрипта с комментариями на блюдечке. Я лишь хочу помочь тебе найти путь истинный Wink и подсказать пару фишек за счет которых ты сможешь уже сам написать нечто свое собственное, уникальное. Если ты читаешь эту статью значит ты начинающий кодер, ну или просто мой знакомый который хочет меня потом покритиковать Wink Итак, первое правило, ни когда не пиши скриты в душных помещениях. Прежде чем садиться за комп проветри помещение, наполни его азоном и кислородом. Выпей чего-нибудь холодного. Да, нет не пива. Лучше миниральной воды нету ни чего. Обязательно поставь что-нибудь из mp3, ну если у нет отвращения к музыке Wink Не надо ставить ни чего долбящего и громкого. Поставь что-нибудь мелодичное, приятное. Знал я одного парня так он все под Чайковского с Битховиным писал Wink Ну я думаю морально к написанию скрипта ты готов, приступаем.

C чего стоит начать? Могу тебя заверить, что самым верным решением будет начать с начала Wink Так как скрипт мы будем писать для вывода информации из БД, то для начала создай в ней таблицу с именем info, например. В таблице должно быть как минимум три поля, назови их id(тип int), str(тип text) и date(тип datetime). Поле id должно быть самовозростающим. Создай в этой таблице какое-то колличество записей. Не скупись, создай штук двадцать рядов. Итак теперь мы можем ставить конкретные цели. Имея двадцать записей, мы хотим чтобы они выводились по пять штук на странице. Если ты в танке, то подсказываю страница будет одна, просто выводить она будет то что мы захотим Wink

Стоит описать сам процесс вывода записей. Казалось бы, что может быть проще? Ан нет, не надо торопиться. Скрипт то долже быть динамическим на все сто. Создай переменную которая будет содержать колличество записей на странице :
$mess_on_page = “5”;

Далее нам понадобится переменная которая определит с какой записи извлекать информацию из таблицы. Определим эту переменную вот так :
$first_mess = ceil($mess_on_page*($page-1));

Без паники Wink Я знаю, что переменная $page тебе не знакома. Давай по порядку. Забегая не много вперед скажу лишь, что она содержит номер страницы. Вернемся к $first_mess. Что эта переменная значит? На первой странице должны выводиться записи с самой первой по шестую. Но самая первая запись в таблице имеет индекс 0 и по этому надо извлечь записи с нулевой по пятую. На второй странице с пятой по десятую и т.д.. Теперь я думаю все ясно. Для тех кто в танке поясняю, номер страницы 1, мы его уменьшаем на единицу и умножаем на колличество записей на странице.

Запустив этот скирпт ты получишь вполне ожидаемое сообщение об ошибке. Переменная $page у нас не указана, от этого и ошибка. В дальнейшем скрипт будет получать эту переменную из урлки, которую мы должным образом сгенерируем, так что проблем не будет. Но как быть если человек попал на страничку каким-то неведомым нам путем? Используй следующую конструкцию :
if (isset($page)) {

}
else {

$page = "1";

};

То есть если переменная $page присутствует, то ее значение не меняется. А если такая переменная не указана, то ей присваевается значение 1. Что дальше? Теперь мы можем со спокойной душой извлекать нужные записи. Это будет происходить с при помощи знакомых функции. Я лишь добавлю, что сортировать записи мы будем по полю id в обратном порядке, используя параметр desc. Вот как это будет выглядеть :
$info_sel = mysql_query("select * from info order by id desc limit $first_mess,$mess_on_page");

while ($info = mysql_fetch_array($info_sel)) {

print("

Номер записи $info[id] - $info[str] – дата $info[date]
");

};

Тут все понятно? Единственное где может возникнуть непонятка, это место limit. Тут нет ни чего сложного. Можешь за место наших переменных записать какие то цифры, потренероваться с ними. Переменные я там использовал только потому что скрипту не известно какие записи придется извлекать.

Как вывести нужные записи я вроде как объяснил. Теперь надо сгенерировать ссылки на все странички. Для этого нам нужно знать сколько у нас всего записей. Делаем это так :
$col_info = mysql_num_rows(mysql_query("select * from info"));

Извлекаем из нашей таблицы все записи и подсчитывае их – тут все просто. Но это колличесво записей, а нам надо знать в добавок и колличесво страничек. Я думаю ты уже догадался как это сделать. Создаем следующую переменную :
$col_page = ceil($col_info/$mess_on_page);

Просто на просто делим общее колличество записей на колличество записей, которое должно быть на одной странице. Вот теперь то мы и переходим к самому главному. К генерации ссылок. Тут то у нас и появляется присловутая переменная $page. Так же отмечу, что та страница на которой мы находимся не будет выводится в виде ссылки. Внимание :
for ($i=1; $i<$col_page+1; $i++) {

if ($page==$i) {

print(" $i ");

}
else {

print(" $i ");

};

};

Все понятно? Если ты внимательно читал всю статью, то думаю, да. Для танкистов поясняю, мы сравниваем переменную $page с переменной $i – момент когда они равны – это текущая страница Wink В остальных случаях мы создаем ссылки на наш скрипт, нажав на которую человек попадает на ту же самую страницу, но уже с новым значением переменной $page.

Уяснил все тонкости? Наверное сидишь и думаешь сейчас над некоторыми непонятками и надуманными заморочками. А ты знаешь, ты прав и тебе это не кажется и не тебе одному Wink Я нарочно перемудрил кое-где. Я сделал это только для того чтобы ты имел пищу для размышления. Ведь наверняка ты не станешь хвастаться перед друзьями таким ужасным скриптом, а напишешь свой более интересный, более изящьный и тонкий. А я за тебя только порадуюсь. Удачи! Если будут проблемы пиши мне на мыло, может я отвечу Wink
Записан
egilyad
Захожу иногда
**

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

Сообщений: 8


« Ответ #12 : 26.09.2008, 00:41:57 »

может кто нибудь подскажет используя информацию из статей как решить проблему мою?
Записан
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

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


Kiss my shiny metal ass!


« Ответ #13 : 26.09.2008, 00:56:48 »

Эти статьи ни коим образом не связаны с Вашей проблемой.
Записан
chicagoogle
Захожу иногда
**

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

Сообщений: 16


« Ответ #14 : 06.10.2008, 16:18:52 »

Я вообще по-другому решил этот вопрос. Посмотрел, какие данные отправляются в запросе post в самой админке, когда создаешь какую-нибудь новость. Написал бота, только на перле, который проходит авторизацию на сайте и добавляет в нужные категории новости. Единственно, что приходится подправлять, это один параметр, который все время меняется, но это не проблема…
Записан
profiX0808
Завсегдатай
*****

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

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



« Ответ #15 : 14.10.2008, 19:06:16 »

в новой версии masscontent есть возможность добавлять по 10 новостей зараз, а также массовое удаление новостей
Записан
NitroProton
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #16 : 10.08.2011, 01:20:45 »

Скажите, а есть ли точно такое же, только что бы массовое редактирование материалов? Например, нужно вставить на 100 страницах одинаковый код. Что бы не по одной статьи открывать, а так сразу все открыл и по очереди вставил, не перегружая каждый раз страничку.
Записан
profiX0808
Завсегдатай
*****

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

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



« Ответ #17 : 10.08.2011, 10:09:35 »

NitroProton, не встречал готового решения, хотя оно может и быть. Если Вам нужно на все страницы вставить одинаковый код, тогда лучше его вставить в "индекс.пхп" Вашего шаблона. Если же в определенные статьи, то второй пост в данной теме тоже походу сгодится.
Записан
NitroProton
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #18 : 10.08.2011, 11:58:24 »

нужно не вставить, а заменить несколько строк, в шаблон не получится.
Про БД - скрипт сам не напишу (даже не знаю с чего начать), а готового решения где взять не знаю. Без скрипта редактирование в БД почти ничем не отличается от Joomla, или есть разница?
Спасибо
« Последнее редактирование: 10.08.2011, 12:06:20 от NitroProton » Записан
profiX0808
Завсегдатай
*****

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

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



« Ответ #19 : 10.08.2011, 13:13:20 »

Без скрипта и навыков лучше в админке редактируйте материалы.
У вас в некоторых материалах есть одинаковые строки (не проще их было сделать плагином или модулем "произвольного хтмл-кода" и затем менять эти строки не составило бы проблем), которые нужно заменить на одинаковые? (Просто интересно).
Записан
NitroProton
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #20 : 10.08.2011, 13:55:40 »

ключевое слово "сделать" в прошедшем времени. Сейчас уже так и с этим нужно что-то делать.
А вообще приведенные случаи, это как пример, что бы правильно поставить вопрос и желаемую цель, которую необходимо достичь.
И в принципе ответ я получил. Спасибо
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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