در اولوس هر دورهی کنگره یک «سایت» است، و یک سایت میتواند در چهار حالت زندگی کند: سوارشده روی مسیر سایت انجمن، روی زیردامنهی خودش، روی دامنهی اختصاصی، یا بهعنوان کنگرهای مستقل که اصلاً به انجمنی وصل نیست.
نکته این است که هر چهار حالت یک ساختار داده دارند. سایتِ سوارشده، مسیر نصب و شناسهی سایتِ والدش را روی همان سند خودش نگه میدارد. جابهجا کردن کنگره از مسیر انجمن به دامنهی مستقل یعنی خالی کردن آن دو فیلد و افزودن یک ردیف دامنه — نه انتقال محتوا، نه ساخت دوباره، نه خروجی گرفتن و وارد کردن.
تشخیص در زمان درخواست انجام میشود: هاست به دامنه، دامنه به سایت، و بعد مسیر با سایتهای سوارشده سنجیده میشود. طولانیترین مسیر نصب برنده است، تا آدرسی مثل مسیرِ برنامهی کنگره به خود کنگره برسد و نه به سایت انجمن.
زبان هم بعد از همین مرحله خوانده میشود، نه قبلش. یک کنگره میتواند مجموعهزبانهای متفاوتی با انجمن والدش داشته باشد، پس پیشوند زبان باید مقابل همان سایتی سنجیده شود که واقعاً صاحب مسیر است. زبان پیشفرض هر سایت هم پیشوند ندارد؛ اگر داشت، هر صفحه با دو آدرس در دسترس بود و رتبهی جستوجوی خودش را نصف میکرد.
همهی اینها یک قاعدهی سختگیرانه به همراه دارد: هیچ لینک دستی. یک نشانی ثابتِ نوشتهشده داخل قالب، وقتی سایت روی مسیر سوار است، بیصدا به بخش متناظر در سایت انجمن میرود — با کد ۲۰۰، بدون خطا، و تنها نشانهاش بازدیدکنندهای است که سر از جای اشتباه درآورده. به همین دلیل همهی لینکها از یک تابع میگذرند که پیشوند مسیر و پیشوند زبان را خودش میگذارد.
و یک لایهی آخر: نقشها دو سطح دارند. میشود کسی را فقط روی یک کنگره «مدیر» کرد. بدون این سطح دوم، سپردن یک کنگره به دبیرخانهاش یعنی سپردن کل انجمن.
- کنگره
- معماری