نوشتن پسوند Flarum: ساخت یک زمینه سفارشی

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

در این آموزش ، ما مراحل اضافه کردن a را طی خواهیم کرد زمینه سفارشی به یک حساب کاربری این قسمت سفارشی فقط توسط کاربر قابل تنظیم از صفحه پروفایل کاربر است ، همچنین توسط مدیر قابل ویرایش دستی است. منبع کامل و نهایی این برنامه افزودنی است در GitHub.

🙏 با تشکر فراوان از askvortsov برای بررسی و کمک در انجام این راه درست Right.

آنچه ما اضافه می کنیم

ما به کاربران اجازه خواهیم داد آدرس Web3 خود را به نمایه خود اضافه کنند. آدرس Web3 هویت رمزنگاری کاربر در اکوسیستم Web3 است – قسمت عمومی یک کلید اصلی خصوصی-خصوصی (مانند SSH) که نمایانگر حساب سازگار با بلاکچین است.

توجه ℹ: اکوسیستم Web3 اینترنت جدیدی از میزبانی غیرمتمرکز ، داده های متعلق به خود و ارتباطات مقاوم در برابر سانسور است. لطفاً برای یک آغازگر در Web3 مراجعه کنید این صحبت 15 دقیقه ای در FOSDEM.

حتی اگر به Web3 علاقه ندارید ، این آموزش مفید خواهد بود. این قسمت اول آموزش نحوه ساخت یک زمینه سفارشی برای کاربر را به شما نشان می دهد و قسمت دوم آدرس Web3 واقعی را به روشی امن رمزنگاری شده اضافه می کند.

پیش نیازها

فرض می کنیم شما داشته باشید NodeJS نصب شده است و در یک نسخه به اندازه کافی اخیر (12/16+ خوب است) ، و آهنگساز در دسترس جهانی است. برای سلامتی شما ، ما نیز استفاده از را توصیه می کنیم نخ به جای npm. PHP ، MySQL و موارد دیگر نیازهای Flarum فرض می شود که به درستی وجود داشته و در حال اجرا هستند.

در مثال های زیر ، ما نسخه محلی Flarum را در میزبانی می کنیم ubikforum.test، که برخی از عکسهای صفحه نمایش ممکن است منعکس کنند.

لطفاً همچنین از درج انجمن خود اطمینان حاصل کنید debug حالت با تنظیم مقدار مناسب در config.php:

<?php return array(
    'debug' => true,
    'database' => // ...

برنامه افزودنی جدید

با اجرای برنامه افزودنی جدیدی را شروع می کنیم دوستان فلاروم جادوگر boilerplate در داخل یک تازه ایجاد شده packages پوشه در پوشه اصلی نصب محلی Flarum:

# cd into your flarum folder
mkdir packages & cd packages
npx @friendsofflarum/create-flarum-extension web3address

مهم …: به یاد داشته باشید که بهترین روشهای استقرار را دنبال کنید و موارد زیر را نادیده بگیرید packages اگر این پوشه Flarum را به یک repo فشار می دهید که از آن نسخه زنده خود را مستقر می کنید ، پوشه کنید.

ورودی های ارائه شده توسط جادوگر را پر کنید:

✔ Admin CSS & JS … no
✔ Forum CSS & JS … yes
✔ Locale … yes
✔ Javascript … yes
✔ CSS … yes

توجه ℹ: می خواهید تنظیم کنید Admin CSS & JS به yes اگر می خواهید با تنظیمات و / یا مجوزها کار کنید ، مانند اجازه دادن به فقط بعضی از افراد اجازه اصلاح آنها را بدهد web3address صفت یا مشابه آن در این صورت نیازی به آن نداریم.

به خاطر داشته باشید که ، به دلیل یک اشکال، ژنراتور از اعداد موجود در نام بسته یا فضای نام پشتیبانی نمی کند. به این ترتیب ، بهتر است بعد از اتمام تولید ، این مقادیر را تغییر نام دهید. (به عنوان مثال ، شما نمی توانید استفاده کنید web3address به عنوان نام ، اما blockchain خوب است.)

ما همچنین باید JavaScript را کامپایل کنیم. بهتر است آن را در حالت تماشا بگذارید تا به طور خودکار در تغییرات پرونده مجدداً کامپایل شود و بتوانید به سرعت تغییرات را هنگام توسعه بررسی کنید:

cd packages/web3address
cd js
yarn && yarn dev

توجه ℹ: شما می خواهید این را در یک زبانه ترمینال اجرا کنید و بقیه دستورات را در یک تب دیگر اجرا کنید. dev دستور یک کار همیشه روشن را فعال می کند که جلسه ترمینال فعلی را اشغال می کند.

سپس ما نصب پسوند تازه ایجاد شده ما:

composer config repositories.0 path "packages/*"
composer require swader/blockchain @dev

خط اول به آهنگساز می گوید که باید به دنبال بسته هایی باشد که ما در آن نصب می کنیم packages پوشه فرعی ، و اگر آنها را پیدا نکرد ، به طور پیش فرض در Packagist.org.

خط دوم پسوند تازه ایجاد شده ما را نصب می کند. پس از ورود ، می توانیم رابط مدیر انجمن خود را بارگیری کنیم ، پسوند را فعال کرده و کنسول موجود در قسمت جلوی فروم را برای یافتن پیام “Hello world” بررسی کنیم. اگر آنجا باشد ، پسوند جدید کار می کند.

افزودن پسوند: آدرس web3 ، تأیید ، BBCode را اضافه کنید

سلام ، پیام انجمن در کنسول توسعه دهنده

در حال گسترش

هنگام ساخت برنامه های افزودنی ، همیشه هستید گسترش دادن Flarum خام زیر. اینها پسوندها در برنامه افزودنی شما تعریف شده است extend.php پرونده با متنوع توسعه دهنده ها به عنوان “دسته” از نقاط احتمالی افزونه ، می توانید در آن قرار بگیرید. بعداً این پرونده را اصلاح خواهیم کرد.

به خاطر داشته باشید که این انجمن خود دارای یک انجمن است extend.php پرونده را نیز در پوشه اصلی آن قرار دهید. این پرونده برای پسوندهای جزئی و سطح ریشه ای که کاربران شما می توانند بدون نیاز به نوشتن پسوند کامل درمورد عملکرد ، از طریق Flarum انجام دهند ، مفید است. اگر می خواهید آنچه را که ساخته اید با دیگران به اشتراک بگذارید یا آن را در نسخه های دیگر Flarum توزیع کنید ، پسوند راهی است که باید دنبال کنید.

extend.php پرونده در حال حاضر به این شکل است:

<?php
namespace SwaderWeb3Address;

use FlarumExtend;

return [
    (new ExtendFrontend('forum'))
        ->js(__DIR__ . '/js/dist/forum.js')
        ->css(__DIR__ . '/resources/less/forum.less'),

    new ExtendLocales(__DIR__ . '/resources/locale')
];

اگر شما در حال گسترش بودید admin رابط کاربری نیز وجود دارد ، دیگری وجود دارد Frontend ارجاع بلوک admin بجای forum. در حال حاضر ، ما فقط JS و سبک های جدیدی را به قسمت جلوی فروم اضافه می کنیم و به صورت اختیاری ، عناصر UI پسوند خود را بومی سازی می کنیم ، بنابراین این قسمت هایی هستند که توسعه می یابند.

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

ادامه مطالعه نوشتن یک افزونه Flarum: ساخت یک زمینه سفارشی در SitePoint.