Thread: Calendar Enhancements - Jalali Calander (Solar Or Shamsi) For vBulletin
View Single Post
  #3  
Old 06-09-2012, 07:26 AM
SANBOR SANBOR is offline
 
Join Date: Dec 2010
Location: shiraz
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Comments Persian

سلام
این تقویم شمسی برای ایرانیان و فارسی زبانان عزیز اماده شده است
این شمسی ساز 100 درصد در قسمت انجمن تکمیل شده است و به خوبی بر روی انجمن خودم کار میکند
در قسمت بلاگ 99 درصد تکمیل شده است و تنها مشکلی که دارد این است که تقویم رو میلادی میزاره


امکانات
1- قسمت انجمن شمسی شده است
2- قسمت کنترل پنل ادمین میلادی است
3- ورودی سن و یا تولد در کل انجمن به صورت شمسی است
4- نمایش تمامی قسمت ها که سن و یا تاریخ تولد را نشون میدهد درست است
5- متولدین امروز را نشان میدهد
6- قسمت سی ام اس شمسی شده است
7- قابلیت فعال و یا غیر فعال کردن حالت شمسی در انجمن ایجاد شده است


1. فايل 'jalali.php' را در مسير ./includes کپي فرماييد



2. فايل 'hooks_jlalali.xml' را در مسير ./includes/xml کپي فرماييد



3. فايل 'includes/functions.php' رابازکنيد
نوشته زیر را پيدا کنيد پيدا کنيد ( خط دوم است)
Code:
// ###### ...
قبل از خط بالا کد زير رو اضافه کنيد
Code:
require_once('jalali.php');

کد زير را پيدا کنيد
Code:
$datefunc = 'strftime';
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_strftime')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$datefunc = 'date';
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_date')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$datetest = @date('n-j-Y', $timestamp - $hourdiff);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_datetest')) ? eval($hook) : false;


4. فايل 'includes/functions_misc.php' باز کنيد
کد زير را پيدا کنيد
Code:
return mktime(intval($hours), intval($minutes), intval($seconds), intval($month), intval($day), intval($year)) + $vbulletin->options['hourdiff'];
با کد زير جايگزين کنيد
Code:
if ( VB_AREA == 'AdminCP' or VB_AREA == 'ModCP or THIS_SCRIPT == 'blog' ' ){
return mktime(intval($hours), intval($minutes), intval($seconds), intval($month), intval($day), intval($year)) + $vbulletin->options['hourdiff'];}
else{
if ($vbulletin->options['jalali_act'] == 1){
return jmktime(intval($hours), intval($minutes), intval($seconds), intval($month), intval($day), intval($year)) + $vbulletin->options['hourdiff'];}
else{
return mktime(intval($hours), intval($minutes), intval($seconds), intval($month), intval($day), intval($year)) + $vbulletin->options['hourdiff'];}
}

کد زير را پيدا کنيد
Code:
$datearray = array(
    'day' => date('d', $timestamp),
    'month' => date('n', $timestamp),
    'year' => date('Y', $timestamp)
);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_datearray')) ? eval($hook) : false;


5. فايل 'includes/class_dm_user.php' باز کنيد
کد زير را پيدا کنيد
Code:
function verify_birthday(&$birthday)
{
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_verify_birthday')) ? eval($hook) : false;


6. فايل 'includes/class_userprofile.php' باز کنيد
کد زير را پيدا کنيد
Code:
$bday = explode('-', $userinfo['birthday']);

$year = vbdate('Y', TIMENOW, false, false);
$month = vbdate('n', TIMENOW, false, false);
$day = vbdate('j', TIMENOW, false, false);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_bday')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$this->registry->options['calformat1'] = mktimefix($this->registry->options['calformat1'], $bday[2]);
قبل از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_tbday')) ? eval($hook) : false;


7. فايل 'includes/class_postbit.php' باز کنيد
کد زير را پيدا کنيد
Code:
$this->cache['year'] = vbdate('Y', TIMENOW, false, false);
$this->cache['month'] = vbdate('n', TIMENOW, false, false);
$this->cache['day'] = vbdate('j', TIMENOW, false, false);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_bday')) ? eval($hook) : false;


8. فايل 'includes/blog_functions.php' باز کنيد
کد زير را پيدا کنيد
Code:
$startdate = getdate(gmmktime(12, 0, 0, $month, 1, $year));
قبل از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_blog')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
if ($userinfo['showbirthday'] == 1 OR $userinfo['showbirthday'] == 2)
{
$year = vbdate('Y', TIMENOW, false, false);
$month = vbdate('n', TIMENOW, false, false);
$day = vbdate('j', TIMENOW, false, false);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_blog')) ? eval($hook) : false;


9. فايل 'register.php' باز کنيد
کد زير را پيدا کنيد
Code:
$bday = explode('-', $birthday);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_bday_register')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
if ($vbulletin->GPC['month'] == 0 OR $vbulletin->GPC['day'] == 0 OR !preg_match('#^\d{4}$#', $vbulletin->GPC['year']) OR $vbulletin->GPC['year'] < 1901 OR $vbulletin->GPC['year'] > $current['year'])
{
eval(standard_error(fetch_error('select_valid_dob', $current['year'])));
}
کد بالا را با کد زير جايگزين کنيد
Code:
if ($vbulletin->options['jalali_act'] == 1){
$jalalicurrent['year'] = jdate('Y');
list ( $vbulletin->GPC['year'], $vbulletin->GPC['month'], $vbulletin->GPC['day'] ) = jalali_to_gregorian ( $vbulletin->GPC['year'], $vbulletin->GPC['month'], $vbulletin->GPC['day'] );
if ($vbulletin->GPC['month'] == 0 OR $vbulletin->GPC['day'] == 0 OR !preg_match('#^\d{4}$#', $vbulletin->GPC['year']) OR $vbulletin->GPC['year'] < 1901 OR $vbulletin->GPC['year'] > $current['year']){
eval(standard_error(fetch_error('jalali_select_valid_month_and_year', $jalalicurrent['year'])));}}
else{
if ($vbulletin->GPC['month'] == 0 OR $vbulletin->GPC['day'] == 0 OR !preg_match('#^\d{4}$#', $vbulletin->GPC['year']) OR $vbulletin->GPC['year'] < 1901 OR $vbulletin->GPC['year'] > $current['year']){
eval(standard_error(fetch_error('select_valid_dob', $current['year'])));}
}

کد زير را پيدا کنيد
Code:
// pre-cache templates used by specific actions
قبل از کد بالا کد زير را قرار دهید
Code:
require_once('./global.php');
($hook = vBulletinHook::fetch_hook('jalali_globaltemplates')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$templater = vB_Template::create('register_verify_age');
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_templater_register')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$templater = vB_Template::create('modifyprofile_birthday');
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_templater_modifyprofile')) ? eval($hook) : false;


10.فايل 'private.php' باز کنيد

نکته : دوستان پی ام هیلتر که در پایین میبینید رو بهم بچسبونید

کد زير را پيدا کنيد
Code:
$templater = vB_Template::create('pm_f ilter');
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_templater_private')) ? eval($hook) : false;


11.فايل 'announcement.php' باز کنيد
کد زير را پيدا کنيد
Code:
$templater = vB_Template::create('announcement_edit');
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_templater_announcement')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$GLOBALS["{$date_type}_date_array"] = array(
    'day'   => vbdate('j', $announcementinfo["{$date_type}date"], false, false),
    'month' => vbdate('n', $announcementinfo["{$date_type}date"], false, false),
    'year'  => vbdate('Y', $announcementinfo["{$date_type}date"], false, false)
);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_fields')) ? eval($hook) : false;



12. فايل 'profile.php' باز کنيد
کد زير را پيدا کنيد
Code:
if (date('Y') >= $birthday[2] AND $birthday[2] != '0000')
{
$year = $birthday[2];
}
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_set_birthday')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$vbulletin->options['calformat1'] = mktimefix($vbulletin->options['calformat1'], $birthday[2]);
قبل از کد بالا کد زير را قرار دهید
Code:
$hook = vBulletinHook::fetch_hook('jalali_calformat')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$actiontemplates['docustomize'] = $actiontemplates['customize'];
قبل از کد بالا کد زير را قرار دهید
Code:
require_once('./global.php');
($hook = vBulletinHook::fetch_hook('jalali_actiontemplates')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$birthdaybit = $templater->render();
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_templater_profile')) ? eval($hook) : false;


13. فايل 'forum.php' باز کنيد
کد زير را پيدا کنيد
Code:
$today = vbdate('Y-m-d', TIMENOW, false, false);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_today')) ? eval($hook) : false;


14. فايل 'memberlist.php' باز کنيد
کد زير را پيدا کنيد
Code:
if ($vbulletin->options['usememberlistadvsearch'])
{
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_usememberlistadvsearch')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$today_year = vbdate('Y', TIMENOW, false, false);
$today_month = vbdate('n', TIMENOW, false, false);
$today_day = vbdate('j', TIMENOW, false, false);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_memberlistbits')) ? eval($hook) : false;

کد زير را پيدا کنيد
Code:
$birthdayformat = mktimefix($vbulletin->options['calformat1'], $bday[2]);
بعد از کد بالا کد زير را قرار دهید
Code:
($hook = vBulletinHook::fetch_hook('jalali_birthdayformat')) ? eval($hook) : false;


15. حال به مسير زير بريد و هک را وارد کنید
محصولات -> اضافه کردن محصول -> فايل jalali.xml را ايمپرت کنيد.


کار شما عالی بود!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01504 seconds
  • Memory Usage 1,915KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (56)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete