کاربر تایید شده آخرین فعالیت ۷ ماه پیش

@jamshid

پارس کلیکی از ١ سال پیش

تجربه

2600

  • ۹ ماه پیش @jamshid یک بحث به اسم آموزش پایه ای و اصولی پی اچ پی 7 درست کرد.

    با سلام به حضور همه ی دوستان.

    من کمی پی اچ پی بلدم. چند سالی هست که کد پی اچ پی نزدم. می خواستم دوباره شروع به یاد گیری اون کنم. اما دیدم بهتره با توجه به تغییراتی که از php5 تا php7 در این چند سال ایجاد شده؛ این بار به صورت اصولی از پایه و با تفکر شی گرا و استفاده از اصول نسخه ی php7 اون رو یاد بگیرم تا بتونم از حد اکثر قابلیت های پروسسور زنت جدید و سریعش استفاده کنم.

    تو سایت های فارسی خیلی سرچ کردم اما کتابی که مخصوص آموزش از پایه php7 باشه ندیدم. هرچی هم که دیدم یا برای نسخه ی 5 بوده یا امکانات جدید نسخه ی 7 رو خلاصه گفته. در کل مطلب که اصولی گفته باشه ندیدم.

    البته بخشی ویدئو های youtube جناب مهندس عظیمی رو قبلا دیدم که مربوط به php5 هست و در سال 2013 به اشتراک گذاشتند. ولی من نتونستم از ایشون برای php7 مجوعه آموزشی کلی پیدا کنم!

    لطفا راهنمایی کنید که:

    • از چه کتابی شروع کنم؟
    • چه مجموعه ی ویدئویی رو ببینم؟
    • چطور به اشتباه به روش php5 کد نزنم؟

    با سپاس.

  • @amir با سلام. ممنون از جواب تون.

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

  • ١٢ ماه پیش @jamshid به بحث نمایش آخرین پیام در SweetAlert جواب داد.

    @zahra-sh مهم نیست منم مثل شما تازه کارم. همه ما به لطف آقای عظیمی اینجا جمع شدیم تا به کمک هم پیشرفت کنیم. این مسیری که شما گفتید؛ public/js/app.js جایی هست که توابع جاوا اسکریپت در اون قرار دارند و یک جور کتابخونه هست ولی شما باید در جایی در اواخر صفحه مسیر این کتابخونه رو ذکر کنید تا سرور آپاچی اون رو برای شما ترجمه کنه

  • ١٢ ماه پیش @jamshid به بحث نمایش آخرین پیام در SweetAlert جواب داد.

    @zahra-sh شما برای نمایش پیام در صفحه به جز ایمپورت کردن سورس جاوا نیاز به بخشی برای نمایش جزئیاتش دارین مثل:

    <script>
        //swal({!! session()->pull('sweet_alert.alert') !!});
        swal({
            icon:                   "{!! session()->get('sweet_alert.icon') !!}",
            text:                   "{!! session()->get('sweet_alert.text') !!}",
            type:                   "{!! session()->get('sweet_alert.type') !!}",
            timer:                  "{!! session()->get('sweet_alert.timer') !!}",
            title:                  "{!! session()->get('sweet_alert.title') !!}",
            closeOnEsc:             "{!! session()->get('sweet_alert.closeOnEsc') !!}",
            dangerMode:             "{!! session()->get('sweet_alert.dangerMode') !!}",
            cancelButtonText:       "{!! session()->get('sweet_alert.cancelButtonText') !!}",
            confirmButtonText:      "{!! session()->get('sweet_alert.confirmButtonText') !!}",
            closeOnClickOutside:    "{!! session()->get('sweet_alert.closeOnClickOutside') !!}",
            @if ( (bool) session()->get('sweet_alert.cancelButtonText' )
               && (bool) session()->get('sweet_alert.confirmButtonText') )
                buttons: [
                    "{!! session()->get('sweet_alert.cancelButtonText' ) !!}",
                    "{!! session()->get('sweet_alert.confirmButtonText') !!}",
                ],
            @elseif ( (!(bool) session()->get('sweet_alert.cancelButtonText' ) )
                 && ( (bool) session()->get('sweet_alert.confirmButtonText') ) )
            buttons:  [
                          false,
                          "{!! session()->get('sweet_alert.confirmButtonText') !!}",
                      ],
            @elseif ( ( (bool) session()->get('sweet_alert.cancelButtonText' ) )
                 && (!(bool) session()->get('sweet_alert.confirmButtonText') ) )
            buttons: [
                         "{!! session()->get('sweet_alert.cancelButtonText' ) !!}",
                         false,
                     ],
            @else
            buttons: false,
            @endif
        });
    </script>
    @endif
  • دوستان بعد از مدتی چون جواب بهتری پیدا نکردم مجبور شدم هنگام ایجاد هر رکورد در بانک داده ها، در کنار ستون created_at مقدار jalali_created_at رو هم ذخیره کنم تا بتونم بدون مشکل کوئری بالا که برای ایجاد آرشیو هست رو اجرا کنم. هر چند می دونم ذخیره تکراری یک مقدار در جدول کار اشتباهی هست. امیدوارم اگر کسی راه بهتری می دونه در ادامه ی این گفت و گو ذکر کنه

  • سلام دوستان.

    می خواستم یک روبات یا برنامه ای توی لاراول بنویسم که بعد از رخ دادن یک اتفاق خاص فراخوانی بشه و چند فیلد خاص رو در سایت دیگری Submit کنه؛ مشابه یک کاربر انسانی که با مشاهده هر سایت Session برای او در سرور ثبت می شود. لطفا راهنمایی کنید که از کجا باید شروع کنم. با تشکر.

  • @amir امیر جان ممنون از جوابت. ولی همان طور که قبلا به شهریار هم گفتم مشکلی در تغییر یک تاریخ خاص از میلادی به شمسی ندارم.

    تا الان تونستم با تغییر سورس reshadman/j-eloquent خطاهاش رو برطرف کنم. حالا می تونم مستقیم با استفاده از مدل post هر جایی از تاریخ شمسی post->jalali_created_at به جای مقدار ذخیره شده به میلادی اون یعنی post->created_at استفاده کنم.

    اما هم چنان برای ایجاد یک لیست به عنوان آرشیو مشکل دارم چون نمی شه فیلد jalali_created_at رو که در مدل به صورت مجازی ساختم در کوئری زیر بجای created_at قرار بدم:

    SELECT      year(created_at) year,
                monthname(created_at) month,
                COUNT(*) published
    
    FROM        `posts`
    
    GROUP BY    year, month
    
    ORDER BY    MIN(created_at) DESC

    مگر اینکه تمام کد SQL رو هم بعد از فراخوانی جدول در مدل شبیه سازی کنم. یک تابع در مدل Post به این صورت نوشتم:

    public static function archives()
        {
            return static::selectRaw(
                'year(created_at) year,
                    monthname(created_at) month,
                    count(*) published')
                ->groupBy('year', 'month')
                ->orderByRaw('min(created_at) desc')
                ->get()
                ->toArray();
        }

    ولی هم چنان نمی تونم دستور Select رو به طور کامل در مدل شبیه سازی کنم و از jalali_created_at به جای created_at استفاده کنم تا دستور سورت ارجاعی به جدول فیزیکی نداشته باشه.

    آیا امکان چنین کاری هست؟

  • @shahryarjb شهریار جان ممنونم از وقتی که گذاشتی و جواب دادی.

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

    ولی مشکل من تبدیل مستقیم تاریخ ذخیره شده به شمسی نیست و توی لاراول هم چندین پکیج خوب در گیت هاب موجود هست. اگر کد اولی رو دقت کرده باشی دارم بر اساس متغیر created_at به ترتیب سال و ماه مرتب می کنم که کد SQL اون اینجوریه:

    SELECT      year(created_at) year,
                monthname(created_at) month,
                COUNT(*) published
    
    FROM        `posts`
    
    GROUP BY    year, month
    
    ORDER BY    MIN(created_at) DESC

    امروز پکیجی از گیت هاب پیدا کردم که می گه کارش تبدیل created_at به jalali_created_at در Eloquent هست که آدرس ش reshadman/j-eloquent هست و به پکیج miladr/jalali هم نیاز داره ولی نمی دونم چرا موقع فراخوانی خطا میده که در Eloquent تعریف نشده و نیاز به ایجاد رابطه داره!

  • سلام دوستان. می خواستم لیست مطالب ذخیره شده در پایگاه داده رو از میلادی به شمسی تبدیل کنم.

    برای تاریخ میلادی اینجوری نوشتم: در کلاس مدل:

    public static function archives()
        {
            return static::selectRaw(
                'year(created_at) year,
                    monthname(created_at) month,
                    count(*) published')
                ->groupBy('year', 'month')
                ->orderByRaw('min(created_at) desc')
                ->get()
                ->toArray();
        }

    در view:

    <div class = "sidebar-module sidebar-module-inset" >
            <h4>Archives</h4>
            <ol class = "list-unstyled" >
                @if(isset($archives))
                    @foreach($archives as $stats)
                        <li>
                            <a href="{{'{{'}} asset('herbs/') }}?month={{'{{'}} $stats[ 'month' ] }}&year={{'{{'}} $stats[ 'year' ] }}">
                                {{'{{'}} $stats[ 'month' ] . ' ' . $stats[ 'year' ] }}
                            </a>
                        </li>
                    @endforeach
                @endif
            </ol>
        </div>
    

    البته پکیج Morilog\Jalali رو هم نصب کردم ولی نمی دونم تو لاراول چطور باید از تقویم جلالی در SQL استفاده کرد.

  • ١ سال پیش @jamshid به بحث نصب و استفاده از gulp جواب داد.

    چرا از دستورnpm run dev توی نود جی اس استفاده نمی کنید؟

  • ١ سال پیش @jamshid به بحث نمایش آخرین پیام در SweetAlert جواب داد.

    ممنون امیر جان. متوجه مشکل شدم. موقع تغییر locale، آرایه کش reload نمیشه وباید دستی پیغام رو مسیریابی کرد. احتمالا فکر نمی کردن یکی پیدا بشه ک بعد از تغییر locale بخواد همونجا پیامی نمایش بده!

  • ١ سال پیش @jamshid یک بحث به اسم نمایش آخرین پیام در SweetAlert درست کرد.

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

    من پکیج uxweb/sweet-alert رو نصب کردم و تمام مراحل آماده سازی ش رو هم انجام دادم. پیام هم نمایش داده می شه. ولی تنها مشکل اینه که بجای نمایش آخرین پیام که در کنترولر و قبل از ریدایرکت تنظیم کردم، نمایش بده، یک پیام قبل ترش رو از کش نمایش می ده.

    مثلا تو صفحه اصلی دو تا کلید هست ک هر کدوم یک تنظیمی رو انجام می ده. وقتی بین این دو تا کلیک می کنید و سوئیچ می کنید، اگر روی اولی کلیک کنید پیام دومی رو نشون می ده. حالا اگر روی دومی کلیک کنید، پیام کلیک اولی رو که نشون نداده بود الان با یک مرحله تاخیر نشون می ده و الا آخر.

    کلی سرچ کردم ولی چیزی پیدا نکردم. لطفا راهنمایی کنید چ طور این تاخیر یک مرحله ای رو حل کنم. ممنون.