Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите переделать скрипт! dle, доп.поля, парсер Помогите переделат 
:(
    Опции темы
arashvg
Дата 26.11.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 19.6.2009

Репутация: нет
Всего: нет



Собственно есть скрипт (модуль для дле) каторый парсит с сервиса обновлений одной пп новости и добавляет их в БД

Код

<?php
/* table prefix */
$table_prefix = USERPREFIX."_";

/* no time limit */
set_time_limit(0);

/* getting all the categories */
$categories = array();
$result = $db->query("SELECT * FROM ".$table_prefix."category");
while($category = $result->fetch_array()) {
    $categories[] = $category['alt_name'];
    $categories[$category['alt_name']] = $category['parentid'];
}

$genre_cats = array();
/* categories for genres */
foreach ($movieshop_data_genres as $key => $gnr) {    
    if ((!in_array(strtolower($gnr[0]), $categories)) && (in_array($key, explode(",", MOVIESHOP_DATA_GENRES)))) {
        $db->query("INSERT INTO ".$table_prefix."category (`name`, `parentid`, `alt_name`, `keywords`) VALUES ('".$gnr[1]."', ".MOVIESHOP_PARENT_ID.", '".strtolower($gnr[0])."', '')");
    }
    $result = $db->query("SELECT `id` FROM ".$table_prefix."category WHERE `alt_name` = '".strtolower($gnr[0])."'");
    $row = $result->fetch_array();
    $genre_cats[$key] = $row['id'];
}

/* author */
$author = $member_id['name'];

/* updating posts */
movieshop_log();
movieshop_log("Скачиваю новости..");
$counter=0;
$ucounter=0;

$steps = 0;
$from = 0;
$how_much = 200;
$posts_count = $how_much;

while($posts_count == $how_much) {
    $data = movieshop_get_data("dle_posts", $from, $how_much);
    
    $steps += 1;
    $from += $how_much;
    $posts_count = count($data);
    
    movieshop_log("Получаю данные с сервера..");
    movieshop_log("Шаг ".$steps.". Получено ".$posts_count." свежих новостей с сервера обновлений");
    movieshop_log("Обновляю базу..");
    
    if ($data) {
        foreach($data as $post) {
            $post_date = date("Y-m-d H:i:s", $post['date']);
            $post_date_gmt = date("Y-m-d H:i:s", $post['date']);
            $post_url = $post['url'];
        
            
            
            
            
            $post_title = $post['title']." (".$post['year'].")";
            $post_cover = $post['cover'];
            
            if (MOVIESHOP_LOCAL_COVERS == 'yes') {
                $post_cover = "/covers/".base64_encode($post['cover']).".jpg";
            }
            
            /* generating post */
            $post_text = "";
            if ($post_cover != "") {
                    $cover=$post_cover;
            }

            /* actors */
            $actors = explode("|", $post['actors']);
            $actors_str = array();
            $actors_cnt = 0;
            foreach($actors as $actor) {
                $actors_cnt ++;
                if ($actors_cnt <= 10) {
                    $tmp = explode(":", $actor);
                    $actors_str[] = $tmp[1];   //Актеры    
                }
            }
            
            /* directors */
            $directors = explode("|", $post['directors']);
            $directors_str = array();
            foreach($directors as $director) {
                $tmp = explode(":", $director);
                $directors_str[] = $tmp[1];        // Режиссер
            }
            
            $post_text .= $post['text'];
            
        
            $post_short_text = "";
            $post_short_text .= $post['text'];
        
            $post_text = $db->db_id->escape_string($post_text);
            $post_short_text = $db->db_id->escape_string($post_short_text);
            $post_title = $db->db_id->escape_string($post_title);
            $post_terms = explode("|", $post['terms']);
            $post_keywords = implode(", ", $post_terms);
        
            $post_categories = array();
            $post_genres = explode("|", $post['genres']);
            foreach($post_genres as $post_genre) {
                foreach ($movieshop_data_genres as $key => $gnr) {    
                    if (($post_genre == $gnr[0]) || ($post_genre == $gnr[1])) {
                        $post_categories[] = $genre_cats[$key];
                    }
                }
            }
            $category_ids = implode(",", $post_categories);
            
            /*
            // deleting all the posts with the same alt_name and categories
            if (trim($post_url) != "") {
                $query = "DELETE FROM ".$table_prefix."post WHERE `autor` = '".$author."' AND `category` = '".$category_ids."' AND `alt_name` = '".$post_url."';";
                $db->query($query);
            }
            */
            
            // updating the post if it already exists
            $just_updated_flag = 0;
            if (trim($post_url) != "") {
                $query = "SELECT * FROM ".$table_prefix."post WHERE `autor` = '".$author."' AND `category` = '".$category_ids."' AND `alt_name` = '".$post_url."' LIMIT 1;";
                if ($db->query($query)->num_rows > 0) {
                    $query = "UPDATE ".$table_prefix."post SET `date` = '".$post_date."', `short_story` = '".$post_short_text."', `full_story` = '".$post_text."', `title` = '".$post_title."' WHERE `autor` = '".$author."' AND `category` = '".$category_ids."' AND `alt_name` = '".$post_url."' LIMIT 1;";
                    $db->query($query);
                
                    if ($db->db_id->errno == 0) {
                        $just_updated_flag = 1;            
                        if ($db->db_id->affected_rows) {
                            $ucounter++;
                        }
                    } else {
                        print $db->db_id->error;
                        print "<br />".$query;
                        exit();
                    }
                }                
            }
            
            // else just inserting the new post
            $read=rand(10, 20);
            $year=$post['year'];        //Год
            if (($post['film_trailers'] != "") && ($post['film_trailers'] != null)) {
                $trailer= stripslashes($post['film_trailers']);       //Трейлер
                $xfilds="trailer|".$trailer."||cover|".$cover."||year|".$year."||director|".implode(", ", $directors_str)."||actors|".implode(", ", $actors_str);
            }
            else $xfilds="cover|".$cover."||year|".$year."||director|".implode(", ", $directors_str)."||actors|".implode(", ", $actors_str);
            $xfilds=$db->db_id->escape_string($xfilds);
            if (!$just_updated_flag) {
                $query = "INSERT INTO ".$table_prefix."post (`autor`, `date`, `short_story`, `full_story`, `descr`, `xfields`, `title`, `keywords`, `category`, `alt_name`, `tags`, `allow_comm`, `allow_main`, `allow_rate`, `approve`, `allow_br`, `flag`, `rating`, `vote_num`, `news_read`) VALUES ('".$author."', '".$post_date."', '".$post_short_text."', '".$post_text."', '', '".$xfilds."', '".$post_title."', '".$post_keywords."', '".$category_ids."', '".$post_url."', '".$post_keywords."', 1, 1, 1, 1, 1, 1, 10, 2, ".$read.");";
                $db->query($query);
                
                if ($db->db_id->errno == 0) {
                    $post_id = $db->db_id->insert_id;
                    if ($post_id > 0) {
                        /* updating tags for that post */
                        foreach($post_terms as $term) {
                            $db->query("INSERT INTO ".$table_prefix."tags (`news_id`, `tag`) VALUES (".$post_id.", '".$term."');");
                        }
                        $counter++;
                    }
                } else {
                    print $db->db_id->error;
                    print "<br />".$query;
                    exit();
                }
            }
        }
    }
}
movieshop_log("Готово");
movieshop_log("");
movieshop_log("Новостей добавлено: ".$counter);
movieshop_log("Новостей обновлено: ".$ucounter);

/* updating last_update time in MovieShop config */
if (($counter > 0) || ($ucounter > 0)) {
    movieshop_update_config(MOVIESHOP_PARENT_SHOP_URL, MOVIESHOP_DISTRIBUTOR_ID, MOVIESHOP_LANGUAGE, MOVIESHOP_UPDATE_SERVER, MOVIESHOP_COVERS, MOVIESHOP_DATA_GENRES, MOVIESHOP_DATA_YEARS, MOVIESHOP_LOCAL_COVERS, MOVIESHOP_PARENT_ID, time());
}

movieshop_log();
movieshop_log("База DLE успешно обновлена");


/* clearing DLE cache */
@unlink( ENGINE_DIR . '/cache/system/usergroup.php' );
@unlink( ENGINE_DIR . '/cache/system/vote.php' );
@unlink( ENGINE_DIR . '/cache/system/banners.php' );
@unlink( ENGINE_DIR . '/cache/system/category.php' );
@unlink( ENGINE_DIR . '/cache/system/banned.php' );
@unlink( ENGINE_DIR . '/cache/system/cron.php' );
@unlink( ENGINE_DIR . '/cache/system/informers.php' );
clear_cache();
?> 


Этот скрипт работает с доп полями

1. year
2. director
3. actors
4. cover
5. trailer 

помогите переделать чтоб он работал с моими доп полями

title|Название||text||1
original|Оригинал||text||1
poster|Постер||text||1
year|год||text||1
director|Режиссер||text||1
casting|В ролях||text||1
quality|Качество||text||1
translate|Перевод||text||1
size|Размер||text||1
format|Формат||text||1
formatp|Разшерение||text||1
audio|Аудио кодек||text||1
sub|Субтитры||text||1
trailer|Трейлер||textarea||1
screen|Скришоты||textarea||1
reviews|Рецензии||textarea||1
links|Ссылки||textarea||1

вот ссылка на полный модуль (с остальными файлами)
http://new-kino.pp.ua/dleplugin.rar

PM MAIL WWW   Вверх
gta4kv
Дата 26.11.2010, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



За вас никто, ничего делать не будет... Берите SQL запросы, и правьте под свои поля..
PM MAIL   Вверх
arashvg
Дата 26.11.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 19.6.2009

Репутация: нет
Всего: нет



Цитата(gta4kv @ 26.11.2010,  11:58)
За вас никто, ничего делать не будет... Берите SQL запросы, и правьте под свои поля..

если бы я знал как это сделать :(
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.