whmcs بدون شک کاملترین و معروف ترین اسکریپت مدیریت محتوای هاستینگ می باشد که در اکثر شرکت های هاستینگ ایران نیز مورد استفاده قرار میگیرد.
در این پست ترفندهای کاربری whmcs را خدمتتون آموزش خواهیم داد.
این آموزش به همت مرکز آموزش زیرساخت برای whmcs 6.x.x تهیه شده و جدا توصیه میشود قبل از انجام موارد ذکر شده از whmcs بکاپ تهیه کنید.
با فراگیر شدن استفاده از whmcs 6.x.x تصمیم گرفتیم تا مجموعه راهکارهای خاصی را برای ورژن جدید whmcs تهیه و منتشر کنیم.
در حالت پیشفرض قالب six موجود برای whmcs و هسته آن دارای یک سری موارد است که شاید شما هم به شخصی سازی آن فکر کرده باشید.
در این مطلب آموزشی موارد زیر بررسی می شود.
1- حذف فیلدهای اختیاری در صفحه ثبت نام
2- حذف کشورهای خاص از لیست انتخاب کشور در صفحه ثبت نام
3- بستن امکان کنسل کردن سرویس توسط کاربر
4- بستن امکان ویرایش مشخصات توسط کاربر
5- تغییر یا اضافه کردن آیتم در منوی بالا
6- تغییر یا اضافه کردن آیتم در منوی وسط
7- تصحیح ترجمه های اشتباه ، متن بلند و نامفهوم
8- بررسی پورت های مورد نیاز برای عملکرد مناسب whmcs
9- فعال کردن قابلیت بازخورد یا feedback
10- اضافه کردن قابلیت captcha در صفحه ورود
11- بررسی قابلیت Application Links در مدیریت whmcs
12- بررسی قابلیت OpenID Connect در مدیریتwhmcs
1- حذف فیلدهای اختیاری در صفحه ثبت نام
همانطور که اطلاع دارید صفحه ثبت نام whmcs دارای یک سری فیلدها است که در برخی مواقع ممکن است کاربر بدلیل وجود فیلدهای با تعداد بالا از ثبت نام منصرف شود. پس بهتر است حداقل برای احترام به کاربر تا حد امکان فیلدهای مورد درخواست را کمتر کنیم تا هم کاربر راه کوتاه تری برای ثبت نام داشته باشد و هم ما بتوانیم از بازخورد آنها استفاده کنیم. فیلدهای آدرس 2 و نام شرکت بصورت پیشفرض فیلد اختیاری هستند و در صورتی که به وجود آنها نیازی نداشته باشید می توان آنها را از صفحه ثبت نام حذف کرد. موارد دیگر اطلاعات مهم و کلیدی هستند و وجود آنها اجتناب ناپذیر است.
برای اینکار فایل clientregister.tpl موجود در مسیر whmcs/templates/six را بصورت زیر ویرایش کنید.
برای حذف فیلد آدرس 2 : عبارت address2 را در فایل clientregister.tpl پیدا کرده و div مربوط به این فیلد را طبق تصویر زیر بصورت کلی حذف کنید.
برای حذف فیلد نام شرکت : عبارت companyname را در فایل clientregister.tpl پیدا کرده و div مربوط به این فیلد را طبق تصویر زیر بصورت کلی حذف کنید.
برای حذف فیلدهای دیگر بهتر است ابتدا فیلد مورد نظر را Optional (اختیاری) کرده و پس از آن مثل موارد فوق اقدام کنیم.
برای اختیاری کردن فیلدهای دیگر به مسیر Setup » General Settings تب other رفته و در مقابل Optional Client Profile Fields فیلد مورد نظر را برای Optional شدن انتخاب و Save Changes کنید.
2- حذف کشورهای خاص از لیست انتخاب کشور در صفحه ثبت نام
در هنگام ثبت نام در whmcs برای فیلد کشور امکان انتخاب کردن همه کشورها از لیست موجود فراهم است که به روش زیر می توانیم کشور یا کشورهای مورد نظر خود را از لیست موجود حذف کنیم.
وارد مسیر whmcs/includes شده و فایل countries.php را ویرایش کنید. بعد از خط حاوی عبارت countries = array لیست کشورها را مشاهده می کنید که با حذف هر کدام از آنها امکان انتخاب و مشاهده آن در صفحه ثبت نام از بین می رود. لطفا توجه داشته باشید که صرفا باید خط مربوط به کشور یا کشورهای مورد نظر را حذف کنید و به نباید به ساختار فایل کاری داشته باشید.
3- بستن امکان کنسل کردن سرویس توسط کاربر
برای اینکار به مسیر Setup » General Settings تب other رفته و تیک گزینه Show Cancellation Link را بردارید. با اینکار ابزار دسترسی کاربر به کنسل کردن سرویس برداشته می شود.
4- بستن امکان ویرایش مشخصات توسط کاربر
برای اینکار به مسیر Setup » General Settings تب other رفته و در مقابل گزینه Locked Client Profile Fields هر موردی که قصد دارید کاربر نتواند آنرا پس از ثبت نام در ناحیه کاربری خود ویرایش کند انتخاب و تیک بزنید.
5- تغییر یا اضافه کردن آیتم در منوی بالا
در whmcs 6.x.x قالب اختصاصی آن یعنی six امکان حذف و اضافه مستقیم آیتم های منو وجود ندارد و باید از قابلیت hook در این مورد استفاده کرد. برای اینکار ابتدا وارد مسیر whmcs/includes/hooks شده و یک فایل php با نام دلخواه بسازید. برای مثال topmenu.php
در ادامه طبق راهنمای موجود در سایت whmcs به آدرس http://docs.whmcs.com/Client_Area_Na…nus_Cheatsheet می توانیم هوک های مختلفی با ساختار مورد نظر تعریف کیم.
در مورد این آموزش چندین بار در فروم بحث شده است و به همین جهت روی آن بحث کاملی انجام ندادیم اما در صورتی که تمایل دارید این آموزش بصورت کامل قرار داده شود اطلاع دهید تا اقدام شود.
6- تغییر یا اضافه کردن آیتم در منوی وسط
برای اینکار باید فایل header.tpl را ویرایش کنید. اما قبل از اینکار می بایست با fontawesome آشنا شوید چون در قالب six آیکون ها با استفاده از fontawesome معرفی شده اند.
fontawesome یک سری وکتورهای تجمیع شده و مقیاس پذیر است که بصورت فونت در css معرفی شده و با ID های آن بکار برده می شود.
آدرس دسترسی و مشاهده آیکن های موجود برای fontawesome : http://fontawesome.io/icons
در حالت پیشفرض منوی وسط قالب six دارای 4 لینک است که دارای خصوصیات زیر هستند :
دکمه btnBuyADomain با شناسه آیکن fa fa-globe برای fontawesome با لینک domainchecker.php
دکمه btnOrderHosting با شناسه آیکن fa fa-hdd-o برای fontawesome با لینک cart.php
دکمه btnMakePayment با شناسه آیکن fa fa-credit-card برای fontawesome با لینک clientarea.php
دکمه btnGetSupport با شناسه آیکن fa fa-envelope-o برای fontawesome با لینک submitticket.php
با تغییر آی دی fontawesome موجود برای هر دکمه در فایل header.tpl امکان تغییر آیکن وجود خواهد داشت.
با تغییر آدرس برای هر دکمه امکان تغییر آدرس برای هر دکمه مقدور خواهد بود.
با تغییر شناسه دکمه هم می توان مقدار آنرا تغییر داد اما باید توجه داشته باشید که می بایست یک شناسه جدید تعریف و آنرا در custom.css لحاظ کنید.
با تغییر ترجمه هم می توانید عنوان موجود را به مقدار دلخواه تغییر دهید.
7- تصحیح ترجمه های اشتباه ، متن بلند و نامفهوم
در whmcs 6 اشکالات و اشتباهات ترجمه بسیاری وجود دارد و برخی از موارد حتی ترجمه هم نشده اند و می بایست این موارد را تصحیح کرد. با اعمال تحریم whmcs بر ضد کاربران ایرانی نیز انتظار می رود در نسخه های آینده زبان فارسی کلا حذف شود و یا توسعه آن در ترجمه متوقف شود. در هر صورت اضافه کردن زبان و یا ویرایش ترجمه قابل انجام بوده و مشکل خاصی وجود ندارد. مسیر فایل های زبان whmcs برای بخش کاربری در مسیر whmcs/lang است که می توانیم موارد را اضافه ، حذف و ویرایش کنیم. توجه داشته باشید که در فایل های زبان برای هر کلمه ، عنوان یا عبارت معادل در نظر گرفته شده و ممکن است یک ترجمه در چند بخش تکرار و مقدار آن فراخوانی شده باشد. پس بهتر است زمانی که قصد ویرایش یک ترجمه معادل را داریم موضوع اینکه در کجا این مقدار تکرار شده را مورد توجه قرار دهیم و در صورت نیاز به ترجمه با عبارت منحصر به فرد می بایست یک معادل دیگر با نام جدید در فایل زبان ایجاد و ترجمه آنرا قرار دهیم و در فایل های tpl قالب مقدار خواسته شده را به مقدار جدید تغییر دهیم.
8- بررسی پورت های مورد نیاز برای عملکرد مناسب whmcs
در این مورد دو کنترل cPanel و Directadmin مورد بررسی قرار گرفته می شود.
برای مثال اگر whmcs بر روی سروری که cPanel/WHM بر روی آن وجود دارد نصب شده باشد و اگر قصد ارائه سرویس دایرکت ادمین ، پلسک و … داشته باشیم برای امکان ساخت و تحویل اتوماتیک سرویس می بایست یک سری پورت ها را داخل سرور باز کنیم تا امکان اتصال whmcs به سرور مورد نظر برای ساخت ، انسداد و یا حذف فراهم شود. برای مثال پورت 2222 برای دایرکت ادمین (در صورت عدم تغییر پورت پیشفرض) و پورت 8443 برای پلسک و …
معمولا برای امکان اتصال whmcs از روش غیر اصولی باز کردن پورت استفاده می شود که بهتر است از روش اصولی استفاده کنیم. یعنی بجای اینکه پورتی را روی سرور باز کنیم روی پورت مورد نظر آی پی مقصد را معرفی و نوع اتصال آنرا مشخص کنیم.
مثال 1 : whmcs مورد استفاده بر روی سروری با کنترل پنل دایرکت ادمین قرار دارد. سروری هم در اختیار داریم که برای کاربران با کنترل cPanel/WHM تهیه و به whmcs معرفی کرده ایم. در حالت عادی امکان اتصال whmcs به سرور ذکر شده با کنترل پنل cPanel/WHM وجود ندارد و باید پورت های 2086 یا 2087 ( بسته به انتخاب نوع اتصال در معرفی سرور ) از داخل به بیرون باز شود. چون whmcs از سرور میزبان آن به سرور دیگری متصل خواهد خواهد شد و ارتباط بصورت Outcoming است. کار بهتری که در اینجا میتوان انجام داد این است که برای مثال پورت 2087 بصورت Outcoming و نوع اتصال TCP در فایروال سرور تعریف شود و نه بصورت کلی. چون به دسترسی بیشتر از این مقدار نیازی نداریم.
مثال 2 : پورت 43 برای انجام عمل Whois مورد نیاز است و این اتصال از نوع Outcoming می باشد. یعنی whmcs برای انجام عمل whois یک درخواست از سرور به بیرون ارسال می کند. پس بهتر است پورت 43 از داخل سرور به بیرون ( Outcoming ) و نوع اتصال udp یا tcp باز شود. اگر آی پی های مورد اتصال برای whois را هم داشته باشیم می توانیم با آی پی نیز تعریف کنیم.
اگر سرور میزبان مورد استفاده برای whmcs تنها در اختیار خودمان است حتی میتوان پورتهای اساسی را هم در فایروال بست و تنها با IP ، آنها را Allow (مجاز) کرد که تاثیر بسیار مناسبی بر روی امنیت خواهد داشت.
سلام!
ممنون بابت پست خوبتون!
من نصب کردم حالا قصد دارم اون گزینه ها و متن های بین دو ردیف بالا رو حذف کنم و به جاش تصویر بزارم . اونجایی که نوشته “برای یافتن بهترین نام همینک جستجو کنید…” رو میگم که برای ثبت دامنه هست!
ممنون میشم جواب بنده رو بدین .مرسی
سلام
فیلدهای اضافی که برای تیکت ها تعریف می کنیم رو چطور جابجا کنیم؟
هرچی اضافه میکنم زیر قسمت اتچ شدن فایل میاد
من یه قالب دیگه دارم ولی هوک استفاده میکنم جواب نمیده چکار کنم؟
درود احتمالا قالبتون قدیمی میباشد و تگ های جدید درون قالب استفاده نشده است. پیشنهاد میکنیم از قالب های جدید whmcs استفاده کنید