PaZiTiF 13 Report post 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 Share this post Link to post Share on other sites
Mario 51 Report post Posted August 20, 2016 Для себя делаешь или на продажу? Если для себя могу помочь. Share this post Link to post Share on other sites
PaZiTiF 13 Report post Posted August 20, 2016 Для себя делаешь или на продажу? Если для себя могу помочь. в лс ответил Share this post Link to post Share on other sites
Shaman Daniels 141 Report post Posted August 31, 2016 up Share this post Link to post Share on other sites
FastCHAT 42 Report post Posted October 2, 2018 В 20.08.2016 в 13:58, Mario сказал: Для себя делаешь или на продажу? Если для себя могу помочь. Можешь мне подсказать как сделать а то дизайн и функционал сделал а навигацию оставил стандартную vii и статику сделал 1 Share this post Link to post Share on other sites
Mario 51 Report post Posted October 2, 2018 5 минут назад, PHPSocial сказал: Можешь мне подсказать как сделать а то дизайн и функционал сделал а навигацию оставил стандартную vii и статику сделал Что конкретно нужно? Share this post Link to post Share on other sites
FastCHAT 42 Report post Posted October 2, 2018 Такая ситуация как у PaZiTiF 1 минуту назад, Mario сказал: Что конкретно нужно? 1 Share this post Link to post Share on other sites
Mario 51 Report post Posted October 2, 2018 (edited) 18 минут назад, PHPSocial сказал: Такая ситуация как у PaZiTiF Ну он мне ситуацию писал в лс, так что я сомневаюсь, что тебе она известна. Там же как и в вк (прежней версии, за эту не знаю), но упрощенно, идут разные варианты ответа в зависимости от переменной al, вот тут при нажатии на кнопку перехода оно создает фрейм в котором получает ответ в js формате и который обрабатывается, по сути это всё тоже самое, что в вии идет после ответа от сервера с параметром ajax = yes (скрин 1), но вместе с скриптом который будет обрабатываться, а не чисто данными для скрипта (новый заголовок, контент и подобное), который уже записан. Edited October 2, 2018 by Mario Share this post Link to post Share on other sites
FastCHAT 42 Report post Posted October 2, 2018 4 минуты назад, Mario сказал: Ну он мне ситуацию писал в лс, так что я сомневаюсь, что тебе она известна. Там же как и в вк (прежней версии, за эту не знаю), но упрощенно, идут разные варианты ответа в зависимости от переменной al, вот тут при нажатии на кнопку перехода оно создает фрейм в котором получает ответ в js формате и который обрабатывается, по сути это всё тоже самое, что в вии идет после ответа от сервера с параметром ajax = yes (скрин 1), но вместе с скриптом который будет обрабатываться, а не чисто данными для скрипта (новый заголовок, контент и подобное), который уже записан. Я использую сборку андрея там по другому ... как мне навигацию прикрутить к сборке а общем мобильную версию я скопировал полностью с навигацией и всем функционалом а вот полную не могу 1 Share this post Link to post Share on other sites
FastCHAT 42 Report post Posted October 2, 2018 9 минут назад, Mario сказал: Ну он мне ситуацию писал в лс, так что я сомневаюсь, что тебе она известна. Там же как и в вк (прежней версии, за эту не знаю), но упрощенно, идут разные варианты ответа в зависимости от переменной al, вот тут при нажатии на кнопку перехода оно создает фрейм в котором получает ответ в js формате и который обрабатывается, по сути это всё тоже самое, что в вии идет после ответа от сервера с параметром ajax = yes (скрин 1), но вместе с скриптом который будет обрабатываться, а не чисто данными для скрипта (новый заголовок, контент и подобное), который уже записан. Вот php я уже все перепробовал но аякс и так не работает с джава кабулджана 1 Share this post Link to post Share on other sites
Mario 51 Report post Posted October 2, 2018 3 минуты назад, PHPSocial сказал: Я использую сборку андрея там по другому ... как мне навигацию прикрутить к сборке а общем мобильную версию я скопировал полностью с навигацией и всем функционалом а вот полную не могу Откуда я знаю что куда прикручивается, он спрашивал за принцип работы, я ему в вк и расписывал, а ставил он так же или нет мне не известно, да и два года прошло Share this post Link to post Share on other sites
Mario 51 Report post Posted October 2, 2018 1 минуту назад, PHPSocial сказал: Вот php я уже все перепробовал но аякс и так не работает с джава кабулджана Он так и не будет работать, и я написал почему, это же обычная подгрузка вии. Share this post Link to post Share on other sites
PaZiTiF 13 Report post Posted April 8, 2019 В 02.10.2018 в 14:50, Mario сказал: Он так и не будет работать, и я написал почему, это же обычная подгрузка вии. да, тогда давно ваши советы мне помогли разобраться, данный код у меня мб еще где-то остался на пк Share this post Link to post Share on other sites