‫راهنمای موتور (نسخه سوم)

این متن در حال تکمیل است...

راهنمای نصب و راه‌اندازی

راهنمای نصب موتور

وب‌سایت موتور یک اسکریپت رایگان است و از طریق آن می‌توان به سادگی یک سایت کامل را برپا کرد.
وب‌سایت موتور سبک، کم توقع و کم مصرف است و برای راه‌اندازی سایت در هر سرویس میزبانی که از حداقل امکانات برخوردار باشد، قابل استفاده است.
در حال حاضر موتور، انتشار مطالب، دریافت دیدگاه، دریافت آرا ذیل مطالب و دیدگاه‌ها، از طریق موتور امکان پذیر است.
موتور چند کاربره بوده و سه سطح دسترسی،‌ مدیر، سردبیر و نویسنده در آن در نظر گرفته شده است.
موتور قابل جابجایی یا پرتابل است. یعنی برای برپا کردن یا انتقال سایت تنها کپی کردن فایل‌های آن کافی است و اقدام بیشتری نیاز نیست. در واقع تمام محتوا، مطالب و تنظیمات سایت در فایل‌های سایت ذخیره می‌شود. قابل توجه است که موتور برای نگهداری داده‌ها، نیازی به قابلیت MySQL ندارد و از فن‌آوری SQLite استفاده می‌کند.
همچنین موتور قابلیت فروشگاهی هم دارد و به طور پیش‌فرض از 10 سرویس درگاه پرداخت پشتیبانی می‌کند.

راه‌اندازی موتور

وب‌سایت موتور تنها با یک اسکریپت که حدوداً 120 کیلوبایت حجم دارد کار می‌کند.
بنابراین برای نصب موتور کافی است تا این اسکریپت را با نام index.php در پوشه اصلی دامنه ذخیره شود.

در حال حاضر آخرین نسخه موتور با شماره 3.0 مشخص شده است و از اینجا قابل دریافت است.


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

اولین کاری که برای نمایش سایت ضروری است، نصب یک پوسته یا قالب است.
در بخش پوسته ناحیه مدیریت موتور، امکان انتخاب یا بارگذاری قالب در نظر گرفته شده است.

به روز رسانی موتور

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

از آنجایی که وب‌سایت موتور تنها با یک اسکریپت کار می‌کند، فرآیند به روز رسانی فقط جایگزین کردن فایل index.php می‌باشد.
به روز رسانی خودکار در ناحیه کاربری مدیر سایت در نظر گرفته شده است.
با تأیید مدیر سایت، موتور فایل قبلی index.php را به پوشه trash با پسوند del. انتقال داده و فایل جدید را از مخزن وب‌سایت موتور دریافت و روی سایت جایگزین می‌کند. همچنین برای به روز رسانی دستی هم می‌توان از خارج از ناحیه کاربری موتور، مثلاً از طریق دسترسی اف‌تی‌پی یا مدیریت پرونده‌ای که میزبان دامنه در اختیار مدیر سایت گذاشته است، به پوشه دامنه مراجعه کره و فایل index.php موتور را که حدوداً 120 کیلوبایت حجم دارد را حذف کرده و سپس فایل جدید را به جای آن بارگذاری کرد.

نصب پوسته

برای نصب یک پوسته سازگار با موتور،‌ تنها کافی است تا فایل‌های پوسته روی سایت و در پوشه‌ با نام themes بارگذاری شود.
پس از بارگذاری پوسته، برای فعال سازی آن، لازم است تا از طریق مدیریت سایت، بخش «پوسته» اقدام شود.
با تغییر پوسته، محتوا و مطالب سایت دست‌نخورده باقی می‌ماند و فقط ظاهر سایت مطابق تنظیملت پوسته انتخابی تغییر خواهد کرد.
تنظیمات هر پوسته در فایل pages/theme.json و درون پوشه حاوی پوسته ذخیره می‌شود. بنابراین با تغییر پوسته‌، تنظیمات آن حفظ شده و از دست نخواهد رفت. یعنی با فعال کردن هر پوسته تنظیمات آن هم مطابق وضعیت قبل آن فعال خواهد شد.
هر پوسته شامل حداقل فایل‌های index.html category.html و post.html است که در پوشه pages ذخیره می‌شود و به عنوان الگو برای نمایش صفحات سایت به کار می‌رود.

نصب افزونه

برای نصب یک افزونه سازگار با موتور،‌ تنها کافی است تا فایل‌های افزونه روی سایت و در پوشه‌ با نام plugins بارگذاری شود.
پس از بارگذاری پوسته، لازم است تا به مدیریت سایت، وارد شوید تا افزونه فعال شود.

هر افزونه شامل دو فایل ضروری script.js و index.php است که در پوشه‌ای که به نام افزونه می‌باشد، ذخیره می‌شود.
برای نمونه plugins/plug1/index.php
عملکرد فایل script.js افزونه، مربوط به ناحیه مدیریت است و می‌تواند بخشی را به آن اضافه کند. فایل index.php روی سرور اجرا می‌شود و می‌تواند در تمام صفحات یا ناحیه مدیریت سایت مؤثر باشد.

راهنمای ناحیه مدیریت

نام سایت

نام و عنوان اصلی سایت که در پوسته به نمایش در می‌آید، در ردیف «نام سایت» تنظیم می‌شود.
نام سایت در فایل تنظیمات یعنی data/setting.json و در ردیف sitename ذخیره می‌شود.
برای فراخوانی نام سایت در پوسته، عبارت %sitename تعریف شده است. همچنین %siteurl به نشانی اصلی سایت و %sitelink هم برای پیوند سایت اختصاص یافته است.

عنوان سایت برای موتورهای جستجو

عنوان سایت برای موتورهای جستجو یا عنوان متا، در صفحات نتیجه موتور جستجو و زبانه برگه‌ مرورگر نمایش داده می‌شود. در صورت خالی گذاشتن این ردیف، «نام سایت» مورد استفاده قرار خواهد گرفت.

توضیح سایت برای موتورهای جستجو

در صورتی که کاربران با استفاده از موتورهای جستجوگر به سایت بر بخورند، توضیحی که در زیر نام سایت به آنها نمایش داده می‌شود، متنی است که در این ردیف به عنوان توضیح سایت تنظیم شده است.
بهتر است این متن در یکی دو جمله و بیانگر موضوع کلی سایت باشد و از ۱۶۰ حرف بیشتر نباشد.

کلید‌واژه‌های سایت برای موتورهای جستجو

کلیدواژه‌های سایت برای موتورهای جستجو یا کلمات کلیدی متا، موضوعات کلی سایت را به خزنده موتور جستجو معرفی می‌کند.
توصیه می‌شود که حداکثر از ۱۰ کلمه کلیدی مرتبط با مضمون کلی سایت که فکر می‌کنید کاربران بیشتر آنها را در اینترنت جستجو می‌کنند، استفاده نمایید.
بهتر است کلمات کلیدی را با ویرگول انگلیسی (,) بدون هیچ فاصله‌ای از هم جدا نمایید. به صورت «کلمه اول, عبارت چندکلمه‌ای دوم, عبارت سوم» .
متناسب با موضوعات سایت، می‌توان کلیدواژه تعیین کرد. البته نباید خیلی در این موارد وسواس داشته باشید. خزنده گوگل یا بینگ مطابق الگوریتم خودشان عمل می‌کنند و الزاماً همه کلیدواژه‌های ما را نمی‌پذیرند؛ عوامل و عناصر زیادی را در نظر می‌گیرند.
با تنظیم کلیدواژه‌ها تنها به گوگل می‌گویید که مدیر سایت به این موارد توجه بیشتری داشته است.

نشانی بخش مدیریت سایت

برای اینکه در مرورگر به مدیریت سایت مراجعه کنید، ‌لازم است تا نشانی بخش مدیریت سایت اطلاع داشته باشید.
این نشانی به طور پیش‌فرض برابر ctrl تعیین شده است یعنی برای مثال جهت دسترسی به بخش مدیریت سایت example.com به طور پیش‌فرض لازم است تا به نشانی example.com/ctrl مراجعه شود.
از قابلیت‌های موتور این است که ناحیه مدیریت آن در نشانی ثابتی محدود نشده است.
این امکان وجود دارد تا عبارت دلخواهی را برای نشانی بخش مدیریت سایت تنظیم کرد. در تنظیم این ردیف، حروف بزرگ و کوچک یکسان نیست.
همچنین کاربرد علامت / مجاز است. مثل users/login
نشانی بخش مدیریت سایت در فایل تنظیمات یعنی data/setting.json و در ردیف login_url ذخیره می‌شود. ویرایش مستقیم این فایل بلامانع است و در صورت بروز مشکل یا نیاز به بازنشانی تنظیم نشانی مدیریت سایت می‌توان این فایل را به روز کرد.

شناسه مطلب

به هر مطلب، دسته و برچسب یک شماره یکتا اختصاص می‌یابد.
برای فراخوانی محتوای سایت، علاوه بر «نشانی یکتا»، نشانی کوتاه تنها با «شناسه مطلب» نیز قابل استفاده است.

برای مثال، اگر شناسه صفحه‌ای با عنوان «مطلب نمونه» برابر 123 باشد، برای مشاهده آن نشانی کوتاه و نشانی کامل به صورت زیر است.
نشانی کوتاه به طور خودکار به نشانی کامل هدایت می‌شود.

example.com/123
example.com/مطلب-نمونه

زمان ایجاد مطلب

همزمان با ذخیره یک مطلب، دسته یا برچسب، زمان سرور با قالب میلادی در ستون post_created از جدول پایگاه posts.sqlite ذخیره می‌شود.
برای فراخوانی این داده در پوسته سایت علاوه بر %created عبارت‌های %date، %pdate و %htime به ترتیب برای تاریخ میلادی، تاریخ شمسی و زمان نسبی تعریف شده است.

زمان ویرایش مطلب

با هر بار ذخیره یک مطلب، دسته یا برچسب، زمان سرور با قالب میلادی در ستون post_modified با عنوان زمان ویرایش مطلب به روز می‌شود.
برای فراخوانی این داده در پوسته سایت عبارت %modified تعریف شده است.

نویسنده مطلب

همزمان با ذخیره یک مطالب،‌ شناسه کاربری که به مدیریت سایت وارد شده است به مطلب اختصاص می‌یابد.
در ویرایش‌های بعدی مطلب، این داده به روز نمی‌شود و ثابت می‌ماند.
برای فراخوانی این داده در پوسته سایت عبارت‌های author_name، author_url و author_link قابل استفاده است. این موارد می‌تواند از طرف کاربر یا مدیر سایت،‌ در برگه مربوط به کاربرها در ناحیه مدیریت سایت قابل تنظیم است. برای این منظور ردیف «نام» و «نشانی مطلب معرفی کاربر» برای هر کاربر در نظر گرفته شده است.

قالب نمایش مطلب

برای نمایش محتوای صفحات سایت، پرونده‌های html به عنوان الگو یا قالب استفاده می‌شود.
برای مثال، وقتی بازدیدکننده، به صفحه اصلی سایت مراجعه می‌کند، موتور سایت، قالب index.html را باز کرده و محتوای لازم را محاسبه یا از پایگاه‌های داده ‌استخراج کرده و در این قالب درج می‌کند و سپس خروجی را به مرورگر تحویل می‌دهد.
قالب‌های صفحات مختلف پوسته، با پسوند html، در نشانی themes/theme_name/pages ذخیره می‌شوند و مورد استفاده پیش‌فرض آنها به صورت زیر است.

صفحه اصلیindex.html
دسته‌هاcategory.html
مطالبpost.html
برچسب‌هاtag.html
نتایج جستجوsearch.html
خطای 404404.html

در هنگام ایجاد یا ویرایش هر یک از مطالب، دسته‌ها و برچسب‌ها، می‌توان به جای استفاده از الگوی پیش‌فرض، پرونده دلخواه دیگری را تعیین کرد.
برای مثال، می‌توان یک کپی از post.html را با نام دیگری مثلاً post-contact.html ذخیره کرد. در ادامه با ویرایش این فایل، فرم تماس دلخواهی به آن اضافه و بخش نظرات را حذف کرد. سپس می‌توان این الگوی جدید را به عنوان قالب نمایش هر صفحه دلخواهی مثلاً مطلب «تماس با ما» تعیین کرد. با این کار در هنگام نمایش این مطلب به جای استفاده از post.html که الگوی نمایش پیش‌فرض مطالب سایت است، post-contact.html مورد استفاده قرار می‌گیرد.
همین امکان برای دسته‌ها و برچسب‌ها هم وجود دارد و می‌توان در هنگام ویرایش، قالب دلخواه را به آنها اختصاص داد.

index.html و category.html و post.html به ترتیب برای صفحه اول، دسته‌ها و مطالب سایت به کار می‌رود و وجود آنها در پوسته برای نمایش سایت ضروری است.
در صورتی که در پوسته سایت، صفحات مجزایی برای برچسب‌ها و نتایج جستجو طراحی نشده باشد، یعنی قالب فاقد tag.html و search.html باشد، برچسب‌ها و نتایج جستجو با الگوی category.html نمایش داده می‌شود.
صفحه خطای 404 هم با نام 404.html تعریف شده و طراحی آن در پوسته سایت ضروری نیست.

تمام صفحات پوسته قابل ویرایش است.
برای مثال می‌توانید در قالب صفحه اصلی سایت یعنی index.html کد دلخواهی را اضافه کنید.
به منظور ویرایش فایل‌های مربوط به الگوی قالب صفحات پوسته و همچنین دیگر اجزای پوسته سایت، در بخش «مدیریت پرونده»، ویرایشگری در نظر گرفته شده است.
همچنین می‌توان فایل مورد نظر برای ویرایش را دریافت و سپس ویرایش شده آن را روی سایت بارگذاری و جایگزین کرد.

چکیده مطلب

ردیف چکیده یا خلاصه، برای تنظیم یک متن کوتاه و ساده در نظر گرفته شده است.
در چکیده مطلب، می‌توان چند جمله را به عنوان توضیح یا خلاصه مطلب درج کرد.

در صورتی که ردیف «توضیح برای موتورهای جستجو» در ویرایش مطلب بدون متن باشد، متن چکیده به عنوان توضیح برای موتورهای جستجو، منتشر خواهد شد.

این مقدار ذیل ستون post_excerpt در پایگاه posts.sqlite ذخیره می‌شود و برای فراخوانی آن در پوسته عبارت %excerpt تعریف شده است.

در یک مطلب فروشگاهی مبلغ و کلید خرید با کد زیر در انتهای %excerpt اضافه می‌شود.

<span class="site-store site-store-excerpt-%route" post_id="%id" price="%price"> <b>%price تومان </b> <button onclick="buy(%id)">خرید</button> </span>

برای شخصی سازی و اعمال تغییرات در این بخش،‌ می‌توان از CSS یا جاوا اسکریپت استفاده کرد.
همچنین در صورت تمایل می‌توان به کمک کدهای CSS مانع نمایش این بخش شد و کد دلخواه جایگزین دلخواه را مستقیم در فایل html پوسته تنظیم کرد.

محتوای مطلب

محتوای کامل مطلب سایت در این ردیف تنظیم می‌شود.
این ردیف، بخش اصلی صفحه اختصاص یافته به مطلب است و می‌تواند شامل متن، تصویر و یا اجزای دیگر شود.
از طریق نوار ابزاری که در بالای ویرایشگر این بخش تعبیه شده است، می‌توان چینش و ظاهر دلخواهی برای نوشته تنظیم کرد. به علاوه کلیدی برای نمایش تمام صفحه و همچنین کلیدی برای ویرایش کد اچ‌تی‌ام‌ال این ردیف در نظر گرفته شده است.

محتوای مطلب، ذیل ستون post_content در پایگاه posts.sqlite ذخیره می‌شود.
برای فراخوانی آن در پوسته هم عبارت %content تعریف شده است.

در یک مطلب فروشگاهی مبلغ و کلید خرید با کد زیر در ابتدای %content اضافه می‌شود.

<div class="site-store site-store-content-%route" post_id="%id" price="%price"> <b>%price تومان </b> <button onclick="buy(%id)">افزودن به سبد خرید</button> </div>

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

قابلیت فروشگاهی

این امکان در نظر گرفته شده است تا بتوان از طریق سایت، محصول یا خدماتی را در قالب یک فروشگاه مختصر ارائه و در معرض فروش قرار داد.
با فعال کردن این قابلیت در تنظیمات سایت،‌ می‌توان برای هر مطلب سایت، بها و نحوه فروش را تنظیم کرد.

در صورتی که در تنظیمات سایت، «قابلیت فروشگاه» فعال شده باشد، ردیفی با همین عنوان صفحه مربوط به ایجاد یا ویرایش مطالب قابل تنظیم خواهد بود.
در این صورت هر مطلب سایت می‌تواند به عنوان «کالا»، قابل تحویل، «محتوا»، قابل دریافت و یا «خدمت»، قابل پردازش تعریف شود.
با انتخاب هر حالت، علاوه بر ردیف «بها»، دیگر موارد وابسته هم به فرم ویرایش مطلب اضافه می‌شود.

برای حالت «کالا»، امکان تنظیم «واحد» هم در نظر گرفته شده است. این مقدار در سبد خرید و صورت‌حساب خریدار درج می‌شود.

حالت «محتوا» برای زمانی در نظر گرفته شده که یک پرونده از روی سایت، در اختیار خریدار مشتری قرار گیرد.

با انتخاب این حالت ردیف «محتوای قابل دریافت» به فرم مطلب اضافه می‌شود. در این ردیف، لازم است تا نشانی فایلی که باید پس از خرید، در اختیار مخاطب قرار می‌گیرد وارد شود. این نشانی باید معتبر و روی سایت موجود باشد. در این ردیف نباید نشانی سایت وارد شود. برای مثال اگر فایل test.pdf در پوشه pdfs روی سایت ذخیره شده است، ‌در اینجا باید مقدار زیر تنظیم شود.

/pdfs/test.pdf


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

حالت دیگری که در ردیف «قابلیت فروشگاهی» مطلب قابل انتخاب است، «خدمت» است. این امکان برای مواقعی در نظر گرفته شده است که پس از تراکنش موفق خریدار، یک خدمت الکترونیک اجرا می‌شود. برای مثال، ارائه امکان فروش اشتراک یا فعال کردن یک سرویس با این قابلیت قابل انجام است و پس از تراکنش موفقیت یک اسکریپت یا سرویس وب فراخوانی می‌شود.
با انتخاب این حالت، ردیف «خدمت الکترونیک» به فرم ویرایش مطلب اضافه می‌شود و لازم است در آن ردیف یک کد معتبر به زبان پی‌اچ‌پی درج شود.

به طور پیش‌فرض اسکریپت پرداخت مستقیم تعدادی از ارائه‌دهندگان درگاه واسط، در برنامه موتور گنجانده شده است.
در مورد این درگاه‌ها، تنها کافی است تا پس از عضویت در وب‌سایت آنها، مشخصات لازم مثل شناسه را دریافت کرده و در فرم تنظیمات روش پرداخت موتور ذخیره شود.
در صورتی که سرویس پرداخت مورد نظر شما در میان درگاه‌های موجود موتور وجود ندارد، می‌توانید موضوع را در فرم زیر مطرح کنید تا امکان پشتیبانی از آن بررسی شود. درخواست پشتیبانی از درگاه پرداخت

بهای مطلب

برای یک مطلب فروشگاهی، ردیفی با عنوان «بهای مطلب» در نظر گرفته شده است. تعیین مقدار عددی برای این ردیف ضروری است و در غیر این صورت، مطلب قابلیت فروشگاهی نخواهد داشت. این مقدار در جدول posts و زیر ستون post_price ذخیره می‌شود و برای مطالب غیر فروشگاهی برابر صفر است. برای فراخوانی بهای مطلب در پوسته سایت عبارت %price تعریف شده است. البته در قالب‌های سازگار، به طور پیش‌فرض

واحد مطلب

برای یک مطلب فروشگاهی، ردیفی با عنوان «واحد مطلب» در نظر گرفته شده است.
برای مثال می‌توان در این ردیف عبارتی عدد، متر، کیلوگرم یا مانند این موارد را وارد کرد.
این ردیف ضروری نیست و در مواقعی که واحدی برای مطلب فروشگاهی تعیین نشود، مطلب شمارش‌ناپذیر تلقی شده و امکان انتخاب چند واحد از آن در فرم سفارش وجود نخواهد شد.

محتوای قابل دریافت مطلب

در این ردیف، لازم است تا نشانی فایلی که باید پس از خرید، در اختیار مخاطب قرار می‌گیرد وارد شود. این نشانی باید معتبر و روی سایت موجود باشد. در این ردیف نباید نشانی سایت وارد شود. برای مثال اگر فایل test.pdf در پوشه pdfs روی سایت ذخیره شده است، ‌در اینجا باید مقدار زیر تنظیم شود.

/pdfs/test.pdf


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

خدمت الکترونیک مطلب

در صورتی که گزینه «قابلیت فروشگاهی» در برگه تنظیمات مدیریت سایت روی «خدمت» ذخیره شده باشد، این ردیف برای مطالب فروشگاهی نمایش داده می‌شود.
این امکان برای مواقعی در نظر گرفته شده است که پس از تراکنش موفق خریدار، یک خدمت الکترونیک اجرا می‌شود. برای مثال، ارائه امکان فروش اشتراک یا فعال کردن یک سرویس با این قابلیت قابل انجام است و پس از تراکنش موفقیت یک اسکریپت یا سرویس وب فراخوانی می‌شود.
در این ردیف، لازم است یک کد معتبر به زبان پی‌اچ‌پی درج شود.
کد وارد شده در این ردیف، تنها یک بار و در هنگام نمایش صورت‌حساب به خریدار فراخوانی خواهد شد و حتی در صورت بروز خطا در آن مجدد اجرا نخواهد شد.
بهتر است تا کد خدمت الکترونیک پایان نداشته باشد، یعنی پس از اجرای آن، ادامه عملکرد موتور که شامل ذخیره داده‌های اضافی احتمالی و نمایش رسید است، اجرا شود.
تمامی داده‌های سفارش جاری در متغیر $o در دسترس است. همچنین پس از اجرای کد خدمت الکترونیک، $o['order_data'] به روز رسانی می‌شود.

در این ردیف می‌توانید کد خودتان را تنظیم یا حتی اسکریپت مجزایی را مثلاً به کمک تابع include فراخوانی کنید.
همچنین به کمک قابلیت‌های نظر گرفته شده در موتور، می‌توان کد را با هماهنگی و اختصار بیشتری تنظیم کرد.
برای مثال فرض کنید که می‌خواهید که ایمیل خریدار به همراه شناسه خودتان و یک پارامتر دیگر را به صورت یک رشته از نوع JSON، به سرویس وب با نشانی example.com/api ارسال کنید.
همچنین می‌خواهید تا خروجی دریافتی از وب سرویس را عیناً با نام یک متغیر مثلاً‌ service_response به همراه دیگر داده‌های سفارش ذخیره کنید.

$o['order_data']['service_response']= store_post_json('http://example.com/api/',['user_email'=>$o['order_customer']['email'],'user_value'=>123,'api_key'=>123456],true);


‌داده‌های سفارش در بخش «سفارش‌ها» قابل مشاهده است. این اطلاعات در ستون order_data در پایگاه orders.sqlite ذخیره می‌شود.

شمار بازدید

شمارشگر بازدید، به نحوی تنظیم شده است که به ازای هر بازدیدکننده جدید، یا بازدیدکننده تکراری، که بعد از حدود سی دقیقه مجدد به سایت مراجعه کرده، شناسه یا آی‌پی او را ثبت، و یک واحد به شمار بازدید روز، ماه و سال و مجموع کل اضافه کند.
در صورتی که بازدیدکننده از طریق موتور جستجو به سایت ارجاع شده باشد، به شمار ارجاع از جستجو هم یکی اضافه خواهد شد.
این اطلاعات، به تفکیک در پرونده data/countor.json ذخیره می‌شود.


توجه کنید، وقتی وارد بخش مدیریت سایت شده باشید، بازدیدهای شما شمرده نمی‌شود.
بازدیدهای خزنده گوگل و دیگر موتورهای جستجو شمرده نمی‌شود.
بازدیدهای متوالی یک بازدیدکننده، ولو با آی‌پی متفاوت، تنها یک بار در نظر گرفته می‌شود.
اگر بازدیدکننده، هر صفحه‌ای از سایت را دریافت کند، به شمار بازدید اضافه خواهد شد. بنابراین در شمارش بازدید، تفاوتی بین صفحات داخلی و صفحه اصلی سایت وجود ندارد.
در مورد مطالب،‌ دسته‌ها و برچسب‌ها، شمار بازدید مجموع کل، برای هر عنوان، به طور مجزا محاسبه و در پایگاه post_rates.sqlite ذخیره می‌شود.

وقایع اخیر

برخی از تغییرات اعمال شده در سایت، در یک فایل متنی به نشانی data/wotor.log ذخیره می‌شود.
حذف این فایل باعث بازنشانی و پاک شدن این اطلاعات خواهد شد.
در بخش «وقایع اخیر» پیشخوان ناحیه کاربری، حداکثر ۲۵ ردیف آخر این اطلاعات، در سه ستون زمان، شناسه اینترنت (آی‌پی) کاربر و شرح مورد، به نمایش در می‌آید.
در صورتی که حجم فایل مذکور بیش از ۲ مگابایت شود، ردیف‌های قدیمی در فایلی فشرده از نوع GZip و به ترتیب با نامی مشابه wotor.[1].log.gz ذخیره خواهد شد.

شمار بازدید مطلب

تعداد بازدید یکتای هر مطلب سایت، در ردیف شمار بازدید مطلب نمایش داده می‌شود.
بازدیدهای اعضای سایت و همچنین خزنده گوگل و دیگر موتورهای جستجو شمرده نمی‌شود.
بازدیدهای متوالی یک بازدیدکننده، ولو با آی‌پی متفاوت، تنها یک بار در نظر گرفته می‌شود.
شمار بازدید مطالب،‌ برای هر عنوان، ذیل ستون post_visit جدول پایگاه post_rates.sqlite ذخیره می‌شود.

وضعیت انتشار مطلب

برای تنظیم وضعیت مطالب سایت دو حالت «انتشار» و «پیش‌نویس» در نظر گرفته شده است.
مطالبی که به صورت پیش‌نویس ذخیره شده باشند، روی سایت برای عموم قابل مشاهده نخواهد بود و تنها برای اعضای سایت قابل دسترس است.

حالت انتشار مطالب سایت برای هر مطلب و در ستون post_type جدول پایگاه داده posts.sqlite با حرف P به منزله حالت انتشار و D برای حالت پیش‌نویس ذخیره می‌شود.

وضعیت انتشار دیدگاه

تنظیم وضعیت انتشار دیدگاه ذیل مطالب، چهار حالت دارد.

- پس از تأیید: امکان دریافت دیدگاه عموم بازدیدکنندگان وجود دارد و موارد پس از بازبینی و در صورت تأیید مدیر یا سردبیر سایت، منتشر خواهند شد.
- آنی: دیدگاه‌های عموم بازدیدکنندگان پذیرفته شده و به طور آنی روی سایت منتشر می‌شود. مدیر یا سردبیر سایت، پس از انتشار دیدگاه، می‌تواند موارد را بازبینی کرده و تأیید یا حذف کند.
- فقط اعضا: تنها اعضای سایت امکان درج دیدگاه را خواهند داشت و دیدگاه آنها بلافاصله روی سایت منتشر خواهد شد.
- غیر فعال: امکان ارسال دیدگاه برای مطلب در نظر گرفته نشده است. در این حالت فرم دریافت دیدگاه‌ها نیز نمایش داده نخواهد شد.


این وضعیت برای هر مطلب و در ستون post_commenting جدول پایگاه داده posts.sqlite به صورت حروفی و به ترتیب با حرف V برای حالت اول، O حالت انتشار آنی، M محدود به اعضا و حالت بسته با حرف C ذخیره می‌شود.

دیدگاه‌های مدیر و دیگر کاربران سایت بلافاصله منتشر می‌شود.


وضعیت دیدگاه‌ها، سه حالت دارد.
- دیدگاه‌ در انتظار تأیید برای انتشار یا حذف است.
- دیدگاه منتشر شده است ولی هنوز از طرف مدیر یا سردبیر سایت بازبینی نشده است.
- دیدگاه بازبینی و تأیید شده است.

این وضعیت در ستون comment_status پایگاه داده comments.sqlite به صورت عددی و به ترتیب 0، 1 و 2 ذخیره می‌شود. حالت 1 و 2 دیدگاه نمایش داده می‌شود و حالت 2 بیانگر تأیید شدن دیدگاه است.

تصویر شاخص مطلب

برای هر مطلب، امکانی در نظر گرفته شده تا یک تصویر به عنوان تصویر اصلی یا شاخص تعیین شود.
این تصویر می‌تواند در هر صفحه از سایت به همراه نام و پیوند مطلب نمایش داده شود.
از تصاویر شاخص مطالب، یک کپی با پسوند -thumb.jpg و به ابعاد کوچک حداکثر ۱۰۰ پیکسل نیز ایجاد می‌شود تا در مواقعی که نیازی به نمایش در اندازه اصلی وجود ندارد، این تصویر اصطلاحاً بند انگشتی با حجم کمتر مورد استفاده قرار گیرد.
در فرم ایجاد و ویرایش مطلب، ردیفی با نام «تصویر شاخص» وجود دارد که با کلیک روی مربع این بخش، پنجره «مدیریت تصاویر» باز می‌شود و امکان انتخاب یا بارگذاری تصویر دلخواه وجود دارد.

دسته‌بندی مطلب

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

برچسب مطلب

مطالب با برچسب مشترک، مشابه دسته‌ها در یک گروه قابل نمایش هستند.
برچسب‌ها اساساً کلمات یا عبارات شاخص هستند و می‌توانند برای توصیف محتوایی که در مطلب پوشش داده می‌شود، استفاده شوند. در حالی که دسته‌ها گسترده‌تر و سلسله مراتبی هستند، برچسب‌ها اصطلاحات ساده‌ای هستند که محتوای یک مطلب را منعکس می‌کنند. بر خلاف دسته بندی ها، برچسب ها سلسله مراتبی نیستند.

نشانی یکتای مطلب

اختصاص یک نشانی منحصر به فرد، برای پیوند به هر مطلب سایت، ضروری است.
نشانی یکتای مطلب در نوار نشانی مرورگر وارد می‌شود و شماره مطلب متناظر را باز می‌کند.



اگر ردیف مربوط به نشانی یکتا، بدون مقدار و خالی ذخیره شود، به طور خودکار با عنوان استاندارد شده مطلب جایگزین می‌شود. برای مثال برای عنوان «مطلب نمونه»، نشانی یکتا به صورت پیش‌فرض به صورت «مطلب-نمونه» تعیین می‌شود و نشانی

example.com/مطلب-نمونه

به آن اختصاص می‌یابد.

کاربرد علامت / در نشانی یکتا بلامانع است. برای مثال تعریف نشانی یکتا به صورت «خبر-نمونه/اخبار» معتبر است و می‌توان از این امکان برای نوعی دسته‌بندی در نمایش مطالب سایت کرد.

example.com/خبر-نمونه/اخبار/

اگر ردیف نشانی یکتا به صورت # ذخیره شود، به آن مطلب، دسته و یا برچسب، نشانی یکتا اختصاص نخواهد یافت و در نتیجه محتوایی با این عنوان روی سایت در دسترس و قابل مشاهده نخواهد بود.
این روش می‌تواند برای حالتی استفاده شود که برای مثال یک دسته صرفاً برای طبقه‌بندی و مدیریت مطالب سایت یا نمایش آنها روی پوسته مورد نیاز باشد و مدیر سایت قصد انتشار آن دسته روی سایت را نداشته باشد.
برای مثال می‌توان یک دسته با نام «مطالب صفحه اصلی» را بدون نشانی یکتا ایجاد کرد. این دسته در بخش مدیریت سایت قابل استفاده است اما روی سایت دارای نشانی اختصاصی نیست. بنابراین در صفحه مربوط به مطلبی که در این دسته ذخیره شده است، نامی از این دسته نخواهد آمد.
مقدار # برای ایجاد مطالب فاقد نشانی یکتا ذیل ردیف مربوط به post_url در صفحه ویرایش مطلب در نظر گرفته شده است و در پایگاه داده posts نشانی مطلب به صورت خالی و نه به صورت # ذخیره می‌شود.

عنوان برای موتورهای جستجو

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

توضیح برای موتورهای جستجو

در صورتی که کاربران با استفاده از موتورهای جستجوگر به سایت بر بخورند، توضیحی که در زیر نام سایت به آنها نمایش داده می‌شود، متنی است که در این ردیف به عنوان توضیحات صفحه تنظیم شده است.
توضیح برای موتورهای جستجو یا توضیحات متا، محتوای یک صفحه را خلاصه می‌کند و آن را در نتایج جستجو به کاربران ارائه می‌دهد. این یکی از اولین چیزهایی است که احتمالا هنگام جستجوی سایت مشاهده می‌شود، بنابراین بهینه‌سازی آن برای سئو بسیار مهم است تا شانس متقاعد کردن کاربران به کلیک بر روی سایت شما را افزایش دهد.
نکته مهم این است که در جملاتی که استفاده می‌کنید از کلمات موجود در کلمه‌های کلیدی صفحه خود استفاده نمایید. بهتر است تعداد نویسه در این بخش حداقل ۵۰ و حداکثر ۱۶۰ نویسه انتخاب شود.
این متن به بازدیدکننده سایت نمایش داده نمی‌شود و فقط در کد صفحه درج می‌شود.
در صورت خالی گذاشتن این بخش، چکیده نوشته مورد استفاده قرار خواهد گرفت.

کلیدواژه‌ها برای موتورهای جستجو

کلیدواژه‌ها برای موتورهای جستجو یا کلمات کلیدی متا، اطلاعات مربوط به محتوای صفحه را به خزنده موتور جستجو ارائه می‌دهند. این ردیف شامل لیستی از کلمات کلیدی و عبارات مربوط به محتوای صفحه هستند که با ویرگول جدا شده‌اند.
این موارد به بازدیدکننده سایت نمایش داده نمی‌شود و فقط در کد صفحه درج می‌شود.

توصیه می‌شود که حداکثر از ۱۰ کلمه کلیدی مرتبط با متن که فکر می‌کنید کاربران بیشتر آنها را در اینترنت جستجو می‌کنند، استفاده نمایید. کلمات کلیدی را با ویرگول انگلیسی (,) بدون هیچ فاصله‌ای از هم جدا نمایید.

سبد خرید

ضمن نمایش سبد خرید،‌ می‌توان توضیحاتی را نیز در معرض دید مخاطب سایت قرار داد. ردیف «توضیحات سبد خرید» تنظیمات سایت، می‌توان متنی را برای این منظور تعیین کرد.
همچنین در هنگام تأیید سبد خرید، یک فرم سفارش برای دریافت مشخصات شخصی و توضیحات احتمالی خریدار در نظر گرفته شده است. در این مرحله که مخاطب روش‌های پرداخت را مشاهده می‌کند، می‌توان توضیحاتی را نیز نمایش داد. پس از تأیید این فرم مخاطب به سرویسی که روش پرداخت از طریق آن را انتخاب کرده است، ارجاع می‌شود. نحوه ارجاع خریدار سایت به درگاه مطابق تنظیمات ردیف اسکریپت ارجاع انجام می‌شود. نحوه نمایش سبد خرید و متن‌ها مربوط به آن، به طراحی پوسته بر می‌گردد و برنامه موتور تنها در صورتی که قابلیت فروشگاهی سایت فعال شده باشد،‌ متغیرهای مورد نیاز سبد خرید را به صورت جاوا اسکریپت به کد صفحات اضافه می‌کند.
بنابراین در صورت نیاز به اعمال تغییرات در نمایش و عملکرد سبد خرید می‌بایست اسکریپت مربوط که در پوسته مورد استفاده قرار گرفته است را ویرایش کرد.

مطالب مشابه

در صورتی که در پوسته مورد استفاده، بخشی برای نمایش مطالب مرتبط یا مشابه در نظر گرفته شده باشد، می‌توان از طریق ناحیه مدیریت سایت، برای هر مطلب، مواردی را انتخاب کرد.
در این بخش انتخاب دسته یا برچسب هم امکان پذیر است.
در تنظیمات پوسته، که در فایل pages/theme.json در دسترس است، ردیف "theme_similar_posts": "yes" به منزله پشتیبانی قالب از این امکان است.
مواردی که برای این بخش اختصاص پیدا می‌کند با شناسه مطلب در ستون post_data و با عنوان similar_posts ذخیره می‌شود.

نام کاربر

نام کاربری در روی سایت نیز به عنوان نویسنده مطلب و یا در درج دیدگاه قابل مشاهده خواهد بود.
در تعیین نام کاربری، استفاده از حروف فارسی، حروف غیر انگلیسی و بیشتر علائم، بدون اشکال و مجاز است.
در هنگام ایجاد و ویرایش مشخصات کاربری، نام یا ایمیل وارد شده، نباید قبلاً‌ برای کاربر دیگری ثبت شده باشد.

رمز ورود کاربر

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

رمز ورود، نسبت به حروف بزرگ و کوچک یا ارقام فارسی و انگلیسی حساس است.

نشانی ایمیل کاربر

نشانی ایمیل کاربر به همراه رمز عبور، برای ورود به سایت مورد استفاده قرار می‌گیرد. همچنین برای بازنشانی رمز ورود، کد بازنشانی رمز به نشانی ایمیل کاربر ارسال می‌شود.

نشانی ایمیل در هنگام ورود به سایت، نسبت به حروف بزرگ و کوچک حساس نیست.
در هنگام تعیین ایمیل کاربری، فرآیندی برای تأیید آن انجام نمی‌شود. بنابراین معتبر بودن ایمیل برای ورود به سایت الزامی نیست.
در هنگام ایجاد و ویرایش مشخصات کاربر، ایمیل وارد شده، نباید قبلاً‌ برای کاربر دیگری ثبت شده باشد.

سطح دسترسی

برای ورود به ناحیه مدیریت سایت، امکان ایجاد چندین کاربر و سه سطح دسترسی،‌ مدیر، سردبیر و نویسنده در نظر گرفته شده است.

محدودیتی در دسترسی مدیر سایت به بخش مدیریت وجود ندارد.
پس از مدیر، سردبیر سایت امکان مدیریت محتوای سایت را دارد.
در پایین‌تر سطح دسترسی هم، نویسنده سایت صرفاً برای انتشار محتوا روی سایت مجاز است.

نشانی مطلب معرفی کاربر

گاهی نام کاربری روی سایت،‌ مثلاً به عنوان نویسنده مطلب، منتشر می‌شود. در این مواقع با کلید روی نام کاربر، مرورگر به «نشانی مطلب معرفی کاربر» ارجاع داده می‌شود.
مقدار ذخیره شده در این ردیف می‌تواند مطلبی روی سایت یا نشانی سایت دیگری باشد.


راهنمای خطاها

پوسته تنظیم نشده است.

پوسته همان قالب سایت است که محتوای سایت در آن قرار می‌گیرند.
برای نمایش محتوای سایت، نصب و فعال کردن یک پوسته ضروری است.
از طریق قسمت «پوسته» در بخش مدیریت سایت،‌ مدیر یا سردبیر سایت این امکان را دارد تا پوسته دلخواهی را فعال کند.
تعدای پوسته در مخزن وب‌سایت موتور وجود دارد که می توان مورد دلخواهی را از میان آنها انتخاب کرد و سپس روی سایت فعال کرد.
همچنین این قابلیت در نظر گرفته شده است تا از طریق کلید بارگذاری پوسته، فایل فشرده یک پوسته را روی سایت نصب کرد.

پرونده پوسته یافت نشد.

فایل‌های هر پوسته نصب شده روی سایت در پوشه‌ای با نام themes ذخیره می‌شود.
در صورتی که در هنگام اجرای موتور، این پوشه یا هر فایل مورد نیاز آن، در دسترس موتور نباشد،‌این خطا رخ خواهد داد.


برای رفع این خطا می‌توان قالب را مجدد نصب کرد.
همچنین ممکن است فایل‌های قالب به اشتباه پاک شده و هنوز در پوشه trash باقی مانده باشند.
در این صورت می‌توان با جابجا کردن پوشه پوسته به پوشه themes مجدد پوسته را مورد استفاده قرار داد.

ایمیل بازنشانی ارسال نشد.

در صورتی که موتور نتواند ایمیل بازنشانی رمز ورود را ارسال کند،‌ این خطا نمایش داده خواهد شد.
همچنین در صورتی که به هر دلیلی مدیر سایت به ایمیل بازنشانی دسترسی ندارد یا آن را دریافت نکرده است، می‌تواند از طریق راهنمای زیر رمز عبور خود را بازنشانی کند.

راه اول، ویرایش users.sqlite از طریق بخش مدیریت سایت،
در صورتی که کاربری با سطح مدیر سایت، به بخش مدیریت پرونده مراجعه کند، می‌تواند با زدن کلید ویرایش در ردیف فایل data/users.sqlite رمز دیگری را جایگزین رمز فراموش شده کند.
برای این منظور کافی است عبارت زیر را در فرم بالای صفحه ویرایش وارد کرده و کلید Run را بزند.
توجه کنید که لازم است تا شماره کاربری که رمز ورود او بازنشانی می‌شود و در جدول در ستون اول آمده است را جایگزین عدد 2 برای مقدار user_id شود.


UPDATE users SET user_pass="827ccb0eea8a706c4c34a16891f84e7b" WHERE user_id=2;


ایمیل بازنشانی ارسال نشد.

با این کار رمز 12345 به عنوان رمز ورود جدید برای کاربر با شماره کاربری تعیین شده ثبت خواهد شد.
عبارت 827ccb0eea8a706c4c34a16891f84e7b در واقع دَرهم شده رمز 12345 است.
دَرهم‌سازی یا hash از هر متن یک کد می‌سازد که با داشتن آن کد پیدا کردن متن اول اغلب غیر ممکن است.
موتور برای ذخیره رمزها از درهم سازی به روش MD5 و بدون افزوده استفاده می‌کند. بنابراین برای رمزهای ساده‌تر می‌توان به جداول بازیابی MD5 هم مراجعه کرد.



راه دوم، ویرایش users.sqlite بدون دسترسی به مدیر سایت
در این راهکار، مدیر سایت می‌تواند بدون استفاده از ناحیه مدیریت سایت، مثلاً‌ دسترسی اف‌تی‌پی، فایل data/users.sqlite را دریافت کرده و پس از ویرایش روی سایت بارگذاری کند.
مشابه روش قبل می‌توان عبارت 827ccb0eea8a706c4c34a16891f84e7b برای کابری که رمز خود را فراموش کرده است،‌ ذیل ستون user_pass تنظیم کرد.
برای مثال می‌توان این فایل را در رایانه شخصی با سیستم عامل ویندوز، به کمک برنامه‌های مدیریت پایگاه داده از نوع SQLite مثل SQLite Database Browser ‌ ویرایش کرد.
برنامه‌های مشابه دیگری هم با نام SQLite Editor برای سیستم عامل‌های دیگر از جمله اندروید وجود دارد.



راه سوم، راه‌اندازی مجدد سایت
در این راهکار، لازم است تا موقتاً فایل تنظیمات سایت یعنی data/setting.json را تغییر نام دهید.
مثلاً نام آن را setting-orginal.json بگذارید.
بااین کار با رفتن به نشانی سایت،‌ می‌توان فرآیند راه‌اندازی سایت، یعنی تعیین نام سایت و رمز عبور را مجدد انجام داد.
پس از تعیین رمز جدید، لازم است تا فایل جدید setting.json که با راه‌اندازی سایت ایجاد شده را حذف کنید و مجدد setting-orginal.json به نام اصلی آن برگردانید.
بااین کار محتوای سایت دست نخورده خواهد ماند و فقط کاربران قبلی سایت حذف شده و کاربر جدید که سایت را راه‌اندازی کرده است، جایگزین می‌شود.

خطای ماژول

یک یا چند ماژول ضروری در دسترس نیست.

امکان اجرای وب‌سایت موتور وجود ندارد.

ترفندها