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

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

پشتیبان رسمی سیستم مدیریت محتوا

ارسال تصویر در مطلب

ارسال تصویر در مطلب

سیستم مدیریت دیتالایف انجین که به نظر بنده یکی از بهترین و بروزترین و قابل انعطاف ترین سیستم های حال حاضر میباشد همه امکانات را در خود جای داده...
امروز برای شما هکی را قرار داده ایم که میتوانید با استفاده از آن به راحتی و فقط با یک دکمه browse تصویر را از کاربر در هنگام ارسال مطلب دریافت نمایید.
خلاصه بگم ! خود سیستم همچین قابلیتی رو در ویرایشگر خودش داره که بشه فایل آپلود کرد اما چون ممکنه بعضی افراد بلد نباشن من به شما این هک ساده و کار آمد رو توصیه میکنم

در آخر هم از مدیر محترم علی رضا جان عزیز imp که منو راهنمایی کردن تا هک رو روی 9.8 اعمال کنم تشکر ویژه میکنم. flower

آموزش نصب
1- فایل engine/modules/addnews.php را باز کنید و کد زیر را پیدا کنید

$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'] . "')" );
                
                $row['id'] = $db->insert_id();


زیرش کد زیر رو اضاف کنید


   $imags_id=0;
        $idpost = $row['id'];
        while ($imags_id<=3) {
        $imags_id++;
        $allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
        if ((isset($_FILES['post_add_'.$imags_id.'']) && $_FILES['post_add_'.$imags_id.'']!='')) {
            
            $file_prefix = time() + rand( 1, 100 );
            $file_prefix .= "_";
            define( 'FOLDER_PREFIX', date( "Y-m" ) );
        if( ! is_dir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX ) ) {
            @mkdir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
            @chmod( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
            @mkdir( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/thumbs", 0777 );
            @chmod( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/thumbs", 0777 );
        }            
            $config_path_image_upload = ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/";
                    
            $current_image = 'post_add_'.$imags_id.'';
            $image = $_FILES[$current_image]['tmp_name'];
            $image_name = $_FILES[$current_image]['name'];
            $image_size = $_FILES[$current_image]['size'];
            $error_code = $_FILES[$current_image]['error'];
    
            $img_name_arr = explode( ".", $image_name );
            $type = totranslit( end( $img_name_arr ) );
            if( $image_name != "" ) {
                $curr_key = key( $img_name_arr );
                unset( $img_name_arr[$curr_key] );
                $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
            }
            
            if ( in_array( strtolower( $type ), $allowed_extensions) ) {
            
            @move_uploaded_file( $image, $config_path_image_upload . $file_prefix . $image_name );
            
            if( @file_exists( $config_path_image_upload . $file_prefix . $image_name ) ) {
                @chmod( $config_path_image_upload . $file_prefix . $image_name, 0666 );
                    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                    if( ! $row['count'] ) {
                        $added_time = time() + ($config['date_adjust'] * 60);
                        $inserts = FOLDER_PREFIX . "/" . $file_prefix . $image_name;
                        $db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '{$member_id[name]}', '$idpost', '$added_time')" );
                    } else {
                        $row = $db->super_query( "SELECT images  FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                        if( $row['images'] == "" ) $listimages = array ();
                        else $listimages = explode( "|||", $row['images'] );
                        foreach ( $listimages as $dataimages ) {
                            if( $dataimages == FOLDER_PREFIX . "/" . $file_prefix . $image_name ) $error_image = "stop";
                        }
                        if( $error_image != "stop" ) {
                            $listimages[] = FOLDER_PREFIX . "/" . $file_prefix . $image_name;
                            $row['images'] = implode( "|||", $listimages );
                            $db->query( "UPDATE " . PREFIX . "_images set images='{$row['images']}' where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                        }
                    }
if( @file_exists( ENGINE_DIR . '/classes/thumb.class.php' ) ) {
include_once ENGINE_DIR . '/classes/thumb.class.php';
} else (include_once ENGINE_DIR . '/inc/makethumb.php');
                $tumb_ok = false;
                $_POST['make_thumb'] = true;
                $_POST['make_watermark'] = $config['allow_watermark'];
                if( isset( $_POST['make_thumb'] ) ) {
                    $thumb = new thumbnail( $config_path_image_upload . $file_prefix . $image_name );
                    if( $thumb->size_auto( $config['max_image'], $_POST['t_seite'] ) ) {
                        $thumb->jpeg_quality( $config['jpeg_quality'] );
                        if( $config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes" ) $thumb->insert_watermark( $config['max_watermark'] );
                        $thumb->save( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name );
                    }
                    if( @file_exists( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name ) ) $tumb_ok = true;
                    @chmod( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name, 0666 );
                }
                $config['max_up_side'] = intval( $config['max_up_side'] );
                if( ($config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes") or $config['max_up_side'] ) {
                    $thumb = new thumbnail( $config_path_image_upload . $file_prefix . $image_name );
                    $thumb->jpeg_quality( $config['jpeg_quality'] );
                    if( $config['max_up_side'] ) $thumb->size_auto( $config['max_up_side'] );
                    if( $config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes" ) $thumb->insert_watermark( $config['max_watermark'] );
                    $thumb->save( $config_path_image_upload . $file_prefix . $image_name );
                }
              }
            }
            
        }
        }

2-در همین فایل دنبال کد زیر باشید

$script .= "<form

کد زیر رو بعد از این وارد نمایید

enctype=\"multipart/form-data\"


3-فایل addnews.tpl قالب خود را باز کنید و جایی که میخواهید دکمه های آپلود نمایش داده شود قرار دهید:
<input name="post_add_1" maxlength="250" class="f_input" type="file">
<input name="post_add_2" maxlength="250" class="f_input" type="file">
<input name="post_add_3" maxlength="250" class="f_input" type="file">


4- فایل engine/modules/show.full.php را باز کنید و دنبال کد زیر بگردید:

$tpl->set( '{l*ogin}', $row['autor'] );


پس از کد بالا قرار دهید:


$sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" );
$poster = $db->get_row($sql_result2);
if ($poster['images'] != "") {
$scrsList = explode('|||',$poster['images']);
        $scrs = '';
        $cntscrs = count($scrsList);
        $ai = 0;
    
        foreach ($scrsList as $scr)
        {
            $ai++;
            $scr = trim($scr);
            $poster_temp = explode("/",$scr);
            $poster_name = $poster_temp[1];
            $poster_data = substr($scr,0,8);
            $scrs = ''. $config ['http_home_url'] . 'uploads/posts/'.$poster_data.$poster_name.'';
$tpl->set ( '{poster'.$ai.'}', $scrs);
            if ($ai<$cntscrs) $scrs .= '';
            if ($ai=="3") break;
        }
        unset($scrsList);
}else {
$ai=0;
while ($ai<4){
$ai++;
$tpl->set ( '{poster'.$ai.'}', "");
}
}


5-در جایی که میخواهید در ادامه مطلب تصاویر نمایش داده شوند تگهای زیر را در فایل show.short.tpl قالب خود قرار دهید:
{poster1}{poster2}{poster3}


6- برای نمایش تصویر در متن کوتاه صفحه اصلی فایل show.short.php از پوشه ی modules را باز کنید ودنبال کد زیر بگردید:
$tpl->set( '{login}', $row['autor'] );

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

/*Poster_images @START" by toxx*/
$sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" );
$poster = $db->get_row($sql_result2);
if ($poster['images'] != "") {
$scrsList = explode('|||',$poster['images']);
        $scrs = '';
        $cntscrs = count($scrsList);
        $ai = 0;
    
        foreach ($scrsList as $scr)
        {
            $ai++;
            $scr = trim($scr);
            $poster_temp = explode("/",$scr);
            $poster_name = $poster_temp[1];
            $poster_data = substr($scr,0,8);

if( @file_exists( ROOT_DIR.'/uploads/posts/'.$poster_data.'thumbs/'.$poster_name ) ){
$_POST['poster_'.$ai] = <<<HTML
<a href="{$config ['http_home_url']}uploads/posts/{$poster_data}{$poster_name}" onclick="return hs.expand(this)"><img src="{$config ['http_home_url']}uploads/posts/{$poster_data}thumbs/{$poster_name}"></a>
HTML;
} else {$_POST['poster_'.$ai] = <<<HTML
<a href="{$config ['http_home_url']}uploads/posts/{$poster_data}{$poster_name}" onclick="return hs.expand(this)"><img src="{$config ['http_home_url']}uploads/posts/{$poster_data}/{$poster_name}"></a>
HTML;
}


            if ($ai<$cntscrs) $scrs .= '';
            if ($ai=="4") break;
        }
        unset($scrsList);
}
if (empty($_POST['poster_1'])){
$_POST['poster_1'] = '<img src="http://imagename.ru/noimages.jpg">'; /*http://imagename.ru/noimages.jpg заменяем данную ссылку на вашу ссылку на картинку*/
}
if (empty($_POST['poster_2'])){
$_POST['poster_2'] = '<img src="http://imagename.ru/noimages.jpg">'; /*http://imagename.ru/noimages.jpg заменяем данную ссылку на вашу ссылку на картинку*/
}if (empty($_POST['poster_3'])){
$_POST['poster_3'] = '<img src="http://imagename.ru/noimages.jpg">'; /*http://imagename.ru/noimages.jpg заменяем данную ссылку на вашу ссылку на картинку*/
}

if (empty($_POST['poster_4'])){
$_POST['poster_4'] = '<img src="http://imagename.ru/noimages.jpg">'; /*http://imagename.ru/noimages.jpg заменяем данную ссылку на вашу ссылку на картинку*/
}

$tpl->set ( '{poster1}', $_POST['poster_1']);
$tpl->set ( '{poster2}', $_POST['poster_2']);
$tpl->set ( '{poster3}', $_POST['poster_3']);
$tpl->set ( '{poster4}', $_POST['poster_4']);
/*Poster_images "END" by toxx*/
سوالات متداول
اگر خواستیم تعداد تصاویر بیشتری مثلا 5 تصویر یا فایل را آپلود کنیم چه کنیم؟

در فایل addnews.php سرچ کنید

while ($imags_id<=3)

و عدد 3 رو مثلا به 5 تغییر بدید
سپس در قالب و فایل addnews.tpl
تگ های زیر رو به 5 تا افزایش بدید

<input name="post_add_1" maxlength="250" class="f_input" type="file">
<input name="post_add_2" maxlength="250" class="f_input" type="file">
<input name="post_add_3" maxlength="250" class="f_input" type="file">
<input name="post_add_4" maxlength="250" class="f_input" type="file">
<input name="post_add_5" maxlength="250" class="f_input" type="file">


و در shortstory و fullstory هم تعداد تگهای زیر رو 5 تا کنید

{poster1}{poster2}{poster3}
{poster4}{poster5}
تصاویر
ارسال تصویر در مطلب
تگ‌های خبر:تصویر فایل مجزا
نظرات کاربران
IMP در 29 فروردین 1392 - 02:23 گفته:
مدیر بازنشستهنظرات: 917

خیلی ممنون ایمان جان به خاطر زحمتی که کشیدی flower

فقط یک نکته رو یادآوری کنم، توی توضیحات نوشته بودی که چرا ماژول بلاک پیشرفته تصاویری که اینجوری ارسال شده باشند رو نمایش نمیده که جواب هم نقل قول از من نوشته بودی، اما الان که کد ها رو چک کردم دیدم جوابم اشتباه بود lol ماژول بلاک پیشرفته برای این تصاویر رو نشون نمیده که، شما وقتی تصاویر رو با استفاده از این هک ارسال میکنید، تصویر توی مطلب قرار نمیگیره، یعنی فقط توی هاست و دیتابیس ذخیره میشه، اما ماژول هایی مثل بلاک پیشرفته، تصویر رو از داخل متن انتخاب میکنند. در نتیجه، اگر بعد از ارسال مطلب، مطلب رو ویرایش کنید و تصویر رو داخل مطلب هم قرار بدید، اونوقت بلاک پیشرفته هم این تصاویر رو ساپورت میکنه.

این نکته رو هم یادم رفت اضافه کنم، این هک فقط برای ارسال تصویر هست، ایمان جان نصف دیگه هک رو فراموش کردند قرار بدن تا فایل های غیر تصویر هم بشود آپلود کرد.

sirus در 29 فروردین 1392 - 08:48 گفته:
عضو سایتنظرات: 52

بسیارعالیه boos

مجید بشیری در 29 فروردین 1392 - 15:37 گفته:
مدیر بخش قالب هانظرات: 176

مرسی ایمان و علیرضا flower

من حتما ازش استفاده می کنم

--------------------

ایمان کوشکی در 29 فروردین 1392 - 22:09 گفته:
عضو سایتنظرات: 219

همش یه کاربر عادی ام اما با این جمله ها خیلی حال میکنم request

سیستم مدیریت دیتالایف انجین که به نظر بنده یکی از بهترین و بروزترین و قابل انعطاف ترین سیستم های حال حاضر میباشد همه امکانات را در خود جای داده...

سپاس آقا ایمان flower

ایمان برومند در 30 فروردین 1392 - 00:05 گفته:
عضو سایتنظرات: 129

senator_x,

سلام
خوب اینو تجربه چند سالم ثابت کرده! وقتی با جوملا و وردپرس مقایسه کردم!
یادمه اونموقع یکی از دوستان دیتالایف انجین رو بهم معرفی کرد یعنی یه سایت گرفتم سیستمش نیوک بود خلاصه من و نیوک از همون اول به هم نیومدیم donoghted گفتم یه سیستم راحت میخوام! خلاصه دوستم دیتالایف انجین رو نشونم دادم! بعدش یه سر وبلاگ زدم با وردپرس بعد یه ماه نشده حذف کردم چون اصلا چیز خاصی نداشت...جوملا رو هم که اصلا بیخیال بابا soot
خلاصه اینه که به نظر من دیتالایف انجین یکی از بهترین هاست!
IMP,
مرسی علی جان...

اینم اره میشه ولی حال میده یراست بره تو مطلب!... donoghted
اگه php رو کامل یاد گرفتم حتما اینو حل میکنم!
اخه طرف واسه حل همین مشکل از من 80 هزار تومن گرفته question

IMP در 30 فروردین 1392 - 00:44 گفته:
مدیر بازنشستهنظرات: 917

boysky68,

چه جالب، من فکر میکردم هزینه انجام این کارها توی ایران خیلی ارزونتر از این حرفاست! برای ۲ خط کد ساده 80 تومن میگیرن! فکر کنم بهتره پولت رو پس بگیری، با 80 تومن میتونی سفارش ۲ تا ماژول بدی، برای اینکه تصویر رو به صورت اتوماتیک توی مطلب قرار بدی اگر قرار باشه پولی به کسی بدی، حد اکثر 1000 تومن باید پرداخت کنی...

اگر به خودم میگفتی، اون قسمت ارسال تصویر توی مطلب رو هم درست میکردم... hahahoho

موفق باشید yes

ایمان برومند در 30 فروردین 1392 - 01:41 گفته:
عضو سایتنظرات: 129

IMP,
باور کن علی
اول بهم گفت 50 بعدش گفت 60 بعدش پول رو فرستادم با اینکه قشنگ توضیح دادم و همه چیز رو هم گفتم که چی میخوام بعد پیام داد که من فکر نمیکردم همچین چیزی بخوای باشه فقط یه 20 تومن دیگه بریز حسابم smile2 البته همه دوستان میشناسنش اسمشو برات پیام خصوصی میدم recourse

ایمان کوشکی در 30 فروردین 1392 - 01:41 گفته:
عضو سایتنظرات: 219

boysky68,
من که مستقیم بعد از پروژه های php دانشجویی اومدم تو این انجمن(خیلی کارداره تا...)
تو این مدت کم کنار شما بزرگان وقتم رو از دست ندادم...فقط ای کاش زود تر اینجا رو کشف می کردم winked
وقت میزارم تا بیشتر از ایجاد یه سایت شخصی یاد بگیرم bully
می خواستم سیمفونی کار کنم دیدم,اینطوری شدم==> excisted ولش کردم haha

فقط از مدیران یه سوال بزرگ دارم چرا این سیستم اصلا بین سیستم های شناخته شده نیست
چرا استاد های دانشگاه اصلا نمیشناسنش که بخوان حالا به دانشجوها معرفشون کنند smile2

IMP در 30 فروردین 1392 - 03:44 گفته:
مدیر بازنشستهنظرات: 917

boysky68,
ایمان جان، من اول اسم اون کاربر اخراجی که برام پیغام خصوصی کردید رو اینجا نوشتم، اما بعد حذفش کردم، فکر کردم اگر خودتون دوست داشته باشید نامش رو عنوان کنید اینجا بهتره.

نقل قول: senator_x
فقط از مدیران یه سوال بزرگ دارم چرا این سیستم اصلا بین سیستم های شناخته شده نیست
چرا استاد های دانشگاه اصلا نمیشناسنش که بخوان حالا به دانشجوها معرفشون کنند

دلیل اول، مجانی نبودن این سیستم مانند جوملا و یا وردپرس.
دلیل دوم، استفاده از این سیستم نیازمند داشتن حداقل دانش در زمینه HTML, CSS و PHP میباشد بر عکس سایر سیستم ها.
دلیل سوم هم این هست که استاد های دانشگاه یک خط CSS نمیتونند بنویسند، چرا انتظار دارید چیزی بدونند؟!!

اون قدیم ها، یک استاد! smile2 سخت افزار داشتیم، نمیدونست GPU چیه yes حالا ما اینجا انتظار داریم استاد های دانشگاه سواد استفاده از این سیستم ها رو داشته باشند yes

حمید صادقی در 31 فروردین 1392 - 08:03 گفته:
مدیر سایتنظرات: 463

ایمان جان دستت درد نكنه love
ولی كاش اگه امكان ارسال فایل هم داره اون هم بزاری خیلی به درد فیلد اضافه میخوره
میشه سریع آپ كرد و لینك رو در فیلد اضافه گذاشت
البته اگه اتومات باشه خیلی بهتره feel
موفق باشی flower

--------------------

sani در 02 اردیبهشت 1392 - 01:26 گفته:
عضو سایتنظرات: 7

ممنون عالیه

فقط نمیشه یه کاری کرد وقتی عکسی آپلود میکنی مثل آپلود سنترها لینک بده یه آپلود سنتری تو دیتالایف انجین هست متاسفانه جواب نمیده اگه میشه لطفا مثل php nuck باشه دیگه آخرش دیتالایف انجین

منظورم ایه که وقتی یه فایلی یا عکسی که آپلود میکنی یه مکان مشخصی تو سایت باشه که از اونجا بتونی عکس یا فایل زیپ را آپلود کنی و بعد لینکش رو بده مثل آپلود سنترها

--------------------

ایمان برومند در 12 اردیبهشت 1392 - 23:58 گفته:
عضو سایتنظرات: 129

cms,
منظورتون رو نفهمیدم! smile2

hamid7107,
چشم انشاالله php که خوب یاد گرفتم حتما این هک رو یکاریش میکنم!!چون بخاطرش یکی از دوستان اخرجی کلاهی بر سر ما گذاشت و رفت soot به هر حال اگه سایت روسی هست این هک رو منتشر کرد حتما میزارم

smhosseini در 25 اردیبهشت 1392 - 23:17 گفته:
عضو سایتنظرات: 23

خیلی عالی بود
فقط یک مشکل که وقتی بخوای ورایش بزنی و یرایش کنی چه در ویرایش کامل و چه در ویرایش سریع
قسمت آپلود تصاویر دیده نمی شود
لطفا راهنمایی کنید تا در اون قسمتها هم بگذاریم.

omid0711 در 08 مهر 1392 - 03:51 گفته:
عضو سایتنظرات: 4

سلام
عالیه
خیلی دنبال این ماژول بودم
خیلی خیلی ممنون

فقط یه مشکل داشت که شاید فقط برا منم اینجور بود چون کسی نگفته بود
اینکه تمام مراحل رو تک تک انجام دادم
ولی وقتی تصویری برا پست میزارم تو صفحه اصلی یعنی تو shortstory گذاشته میشه ولی تو ادامه مطلب یا همون fullstory دیده نمیشد!
که اینم حل شد
اینجوری که مراحل 6 رو جای مراحل 4 هم انجام بدیم
یعنی چیزایی که تو مرجله 4 آموزش گفته بودین رو بیخیال بشیم و برای فایل engine/modules/show.full.php هم مرحله 6 رو تکرار کنیم.
امیدوارم واضح گفته باشم
برا دوستایی که مشکل من رو داشتن
البته همین آموزشی که دوستمون boysky68 نوشتن رو انجام بدین اگر به مشکل من برخوردین این کارو کنین..

ارسال نظر
نام:*
ایمیل:*
متن نظر:
  • 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
کد را وارد کنید: *
عکس خوانده نمی‌شود؟ کلیک کنید!