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

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

تاریخ انتشار: 28 فروردین 1392
ارسال کننده: boysky68
سیستم مدیریت دیتالایف انجین که به نظر بنده یکی از بهترین و بروزترین و قابل انعطاف ترین سیستم های حال حاضر میباشد همه امکانات را در خود جای داده...
امروز برای شما هکی را قرار داده ایم که میتوانید با استفاده از آن به راحتی و فقط با یک دکمه 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 ) ) {
[email protected]( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
[email protected]( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX, 0777 );
[email protected]( ROOT_DIR . "/uploads/posts/" . FOLDER_PREFIX . "/thumbs", 0777 );
[email protected]( 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) ) {
            
[email protected]_uploaded_file( $image, $config_path_image_upload . $file_prefix . $image_name );
            
            if( @file_exists( $config_path_image_upload . $file_prefix . $image_name ) ) {
[email protected]( $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;
[email protected]( $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( 'boysky68', $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}
ارسال تصویر در مطلب
20 نفر (20 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
تشکر
مدیر بازنشسته
29 فروردین 1392 - 02:23
خیلی ممنون ایمان جان به خاطر زحمتی که کشیدی flower

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

این نکته رو هم یادم رفت اضافه کنم، این هک فقط برای ارسال تصویر هست، ایمان جان نصف دیگه هک رو فراموش کردند قرار بدن تا فایل های غیر تصویر هم بشود آپلود کرد.
عضو سایت
29 فروردین 1392 - 08:48
بسیارعالیه boos
مدیر بخش قالب ها
29 فروردین 1392 - 15:37
مرسی ایمان و علیرضا flower

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

--------------------
عضو سایت
29 فروردین 1392 - 22:09
همش یه کاربر عادی ام اما با این جمله ها خیلی حال میکنم request

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

سپاس آقا ایمان flower
عضو سایت
30 فروردین 1392 - 00:05
senator_x,

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

اینم اره میشه ولی حال میده یراست بره تو مطلب!... donoghted
اگه php رو کامل یاد گرفتم حتما اینو حل میکنم!
اخه طرف واسه حل همین مشکل از من 80 هزار تومن گرفته question
مدیر بازنشسته
30 فروردین 1392 - 00:44
boysky68,

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

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

موفق باشید yes
عضو سایت
30 فروردین 1392 - 01:41
IMP,
باور کن علی
اول بهم گفت 50 بعدش گفت 60 بعدش پول رو فرستادم با اینکه قشنگ توضیح دادم و همه چیز رو هم گفتم که چی میخوام بعد پیام داد که من فکر نمیکردم همچین چیزی بخوای باشه فقط یه 20 تومن دیگه بریز حسابم smile2 البته همه دوستان میشناسنش اسمشو برات پیام خصوصی میدم recourse
عضو سایت
30 فروردین 1392 - 01:41
boysky68,
من که مستقیم بعد از پروژه های php دانشجویی اومدم تو این انجمن(خیلی کارداره تا...)
تو این مدت کم کنار شما بزرگان وقتم رو از دست ندادم...فقط ای کاش زود تر اینجا رو کشف می کردم winked
وقت میزارم تا بیشتر از ایجاد یه سایت شخصی یاد بگیرم bully
می خواستم سیمفونی کار کنم دیدم,اینطوری شدم==> excisted ولش کردم haha

فقط از مدیران یه سوال بزرگ دارم چرا این سیستم اصلا بین سیستم های شناخته شده نیست
چرا استاد های دانشگاه اصلا نمیشناسنش که بخوان حالا به دانشجوها معرفشون کنند smile2
مدیر بازنشسته
30 فروردین 1392 - 03:44
boysky68,
ایمان جان، من اول اسم اون کاربر اخراجی که برام پیغام خصوصی کردید رو اینجا نوشتم، اما بعد حذفش کردم، فکر کردم اگر خودتون دوست داشته باشید نامش رو عنوان کنید اینجا بهتره.

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

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

اون قدیم ها، یک استاد! smile2 سخت افزار داشتیم، نمیدونست GPU چیه yes حالا ما اینجا انتظار داریم استاد های دانشگاه سواد استفاده از این سیستم ها رو داشته باشند yes
مدیر سایت
31 فروردین 1392 - 08:03
ایمان جان دستت درد نكنه love
ولی كاش اگه امكان ارسال فایل هم داره اون هم بزاری خیلی به درد فیلد اضافه میخوره
میشه سریع آپ كرد و لینك رو در فیلد اضافه گذاشت
البته اگه اتومات باشه خیلی بهتره feel
موفق باشی flower

--------------------
عضو سایت
02 اردیبهشت 1392 - 01:26
ممنون عالیه

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

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

--------------------
عضو سایت
12 اردیبهشت 1392 - 23:58
cms,
منظورتون رو نفهمیدم! smile2

hamid7107,
چشم انشاالله php که خوب یاد گرفتم حتما این هک رو یکاریش میکنم!!چون بخاطرش یکی از دوستان اخرجی کلاهی بر سر ما گذاشت و رفت soot به هر حال اگه سایت روسی هست این هک رو منتشر کرد حتما میزارم
عضو سایت
25 اردیبهشت 1392 - 23:17
خیلی عالی بود
فقط یک مشکل که وقتی بخوای ورایش بزنی و یرایش کنی چه در ویرایش کامل و چه در ویرایش سریع
قسمت آپلود تصاویر دیده نمی شود
لطفا راهنمایی کنید تا در اون قسمتها هم بگذاریم.
عضو سایت
08 مهر 1392 - 03:51
سلام
عالیه
خیلی دنبال این ماژول بودم
خیلی خیلی ممنون

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

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