Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Изготовление сайтов


Ответ
 
Опции темы Опции просмотра
Старый 02.12.2012, 18:20   #1 (permalink)
faza
Землемер
 
Аватар для faza
 
Регистрация: 23.12.2009
Адрес: Мариярайск
Сообщений: 4,373
Записей в дневнике: 2
Сказал(а) спасибо: 35
Поблагодарили 10 раз(а) в 3 сообщениях
Репутация: 28360
По умолчанию Календарь для Blogger

Всем привет! Ребят, такой вопрос: на иностранном сайте найден скрипт календаря, календарь весьма интересный - он привязан к архиву записей и с помощью него можно переходить к записям от нужной нам даты. Но вот незадача - неделя в нём начинается с воскресенья и как исправить я не знаю, в javascript я не понимаю нифига
Вот, собственно, и сам код:
Код:
<script type='text/javascript'> 
//<![CDATA[ 
var bcLoadingImage = "http://2.bp.blogspot.com/-yUGWz7Vrm0c/UKtPDwJpdSI/AAAAAAAAICU/9ZAvxQUZJLg/s400/loading-trans.gif.png"; 
var bcLoadingMessage = " Loading...."; 
var bcArchiveNavText = "Просмотр архива"; 
var bcArchiveNavPrev = '◄'; 
var bcArchiveNavNext = '►'; 
var headDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 
var headInitial = ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"]; 
// Nothing to configure past this point ---------------------------------- 
var timeOffset; 
var bcBlogID; 
var calMonth; 
var calDay = 1; 
var calYear; 
var startIndex; 
var callmth; 
var bcNav = new Array (); 
var bcList = new Array (); 
//Initialize Fill Array 
var fill = ["","31","28","31","30","31","30","31","31","30","31","30","31"]; 
function openStatus(){ 
    document.getElementById('calLoadingStatus').style.display = 'block'; 
    document.getElementById('calendarDisplay').innerHTML = ''; 
   } 
function closeStatus(){ 
    document.getElementById('calLoadingStatus').style.display = 'none'; 
   } 
function bcLoadStatus(){ 
    cls = document.getElementById('calLoadingStatus'); 
    img = document.createElement('img'); 
    img.src = bcLoadingImage; 
    img.style.verticalAlign = 'middle'; 
    cls.appendChild(img); 
    txt = document.createTextNode(bcLoadingMessage); 
    cls.appendChild(txt); 
   } 
function callArchive(mth,yr,nav){ 
// Check for Leap Years 
   if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) { 
       fill[2] = '29'; 
    } 
   else { 
       fill[2] = '28'; 
    } 
    calMonth = mth; 
    calYear = yr; 
    if(mth.charAt(0) == 0){ 
       calMonth = mth.substring(1); 
       } 
    callmth = mth; 
    bcNavAll = document.getElementById('bcFootAll'); 
    bcNavPrev = document.getElementById('bcFootPrev'); 
    bcNavNext = document.getElementById('bcFootNext'); 
    bcSelect = document.getElementById('bcSelection'); 
    a = document.createElement('a'); 
    at = document.createTextNode(bcArchiveNavText); 
    a.href = bcNav[nav]; 
    a.appendChild(at); 
    bcNavAll.innerHTML = ''; 
    bcNavAll.appendChild(a); 
    bcNavPrev.innerHTML = ''; 
    bcNavNext.innerHTML = ''; 
    if(nav <  bcNav.length -1){ 
       a = document.createElement('a'); 
       a.innerHTML = bcArchiveNavPrev; 
       bcp = parseInt(nav,10) + 1; 
       a.href = bcNav[bcp]; 
       a.title = 'Previous Archive'; 
       prevSplit = bcList[bcp].split(','); 
       a.onclick = function(){bcSelect.options[bcp].selected = true;openStatus();callArchive(prevSplit[0],prevSplit[1],prevSplit[2]);return false;}; 
       bcNavPrev.appendChild(a); 
       } 
    if(nav > 0){ 
       a = document.createElement('a'); 
       a.innerHTML = bcArchiveNavNext; 
       bcn = parseInt(nav,10) - 1; 
       a.href = bcNav[bcn]; 
       a.title = 'Next Archive'; 
       nextSplit = bcList[bcn].split(','); 
       a.onclick = function(){bcSelect.options[bcn].selected = true;openStatus();callArchive(nextSplit[0],nextSplit[1],nextSplit[2]);return false;}; 
       bcNavNext.appendChild(a); 
      } 
    script = document.createElement('script'); 
    script.src = 'http://www.blogger.com/feeds/'+bcBlogId+'/posts/summary?published-max='+calYear+'-'+callmth+'-'+fill[calMonth]+'T23%3A59%3A59'+timeOffset+'&published-min='+calYear+'-'+callmth+'-01T00%3A00%3A00'+timeOffset+'&max-results=100&orderby=published&alt=json-in-script&callback=cReadArchive'; 
    document.getElementsByTagName('head')[0].appendChild(script); 
} 
function cReadArchive(root){ 
// Check for Leap Years 
   if (((calYear % 4 == 0) && (calYear % 100 != 0)) || (calYear % 400 == 0)) { 
       fill[2] = '29'; 
    } 
   else { 
       fill[2] = '28'; 
    } 
     closeStatus(); 
     document.getElementById('lastRow').style.display = 'none'; 
     calDis = document.getElementById('calendarDisplay'); 
     var feed = root.feed; 
     var total = feed.openSearch$totalResults.$t; 
     var entries = feed.entry || []; 
     var fillDate = new Array(); 
     var fillTitles = new Array(); 
     fillTitles.length = 32; 
     var ul = document.createElement('ul'); 
     ul.id = 'calendarUl'; 
     for (var i = 0; i < feed.entry.length; ++i) { 
       var entry = feed.entry[i]; 
       for (var j = 0; j < entry.link.length; ++j) { 
        if (entry.link[j].rel == "alternate") { 
        var link = entry.link[j].href; 
        } 
       } 
       var title = entry.title.$t; 
       var author = entry.author[0].name.$t; 
       var date = entry.published.$t; 
       var summary = entry.summary.$t; 
       isPublished = date.split('T')[0].split('-')[2]; 
       if(isPublished.charAt(0) == '0'){ 
          isPublished = isPublished.substring(1); 
          } 
       fillDate.push(isPublished); 
       if (fillTitles[isPublished]){ 
           fillTitles[isPublished] = fillTitles[isPublished] + ' | ' + title; 
           } 
       else { 
           fillTitles[isPublished] = title; 
           } 
       li = document.createElement('li'); 
       li.style.listType = 'none'; 
       li.innerHTML = '<a href="'+link+'">'+title+'</a>'; 
       ul.appendChild(li); 
       } 
    calDis.appendChild(ul); 
    var val1 = parseInt(calDay, 10) 
    var valxx = parseInt(calMonth, 10); 
    var val2 = valxx - 1; 
    var val3 = parseInt(calYear, 10); 
    var firstCalDay = new Date(val3,val2,1); 
    var val0 = firstCalDay.getDay(); 
    startIndex = val0 + 1; 
   var dayCount = 1; 
   for (x =1; x < 38; x++){ 
       var cell = document.getElementById('cell'+x); 
       if( x < startIndex){ 
           cell.innerHTML = ' '; 
           cell.className = 'firstCell'; 
          } 
       if( x >= startIndex){ 
           cell.innerHTML = dayCount; 
           cell.className = 'filledCell'; 
           for(p = 0; p < fillDate.length; p++){ 
               if(dayCount == fillDate[p]){ 
                   if(fillDate[p].length == 1){ 
                      fillURL = '0'+fillDate[p]; 
                      } 
                   else { 
                      fillURL = fillDate[p]; 
                      } 
                   cell.className = 'highlightCell'; 
                   cell.innerHTML = '<a href="/search?updated-max='+calYear+'-'+callmth+'-'+fillURL+'T23%3A59%3A59'+timeOffset+'&updated-min='+calYear+'-'+callmth+'-'+fillURL+'T00%3A00%3A00'+timeOffset+'" title="'+fillTitles[fillDate[p]].replace(/"/g,'\'')+'">'+dayCount+'</a>'; 
                  } 
               } 
           if( dayCount > fill[valxx]){ 
              cell.innerHTML = ' '; 
              cell.className = 'emptyCell'; 
              } 
           dayCount++; 
          } 
       } 
     visTotal = parseInt(startIndex) + parseInt(fill[valxx]) -1; 
     if(visTotal >35){ 
         document.getElementById('lastRow').style.display = ''; 
        } 
   } 
function initCal(){ 
    document.getElementById('blogger_calendar').style.display = 'block'; 
    var bcInit = document.getElementById('bloggerCalendarList').getElementsByTagName('a'); 
    var bcCount = document.getElementById('bloggerCalendarList').getElementsByTagName('li'); 
    document.getElementById('bloggerCalendarList').style.display = 'none'; 
    calHead = document.getElementById('bcHead'); 
    tr = document.createElement('tr'); 
    for(t = 0; t < 7; t++){ 
        th = document.createElement('th'); 
        th.abbr = headDays[t]; 
        scope = 'col'; 
        th.title = headDays[t]; 
        th.innerHTML = headInitial[t]; 
        tr.appendChild(th); 
       } 
    calHead.appendChild(tr); 
   for (x = 0; x <bcInit.length;x++){ 
      var stripYear= bcInit[x].href.split('_')[0].split('/')[3]; 
      var stripMonth = bcInit[x].href.split('_')[1]; 
      bcList.push(stripMonth + ','+ stripYear + ',' + x); 
      bcNav.push(bcInit[x].href); 
      } 
   var sel = document.createElement('select'); 
   sel.id = 'bcSelection'; 
   sel.onchange = function(){var cSend = this.options[this.selectedIndex].value.split(',');openStatus();callArchive(cSend[0],cSend[1],cSend[2]);}; 
   q = 0; 
   for (r = 0; r <bcList.length; r++){ 
        var selText = bcInit[r].innerHTML; 
        var selCount = bcCount[r].innerHTML.split('> (')[1]; 
        var selValue = bcList[r]; 
        sel.options[q] = new Option(selText + ' ('+selCount,selValue); 
        q++ 
        }                   
    document.getElementById('bcaption').appendChild(sel); 
    var m = bcList[0].split(',')[0]; 
    var y = bcList[0].split(',')[1]; 
    callArchive(m,y,'0'); 
} 
function timezoneSet(root){ 
    var feed = root.feed; 
    var updated = feed.updated.$t; 
    var id = feed.id.$t; 
    bcBlogId = id.split('blog-')[1]; 
    upLength = updated.length; 
    if(updated.charAt(upLength-1) == "Z"){timeOffset = "+00:00";} 
    else {timeOffset = updated.substring(upLength-6,upLength);} 
    timeOffset = encodeURIComponent(timeOffset); 
} 
//]]> 
</script> 
<script src='/feeds/posts/summary?max-results=0&amp;alt=json-in-script&amp;callback=timezoneSet'></script>
__________________
Купил Ниву и не жалею. Никого не жалею...
faza вне форума   Ответить с цитированием

Старый 02.12.2012, 18:20
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблема встречалась и ранее, вот, что нашлось

3D Digital Weather Clock - виджет погоды, часов, календарь
Вконтакте: день рождения - экспорт дней рождений в календарь
beOrganized - мощный календарь
Просроченный календарь
Помогите создать календарь на Delphi
Новый календарь. Ох и ну и ну...

Старый 02.12.2012, 19:52   #2 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Код:
var headDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; 
var headInitial = ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"];
вроде если заменить на

Код:
var headDays = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]; 
var headInitial = ["Пн","Вт","Ср","Чт","Пт","Сб","Вс"];
то будет все хорошо. Но не факт
kreol вне форума   Ответить с цитированием
Старый 02.12.2012, 20:06   #3 (permalink)
faza
Землемер
 
Аватар для faza
 
Регистрация: 23.12.2009
Адрес: Мариярайск
Сообщений: 4,373
Записей в дневнике: 2
Сказал(а) спасибо: 35
Поблагодарили 10 раз(а) в 3 сообщениях
Репутация: 28360
По умолчанию

Этого недостаточно, менял, но при этом числа сбиваются. Напримр 1-е число было воскресенье, а стал понедельник...
__________________
Купил Ниву и не жалею. Никого не жалею...
faza вне форума   Ответить с цитированием
Старый 02.12.2012, 20:29   #4 (permalink)
ilevar
Member
 
Аватар для ilevar
 
Регистрация: 15.02.2009
Сообщений: 1,188
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1956
По умолчанию

это вы шапку календаря, наверное, меняете(я в яве полный 0 правда), а смотреть нужно отсюда: var val1 = parseInt(calDay, 10) и ниже
ilevar вне форума   Ответить с цитированием
Старый 03.12.2012, 10:01   #5 (permalink)
Eli
TEHNARI.RU
 
Аватар для Eli
 
Регистрация: 31.03.2008
Адрес: Израиль
Сообщений: 18,407
Записей в дневнике: 7
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Репутация: 14157
По умолчанию

Виталь...а что в настройках блогера?

Думаю что это находится в настройках \ и категория Другое.... или категория Основное.
111.png не помню в точности..
как и не помню что бы подобные настройки в шаблоне делались (так как подобный настройки это настройки хостинга (панели управления в основном а не код шаблона) (Пс-фото из интернета - так как я свой блог уже удалил )
Eli вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 03.12.2012, 14:34   #6 (permalink)
faza
Землемер
 
Аватар для faza
 
Регистрация: 23.12.2009
Адрес: Мариярайск
Сообщений: 4,373
Записей в дневнике: 2
Сказал(а) спасибо: 35
Поблагодарили 10 раз(а) в 3 сообщениях
Репутация: 28360
По умолчанию

Олег, в настройках этого нет, этот скрипт отображает архив блога в виде календаря с возможностью перехода к записям от нужной даты.
__________________
Купил Ниву и не жалею. Никого не жалею...
faza вне форума   Ответить с цитированием
Старый 03.12.2012, 15:18   #7 (permalink)
Eli
TEHNARI.RU
 
Аватар для Eli
 
Регистрация: 31.03.2008
Адрес: Израиль
Сообщений: 18,407
Записей в дневнике: 7
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Репутация: 14157
По умолчанию

ок - зайди тогда в категорию где добавляешь в блог виджеты (на верхнем фото это категория настройка)(ДИЗАЙН)( ( я пардон на память пишу) в настройках виджета календарь ( там же есть опция редактирования каждого виджета когда добавляешь его например или просто изменить опции его , посмотри начальный день недели...
Eli вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:47.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.