=== انتشار یار -افزونه  انتشار پست در کانال تلگرام و شبکه های اجتماعی (Entesharyar) ===
Contributors: alikhakpash
Tags: share, social, popup, article, telegram
Requires at least: 5.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.6.1
License: GPLv2 or later

یک پاپ‌آپ اشتراک‌گذاری کاملاً راست‌به‌چپ برای مقالات، با تلگرام، واتساپ و بیشتر، به‌همراه انتشار یک‌کلیکی در کانال تلگرام شما.

== توضیحات ==
این افزونه یک ابزار سبک و کاملاً راست‌به‌چپ (RTL) برای اشتراک‌گذاری مقالات
وردپرسی در شبکه‌های اجتماعی و پیام‌رسان‌های پرکاربرد نزد مخاطبان فارسی‌زبان
است.

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

* تلگرام
* بله
* ایتا
* واتساپ
* روبیکا (چون روبیکا هیچ آدرس استاندارد اشتراک‌گذاری از وب ندارد، این دکمه
  به‌جای باز کردن لینک، متن کامل عنوان + خلاصه + آدرس مقاله را در کلیپ‌بورد
  کپی می‌کند تا کاربر خودش در اپ روبیکا پیست/ارسال کند)
* توییتر / X
* فیسبوک

= امکانات کلیدی =

* **شورت‌کد اختصاصی:** با درج `[entshryr_share_popup]` در هر جای متن (یا
  برای پست خاص با `[entshryr_share_popup id="123"]`)، دکمه‌ی اشتراک‌گذاری
  نمایش داده می‌شود.
* **پاپ‌آپ در دسترس (Accessible):** طراحی مودال بر اساس اصول دسترس‌پذیری
  (نقش dialog، مدیریت focus، بسته‌شدن با کلید Esc یا کلیک روی پس‌زمینه)
  ساخته شده است.
* **کاملاً راست‌به‌چپ:** هم دکمه‌ی آیکون و هم پاپ‌آپ به‌صورت ثابت RTL هستند
  و مستقل از جهت پیش‌فرض قالب سایت، درست و خوانا نمایش داده می‌شوند.
* **خلاصه‌ی خودکار مقاله:** اگر نویسنده چکیده‌ی دستی برای پست ننوشته باشد،
  افزونه به‌صورت خودکار از متن اصلی مقاله (بدون شورت‌کد و تگ HTML) خلاصه‌ای
  با تعداد کلمه‌ی قابل‌تنظیم می‌سازد.
* **انتشار مستقیم در کانال تلگرام:** از دو مسیر در دسترس است — یک متاباکس
  اختصاصی در صفحه‌ی ویرایش مقاله، و یک دکمه داخل خودِ پاپ‌آپ که فقط برای
  کاربر لاگین‌شده‌ای که دسترسی ویرایش همان پست را دارد نمایش داده می‌شود
  (بازدیدکننده‌های عادی هیچ‌وقت آن را نمی‌بینند). هر دو روش با یک کلیک،
  عنوان، خلاصه و تصویر شاخص را از طریق Telegram Bot API در کانال شما منتشر
  می‌کنند. این قابلیت با nonce و بررسی دسترسی محافظت می‌شود و نیاز به توکن
  ربات (ساخته‌شده از طریق @BotFather) و آیدی کانال دارد که از صفحه‌ی
  تنظیمات افزونه وارد می‌شوند.
* **تنظیمات ساده از پیشخوان:** از منوی تنظیمات ← انتشار یار می‌توانید متن
  کنار آیکون، طول خلاصه‌ی خودکار (بر حسب تعداد کلمه)، شبکه‌های فعال در
  پاپ‌آپ، و اطلاعات ربات/کانال تلگرام را مدیریت کنید.
* **قابل‌استفاده روی هاست‌های ایران:** چون تلگرام معمولاً از سمت سرورهای
  ایران فیلتر است، می‌توانید به‌صورت اختیاری انتشار در تلگرام را از طریق
  یک پراکسی رایگان که توسط توسعه‌دهنده‌ی افزونه اداره می‌شود انجام دهید،
  به‌جای اتصال مستقیم به api.telegram.org. این گزینه به‌صورت پیش‌فرض
  غیرفعال است و فقط با انتخاب آگاهانه‌ی شما فعال می‌شود.
* **امن و استاندارد وردپرس:** خروجی‌ها با توابع escape وردپرس (esc_html،
  esc_attr، esc_url) امن‌سازی شده‌اند، فرم تنظیمات با Settings API و
  sanitize callback اختصاصی محافظت می‌شود، و درخواست AJAX انتشار در تلگرام
  با nonce و بررسی `current_user_can()` کنترل می‌شود.

== نصب ==
1. پوشه‌ی افزونه را در مسیر wp-content/plugins آپلود کنید.
2. از بخش «افزونه‌ها» در پیشخوان وردپرس آن را فعال کنید.
3. (اختیاری) برای فعال‌سازی انتشار در کانال تلگرام، به تنظیمات ← انتشار
   یار بروید و توکن ربات و آیدی کانال را وارد کنید. ربات باید از قبل
   به‌عنوان ادمین کانال با دسترسی ارسال پیام اضافه شده باشد.

== استفاده ==
این افزونه آیکون را به‌صورت خودکار در مقاله درج نمی‌کند. برای نمایش آن، از
شورت‌کد زیر در هر جای دلخواه داخل متن مقاله استفاده کنید:

[entshryr_share_popup]

برای نمایش دکمه‌ی مربوط به پستی غیر از پست جاری (مثلاً داخل یک ویجت یا
قالب سفارشی)، شناسه‌ی پست را مشخص کنید:

[entshryr_share_popup id="123"]

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

== External services ==

این افزونه، برای قابلیت اختیاری «انتشار در کانال تلگرام»، به سرویس Telegram
Bot API (api.telegram.org) متصل می‌شود.

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

در این حالت، عنوان، خلاصه، لینک و تصویر شاخص همان پست به آدرس
api.telegram.org ارسال می‌شود تا در کانال تلگرام تنظیم‌شده منتشر شود. هیچ
داده‌ی دیگری (مثل اطلاعات بازدیدکننده یا سایر پست‌ها) به این سرویس ارسال
نمی‌شود و بدون کلیک صریح کاربر مجاز، هیچ درخواستی به تلگرام زده نمی‌شود.

این سرویس توسط Telegram FZ-LLC ارائه می‌شود:
* شرایط استفاده: https://telegram.org/tos
* حریم خصوصی: https://telegram.org/privacy

= پراکسی اختیاری توسعه‌دهنده‌ی افزونه (فقط در صورت انتخاب صریح کاربر) =

اگر کاربر از بخش تنظیمات، گزینه‌ی «استفاده از پراکسی توسعه‌دهنده‌ی افزونه» را
به‌صورت آگاهانه انتخاب کند (که به‌صورت پیش‌فرض غیرفعال است)، درخواست‌های
انتشار در کانال تلگرام به‌جای اتصال مستقیم به api.telegram.org، از طریق یک
سرویس رله (Cloudflare Worker) که توسط توسعه‌دهنده‌ی این افزونه اداره می‌شود
عبور می‌کنند. در این حالت، توکن ربات، آیدی کانال، و عنوان/خلاصه/تصویر پست از
سرور این رله عبور می‌کند تا به تلگرام برسد؛ این سرویس هیچ داده‌ای را ذخیره
یا لاگ نمی‌کند و صرفاً درخواست را بدون تغییر به api.telegram.org فوروارد
می‌کند.

== سوالات متداول ==

= چرا دکمه‌ی روبیکا لینک را باز نمی‌کند؟ =
چون روبیکا هیچ آدرس استاندارد و مستندی برای اشتراک‌گذاری از وب ندارد. به
همین دلیل این دکمه به‌جای باز کردن لینک، متن کامل (عنوان + خلاصه + آدرس
مقاله) را در کلیپ‌بورد کپی می‌کند تا خودتان در اپ روبیکا پیست/ارسال کنید.

== تغییرات ==
= 1.6.1 =
* حذف گزینه‌ی «آدرس پراکسی سفارشی» از تنظیمات؛ فقط دو حالت «اتصال مستقیم» و
  «پراکسی توسعه‌دهنده‌ی افزونه» باقی مانده است

= 1.6.0 =
* افزودن گزینه‌ی «پراکسی توسعه‌دهنده‌ی افزونه» (Cloudflare Worker رایگان) در
  کنار گزینه‌ی آدرس سفارشی؛ کاملاً اختیاری و غیرفعال به‌صورت پیش‌فرض، با
  توضیح شفاف درباره‌ی عبور داده از سرور رله در صورت انتخاب

= 1.5.1 =
* روش ارتباط با پراکسی/رله از PATH_INFO به querystring + هدر HTTP تغییر کرد،
  چون PATH_INFO روی همه‌ی هاست‌ها (به‌خصوص Nginx/LiteSpeed) پشتیبانی نمی‌شود

= 1.5.0 =
* افزودن تنظیم «آدرس پایه API» برای انتشار در تلگرام؛ برای هاست‌هایی در ایران
  که تلگرام از سمت سرور فیلتر است، می‌توان آدرس یک پراکسی/رله را جایگزین کرد

= 1.4.0 =
* تغییر نام و اسلاگ افزونه برای رعایت استانداردهای نام‌گذاری دایرکتوری وردپرس
* افزودن پیشوند یکتا به تمام توابع، ثابت‌ها، اکشن‌ها و شناسه‌های ذخیره‌سازی برای جلوگیری از تداخل با سایر افزونه‌ها
* حذف چک‌باکس غیرفعال لینکدین از تنظیمات (جای آن در پاپ‌آپ را دکمه‌ی «انتشار در کانال تلگرام» گرفته است)
* افزودن مستندسازی سرویس خارجی (Telegram Bot API) طبق دستورالعمل دایرکتوری افزونه‌ها

= 1.0.0 =
انتشار اولیه. شامل:
* پاپ‌آپ اشتراک‌گذاری از طریق شورت‌کد [entshryr_share_popup]، با دکمه‌های
  تلگرام، بله، ایتا، واتساپ، روبیکا، توییتر/X و فیسبوک
* تولید خودکار خلاصه در صورت نبود چکیده‌ی دستی
* دکمه‌ی آیکون و پاپ‌آپ کاملاً راست‌به‌چپ (RTL)، مستقل از قالب سایت
* انتشار مستقیم مقاله در کانال تلگرام، هم از صفحه‌ی ویرایش پست و هم از
  داخل خودِ پاپ‌آپ (فقط برای کاربر دارای دسترسی ویرایش همان پست)
