Биография актеров 1.6 mod

Все блоги / DLE движок для сайтов 13 февраля 2014 495   
подскажите кто нибудь как поставить на addnews.tpl этот вещь, никак не получается?


Биография актеров 1.6 mod


Бография Актеров v 1.6 dle 10.1
Автор: rashpil
Модернизировал zorg346


Выполнить следующие SQL запросы:

CREATE TABLE IF NOT EXISTS `dle_actors` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `fullname` varchar(255) NOT NULL,
  `alt_name` varchar(255) NOT NULL,
  `birthday` datetime NOT NULL,
  `foto` varchar(255) NOT NULL,
  `biography` text NOT NULL,
  `birthplace` varchar(255) NOT NULL,
  `genres` varchar(500) NOT NULL,
  `height` varchar(255) NOT NULL,
  `zodiak` varchar(255) NOT NULL,
  `karer` varchar(500) NOT NULL,
  `love` varchar(500) NOT NULL,
  `birthdayded` varchar(100) NOT NULL,
  `mestoumer` varchar(100) NOT NULL,
  `suprug` varchar(100) NOT NULL,
  `supruga` varchar(100) NOT NULL,
  `id_kp` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2;

ALTER TABLE  `dle_post` ADD  `actors` TEXT NOT NULL;

заходим engine/inc/options.php
После
$options['config'] = array (

добавляем
array (
'name' => 'Биография Актеров 1.6',
'url' => "$PHP_SELF?mod=actors",
'descr' => 'Модуль биографии актеров',
'image' => "uset.png",
'access' => $user_group[$member_id['user_group']]['admin_categories']
),


Если ваш префикс отличен от dle, то следует в запросах указывать имена таблиц с вашим префиксом!

Открыть файл engine/classes/js/dle_js.js

ВНИМАНИЕ! Обычно в дистрибутивах DLE этот файл закодирован. Если у вас на сервере лежит именно такой, то следует заменить его файлом из архива.

После чего найи в нём:

if (allow_dle_delete_news) {
    menu[2]='<a onclick="sendNotice (\'' + m_id + '\'); return false;" href="#">' + dle_notice + '</a>';
    menu[3]='<a onclick="dle_news_delete (\'' + m_id + '\'); return false;" href="#">' + dle_del_news + '</a>';
}
return menu;
};

Ниже вставить:

function ActorsMenu( link1, link2, menu_biogr, menu_link ){
var menu=new Array();
menu[0]='<a href="' + link1 + '">' + menu_biogr + '</a>';
menu[1]='<a href="' + link2 + '">' + menu_link + '</a>';
return menu;
};

Открыть файл engine/engine.php

Найти:

$allow_userinfo = FALSE;
$active = FALSE;
$newsmodule = FALSE;

Ниже вставить:

$stop_news = FALSE;
include_once ENGINE_DIR . '/data/actors_config.php';


Найти:

        // ################ Вывод отдельной категории #################
        if ($do == "cat" and $category != '' and $subaction == '') {

Заменить на:

        // ################ Вывод отдельной категории #################
        if ($do == "actors") {
            include_once ENGINE_DIR . '/modules/actors.php';
        } elseif ($do == "cat" and $category != '' and $subaction == '') {

Найти:
            } elseif ($do == 'xfsearch') {
                $cache_prefix = "_xfsearch_". $xf;

Ниже вставить:

            } elseif ($a_name != '') {
                $cache_prefix = "_actorfilms_". $a_name;    


Найти:

            if (isset($view_template) AND $view_template == "rss") {
                if ($catalog) $active = dle_cache ( "rss", $catalog, false );                
                else $active = dle_cache ( "rss", $category_id, false );            
            } else {                
                if ($is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit'])) $config['allow_cache'] = false;
                if (isset($_SESSION['dle_no_cache']) AND $_SESSION['dle_no_cache']) $config['allow_cache'] = false;
                if ($cstart) $cache_id = ($cstart / $config['news_number']) + 1;
                else $cache_id = "1";                
                if ($cache_id < 6 and !isset ( $_POST['login'] )) $active = dle_cache ( "news", $cache_id . $cache_prefix, true );
                else $active = false;            
            }

Заменить на:

            if (isset($view_template) AND $view_template == "rss") {
                if ($catalog) $active = dle_cache ( "rss", $catalog, false );                
                else $active = dle_cache ( "rss", $category_id, false );            
            } elseif ($stop_news === FALSE) {                
                if ($is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit'])) $config['allow_cache'] = false;
                if (isset($_SESSION['dle_no_cache']) AND $_SESSION['dle_no_cache']) $config['allow_cache'] = false;
                if ($cstart) $cache_id = ($cstart / $config['news_number']) + 1;
                else $cache_id = "1";                
                if ($cache_id < 6 and !isset ( $_POST['login'] )) $active = dle_cache ( "news", $cache_id . $cache_prefix, true );
                elseif ($actors_config['f_cache'] == "no" AND $a_name != '' AND $do == "actors" ) $active = false;
                else $active = false;            
            }


Найти:

                if ($config['allow_quick_wysiwyg'] and ($user_group[$member_id['user_group']]['allow_edit'] or $user_group[$member_id['user_group']]['allow_all_edit'])) $allow_comments_ajax = true;
                else $allow_comments_ajax = false;            
            } else {                
                include_once (ENGINE_DIR . '/modules/show.short.php');                
                if (! $config['allow_quick_wysiwyg']) $allow_comments_ajax = false;                
                if ($config['files_allow'] == "yes") if (strpos ( $tpl->result['content'], "[attachment=" ) !== false) {
                    $tpl->result['content'] = show_attach ( $tpl->result['content'], $attachments );
                }                
                if (isset($view_template) AND $view_template == "rss" AND $news_found) {                    
                    if ($catalog) create_cache ( "rss", $tpl->result['content'], $catalog, false );
                    else create_cache ( "rss", $tpl->result['content'], $category_id, false );                
                } elseif ($news_found and $cache_id < 6) create_cache ( "news", $tpl->result['content'], $cache_id . $cache_prefix, true );            
            }

Заменить на:

                if ($config['allow_quick_wysiwyg'] and ($user_group[$member_id['user_group']]['allow_edit'] or $user_group[$member_id['user_group']]['allow_all_edit'])) $allow_comments_ajax = true;
                else $allow_comments_ajax = false;            
            } else {            
                if ($stop_news === FALSE) {                
                    include_once (ENGINE_DIR . '/modules/show.short.php');                    
                    if (! $config['allow_quick_wysiwyg']) $allow_comments_ajax = false;                    
                    if ($config['files_allow'] == "yes") if (strpos ( $tpl->result['content'], "[attachment=" ) !== false) {
                        $tpl->result['content'] = show_attach ( $tpl->result['content'], $attachments );
                    }                    
                    if (isset($view_template) AND $view_template == "rss" AND $news_found) {                        
                        if ($catalog) create_cache ( "rss", $tpl->result['content'], $catalog, false );
                        else create_cache ( "rss", $tpl->result['content'], $category_id, false );                    
                    } elseif ($news_found and $cache_id < 6) create_cache ( "news", $tpl->result['content'], $cache_id . $cache_prefix, true );
                }
            }


Найти ВСЕ:

full_story, xfields, title,

Заменить на:

full_story, xfields, title, actors,

Найти ВСЕ:

p.tags,

Заменить на:

p.tags, p.actors,

Найти:

elseif ($do == 'tags') $nam_e = stripslashes($tag);

Ниже вставить:

elseif ($do == 'actors') $nam_e = $a_title;

Открыть файл .htaccess

Найти:

RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1&seourl=$2 [L]

Ниже вставить:

#Актёры
RewriteRule ^films/([^/]*)(/?)+$ index.php?do=actors&action=select&a_name=$1 [L]
RewriteRule ^films/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=actors&action=select&a_name=$1&cstart=$2 [L]
RewriteRule ^biography/([^/]*)(/?)+$ index.php?do=actors&action=biography&a_name=$1 [L]

Открыть файл engine/modules/show.full.php

Найти:

        $comments_num = $row['comm_num'];

Ниже вставить:
        
        if ($actors_config['n_links'] == "yes")
        foreach ($actors as $alt_name => $name) {    
            if (strpos($row['full_story'], $name) != FALSE){
                if( $config['allow_alt_url'] == "yes" ) {
                    $link_b = $config['http_home_url'] . "biography/" . $alt_name . "/";
                    $link_a = $config['http_home_url'] . "films/" . $alt_name . "/";
                } else {
                    $link_b = $config['http_home_url'] . "index.php?do=actors&action=biography&a_name=". $alt_name;
                    $link_a = $config['http_home_url'] . "index.php?do=actors&action=select&a_name=". $alt_name;
                }
                $row['full_story'] = str_replace($name, "<a onclick=\"return dropdownmenu(this, event, ActorsMenu('" . $link_b . "', '" . $link_a . "', 'Биография', 'Все фильмы'), '170px')\" href=\"#\">{$name}</a>", $row['full_story']);
            }    
        }
        
        if ($row['actors']) {
            foreach (unserialize($row['actors']) as $alt_name => $name){                
                if( $name ) {
                    if( $config['allow_alt_url'] == "yes" ) {
                        $link_b = $config['http_home_url'] . "biography/" . $alt_name . "/";
                        $link_a = $config['http_home_url'] . "films/" . $alt_name . "/";
                    } else {
                        $link_b = $config['http_home_url'] . "index.php?do=actors&action=biography&a_name=". $actors[$element]['alt_name'];
                        $link_a = $config['http_home_url'] . "index.php?do=actors&action=select&a_name=". $actors[$element]['alt_name'];
                    }                    
                    if ($actors[$alt_name] != '')
                        $actors_link[] = "<a onclick=\"return dropdownmenu(this, event, ActorsMenu('" . $link_b . "', '" . $link_a . "', 'Биография', 'Все фильмы'), '170px')\" href=\"#\">{$name}</a>";
                    else
                        $actors_link[] = "<a href=\"{$link_a}\">{$name}</a>";                    
                }
            }                
            $actors_link = implode( ', ', $actors_link );    
        }        
        $tpl->set('{actors}', $actors_link);

Открыть файл engine/modules/show.short.php

Найти:

    else $tpl->load_template( 'shortstory.tpl' );

Заменить на:

    elseif ($a_name != '' AND $actors_config['f_tpl'] != '')  $tpl->load_template( $actors_config['f_tpl'] . '.tpl' );
    else $tpl->load_template( 'shortstory.tpl' );

Если нужно выводить список актёров в кратких новостях, то нужно выполнить следующий пункт, ежели не нужно, то пункт исполнять не следует

Найти:

        } else {            
            $go_page = "$PHP_SELF?subaction=userinfo&amp;user=" . urlencode( $row['autor'] );
            $tpl->set( '[day-news]', "<a href=\"$PHP_SELF?year=".date( 'Y', $row['date'])."&amp;month=".date( 'm', $row['date'])."&amp;day=".date( 'd', $row['date'])."\" >" );    
        }

Ниже вставить:
        
        if ($row['actors']) {
            $actors_link = array();
            foreach (unserialize($row['actors']) as $alt_name => $name){                
                if( $name ) {
                    if( $config['allow_alt_url'] == "yes" ) {
                        $link_b = $config['http_home_url'] . "biography/" . $alt_name . "/";
                        $link_a = $config['http_home_url'] . "films/" . $alt_name . "/";
                    } else {
                        $link_b = $config['http_home_url'] . "index.php?do=actors&action=biography&a_name=". $actors[$element]['alt_name'];
                        $link_a = $config['http_home_url'] . "index.php?do=actors&action=select&a_name=". $actors[$element]['alt_name'];
                    }
                    if ($alt_name == $a_name) $name = "<b>{$name}</b>"; else $name = $name;
                    
                    if ($actors[$alt_name] != '')
                        $actors_link[] = "<a onclick=\"return dropdownmenu(this, event, ActorsMenu('" . $link_b . "', '" . $link_a . "', 'Биография', 'Все фильмы'), '170px')\" href=\"#\">{$name}</a>";
                    else
                        $actors_link[] = "<a href=\"{$link_a}\">{$name}</a>";    
                }
            }                
            $actors_link = implode( ', ', $actors_link );    
        }
        $tpl->set('{actors}', $actors_link);    


Открыть файл engine/init.php

Найти:

$metatags = array (
                'title' => $config['home_title'],
                'description' => $config['description'],
                'keywords' => $config['keywords'],
                'header_title' => "" );

Ниже вставить:

//# Создаём массив с актёрами
$actors = get_vars ( "actors" );
if (! $actors) {
    $actors = array ();
    $db->query ( "SELECT id, name, alt_name FROM " . USERPREFIX . "_actors ORDER BY id ASC" );
    while ( $row = $db->get_row () )
        $actors[$row['alt_name']] = $row['name'];    
    set_vars ( "actors", $actors );
    $db->free ();
}

Открыть файл admin.php и engine/inc/options.php и engine/inc/categories.php и engine/inc/banners.php

Найти и удалить:

     function makeDropDown($options, $name, $selected) {
          $output = "<select name=\"$name\">\r\n";
          foreach ( $options as $value => $description ) {
               $output .= "<option value=\"$value\"";
               if( $selected == $value ) {
                    $output .= " selected ";
               }
               $output .= ">$description</option>\n";
          }
          $output .= "</select>";
          return $output;
     }

Открыть файл engine/inc/include/functions.inc.php

Найти:

if( ! defined( 'DATALIFEENGINE' ) ) {
     die( "Hacking attempt!" );
}

Ниже вставить:

function makeDropDown($options, $name, $selected) {
     $output = "<select size=1 name=\"$name\">\r\n";
     foreach ( $options as $value => $description ) {
          $output .= "<option value=\"$value\"";
          if( $selected == $value ) {
               $output .= " selected ";
          }
          $output .= ">$description</option>\n";
     }
     $output .= "</select>";
     return $output;
}


Открыть файл engine/inc/addnews.php

Найти:

    if( $user_group[$member_id['user_group']]['allow_fixed'] and $config['allow_fixed'] ) $fix_input = "<input type=\"checkbox\" name=\"news_fixed\" value=\"1\"> $lang[addnews_fix]";
    if( $user_group[$member_id['user_group']]['allow_main'] ) $main_input = "<input type=\"checkbox\" name=\"allow_main\" value=\"1\" checked> {$lang['addnews_main']}";
    
    if( $config['allow_admin_wysiwyg'] != "yes" ) $fix_br = "<input type=\"checkbox\" name=\"allow_br\" value=\"1\" checked> {$lang['allow_br']}";
    else $fix_br = "";
    
    echo <<<HTML

Ниже вставить:

    <tr>
            <td colspan="2"><div class="hr_line"></div></td>
    </tr>
    <tr>
        <td height="29" style="padding-left:5px;">Актёры</td>
        <td><textarea rows="7" name="actors" style="width:98%;" class="bk"></textarea></td>
    </tr>    

Найти:

    foreach ( $category as $value ) {
        $category_list[] = intval($value);
    }

    $category_list = $db->safesql( implode( ',', $category_list ) );
    
Ниже вставить:

    //Актёры
    foreach (explode(", ", $_POST['actors']) as $key => $name) $actors_list[totranslit($name)] = $name;
    $actors_list = serialize($actors_list);
    //Актёры

Найти:

symbol, tags, metatitle

Заменить на:

symbol, tags, metatitle, actors

Найти:

'$catalog_url', '{$_POST['tags']}', '{$metatags['title']}'

Заменить на:

'$catalog_url','{$_POST['tags']}', '{$metatags['title']}', '{$actors_list}'

Открыть файл engine/inc/editnews.php

Найти:    

    $exp_action = array();
    $exp_action[$expires['action']] = "selected=\"selected\"";    
    echo <<<HTML

Заменить на:

    $exp_action = array();
    $exp_action[$expires['action']] = "selected=\"selected\"";    
    foreach ( unserialize($row['actors']) as $alt_name => $name ) $actors_array[] = $name;
    $actors = implode(", ", $actors_array);

    echo <<<HTML
    <tr>
        <td colspan="2"><div class="hr_line"></div></td>
    </tr>
    <tr>
        <td height="29" style="padding-left:5px;">Актёры</td>
        <td><textarea rows="7" name="actors" style="width:98%;" class="bk">{$actors}</textarea></td>
    </tr>

Найти:

    $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_add'] );    
    foreach ( $category as $selected ) {
        if( $allow_list[0] != "all" and ! in_array( $selected, $allow_list ) and $member_id['user_group'] != 1 ) $approve = 0;
    }
    

Ниже вставить:

    //Актёры
    foreach (explode(", ", $_POST['actors']) as $key => $name) $actors_array[totranslit($name)] = $name;
    $actors_list = serialize($actors_array);
    //Актёры

Найти (2 раза):

"UPDATE " . PREFIX . "_post set title='$title',

Заменить на:

"UPDATE " . PREFIX . "_post set title='$title', actors='$actors_list',    


В файле шаблона templates/Ваш_Шаблон/fullstory.tpl

в нужное место вставить тег {actors}

Если нужно отобразить список актёров и в кратком виде новостей, то тег следует прописать и в templates/Ваш_Шаблон/shortstory.tpl

Напомню, что на папки uploads/actors/posters/ и uploads/actors/posters/mini/ следует выставить права 777, для того чтобы скрипт мог самостоятельно загружать картинки и не напрягать владельца сайта по мелочам :)

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

Вроди и всё. Не забываем о правах на конфигурационные файлы (666) и на права папок с кешами (777). Если что, вы знаете где меня найти :)



 Источник:dle-faq.pro, DLE
  • Оцените публикацию
  • 0

Похожие публикации

@
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Архив публикаций