دیتالایف انجین فارسی

انتخاب shortstoey.tpl و fullstory.tpl جدا برای هر مطلب

تاریخ انتشار: 1 شهریور 1390
ارسال کننده: numen
با استفاده از این هک، میتوانید موقع ارسال و یا ویرایش هر مطلب یک shortstoey.tpl و fullstory.tpl جدا ( به دلخواه خود ) انتخاب کنید.
  • آموزش نصب
1. کد زیر را در تب Sql درون phpMyAdmin اجرا کنید:

ALTER TABLE `dle_post` ADD `short_tpl` VARCHAR( 40 ) NOT NULL DEFAULT '';
ALTER TABLE `dle_post` ADD `full_tpl` VARCHAR( 40 ) NOT NULL DEFAULT '';

2. داخل فولدر قالب سایت خودتان، فولدری بنام Show ایجاد کنید و داخل آن shorttory.tpl و fullstory.tpl های دلخواه خود را قرار دهید.
3. فایل engine/inc/addnews.php را بازکنید،
- کد زیر را پیدا کنید:

if( ! $user_group[$member_id['user_group']]['admin_addnews'] ) {
    msg( "error", $lang['index_denied'], $lang['index_denied'] );
}
- بعدار آن کد زیر را قرار دهید :

if( $handle = opendir( ROOT_DIR . '/templates/' . $config['skin'] . '/show' ) )
{
    while( false !== ( $file = readdir( $handle ) ) )
    {
        $file = substr( $file, 0, -4 );
        
        if ( file_exists( ROOT_DIR . '/templates/' . $config['skin'] . '/show/' . $file . '.tpl' ) )
            $template[] = $file;
    }

    closedir( $handle );
    
    sort( $template );
}

- کد زیر را پیدا کنید :

else $fix_br = "";
- بعد از آن کد زیر را قرار دهید :

    $templ = '<option value="">---</option>';
        
    foreach ( $template as $value ) $templ .= '<option value="' . $value . '">' . $value . '.tpl</option>';

- کد زیر را پیدا کنید :

        <tr>
            <td>&nbsp;</td>
            <td>{$lang['add_metatags']}</td>
        </tr>
- قبل از آن کد زیر را قرار دهید :
  
        <tr>
            <td height="29" style="padding-right:5px;">{$lang['cat_s_tpl']}</td>
            <td><select name="short_tpl" id="short_tpl" class="edit bk">$templ</select></td>
        </tr>
        <tr>
            <td height="29" style="padding-right:5px;">{$lang['cat_f_tpl']}</td>
            <td><select name="full_tpl" id="full_tpl" class="edit bk">$templ</select></td>
        </tr>
    
    <tr>
        <td colspan="2"><div class="hr_line"></div></td>
    </tr>
    
- کد زیر را پیداکنید :

$title = $db->safesql( $title );
- بعد ازآن کد زیر را قرار دهید :

    $short_tpl = $db->safesql( trim( totranslit( $_POST['short_tpl'] ) ) );
    $full_tpl = $db->safesql( trim( totranslit( $_POST['full_tpl'] ) ) );
        
    if ( $short_tpl != '' AND ! in_array( $short_tpl, $template ) ) $stop .= '<li>قالب انتخاب شده برای خبر کوتاه درست نیست !</li>';
    if ( $full_tpl != '' AND ! in_array( $full_tpl, $template ) ) $stop .= '<li>قالب انتخاب شده برای خبر کامل درست نیست !</li>';
 
 
- کد زیر را پیداکنید :

    $db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, symbol, flag, tags, metatitle) values ('$thistime', '{$member_id['name']}', '$short_story', '$full_story', '$filecontents', '$title', '{$metatags['description']}', '{$metatags['keywords']}', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '$add_vote', '$group_regel', '$catalog_url', '1', '{$_POST['tags']}', '{$metatags['title']}')" );
- با کدزیر جایگزینش کنید :


$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, symbol, flag, tags, metatitle, short_tpl, full_tpl) values ('$thistime', '{$member_id['name']}', '$short_story', '$full_story', '$filecontents', '$title', '{$metatags['description']}', '{$metatags['keywords']}', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '$add_vote', '$group_regel', '$catalog_url', '1', '{$_POST['tags']}', '{$metatags['title']}', '$short_tpl', '$full_tpl')" );

4. فایل engine/inc/editnews.php را باز کنید،
- کد زیر را پیدا کنید:

if ( ! $user_group[$member_id['user_group']]['admin_editnews'] ) {
    msg( "error", $lang['addnews_denied'], $lang['edit_denied'] );
}
- بعد از آن کد زیر را قرار دهید :


if( $handle = opendir( ROOT_DIR . '/templates/' . $config['skin'] . '/show' ) )
{
    while( false !== ( $file = readdir( $handle ) ) )
    {
        $file = substr( $file, 0, -4 );
        
        if ( file_exists( ROOT_DIR . '/templates/' . $config['skin'] . '/show/' . $file . '.tpl' ) )
            $template[] = $file;
    }

    closedir( $handle );
    
    sort( $template );
}

- کد زیر را پیدا کنید :

else $fix_br = "";
- بعد از آن کد زیر را قرار دهید :

    $short_tpl = '<option value="">---</option>';
        
    foreach ( $template as $value )
    {
        $short_tpl .= '<option value="' . $value . '"';
        
        if ( $value == $row['short_tpl'] ) $short_tpl .= 'selected="selected"';
        
        $short_tpl .= '>' . $value . '.tpl</option>';
    }
    
    $full_tpl = '<option value="">---</option>';
        
    foreach ( $template as $value )
    {
        $full_tpl .= '<option value="' . $value . '"';
        
        if ( $value == $row['full_tpl'] ) $full_tpl .= 'selected="selected"';
        
        $full_tpl .= '>' . $value . '.tpl</option>';
    }

 
   
- کد زیر را پیدا کنید :

        <tr>
            <td>&nbsp;</td>
            <td>{$lang['add_metatags']}</td>
        </tr>
- قبل از آن کد زیر را قرار دهید :
  
        <tr>
            <td height="29" style="padding-right:5px;">{$lang['cat_s_tpl']}</td>
            <td><select name="short_tpl" id="short_tpl" class="edit bk">$short_tpl</select></td>
        </tr>
        <tr>
            <td height="29" style="padding-right:5px;">{$lang['cat_f_tpl']}</td>
            <td><select name="full_tpl" id="full_tpl" class="edit bk">$full_tpl</select></td>
        </tr>
    
    <tr>
        <td colspan="2"><div class="hr_line"></div></td>
    </tr>
    
- کد زیر را پیدا کنید :

$title = $db->safesql( $title );
- بعد از آن کد زیر را قرار دهید :

    $short_tpl = $db->safesql( trim( totranslit( $_POST['short_tpl'] ) ) );
    $full_tpl = $db->safesql( trim( totranslit( $_POST['full_tpl'] ) ) );
        
    if ( $short_tpl != '' AND ! in_array( $short_tpl, $template ) ) $stop .= '<li>قالب انتخاب شده برای خبر کوتاه درست نیست !</li>';
    if ( $full_tpl != '' AND ! in_array( $full_tpl, $template ) ) $stop .= '<li>قالب انتخاب شده برای خبر کامل درست نیست !</li>';    

- کد زیر را پیدا کنید :

set title='$title',
- با کد زیر جایگزین کنید: (دو بار)

set title='$title', short_tpl='$short_tpl', full_tpl='$full_tpl',

5. فایل engine/engine.php را باز کنید :
- کد زیر را پیدا کنید :

SELECT id, autor,
- با کد زیر جایگزین کنید :

SELECT id, autor, short_tpl, full_tpl,

6. فایل engine/modules/show.short.php را بازکنید .
- کد زیر را پیدا کنید :

$sql_result = $db->query( $sql_select );
- قبل از آن کد زیر را قرار دهید :

$sql_select = str_replace( 'autor,', 'autor, short_tpl, full_tpl,', $sql_select );

- کد زیر را پیدا کنید :

    if( isset( $view_template ) and $view_template == "rss" ) {
    } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
    else $tpl->load_template( 'shortstory.tpl' );
- با کد زیر جایگزین کنید :


    if( isset( $view_template ) and $view_template == "rss" ) {}
    else
    {
        $template = get_vars( 'template' );

        if ( ! $template )
        {
            $template = array( );
            $template[0] = '';
            
            if( $handle = opendir( $tpl->dir . DIRECTORY_SEPARATOR . 'show' ) )
            {
                while( false !== ( $file = readdir( $handle ) ) )
                {
                    $file = substr( $file, 0, -4 );
                    
                    if ( file_exists( $tpl->dir . DIRECTORY_SEPARATOR . 'show' . DIRECTORY_SEPARATOR . $file . '.tpl' ) )
                        $template[$file] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . 'show' . DIRECTORY_SEPARATOR . $file . '.tpl' );
                }
            
                closedir( $handle );
            }

            set_vars( 'template', $template );
        }
        
        if ( $category_id AND $cat_info[$category_id]['short_tpl'] != '' AND file_exists( $tpl->dir . DIRECTORY_SEPARATOR . $cat_info[$category_id]['short_tpl'] . '.tpl' ) ) $template[0] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . $cat_info[$category_id]['short_tpl'] . '.tpl' );
        elseif ( file_exists( $tpl->dir . DIRECTORY_SEPARATOR . 'shortstory.tpl' ) ) $template[0] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . 'shortstory.tpl' );
        else die( 'Невозможно загрузить шаблон' );
    }
- کد زیر را پیدا کنید :

    while ( $row = $db->get_row( $sql_result ) ) {
- بعدار آن کد زیر را قرار دهید :

        if ( $row['short_tpl'] != '' AND $template[$row['short_tpl']] ) $tpl->copy_template = $template[$row['short_tpl']];
        else $tpl->copy_template = $template[0];

7.فایل engine/modules/show.full.php را بازکنید .
- کد زیر را پیدا کنید :

$sql_result = $db->query( $sql_news );
- قبل از آن کد زیر را قرار دهید :

$sql_news = str_replace( 'autor,', 'autor, short_tpl, full_tpl,', $sql_news );
- کد زیر را پیدا کنید :

        if( isset( $view_template ) and $view_template == "print" ) $tpl->load_template( 'print.tpl' );
        elseif( $category_id and $cat_info[$category_id]['full_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['full_tpl'] . '.tpl' );
        else $tpl->load_template( 'fullstory.tpl' );
- با کدزیر جایگزین کنید :

        if( isset( $view_template ) and $view_template == "print" ) $tpl->load_template( 'print.tpl' );
        elseif ( $row['full_tpl'] != '' ) $tpl->load_template( 'show/' . $row['full_tpl'] . '.tpl' );
        elseif( $category_id and $cat_info[$category_id]['full_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['full_tpl'] . '.tpl' );
        else $tpl->load_template( 'fullstory.tpl' );

8. فایل engine/modules/addnews.php را بازکنید .
- کد زیر را پیدا کنید :

$parse = new ParseFilter( Array (), Array (), 1, 1 );
- بعدار آن کد زیر را قرار دهید :

    if( $handle = opendir( ROOT_DIR . '/templates/' . $config['skin'] . '/show' ) )
    {
        while( false !== ( $file = readdir( $handle ) ) )
        {
            $file = substr( $file, 0, -4 );
        
            if ( file_exists( ROOT_DIR . '/templates/' . $config['skin'] . '/show/' . $file . '.tpl' ) )
                $template[] = $file;
        }

        closedir( $handle );
    
        sort( $template );
    }

- کد زیر را پیدا کنید :

        $alt_name = trim( $parse->process( stripslashes( $_POST['alt_name'] ) ) );
- بعدار آن کد زیر را قرار دهید :

    $short_tpl = $db->safesql( trim( totranslit( $_POST['short_tpl'] ) ) );
    $full_tpl = $db->safesql( trim( totranslit( $_POST['full_tpl'] ) ) );
        
    if ( $short_tpl != '' AND ! in_array( $short_tpl, $template ) ) $stop .= '<li>قالب انتخاب شده برای خبر کوتاه درست نیست !</li>';
    if ( $full_tpl != '' AND ! in_array( $full_tpl, $template ) ) $stop .= '<li>قالب انتخاب شده برای خبر کامل درست نیست !</li>';

- کد زیر را پیدا کنید :

set title='$title',
- با کدزیر جایگزینش کنید :

set title='$title', short_tpl='$short_tpl', full_tpl='$full_tpl',

- کد زیر را پیدا کنید :


$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, flag, tags) values ('$thistime', '$member_id[name]', '$short_story', '$full_story', '$filecontents', '$title', '', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '1', '" . $_POST['tags'] . "')" );


- با کدزیر جایگزینش کنید :


$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, flag, tags, short_tpl, full_tpl) values ('$thistime', '$member_id[name]', '$short_story', '$full_story', '$filecontents', '$title', '', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '1', '" . $_POST['tags'] . "', '$short_tpl', '$full_tpl')" );
- کد زیر را پیدا کنید :

$tpl->set( 'هک ها', $cats );

- بعدار آن کد زیر را قرار دهید :

        $templ = '<option value="">---</option>';
        
        foreach ( $template as $value ) $templ .= '<option value="' . $value . '">' . $value . '.tpl</option>';
        
        $tpl->set( '{short-tpl}', '<select name="short_tpl" id="short_tpl">' . $templ . '</select>' );
        $tpl->set( '{full-tpl}', '<select name="full_tpl" id="full_tpl">' . $templ . '</select>' );


حالا فایل addnews.tpl قالب پیشفرض سایت خود را باز کرده و دو کد زیر را در جای مناسبی قرار دهید .

انتخاب قالب برای متن کوتاه : {short-tpl}

انتخاب قالب برای متن کامل : {full-tpl}
14 نفر (14 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
تشکر
مدیر بازنشسته
01 شهریور 1390 - 15:11
ممنون love
عضو سایت
02 شهریور 1390 - 21:10
عالی
عضو سایت
06 شهریور 1390 - 15:55
جالب بود استفاده کردیمم
عضو سایت
11 شهریور 1390 - 17:05
ممنون winked

--------------------
عضو سایت
28 آبان 1390 - 23:30
flower
جهت ارسال نظر، فرم زیر را تکمیل نمائید:
نام:*
ایمیل:*
متن نظر:

 
پررنگکج خط دارخط دار در وسط|سمت چپوسط سمت راست|قرار دادن شکلکانتخاب رنگ|پنهان کردن متنقراردادن نقل قولتبدیل نوشته ها به زبان روسیقراردادن Spoiler
کد امنیتی: *