بدون شک یکی از بهترین فروشگاه ساز ها برای مدیریت محتوا جوملا جی تو استور | j2store هست . تیم جی تو استور مدتی هست که نسخه چهارم این افزونه رو برای جوملا چهار منتشر کرده است. یه توضیح اضافی هم بدم که در سری های قبل جی تو استور دو نسخه رایگان و تجاری داشت(همان نسخه Pro) ، همزمان با انتشار نسخه چهارم ، تیم جی تو استور به صورت رسمی اعلام کرد که از این به بعد جی تو استور کاملا رایگان خواهد بود و دیگر دو نسخه نخواهد داشت(یعنی همان نسخه Pro برای عموم رایگان شد) به همین دلیل درآمد زایی رو میخواهند به سمت ساخت و توسعه اپ های جی تو استور(همان پلاگین های الحاقی ) ببرند .
خب حالا اگر شما جی تو استور نسخه چهار رو نصب کرده باشید و محیط مدیریت شما فارسی باشد ، یه مشکلی در هنگام ذخیره مطلب اتفاق می افته که اونم اینه که تاریخ ایجاد ، تاریخ انتشار و تاریخ ویرایش هر سه تا با تاریخ روز ذخیره می شوند ، یعنی اگر شما مطلبی رو در تاریخ 1 مهر 1402 منتشر کرده باشید و روزی که میخواهید مثلا مطلب رو ویرایش کنید 20 آبان 1402 باشه ، تاریخ هر سه قسمت تبدیل به 20 آبان 1402 میشه ، در صورتی که میبایست فقط قسمت تاریخ ویرایش 20 آبان 1402 شود.
خب حالا راه حل مشکل جی تو استور | j2store چیه ؟
تا لحظه نوشتن این پست نسخه 4.0.3 از کامپوننت منتشر شده و تیم جی تو استور | j2store آپدیتی برای این حل این مشکل نداده ، که فقط هم در تاریخ شمسی ( یا به اصطلاح Persian Solar Calendar ) این اتفاق می افته، ما اطلاع رسانی های لازم رو به تیم جی تو استور کردیم و امیدواریم در نسخه های بعدی این مشکل رفع بشه
خب بریم برای حل مشکل
ابتدا به مسیر زیر برید و فایل رو باز کنید
YOUR-SITE/administrator/components/com_j2store/views/product/tmpl/form.php
سپس کد جاوا اسکریپت زیر رو که در خط 37 تا 70 فایل form.php هست ، رو حذفش کنید
<script type="text/javascript">
Joomla.submitbutton = function(pressbutton) {
var form = document.adminForm;
if(pressbutton == 'article.cancel') {
document.adminForm.task.value = pressbutton;
form.submit();
}else if(pressbutton == 'article.apply') {
if (document.formvalidator.isValid(form)) {
document.adminForm.task.value = pressbutton;
if(document.getElementById('submit_button') != null) {
document.getElementById('submit_button').onclick = function () {
this.disabled = true;
}
}
form.submit();
}
else {
let msg = [];
msg.push('<?php echo $alert_html; ?>');
document.getElementById('system-message-container').innerHTML = msg.join('\n') ;
}
}else{
if (document.formvalidator.isValid(form)) {
document.adminForm.task.value = pressbutton;
form.submit();
}
else {
let msg = [];
msg.push('<?php echo $alert_html; ?>');
document.getElementById('system-message-container').innerHTML = msg.join('\n') ;
}
}
}
</script>
آیا بعد از آپدیت جی تو استور | j2store این تغیرات از بین میره و باید بازم تغییرش بدم ؟
اینکه در نسخه های بعدی این مشکل اولویت تیم باشه و حلش کنه رو من نمیدونم ولی برای اینکه با آپدیت جی تو استور | j2store این تغییرات شما از بین نره باید فایل رو اورراید | Override کنید ، یعنی اینکه فایل جایگزین معرفی کنید و تا زمانی که فایل جایگزین اونجاست از اونجا بخونه
برای اورراید | Override کردن مسیر زیر رو باهم طی می کنیم :
اول به همون مسیر قبلی میریم
YOUR-SITE/administrator/components/com_j2store/views/product/tmpl/form.php
بعد یه کپی از فایل form.php میگیریم و مسیر زیر رو اگر ایجاد نشده ،خودمون میسازیم .
نکته : منظور از YOUR-TEMPLATE در مسیر زیر همان قالب پیش فرض مدیریت جوملا می باشد ، که به صورت پیش فرض نام قالب مدیریت جوملا چهار atum می باشد.
YOUR-SITE/administrator/templates/YOUR-TEMPLATE/html/com_j2store/product
سپس فایل form.php که از قبل کپی کرده بودیم رو اینجا پیست | Paste می کنیم.
بههمین راحتی و خوشمزگی فایل شما اورراید | Override شد و دیگه با آپدیت های جی تو استور | j2store از بین نمیره ، البته یادتون نره اگر در آپدیت های بعدی مطمئن شدید که این مشکل رفع شده ، میتونید فایل و مسیر اورراید | Override رو کلا حذفش کنید . ツ