از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
پنج سال پیش منتشر شده
تعداد بازدید: 382
کد پروژه: 167384
شرح پروژه
من در سایت وردپرسی خودم از یک افزونه برای برگزاری کوئیز و آزمون آنلاین استفاده میکنم.
اطلاعات مربوط به نتیجه هر آزمون در یک جدول در دیتابیس ذخیره میشود.
این اطلاعات شامل موارد زیر هستند:
result_id: شناسه نتیجه آزمون. به ازای هر بار که یک کاربر در یک آزمون شرکت کند، یک رکورد در جدول ایجاد میشود و یک عدد منحصر به فرد در result_id قرار میگیرد.
quiz_id: کد شناسه هر آزمون. مثلا ممکن است ما در سایتمان سه آزمون مختلف برگزار کنیم. هر کدام از این آزمونها دارای یک کد هستند که در quiz_id قرار میگیرد.
quiz_name: نام هر آزمون.
correct_score: درصد پاسخهای صحیح فرد شرکت کننده در آزمون
user: شناسه وردپرسی شرکت کننده در آزمون. این مقدار برابر با همان فیلد id در جدول users وردپرس است.
time_taken: تاریخ شرکت در آزمون.
همچنین فیلدهای دیگری مربوط به مشخصات شرکت کننده مثل نام و... در این جدول وجود دارند.
این افزونه به ما کمک میکند تقریبا هر نوع آزمونی را به صورت آنلاین برگزار کنیم، اما قابلیت صدور مدرک را ندارد.
هدف ما اضافه کردن این قابلیت به این افزونه است؛ اما هدف این پروژه، طراحی یک مدرک آنلاین نیست.
ما فقط نیاز به دو شورتکد داریم که به کمک آن میتوانیم خودمان مدرک را طراحی کنیم.
شورتکدهای مورد نیاز به صورت زیر هستند:
شورتکد اول: ایجاد لینک مدرک
این شورتکد، لینک یا URL مدرک آنلاین را برای کاربری که لاگین کرده است ایجاد میکند. این شورتکد فقط در حالتی که کاربر لاگین کرده است کار میکند چون نیاز به idی وردپرسی کاربر لاگین شده (در جدول users) دارد.
مثالی از این شورتکد به صورت زیر است:
[cert_link quiz_id='3']
خروجی مثال بالا باید لینک مدرک آزمونی با شناسه ۳ برای کاربری که لاگین کرده است باشد. این لینک به صورت زیر باید باشد:
https://faradandish.com/certificate/343
در لینک بالا، عدد ۳۴۳ همان result_id مربوط به نتیجه آزمون است.
اما result_id برای کاربری که لاگین کرده است چگونه به دست میآید:
توجه داشته باشید که یک کاربر ممکن در چند آزمون شرکت کرده باشد، همچنین ممکن است در هر آزمون چند بار شرکت کرده باشد. به ازای هر بار شرکت در هر آزمون، یک رکورد با یک result_id منحصر به فرد در جدول ذخیره شده است.
برای ایجاد لینک بالا باید فیلترهایی به صورت زیر انجام شوند. اولا بر مبنای idی وردپرسی فرد لاگین شده، فیلتری روی فیلد user انجام شود. دوما بر مبنای quiz_id آزمون مورد نظر که در شورتکد وارد شده است فیلتری روی فیلد quiz_id انجام شود. در این مرحله، آنچه در جدول باقی میماند نتایج آزمونهایی است که به دلیل تکرار یک آزمون مشخص ایجاد شده است.
نهایتا از میان این نتایج، رکوردی که دارای بیشترین correct_score است باید فیلتر شود و result_idی آن در ساخت لینک استفاده شود.
توجه: اگر بعد از اعمال فیلتر quiz_id رکوردی یافت نشد (یعنی کاربر هنوز در آزمون مورد نظر شرکت نکرده است) خروجی شورتکد به جای URL باید پیام زیر باشد:
"شما هنوز در آزمون این دوره شرکت نکردهاید."
شورتکد دوم: استخراج فیلدهای جدول
به کمک این شورتکد، میتوان هر فیلد از جدول را به ازای یک result_idی مشخص استخراج کرد. این شورتکد در حالت لاگین شده و لاگین نشده به طور یکسان عمل میکند.
این شورتکد، فقط در URL مخصوص نمایش مدرک که توسط شورتکد قبلی ایجاد شد کار میکند. شناسه انتهای URL که همان result_id است به عنوان فیلتر استفاده میشود. در این حالت یک رکورد از جدول فیلتر میشود سپس هر کدام از ستونهای جدول را میتوان به کمک مقدار field استخراج کرد.
مثالی از این شورتکد به صورت زیر است:
[cert_field field='quiz_name' lang='fa']
شورتکد مثال بالا، نام آزمون را به انگلیسی بر میگرداند.
توجه کنید که این شورتکد در URL مخصوص مدرک که توسط شورتکد اول ایجاد شد به کار میرود از از شناسه یکتای انتهای URL که همان result_id بود برای فیلتر کردن جدول استفاده میکند.
توجه داشته باشید که lang فقط برای دو فیلد کاربرد دارد: فیلد نام آزمون یا quiz_name و فیلد تاریخ شرکت در آزمون یا time_taken.
در فیلد نام آزمون، هر دو نام فارسی و انگلیسی وجود دارد. این دو نام با علامت - از هم جدا شدهاند و با توجه به lang باید یکی از دو نام استخراج شود.
در فیلد تاریخ شرکت در آزمون، تاریخ میلادی وجود دارد. اگر lang='en' باشد باید تاریخ به صورت زیر استخراج شود:
December 30, 2020
اگر lang='fa' باشد باید تاریخ به صورت زیر استخراج شود:
۲۳ آذر ۱۳۹۹
ما انتظار داریم این دو شورتکد از طریق ساخت یک افزونه به وردپرس اضافه شوند.
مستندات مربوط به افزونه برگزاری کوئیز را هم در لینک زیر میتوانید ببینید:
https://quizandsurveymaster.com/docs/
با تشکر
مهارت ها و تخصص های مورد نیاز
مبلغ پروژه
450,000 تومان
مهلت برای انجام
3روز
وضعیت مناقصه
انجام شده
درباره کارفرما
عضویت شش سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
پنج سال پیش منتشر شده
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار