PaZiTiF Posted August 19, 2016 Report Share Posted August 19, 2016 Всем доброго времени суток, вот хочу разобраться как работает данная навигация, код взять с kabuljan.af: var nav = { getStaticFiles: function(h){ if(h){ if(h.substr(0, 1) == '/') h = h.substr(1); var h = h.split('/'); h = h[0]; for(var i in navTree) { var m = h.match(new RegExp('^' + i, 'i')); if(m) return {files: navTree[i].files, i: i, loaded: navTree[i].loaded}; } } return {files: []}; }, go: function(h, params){ if(!h) return; if(!kj.logged && (h == 'http://kabuljan.af/' || h == '/')) return location.href = '/'; h = h.replace('http://kabuljan.af', ''); nav.new_url = h; if(!params) params = {}; if(nav.destroy){ nav.last_url = {h: h, p: params}; var ret = nav.destroy(1); if(ret == 1) return; nav.destroy = null; } nav.clear(); if(!params.no_change_link) history.pushState({link:h}, null, h); h += (h.indexOf('?') != -1 ? '&' : '?')+'al=-1'; nav.clean = false; nav.static_start = false; nav.cont_queue = {}; nav.init_js = null; nav.end = false; h += '&rnd_='+(new Date().getTime()); nav.cur_load_link = h; var h_data = nav.getStaticFiles(h); if(h_data.files.length > 0){ nav.static_start = true; if(!h_data.loaded){ stManager.add(h_data.files, function(){ navTree[h_data.i].loaded = true; if(nav.cur_load_link != h) return; nav.loaded_st = true; for(var i in nav.cont_queue){ KJ('#'+i).html(nav.cont_queue[i]); delete nav.cont_queue[i]; } if(nav.frame_loaded) nav.page_loaded(); }); }else nav.loaded_st = true; }else nav.loaded_st = true; KJ('body').append('<iframe id="navigation_frame"></iframe>'); KJ('#navigation_frame').attr('src', h); }, clear: function(h){ if(kj.uid){ if(cur.attach_all) cur.attach_all.obj = {}; wallReply.opened_form = 0; } if(KJ('.photoViewBox').length) Photos.opened = Photos.marking = null; //chrome bug fix, destroy ajax request if(KJ('#im_frame').length) KJ('#im_frame')[0].contentWindow.stop(); KJ('#im_frame, .photo_view, .box_pos, .box_info, .vii_box, .zoomWall, .photoViewBox, .titleHtml, #addStyleClass, .like_users_bl, .js_titleRemove, .tag_user_bl, #navigation_frame').remove(); KJ('body').attr('ondrop', ''); KJ([window, document]).unbind(); KJ('.kj_top_button').attr('onClick', '').hide(); if(KJ('#wiki_wall').length != 0) wiki_wall.close(); cur.langs = {}; if(kj.uid && KJ('#query').val().length > 0){ KJ('.fast_search_bg').hide(); KJ('#fs_scroll_cont').html(''); KJ('#query').val(''); } if(window.user_id) user_id = 0; cur.Media = {}; if(cur.wikiOpened) WikiView.destroy(); if(cur.notifyPad) NotifyPad.hide(); if(window.MediaObjs) MediaObjs = {}; cur.EmojiInited = []; nav.start_load_st = false; nav.loaded_st = false; nav.frame_loaded = false; voicesPlayer.curVoice = null; if(voicesPlayer.playing){ voicesPlayer.endVoice(); KJ('#voice_song')[0].pause(); } destroyCur(h); }, frame_data: function(type, data){ switch(type){ case 'nav_js': eval('(function(){' + data + ';})()'); break; case 'cont': data.cont = String(data.cont.replace('</AjaxScript>', '</script>')); if(nav.static_start) nav.cont_queue[data.id] = data.cont; else KJ('#'+data.id).html(data.cont); break; case 'static': var files = data.split(','); nav.static_start = true; if(nav.start_load_st) return; stManager.add(files, function(){ nav.static_start = false; for(var i in nav.cont_queue){ KJ('#'+i).html(nav.cont_queue[i]); delete nav.cont_queue[i]; } if(nav.init_js){ eval(nav.init_js); nav.init_js = null; } if(nav.end){ KJ('#navigation_frame').remove(); if(nav.loaded_st) nav.page_loaded(); } }); break; case 'init_js': //if(nav.static_start) nav.init_js = data; //else eval(data); nav.init_js = data; break; case 'end': nav.end = true; nav.frame_loaded = true; if(nav.static_start) return; KJ('#navigation_frame').remove(); if(nav.loaded_st) nav.page_loaded(); break; case 'counts': eval(data); break; case 'runtime': if(kj.uid != 11 && kj.uid != 1) return; KJ('#runtime').remove(); KJ('body').append(data); break; } }, page_loaded: function(){ KJ.each($('#page script'), function(){ var src = KJ(this).attr('src'); if(src){ src = src.replace('/js/', ''); stManager._add([src]); }else{ window.eval.apply(window, [KJ(this).html()]); } }); if(nav.init_js){ eval(nav.init_js); nav.init_js = null; } KJ('#navigation_frame').remove(); topButton(); KJ('body').css('overflow-y', 'auto').scrollTop(0); findInputs(); initClick(); if(window.audio_player && !audio_player.pause) audio_player.command('play', {style_only: true}); cur.lazy.searchImages(1); if(nav.resize_win){ onBodyResize(); nav.resize_win = null; } window.scrollTo(0,0); } }; Думаю нужны дополнительные параметры в файле .htaccess и дополнительный код в index.php Quote Link to comment Share on other sites More sharing options...
Mario Posted August 20, 2016 Report Share Posted August 20, 2016 Для себя делаешь или на продажу? Если для себя могу помочь. Quote Link to comment Share on other sites More sharing options...
PaZiTiF Posted August 20, 2016 Author Report Share Posted August 20, 2016 Для себя делаешь или на продажу? Если для себя могу помочь. в лс ответил Quote Link to comment Share on other sites More sharing options...
Shaman Daniels Posted August 31, 2016 Report Share Posted August 31, 2016 up Quote Link to comment Share on other sites More sharing options...
FastCHAT Posted October 2, 2018 Report Share Posted October 2, 2018 В 20.08.2016 в 13:58, Mario сказал: Для себя делаешь или на продажу? Если для себя могу помочь. Можешь мне подсказать как сделать а то дизайн и функционал сделал а навигацию оставил стандартную vii и статику сделал 1 Quote Link to comment Share on other sites More sharing options...
Mario Posted October 2, 2018 Report Share Posted October 2, 2018 5 минут назад, PHPSocial сказал: Можешь мне подсказать как сделать а то дизайн и функционал сделал а навигацию оставил стандартную vii и статику сделал Что конкретно нужно? Quote Link to comment Share on other sites More sharing options...
FastCHAT Posted October 2, 2018 Report Share Posted October 2, 2018 Такая ситуация как у PaZiTiF 1 минуту назад, Mario сказал: Что конкретно нужно? 1 Quote Link to comment Share on other sites More sharing options...
Mario Posted October 2, 2018 Report Share Posted October 2, 2018 (edited) 18 минут назад, PHPSocial сказал: Такая ситуация как у PaZiTiF Ну он мне ситуацию писал в лс, так что я сомневаюсь, что тебе она известна. Там же как и в вк (прежней версии, за эту не знаю), но упрощенно, идут разные варианты ответа в зависимости от переменной al, вот тут при нажатии на кнопку перехода оно создает фрейм в котором получает ответ в js формате и который обрабатывается, по сути это всё тоже самое, что в вии идет после ответа от сервера с параметром ajax = yes (скрин 1), но вместе с скриптом который будет обрабатываться, а не чисто данными для скрипта (новый заголовок, контент и подобное), который уже записан. Edited October 2, 2018 by Mario Quote Link to comment Share on other sites More sharing options...
FastCHAT Posted October 2, 2018 Report Share Posted October 2, 2018 4 минуты назад, Mario сказал: Ну он мне ситуацию писал в лс, так что я сомневаюсь, что тебе она известна. Там же как и в вк (прежней версии, за эту не знаю), но упрощенно, идут разные варианты ответа в зависимости от переменной al, вот тут при нажатии на кнопку перехода оно создает фрейм в котором получает ответ в js формате и который обрабатывается, по сути это всё тоже самое, что в вии идет после ответа от сервера с параметром ajax = yes (скрин 1), но вместе с скриптом который будет обрабатываться, а не чисто данными для скрипта (новый заголовок, контент и подобное), который уже записан. Я использую сборку андрея там по другому ... как мне навигацию прикрутить к сборке а общем мобильную версию я скопировал полностью с навигацией и всем функционалом а вот полную не могу 1 Quote Link to comment Share on other sites More sharing options...
FastCHAT Posted October 2, 2018 Report Share Posted October 2, 2018 9 минут назад, Mario сказал: Ну он мне ситуацию писал в лс, так что я сомневаюсь, что тебе она известна. Там же как и в вк (прежней версии, за эту не знаю), но упрощенно, идут разные варианты ответа в зависимости от переменной al, вот тут при нажатии на кнопку перехода оно создает фрейм в котором получает ответ в js формате и который обрабатывается, по сути это всё тоже самое, что в вии идет после ответа от сервера с параметром ajax = yes (скрин 1), но вместе с скриптом который будет обрабатываться, а не чисто данными для скрипта (новый заголовок, контент и подобное), который уже записан. Вот php я уже все перепробовал но аякс и так не работает с джава кабулджана 1 Quote Link to comment Share on other sites More sharing options...
Mario Posted October 2, 2018 Report Share Posted October 2, 2018 3 минуты назад, PHPSocial сказал: Я использую сборку андрея там по другому ... как мне навигацию прикрутить к сборке а общем мобильную версию я скопировал полностью с навигацией и всем функционалом а вот полную не могу Откуда я знаю что куда прикручивается, он спрашивал за принцип работы, я ему в вк и расписывал, а ставил он так же или нет мне не известно, да и два года прошло Quote Link to comment Share on other sites More sharing options...
Mario Posted October 2, 2018 Report Share Posted October 2, 2018 1 минуту назад, PHPSocial сказал: Вот php я уже все перепробовал но аякс и так не работает с джава кабулджана Он так и не будет работать, и я написал почему, это же обычная подгрузка вии. Quote Link to comment Share on other sites More sharing options...
PaZiTiF Posted April 8, 2019 Author Report Share Posted April 8, 2019 В 02.10.2018 в 14:50, Mario сказал: Он так и не будет работать, и я написал почему, это же обычная подгрузка вии. да, тогда давно ваши советы мне помогли разобраться, данный код у меня мб еще где-то остался на пк Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.