راهنمای کامل DirectAdmin API و سفارشی‌سازی Workflow: آیتم‌های سفارشی، ویجت‌ها، اسکین‌ها و ساخت پکیج‌های اختصاصی

این مقاله یک راهنمای جامع برای استفاده از DirectAdmin API و ابزارهای سفارشی‌سازی DirectAdmin است. شامل معرفی API، ساخت آیتم‌های سفارشی برای پکیج‌ها و دامنه‌ها، محدودسازی ری‌استور فقط برای ادمین، کنترل ویجت‌ها، سفارشی‌سازی اسکین‌ها، مدیریت سطح دسترسی پلاگین‌ها و ترکیب این قابلیت‌ها برای ساخت پکیج‌های اختصاصی مانند "فقط ایمیل".

DirectAdmin API, custom package itemsfeature setswidget control, skin customization, email-only package

~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴

1. DirectAdmin API چیست؟


DirectAdmin API ابزاری است که به شما اجازه می‌دهد اسکریپت‌های خودتان—چه روی همان سرور و چه روی سرورهای دیگر—به DirectAdmin متصل شوند و عملیات مختلف را انجام دهند.


API دقیقاً مانند یک مرورگر عمل می‌کند و داده‌ها را همان‌طور ارسال می‌کند، اما خروجی CMD_API ساخت‌یافته و قابل پردازش است.


نکته مهم: همه CMD_APIها در api.html لیست نشده‌اند؛ باید در سیستم نسخه‌ها جستجو کنید.


---

2. آیتم‌های سفارشی پکیج و دامنه


با Custom Domain/Package Items می‌توانید گزینه‌های جدیدی به پکیج‌ها یا دامنه‌ها اضافه کنید. این گزینه‌ها می‌توانند:


  • text
  • checkbox
  • listbox
  • و…

مقادیر ذخیره می‌شوند در:


  • user.conf و reseller.conf برای پکیج‌ها
  • domain.com.conf برای دامنه‌ها

می‌توانید با هوک‌های زیر براساس این مقادیر عملیات خودکار انجام دهید:


  • user_create_post.sh
  • user_modify_post.sh
  • domain_create_post.sh

---

3. محدودسازی ری‌استور آیتم‌های سفارشی فقط برای Admin


در فایل:


/usr/local/directadmin/data/admin/custom_domain_items.conf

می‌توانید به هر آیتم اضافه کنید:


&admin_restore_only=yes

این باعث می‌شود هنگام ری‌استور:


  • اگر ری‌استور از سطح Admin باشد → آیتم ری‌استور می‌شود
  • اگر از سطح User یا Reseller باشد → نادیده گرفته می‌شود

---

4. ویجت‌های سفارشی برای هر کاربر یا ریسلر


در فایل‌های user.conf و reseller.conf می‌توانید تعیین کنید چه ویجت‌هایی نمایش داده شوند.


گزینه‌ها:


  • widgets=ON → همه ویجت‌ها فعال
  • widgets=OFF → همه ویجت‌ها غیرفعال
  • widgets=ON:WGT_DB|WGT_PLUGINS_HELLO_WORLD → فقط این ویجت‌ها فعال
  • widgets=OFF:WGT_DB → فقط این ویجت غیرفعال

این قابلیت فعلاً در UI نیست، اما می‌توان آن را با Custom Package Items کنترل کرد.


---

5. سفارشی‌سازی اسکین‌ها


5.1 سفارشی‌سازی Evolution از طریق پنل


از مسیر:


Customize Evolution Skin

تمام تغییرات در مسیر زیر ذخیره می‌شود:


/usr/local/directadmin/data/users/{username}/skin_customizations/evolution

5.2 ساخت skin.conf سفارشی


برای override کردن تنظیمات:


/usr/local/directadmin/data/users/CREATOR/skin_customizations/evolution/skin.conf

مثال: محدود کردن ویجت‌ها:


user_widgets=WGT_DB|WGT_EMAIL

5.3 ساخت اسکین اختصاصی


cd /usr/local/directadmin/data/skins
cp -Rp enhanced yourskin

اسکین‌ها از PHP/Perl و سیستم if-else پشتیبانی می‌کنند.


---

6. گزینه‌های عمومی DirectAdmin


DirectAdmin صدها گزینه در directadmin.conf دارد. همیشه قبل از تغییر، مقدار قبلی را یادداشت کنید تا در صورت نیاز بتوانید آن را برگردانید.


---

7. ساخت پکیج اختصاصی “فقط ایمیل”


در این مثال، با ترکیب چند قابلیت DirectAdmin یک پکیج Email-Only می‌سازیم.


7.1 ساخت آیتم سفارشی پکیج


فایل:


/usr/local/directadmin/data/admin/custom_package_items.conf

محتوا:


account_allow=type=listbox&item1txt=All Features&item1val=all&item2txt=E-Mail Only&item2val=email&string=Select Featureset&desc=Ability to select core features&default=all

7.2 ساخت هوک user_create_post.sh


#!/bin/sh
CA=/usr/local/directadmin/data/users/$username/commands.allow
if [ "${account_allow}" = "email" ]; then
      cp -f /root/allows/email.list $CA
fi
if [ "${account_allow}" = "" ] || [ "${account_allow}" = "all" ]; then
       rm -f $CA
fi
exit 0;

قابل اجرا:


chmod 755 /usr/local/directadmin/scripts/custom/user_create_post.sh

7.3 ساخت فایل email.list


این فایل شامل تمام CMDهای مربوط به ایمیل است:


CMD_EMAIL_POP
CMD_EMAIL_FORWARDER
CMD_EMAIL_LIST
CMD_EMAIL_AUTORESPONDER
CMD_EMAIL_VACATION
CMD_EMAIL_USAGE
CMD_WEBMAIL_LOGIN
CMD_PASSWD
CMD_LOGIN
CMD_LOGOUT
CMD_USER_STATS
CMD_USER_HISTORY
CMD_TICKET
CMD_TICKET_CREATE
CMD_WIDGET
...

7.4 فعال‌سازی برای user_modify_post.sh


cd /usr/local/directadmin/scripts/custom
ln -s user_create_post.sh user_modify_post.sh

اکنون پکیج “فقط ایمیل” کاملاً عملیاتی است.


نوشته و پژوهش شده توسط دکتر شاهین صیامی