تقویم شمسی ماهیانه با جاوا اسکریپت

hoom

Active Member
با سلام

با تشکر بسیار از دوست عزیزم آقا مجید که خیلی لطف کردن و اجازه دادن که این تایپیک برای بحث و تبادل نظر در مورد تقویم شمسی با جاوا اسکریپت ایجاد بشه.
این تقویم بصورت 100% با جاوا اسکریپت نوشته شده و تقویم را بصورت ماهیانه نمایش داده و بصورت Date Picker عمل میکند. با اینکار، کاربر شما بجای وارد نمودن یک تاریخ، این امکان را هم دارد که تاریخ مورد نظر خود را از تقویم شما انتخاب نماید.
امیدوارم از این تقویم که کار بسیار زیادی برده، لذت کافی را ببرید.
 

Majid

مدیر سایت
عضو کادر مدیریت
امكانش هست لينك مستقيم به اسكريپتي كه نوشتي بدي؟


مجيد
 
درخواست کمک

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

[email protected]
 

hoom

Active Member
سلام

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

ارادتمند
 

hoom

Active Member
با سلام،

قابل توجه دوستانی که در نمایش و استفاده از تقویم شمسی در Firefox اشکال داشتن، ورژن جدید این اسکریپت تمام مشکلات قبلی همچنین نمایش تاریخ درست را حل میکند. برای دریافت آن میتوانید به وب سایت مربوطه مراجعه کنید.

ارادتمند
 

kimia1

New Member
دوست عزیز ممنون از برنامه تان. اما ظاهرا برنامه شما یک مشکل داره. مثلا برای همین ماه مهر 85 اشتباه میکنه و روز اول ماه را از جمعه محاسبه میکنه .برای بعضی ماههای دیگه مثل آذرماه و چند ماه دیگه را هم که من تست کردم مشکل داره. من دارم سعی میکنم بفهمم مشکل از کجاست. ولی اگه خودتان بتونید درستش کنید بهتره.. ممنون
 

hoom

Active Member
سلام. خیلی ممنون از توجهتون. اشکال از تابع firstDay هستش که مقدار ناصحیح را برمیگرداند. حتما تا چند روز آینده درستش میکنم.

ارادتمند
 

hoom

Active Member
سلام

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

ارادتمند
 

kimia1

New Member
عالیه

دوست عزیز ممنون که اصلاح فرمودید. الان یه date Time Picker عالی ساختید فقط اگه یه رویداد Onclick برای فضای بیرون از تقویم مینوشتید که با کلیک بر روی ان تقویم Hide شود خیلی خوبتر میشد(ببخشید با این تقویمتون توقع را بالا بردید!!!) به هر حال دست مریزاد
 

hoom

Active Member
دوست عزیز ممنون که اصلاح فرمودید. الان یه date Time Picker عالی ساختید فقط اگه یه رویداد Onclick برای فضای بیرون از تقویم مینوشتید که با کلیک بر روی ان تقویم Hide شود خیلی خوبتر میشد(ببخشید با این تقویمتون توقع را بالا بردید!!!) به هر حال دست مریزاد

سلام

اختیار دارید، راستش من این موارد رو از تقویم بیرون آوردم، چون معمولا وقتی برنامه نویسها از کامپوننتی توی یه wصفحه استفاده میکنن، اون رو برحسب نیاز اون صفحه درمیارن. ولی شما میتونید از این کد در صفحتون استفاده کنید که این کاری رو که میخواهید انجام بده که در هر دو مرورگر IE و FireFox کار میکنه.

کد:
<Script Language="JavaScript">
function getClickedElement(evt) {
	evt = evt || window.event;
	var obj = evt.target || evt.srcElement;
	return obj.nodeName;
}

function bodyClick(evt) {
	var nodeName = getClickedElement(evt);
	
	if ((nodeName != 'IMG') && (nodeName != 'A'))
		hideAllCalendars();
}
</Script>

این رو هم در تگ Body قرار بدین

کد:
<BODY OnClick="bodyClick(event)">
ارادتمند
 
سلام و با تشکر

سلام آقا ممنون از کدتون خیلی خوب بود فقط یک سوالی اگر می شد پارامتر فرم رواس نمیدادین خوب بود چون وقتی نمیدونی اسم فرم چیه به مشکل بر میخوریم مخصوصا وقتی داری بصورت داینامیک اضافش می کنیم و یه چیز دیگه اگه از css class استفاده میکردین خیلی بهتر بود
 

hoom

Active Member
سلام

خواهش میکنم، اگر منظورتون این خط هستش
کد:
addCalendar("calFirstDate", "Select Date", "myFirstDate", "myForm");

میتونین اون رو به این صورت بنویسین
کد:
addCalendar("calFirstDate", "Select Date", "myFirstDate", document.forms[0].name);

در مورد CSS Class، در اول فایل persianPopupCalendar.js این متغیرها هستند که با تغییر آنها، رنگ و فونت و بقیه چیزها عوض میشن، میبینید که احتیاجی به CSS نبوده.

کد:
var fontFace="Tahoma";
var fontSize=11;

var titleWidth=90;
var titleMode=1;
var dayWidth=12;
var dayDigits=1;

var titleColor="#CCCC99";
var daysColor="#EEBB89";
var bodyColor="#FFFFCC";
var dayColor="#FFFF99";
var currentDayColor="#FFCC99";
var footColor="#CCCC99";
var borderColor="#333333";

var titleFontColor = "#333333";
var daysFontColor = "#333333";
var dayFontColor = "#333333";
var currentDayFontColor = "#ffffff";
var footFontColor = "#333333";

ارادتمند
 
آخرین ویرایش:

zfarhad2003

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

سلام آقا هومن
منظورم این بود که اگه از Css استفاده می کردین خیلی بهتر بود یعنی مقادیر رو از یک فایل Css می خوندین بهتر بود و تغییر دادنش راحت تر و بهتر بود
من دارم حالتی رو در نظر میگیرم که تو یک سایت که کلا داینامیک است ازش استفاده بشه
یه چیز دیگه اگر مقادیر مربوط به نوشته ها رو بصورت آرگومان پاس میدادین بهتر بود چون اونجوری قابلیت شخصی سازی بیشتری داشت بازم منظورم در سیستم های داینامیک و خیلی بزرگه

حالا باگ: اگر یک روز رو از تقویم انتخاب کنیم و بعد مقدار ساعت رو پاک کنیم و مقدار مثلا روز رو یک عدد نامعتبر وارد کنیم اونوقت اگه دوباره تقویم رو فعال کنیم ارور میده ولی اگر رو لینک امروز کلیک کنی مشکلی پیش نمی یاد

اگر مقدار متغییر مربوط به تنظیم اولین روز هفته غیر از 0 یا 1 باشه دیگه تقویم باز نمیشه
اگر مقدار متغییر مربوط به نمایش کاراکترهای روز هقته رو از 3 بیشتر کنی دیگه بقیه رو نشون نمیده و همون 3 تای اول رو نشون میده و بجاش فضای خالی میزاره

من پیشنهاد می کنم یک ولیدیتور هم برای فیلد اضافه کنید تا اگر فرضا من خودم تاریخی رو وارد کردم و معتبر نبود آلرت بده
دیگه اینکه اگه ردیفی که ماه قبل و بعد را دارد رو از سال بعد و قبل جدا کنی فکر کنم بهتره چون اینجوری زیاد واضح نیست البته من مقدار متغییری که گذاشته بودی رو عوض کردم که شیوه نمایش هدر رو عوض میکرد و اینکه اگر به جای > یا >> از یک پارامتر استفاده می شد که مقدارش رو به تابع پاس میدادیم بهتر بود اینجوری قابلیت شخصی سازی بیشتری داشت بازم منظورم توسیستم های بزرگ هست کلا

ولی در کل دستت خیلی خیلی درد نکنه چون خیلی کارت عالی بود بازم از این کارا بکن
می بخشی زیادب حرف زدم و ایراد گرفتم
دوست خوب اونیه که ایرادای آدم رو بگه نه همش تعریف کنه
 

hoom

Active Member
سلام

خیلی لطف دارید، ولی این موارد که گفتین اصلا باگ نیستن، نمیدونم اون آرتیکل قدیمی رو خوندین یا نه، بهرحال خلاصه اون اینه که این تقویم درحقیقت یه نسخه لاتین بوده که من فارسیش کردم و طوری تغییرش دادم که تقویم شمسی بشه (البته این توضیحات توی هدر فایلها نوشته شده). اون دوتا متغییر که میبینید بهمین دلیل اونجا هستن که این تبدیل رو انجام بدن و نباید دست بخورن، برای همین توی اون لیست متغیرهای پست قبلی هم نیستن.
یه مورد دیگه هم که شما اشتباه متوجه شدین اینه که این تقویم فقط همون پاپ آپی که اونجا میبینید هستش و نه اون فیلد ورودی، برای همین اگر تست یا چیزی لازم داشته باشین که روی اون انجام بدین، باید خودتون بنویسین. همینطور هم که قبلا توی همین آرتیکل برای سایر دوستان توضیح دادم، من کار اصلی رو برای شما انجام دادم و همه چیز رو هم مجانی و بصورت باز در اختیارتون قراردادم که بتونین تغییر بدین، برای همین اگر کسی بتونه اون سیستم خیلی بزرگ و دینامیکی که شما میگین بنویسه، حتما میتونه یه css درست کنه و اون چند تا متغیر رو با یه دستور جستجو و جایگزینی تغییر بده و یا همه چیز رو بیشتر پارامتری کنه. من ترجیحا میخواهم همه چیز ساده نگه داشته بشه که هرکسی بتونه خیلی راحت و بدون دنگ و فنگ زیاد از تقویم من استفاده کنه.
باز هم از توجهتون ممنونم.
 

mtakami

New Member
سلام .
من تقویم رو تو یه محیط html خیلی راحت استفاده کردم .
اما الان که دارم تو یه تمپلیت پی اچ پی استفاده می کنم ، دیگه نمی تونم تقویم رو اد کنم و موقعیکه کد
addCalendar("calFirstDate", "Select Date", "myFirstDate", "myForm");
رو به برنامه اضافه می کنم ، پیغام operation aborted میده
 

hoom

Active Member
سلام

خیلی ممنون از لطفتون، این یک مشکل عمومی در تمامی مرورگرها است و راهش هم اینه که اون کدی رو تقویم رو به صفحه اضافه میکنه رو به آخر صفحه، قبل از تگ <body/> قرار بدین. اگر نگارش 1.3 تقویم رو از وب سایت مربوطه دانلود کنین میبینید که من توی فایل نمونه هم همینکار رو کرده ام.

ارادتمند
 
سلام هومن جان
ممنون از لطفت باشه اگه فرصت کردم یک کامپوننت دات نتی شو واست مینویسم
در مورد اون باگ هم که گفتم به نظر من بهتره تاریخ رو چک کنی تا اگر اشتباه وارد شده بود برنامه از کار نیفته چون الان اررور میده
بازم ممنون از سورست
سرم خلوت شد کامپوننت رو میذارم تا دوستان حالشو ببرن
راستی یه سوالی تقویم قمری کسی سراغ داره من که پیدا نکردم هنوز
 

جدیدترین ارسال ها

بالا