۱۸ خرداد، ۱۳۹۹

٢ ماه پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم نحوه دسترسی به ویدئوهای ویژه درست کرد.

سلام

این بحث رو شروع نکردم تنها برای رسیدن به یه راهکار مناسب.

چند سالی هست پارس کلیک رو می شناسم و بخوام تعریف و تمجید کنم، مطمئنا کار بی معنایی رو انجام دادم.چون اهل فن متوجه سطح بالای آموزش های این سایت هستند.

مدیر سایت عزیز، من و خیلی دیگه از افراد شبیه من داخل ایران ساکنیم. همونطور هم خودت می دونی نمی تونیم براحتی پرداخت ارزی داشته باشیم.

از گذشته هم چیزی که خاطرم هست اینه که شما قادر نیستید وجه ریالی دریافت کنید (بنا به مشکلات فراوان و ...)

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

۴ آذر، ۱۳۹۸

۸ ماه پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم PHP VS PYTHON درست کرد.

سلام

چند وقتی هست که دارم کلنجار میرم PHP یا پایتون ؟

خودم چند سالی هست که دارم با PHP کد می زنم. با فریم ورک های مختلفی کار کردم. اما امدم اینجا تا شما کمک حال تصمیمم باشید.

به نظرتون PHP در آینده پرکاربرد تر هست یا پایتون؟

و اگر یکی بخواد از اول کار کنه شما کدومو بهش پیشنها میدید؟

۱۸ تیر، ۱۳۹۸

١ سال پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم تامین امنیت در ورود به سایت درست کرد.

سلام رفقا .

من برای ورود کاربر به سایتم همچنین کاری رو می کنم: بررسی می کنم ببینم آیا کاربری که درخواست ارسال کرده داخل دیتابیس ام هس یا نه (بررسی های وجود نام کاربری، یکی بودن گذرواژه وارد شده با گذرواژه هش شده و ....)

اگر کاربرم رو پیدا کردم و وجود داشت. میام براش سشن ست می کنم و از طریق سشن دسترسی به صفحاتم و بهش میدم.

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

راه حلی که گفت این هست که برای کاربری که احراز هویتش تایید میشه یه توکن بسازم و ... . اما متاسفانه اصلا متوجه منظورش نشدم دقیقا باید چی کار کرد...

امکانش هست دوستانی که مطلع هستند . راهنمایی بفرمایند؟

پیشاپیش از محبت دوستان مچکر و سپاسگذارم :)

تا یادم نرفته باید بگم که دوستدار ذات درست و عزیزتونم :قلب

۱۰ تیر، ۱۳۹۸

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی کد نویسی با فریم ورک یا از پایه نویسی MVC جواب داد.

ممنونم از همه دوستانی که من رو محروم نکردند از دیدگاهشون

@mas1375 عزیز باعث خوشحالی من هست که بتونم کدهام رو در معرض دید شما قرار بدم. اما متاسفانه اکثریت پروژه های من خصوصی هستند و امکان منتشر کردن اونها وجود نداره.

@shahryarjb و @president عزیز . یکی دیگه از دلایل اصلی من به خاطر عدم استفاده از لاراول چیزی هست که @matin عزیز گفته.

@matin شما تجربه ای داری؟ این نکته رو هم باید عرض کنم که وب اپلیکیشن قرار هست روی شبکه داخلی سازمان بالا بیاد و دسترسی خارجی وجود نخواهد داشت

۸ تیر، ۱۳۹۸

١ سال پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم کد نویسی با فریم ورک یا از پایه نویسی MVC درست کرد.

سلام دوستان، امیدوارم اصل حالتون عالی باشه:)

من چند سالی هست که دارم با php کد می زنم و وب اپلیکیشن تولید می کنم. عموما وب اپلیکیشن هایی که تولید کردم رو خودم از بیس نوشتم PHP MVC . طی روزهای آتی قرار هست یه برنامه ی تحت وب رو برای سازمان دولتی بنویسم. یه برنامه ای که تو مرور زمان قرار هست دیتا زیادی بهش وارد بشه.

با لاراول چند وقتی هست آشنایی پیدا کردم و می تونم باهاش کار کنم. تا اونجایی که اطلاعات دارم جزء برترین فریم ورک های php هست. و قصدم برای انجام این پروژه استفاده از لاراول هست منتهی چیزی که من رو خیلی دو شک کرده برای استفاده از لاراول ترس از کم شدن سرعت لود صفحات و ... هست.

پروژه هایی که خودم از بیس می نویسم سرعت خوبی دارند و در حداقل زمان لود میشند. اما هیچ اطلاعاتی در مورد سرعت لود و ... تو لاراول ندارم.

به نظر شما برای چنین پروژه ای سمت فریم ورک (لاراول) بیام یا اینکه با فریم ورک شخصی کار رو پیش ببرم؟ اگر پاسختون مثبت و یا منفی هست لطفا من رو از خوندن دلایلتون محروم نکنید

دوستدارتونم :)

۷ تیر، ۱۳۹۸

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی کار با گیت در ایران جواب داد.

ممنونم از پاسخ کاملتون. منتهی منظور من از ست کردن dns چیزه دیگه ای بود. شرکت هایی رو دیدم که از سایت dynu.net ساب دامین رایگان میگیرند و پروژه گیت خودشون رو با ساب دامینی که از این سایت گرفتند مدیریت می کنند.

مثلا وقتی آدرس myurl.dynu.net رو میزنند صفحه ورود گیت لب باز میشه و....

١ سال پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم کار با گیت در ایران درست کرد.

سلام رفقا :)

من چند وقتی هست که قصد کردم پروژه خودم رو روی گیت لب ببرم و مدیریت نسخه ها و ... رو انجام بدم. کارهای ابتدایی با Git رو بلدم. منتهی مشکلی که هست تحریم شدم ایران عزیز از سمت گوگل هست.

و از اونجایی که گیت داره از سرویس گوگل استفاده میکنه برای ما مشکل ساز شده ...

چه راه حل هایی هست که بتونیم این مشکل رو رفع کنیم؟ تو برخی از شرکت های دیدم که dns تنظیم می کنند و... اما هیچ آشنایی با نحوه انجام اینکار ندارم.

ممنون میشم راهنماییم کنید

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی چگونگی ایجاد لایو فیلترینگ جواب داد.

ممنونم راستش یکم برای من غیر قابل فهم بود مثالتون. امکانش هست کمی با توضیح بیشتر راهنماییم کنید؟ (با مثال که باشه عالیه)

۲۷ اردیبهشت، ۱۳۹۸

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی چگونگی ایجاد لایو فیلترینگ جواب داد.

از توجه تون مچکرم. کدهایی که استفاده کردم به شرح زیر هست:

کد های جاوا اسکریپت و صدا زدن تابع ای جکس:

    $(function () {
        setResumeFilter();
    });

    $('#resume-status').on('change',function () {
        setResumeFilter();
    });

    $('#first-name').on('keyup',function () {
        setResumeFilter();
    });
    $('#last-name').on('keyup',function () {
        setResumeFilter();
    });
    $('#year-action').on('change',function () {
        setResumeFilter();
    });
    $('#signature').on('change',function () {
        setResumeFilter();
    });
    $('#dec-status').on('change',function () {
        setResumeFilter();
    });
    $('#item-count').on('change',function () {
        setResumeFilter();
    });

محتویات تابع setResumeFilter :

    function setResumeFilter(index) {
        var resume_status               = $('#resume-status').val();
        var first_name                      = $('#first-name').val();
        var last_name                       = $('#last-name').val();
        var year_action                     = $('#year-action').val();
        var signature                       = $('#signature').val();
        var dec_status                      = $('#dec-status').val();
        var item_count                      = $('#item-count').val();
        var url_content                     =   'cv/cv_content/';
        var url_pagination              = 'cv/cv_pagination/';

        if(index == undefined){
            index = 1;
        }

        var form_data = new FormData();
        form_data.append("index", index);
        form_data.append("resume_status", resume_status);
        form_data.append("first_name", first_name);
        form_data.append("last_name", last_name);
        form_data.append("year_action", year_action);
        form_data.append("signature", signature);
        form_data.append("dec_status", dec_status );
        form_data.append("item_count", item_count);
        getPointerContent(url_content,url_pagination,form_data);
    }

محتویات تابع getPointerContent :

function getPointerContent(url_content,url_pagination,form_data) {
    $.ajax(base_url() + url_content,{
        type: 'POST',
        dataType: 'json',
        cache: false,
        contentType: false,
        processData: false,
        data:form_data,
        success: function(data){
            $('#content').empty();
            $('#content').append(data.content);
        }
    });
}

و در نهایت متدی که با ای جکس فراخوانی میشه به شرح زیر هست:

public function cv_content(){

        $string_if = '';

        if ($_POST['resume_status'] != 'unknow'){
            $resume_status = $_POST['resume_status'];
            $string_if .= '1';
        }else{
            $string_if .= '0';
        }
        if (!empty($_POST['first_name'])){
            $frist_name = arabicToPersian($_POST['first_name']);
            $string_if .= '1';
        }else{
            $string_if .= '0';
        }
        if (!empty($_POST['last_name'])){
            $last_name = arabicToPersian($_POST['last_name']);
            $string_if .= '1';
        }else{
            $string_if .= '0';
        }
        if ($_POST['year_action'] != 'unknow'){
            $year_action = convert_data_to_gregorian($_POST['year_action']);
            $string_if .= '1';
        }else{
            $string_if .= '0';
        }
        if ($_POST['signature'] != 'unknow'){
            $signature = $_POST['signature'];
            $string_if .= '1';
        }else{
            $string_if .= '0';
        }
        if ($_POST['dec_status'] != 'unknow'){
            $dec_status = $_POST['dec_status'];
            $string_if .= '1';
        }else{
            $string_if .= '0';
        }

        $item_count = $_POST['item_count'];
        $page_index = $_POST['index'] ;
        $start_item = ($page_index - 1) *  $item_count;

        switch ($string_if) {
            case '000000':
                /*No Filter*/
                $all_resume = CVModel::getResumeLimitNoFilter($start_item, $item_count);
                break;
            case '100000':
                /*Posted Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFilter($start_item, $item_count,$resume_status);
                break;
            case '010000':
                /*FirstName Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameFilter($start_item, $item_count,$frist_name);
                break;
            case '001000':
                /*LastName Filter*/
                $all_resume = CVModel::getResumeLimitLastNameFilter($start_item, $item_count,$last_name);
                break;
            case '000100':
                /*Year Action Filter*/
                $all_resume = CVModel::getResumeLimitYearActionFilter($start_item, $item_count,$year_action);
                break;
            case '000010':
                /*Signature Filter*/
                $all_resume = CVModel::getResumeLimitSignatureFilter($start_item, $item_count,$signature);
                break;
            case '000001':
                /*Resume Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitDecStatusFilter($start_item, $item_count,$dec_status);
                break;
            case '110000':
                /*Posted Status && FirstName Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameFilter($start_item, $item_count,$resume_status,$frist_name);
                break;
            case '101000':
                /*Posted Status && LastName Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameFilter($start_item, $item_count,$resume_status,$last_name);
                break;
            case '100100':
                /*Posted Status && YearAction Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusYearActionFilter($start_item, $item_count,$resume_status,$year_action);
                break;
            case '100010':
                /*Posted Status && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusSignatureFilter($start_item, $item_count,$resume_status,$signature);
                break;
            case '100001':
                /*Posted Status && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusDecStatusFilter($start_item, $item_count,$resume_status,$dec_status);
                break;
            case '011000':
                /*FirstName && LastName Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameFilter($start_item, $item_count,$frist_name,$last_name);
                break;
            case '010100':
                /*FirstName && Year Action Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameYearActionFilter($start_item, $item_count,$frist_name,$year_action);
                break;
            case '010010':
                /*FirstName && Signature Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameSignatureFilter($start_item, $item_count,$frist_name,$signature);
                break;
            case '010001':
                /*FirstName && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameDecStatusFilter($start_item, $item_count,$frist_name,$dec_status);
                break;
            case '001100':
                /*Last Name && Year Action Filter*/
                $all_resume = CVModel::getResumeLimitLastNameYearActionFilter($start_item, $item_count,$last_name,$year_action);
                break;
            case '001010':
                /*LastName && Signature Filter*/
                $all_resume = CVModel::getResumeLimitLastNameSignatureFilter($start_item, $item_count,$last_name,$signature);
                break;
            case '001001':
                /*LastName && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitLastNameDecStatusFilter($start_item, $item_count,$last_name,$dec_status);
                break;
            case '000110':
                /*Year Action && Signature Filter*/
                $all_resume = CVModel::getResumeLimitYearActionSignatureFilter($start_item, $item_count,$year_action,$signature);
                break;
            case '000101':
                /*Year Action && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitYearActionDecStatusFilter($start_item, $item_count,$year_action,$dec_status);
                break;
            case '000011':
                /*Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitSignaturenDecStatusFilter($start_item, $item_count,$signature,$dec_status);
                break;
            case '111000':
                /*PostedStatus && FirstName && LastName Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameFilter($start_item, $item_count,$resume_status,$frist_name,$last_name);
                break;
            case '110100':
                /*PostedStatus && FirstName && Year Action Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameYearActionFilter($start_item, $item_count,$resume_status,$frist_name,$year_action);
                break;
            case '110010':
                /*PostedStatus && FirstName && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameSignatureFilter($start_item, $item_count,$resume_status,$frist_name,$signature);
                break;
            case '110001':
                /*PostedStatus && FirstName && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$dec_status);
                break;
            case '101100':
                /*PostedStatus && LastName && Year Action Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameYearActionFilter($start_item, $item_count,$resume_status,$last_name,$year_action);
                break;
            case '101010':
                /*PostedStatus && LastName && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameSignatureFilter($start_item, $item_count,$resume_status,$last_name,$signature);
                break;
            case '101001':
                /*PostedStatus && LastName && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameDecStatusFilter($start_item, $item_count,$resume_status,$last_name,$dec_status);
                break;
            case '100110':
                /*PostedStatus && YearAction && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusYearActionSignatureFilter($start_item, $item_count,$resume_status,$year_action,$signature);
                break;
            case '100101':
                /*PostedStatus && YearAction && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusYearActionDecStatusFilter($start_item, $item_count,$resume_status,$year_action,$dec_status);
                break;
            case '100011':
                /*PostedStatus && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusSignatureDecStatusFilter($start_item, $item_count,$resume_status,$signature,$dec_status);
                break;
            case '011100':
                /*FirstName && LastName && YearAction Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameYearActionFilter($start_item, $item_count,$frist_name,$last_name,$year_action);
                break;
            case '011010':
                /*FirstName && LastName && Signature Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameSignatureFilter($start_item, $item_count,$frist_name,$last_name,$signature);
                break;
            case '011001':
                /*FirstName && LastName && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameDecStatusFilter($start_item, $item_count,$frist_name,$last_name,$dec_status);
                break;
            case '010110':
                /*FirstName && YearAction && Signature Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameYearActionSignatureFilter($start_item, $item_count,$frist_name,$year_action,$signature);
                break;
            case '010101':
                /*FirstName && YearAction && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameYearActionDecStatusFilter($start_item, $item_count,$frist_name,$year_action,$dec_status);
                break;
            case '010011':
                /*FirstName && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameSignatureDecStatusFilter($start_item, $item_count,$frist_name,$signature,$dec_status);
                break;
            case '001110':
                /*LastName && Year Action && Signature Filter*/
                $all_resume = CVModel::getResumeLimitLastNameYearActionSignatureFilter($start_item, $item_count,$last_name,$year_action,$signature);
                break;
            case '001101':
                /*LastName && Year Action && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitLastNameYearActionDecStatusFilter($start_item, $item_count,$last_name,$year_action,$dec_status);
                break;
            case '001011':
                /*LastName && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitLastNameSignatureDecStatusFilter($start_item, $item_count,$last_name,$signature,$dec_status);
                break;
            case '000111':
                /*Year Action && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitYearActionSignatureDecStatusFilter($start_item, $item_count,$year_action,$signature,$dec_status);
                break;
            case '111100':
                /*Psted Status && First Name && Last Name && YearAction Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameYearActionFilter($start_item, $item_count,$resume_status,$frist_name,$last_name,$year_action);
                break;
            case '111010':
                /*Psted Status && First Name && Last Name && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameSignatureFilter($start_item, $item_count,$resume_status,$frist_name,$last_name,$signature);
                break;
            case '111001':
                /*Psted Status && First Name && Last Name && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$last_name,$dec_status);
                break;
            case '110110':
                /*Psted Status && First Name && YearAction && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameYearActionSignatureFilter($start_item, $item_count,$resume_status,$frist_name,$year_action,$signature);
                break;
            case '110101':
                /*Psted Status && First Name && YearAction && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameYearActionDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$year_action,$dec_status);
                break;
            case '110011':
                /*Psted Status && First Name && Signature && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameSignatureDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$signature,$dec_status);
                break;
            case '101110':
                /*Psted Status && Last Name && YearAction && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameYearActionSignatureFilter($start_item, $item_count,$resume_status,$last_name,$year_action,$signature);
                break;
            case '101101':
                /*Psted Status && Last Name && YearAction && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameYearActionDecStatusFilter($start_item, $item_count,$resume_status,$last_name,$year_action,$dec_status);
                break;
            case '101011':
                /*Psted Status && Last Name && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameSignatureDecStatusFilter($start_item, $item_count,$resume_status,$last_name,$signature,$dec_status);
                break;
            case '100111':
                /*Psted Status && YearAction && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusYearActionSignatureDecStatusFilter($start_item, $item_count,$resume_status,$year_action,$signature,$dec_status);
                break;
            case '011110':
                /*FirstName && LastName && YearAction && Signature Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameYearActionSignatureFilter($start_item, $item_count,$frist_name,$last_name,$year_action,$signature);
                break;
            case '011101':
                /*FirstName && LastName && YearAction && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameYearActionDecStatusFilter($start_item, $item_count,$frist_name,$last_name,$year_action,$dec_status);
                break;
            case '011011':
                /*FirstName && LastName && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameSignatureDecStatusFilter($start_item, $item_count,$frist_name,$last_name,$signature,$dec_status);
                break;
            case '010111':
                /*FirstName && YearAction && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameYearActionSignatureDecStatusFilter($start_item, $item_count,$frist_name,$year_action,$signature,$dec_status);
                break;
            case '001111':
                /*LastName && YearAction && Signature && Dec Status Filter*/
                $all_resume = CVModel::getResumeLimitLastNameYearActionSignatureDecStatusFilter($start_item, $item_count,$last_name,$year_action,$signature,$dec_status);
                break;
            case '111110':
                /*Posted Status && First Name && Last Name && YearAction && Signature Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameYearActionSignatureFilter($start_item, $item_count,$resume_status,$frist_name,$last_name,$year_action,$signature);
                break;
            case '111101':
                /*Posted Status && First Name && Last Name && YearAction && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameYearActionDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$last_name,$year_action,$dec_status);
                break;
            case '111011':
                /*Posted Status && First Name && Last Name && Signature && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameLastNameSignatureDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$last_name,$signature,$dec_status);
                break;
            case '110111':
                /*Posted Status && First Name && YearAction && Signature && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusFirstNameYearActionSignatureDecStatusFilter($start_item, $item_count,$resume_status,$frist_name,$year_action,$signature,$dec_status);
                break;
            case '101111':
                /*Posted Status && LastName && YearAction && Signature && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitPostedStatusLastNameYearActionSignatureDecStatusFilter($start_item, $item_count,$resume_status,$last_name,$year_action,$signature,$dec_status);
                break;
            case '011111':
                /*FirstName && LastName && YearAction && Signature && DecStatus Filter*/
                $all_resume = CVModel::getResumeLimitFirstNameLastNameYearActionSignatureDecStatusFilter($start_item, $item_count,$first_name,$last_name,$year_action,$signature,$dec_status);
                break;
            case '111111':
                /*FULL FILTER*/
                $all_resume = CVModel::getResumeLimitFullFilter($start_item, $item_count,$resume_status,$first_name,$last_name,$year_action,$signature,$dec_status);
                break;
        }
}

امیدوارم نوع ساختار کد به شکلی باشه که خوانایی مناسبی داشته باشه

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی نمایش قالب کاری قبل از بارگذاری اطلاعات جواب داد.

@tilkacoder از وقتی که صرف پاسخگویی کردی سپاسگذارم. دقیقا دنبال همچنین جوابی بودم.

نمی دونم چرا احساس می کردم برای اینکار پلاگینی وجود داره، حالا که شما می فرمایید وجود نداره پس حتما به همین شکل هست.

در نهایت مجددا ازت سپاسگذارم

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی نمایش قالب کاری قبل از بارگذاری اطلاعات جواب داد.

مجددا از پاسخی که ارسال کردی سپاسگذارم.و خیلی شرمنده ام که بقدری بد توضیح می دم که شما رو در دریافت منظورم دچار اشکال می کنم.

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

شما اگر به انتهای صفحه اسکرول کنید، مشاهده می کنید که قبل از بارگزاری پست های جدید، قالب نمایشی اون رو نشون میده (مثل تصویر زیر)

Image of Yaktocat

مثل کاری که تو اینستاگرام دیدیم و ... برای این کار پلاگینی وجود داره؟ روشی وجود داره؟ یا ...

۲۶ اردیبهشت، ۱۳۹۸

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی نمایش قالب کاری قبل از بارگذاری اطلاعات جواب داد.

@tilkacoder عزیز، ممنونم از محبتی که داشتی و جوابی که ارسال کردی.

منتهی احساس می کنم بد توضیح دادم و شما رو در دریافت محتوای سوالم دچار اشکال کردم. چیزی که ارسال کردم و نمونه ای که ارایه دادم (اینستاگرام) رو چند جای دیگه هم دیدم و همه این ها دارند دقیقا از یک افکت و حالت استفاده می کنند. مثال دیگه ای که بخوام عرض کنم سایت ویرگول هست. https://virgool.io/

شما اسکرول کن به انتهای صفحه، باز چیزی رو شاهد هستی که در اینستاگرام پیاده سازی شده ...

احساس می کنم یک روش خاص و یا بهتر بگم یک پلاگین خاصی برای اینکاری که اسمش رو هم نمی دونم چی هست وجود داره

١ سال پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم نمایش قالب کاری قبل از بارگذاری اطلاعات درست کرد.

سلام رفقا، امیدوارم آخر هفته خوبی پیش روتون باشه.

چند وقتی هست سوالی ذهنم رو درگیر کرده که جوابش برام جذاب هست. داخل برخی از سایت ها دیدم که قبل از اینکه اطلاعات صفحه بخواد لود شه، سایت میاد ابتدا فرمت (قالب) نمایشی اون قسمت رو نشونه میده. مثلا داخل اینستاگرام قسمت از اون به این شکله: alt برای عکس

اگر عنوان نامناسبی انتخاب کردم و یا نوع توضیح که ارایه دادم نامناسب بوده، پیشاپیش از حضور عزیزتون عذر خواهی می کنم

١ سال پیش ٢۰۰+ امتیاز
@mahdi_mahdi یک گفتگو به اسم چگونگی ایجاد لایو فیلترینگ درست کرد.

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

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

خوب داخل تصویر بالا ۶ تا فیلد مشاهده می کنید، می خوام این قابلیت رو به کاربر بدم که بر اساس یک فیلد و یا هر ۶ تا فیلد به صورت همزمان بتونه فیلتر کنه و نتایج رو ببینه. لازم به توضیح هست که درخواست ها با ای جکس ارسال میشه.

راه حل خودم : من در حال حاظر این قسمت رو پیاده سازی کردم و خوب کار رو راه انداخته اما احساس خوش آیندی به کدی که زدم ندارم :(

من برای هر کدوم از فیلد ها دو تا وضعیت در نظر گرفتم. وضعیت 0 و وضعیت 1 . وضعیت 0 یعنی اینکه اون فیلد خالی هست و یک بالعکس اون.

حالا در نهایت کد 6 رقمی رو به سرور ارسال می کنم. مثلا به این شکل : 100000 این کد یعنی فقط فیلتر اولی اعمال شده. یا مثلا کد 110000 که معنیش این میشه که فیلتر اولی و دومی اعمال شده و ...

سمت سرور با ‍‍swich case امدم کد رو بررسی کردم و برای هر کد یه کویری به دیتابیس و... زدم

امیدوارم متوجه کاری که کردم شده باشید .

مشکلی که با این نوع کد زدن دارم این هست که خیلی کد زیادی رو زدم و توسعه پذیری رو برای آینده سخت کرده. ایا روش بهتری داریم برای اینکار؟

۱۶ فروردین، ۱۳۹۸

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی فراخوانی پلاگین در videojs جواب داد.

سلام عزیزجان، لینک زیر رو دیدی؟ https://github.com/dmlap/videojs-ads

۲۴ اسفند، ۱۳۹۷

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی شروع رکورد فصل دوم آموزش الکسیر جواب داد.

خیلی خوشحالم شهریار جان از اینکه میبینم همچنان داری روی ارایه آموزش رایگان کار می کنی .امیدوارم مجموعه ای که میدی رو بتونم ببینم

۲۲ بهمن، ۱۳۹۷

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی در نظر گرفتن چند نقش برای یک کاربر جواب داد.

سلام کار زیر رو نمی تونید انجام بدید؟ یک جدول جدید (به طور مثال: user_group) ایجاد کنید و داخل اون گروه های کاربری خودتون رو درج کنید : مثلا گروه مدیریت، گروه نویسندگان، کاربران عضو

هر کدوم از این گروه ها یک id دارند. داخل جدول "کاربران" هم یک ستون جدید ایجاد کنید به نام group_id و با کمک middleware ها قسمت هایی که تمایل دارید برای گروه های کاربری محدود کنید.

۲۰ بهمن، ۱۳۹۷

١ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی چی کسانی از API پارس کلیک استفاده می کنند؟ جواب داد.

@matin عزیز ممنونم از پاسخ شما.

بعید می دونم قالب وب سایتی نماینگر فریم ورکی (بک اند) باشه که اون پایگاه داره از اون استفاده می کنه. یا لااقل بنده توی این امر ناشی هستم و چنین توانایی رو ندارم.

مورد بعدی که خیلی بعید می دونم این هست که شخصیتی مثل @amir عزیز همچنین روحیه ای داشته باشه که بخواد استفاده از لاراول رو پنهان کرده باشه که اگر اینکار رو کرده خیلی برام جذاب هست که دلیلش رو بدونم (البته خیلی نزدیک به صفر هست این حالت.)

من همچنان منتظر نظر خود جناب عظیمی هستم، امیدوارم شاهد این باشم که ایشون پاسخ بدند این موضوع رو (با آگاهی به مشغله زیادی که باید داشته باشند.)

۱۹ بهمن، ۱۳۹۷

٢ سال پیش ١۰۰+ امتیاز
@mahdi_mahdi به گفتگوی چی کسانی از API پارس کلیک استفاده می کنند؟ جواب داد.

@amir عزیز سلام.

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

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

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

  1. درست هست؟
  2. فریم ورک خاصی کار کردید و یا از فریم ورک های دیگه استفاده کردی؟
  3. اگر این یک فریم ورک شخصی هست، چرا ترجیحت این بوده که خودت از بیس بنویسی؟