DaVinci Опубликовано 28 августа, 2014 Жалоба Поделиться Опубликовано 28 августа, 2014 Небольшое дополнение на уровне шаблона - сохраняется история переходов по ссылкам- обновляется url в адресной строке в products.tpl {if $smarty.server.HTTP_X_REQUESTED_WITH|strtolower == 'xmlhttprequest'} {$wrapper = '' scope=parent} {/if} Ajax $("#brands a, #features a, .pagination a").live('click', function(){ var state = { title: $(this).attr("title"), url: $(this).attr("href") } history.pushState( state, state.title, state.url ); // при нажатии back/forward в браузере window.onpopstate = function(e){ get_pagination(this); return false; } get_pagination(this); return false; }); function get_pagination(href){ /*var href = $(this);*/ var get_link = $(href).attr('href'); $('#content').css('opacity','0.5'); $.get(get_link, function(data){ if(data){ $('#content').html(data); $('#content').css('opacity','1'); scroll = $('#content').offset().top; $('html, body').stop().animate({scrollLeft: 0, scrollTop:(scroll-200)}, 500); } }); } Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 28 августа, 2014 Жалоба Поделиться Опубликовано 28 августа, 2014 Небольшое дополнение на уровне шаблона - сохраняется история переходов по ссылкам- обновляется url в адресной строке в products.tpl {if $smarty.server.HTTP_X_REQUESTED_WITH|strtolower == 'xmlhttprequest'} {$wrapper = '' scope=parent} {/if} Ajax $("#brands a, #features a, .pagination a").live('click', function(){ var state = { title: $(this).attr("title"), url: $(this).attr("href") } history.pushState( state, state.title, state.url ); // при нажатии back/forward в браузере window.onpopstate = function(e){ get_pagination(this); return false; } get_pagination(this); return false; }); function get_pagination(href){ /*var href = $(this);*/ var get_link = $(href).attr('href'); $('#content').css('opacity','0.5'); $.get(get_link, function(data){ if(data){ $('#content').html(data); $('#content').css('opacity','1'); scroll = $('#content').offset().top; $('html, body').stop().animate({scrollLeft: 0, scrollTop:(scroll-200)}, 500); } }); } Просто интересуюсь, почему не {$wrapper = 'products.tpl' scope=parent} Вы изменили своё мнение ? Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 28 августа, 2014 Автор Жалоба Поделиться Опубликовано 28 августа, 2014 Просто интересуюсь, почему не {$wrapper = 'products.tpl' scope=parent} Вы изменили своё мнение ? мое мнение не менялось - во $wrapper можно указать необходимый шаблон, если того требует конкретная задача Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 28 августа, 2014 Жалоба Поделиться Опубликовано 28 августа, 2014 мое мнение не менялось - во $wrapper можно указать необходимый шаблон, если того требует конкретная задача как то для меня запутанно, почему в данном случаи Вы етого не предлагаете в первом посте ? Простите за любопытство Так же рекомендую написать тогда еще на гитхаб, так как сам разработчик враперу указывает '' в шаблоне для печати https://github.com/pikusov/Simpla/blob/master/simpla/design/html/order_print.tpl#L5Наверное стоит ему сообщить, что надо сделать по другому. Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 28 августа, 2014 Автор Жалоба Поделиться Опубликовано 28 августа, 2014 как то для меня запутанно, почему в данном случаи Вы етого не предлагаете в первом посте ? Простите за любопытство Так же рекомендую написать тогда еще на гитхаб, так как сам разработчик враперу указывает '' в шаблоне для печати https://github.com/pikusov/Simpla/blob/master/simpla/design/html/order_print.tpl#L5Наверное стоит ему сообщить, что надо сделать по другому. возьмем к примеру быстрый просмотр - допустим я хочу использовать другой шаблон для отображения карточки товара, в котором хочу вывести контент иначе, но по умолчанию ProductView.tpl нам отдает шаблон product.tpl, в таком случае я создаю шаблон product_[произвольное название].tpl и указываю в $wrapper. на выходе получаю указанный шаблон. можно использовать include {if $smarty.server.HTTP_X_REQUESTED_WITH|strtolower == 'xmlhttprequest'} {include file='product_[произвольное название].tpl'} в нем указать {$wrapper = '' scope=parent} {else} стандартный шаблон {/if} но зачем? достаточно сделать так {$wrapper = 'product_[произвольное название].tpl' scope=parent} вот эта функция // Создаем текущую обертку сайта (обычно index.tpl) $wrapper = $this->design->smarty->getTemplateVars('wrapper'); if(is_null($wrapper)) $wrapper = 'index.tpl'; if(!empty($wrapper)) return $this->body = $this->design->fetch($wrapper); else return $this->body = $content; я постараюсь расшифровать как смогу если $wrapper = ''; в print уходит содержимое шаблона в котором установили $wrapperесли $wrapper = 'product_main.tpl'; в print уходит содержимое шаблона product_main.tplесли $wrapper-а вообще нет в print уходит index.tpl в приведенной вами ссылке автор выводит содержимое заказа. но если я хочу обратиться, к примеру, к конкретному товару и при этом отправить в print свой шаблон то мне достаточно его указать в $wrapper Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 28 августа, 2014 Автор Жалоба Поделиться Опубликовано 28 августа, 2014 osben, вот допустим необходимо вывести в окне fancybox список товаров конкретной категории в виде exel как вы это реализуете? Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 28 августа, 2014 Жалоба Поделиться Опубликовано 28 августа, 2014 возьмем к примеру быстрый просмотр - допустим я хочу использовать другой шаблон для отображения карточки товара, в котором хочу вывести контент иначе, но по умолчанию ProductView.tpl нам отдает шаблон product.tpl, в таком случае я создаю шаблон product_[произвольное название].tpl и указываю в $wrapper. на выходе получаю указанный шаблон. можно использовать include {if $smarty.server.HTTP_X_REQUESTED_WITH|strtolower == 'xmlhttprequest'} {include file='product_[произвольное название].tpl'} в нем указать {$wrapper = '' scope=parent} {else} стандартный шаблон {/if} но зачем? достаточно сделать так {$wrapper = 'product_[произвольное название].tpl' scope=parent} вот эта функция // Создаем текущую обертку сайта (обычно index.tpl) $wrapper = $this->design->smarty->getTemplateVars('wrapper'); if(is_null($wrapper)) $wrapper = 'index.tpl'; if(!empty($wrapper)) return $this->body = $this->design->fetch($wrapper); else return $this->body = $content; я постараюсь расшифровать как смогу если $wrapper = ''; в print уходит содержимое шаблона в котором установили $wrapperесли $wrapper = 'product_main.tpl'; в print уходит содержимое шаблона product_main.tplесли $wrapper-а вообще нет в print уходит index.tpl в приведенной вами ссылке автор выводит содержимое заказа. но если я хочу обратиться, к примеру, к конкретному товару и при этом отправить в print свой шаблон то мне достаточно его указать в $wrapper И так, развеем некоторые мифы которые вы написали тут // Создаем текущую обертку сайта (обычно index.tpl) $wrapper = $this->design->smarty->getTemplateVars('wrapper'); if(is_null($wrapper)) $wrapper = 'index.tpl'; if(!empty($wrapper)) return $this->body = $this->design->fetch($wrapper); else return $this->body = $content; это не функция - садись, тебе двойка {if $smarty.server.HTTP_X_REQUESTED_WITH|strtolower == 'xmlhttprequest'} {include file='product_[произвольное название].tpl'} в нем указать {$wrapper = '' scope=parent} {else} стандартный шаблон {/if} это в случаи если верстка кардинально отличается от product.tpl. Но за частую можно все реализовать и в product.tpl через условия в css и js. Открою Вам секрет, большинство программистов после которых брал проекты на доработки делали еще "круче" делают отдельный файл в папке ajax/ и и по get берут id товара, что конечно ужасно, и способ описанный выше есть более лучше и удобнее (мое мнение и по всей видимости и Ваше) По вашему решению в теме, есть конечно нюансы если придраться или захотеть сделать замечание\советы. Со своей стороны сделаю советы на что обратить внимание, что бы сделать вашу доработку лучше! 1. обратите внимание на title: $(this).attr("title"), при наборе селекторов $("#brands a, #features a, .pagination a") На сколько я визуально понимаю, будет в некоторых случаях (а то и вовсе по каждому селектору ) undefined 2. при $.get(get_link, function(data){ думаю надо дописать переход в случаи fail. Так как условие if(data){ .... вообще не о чем не говоритТак как Вы не любите намеки или не хотите понимать их или .... пишу как я вижу данную функцию function get_pagination(href){ var get_link = $(href).attr('href'); $('#content').css('opacity', 0.5); $.get(get_link, function(data){ var scroll = $('#content').html(data).css('opacity', 1).offset().top; $('html, body').stop().animate({scrollLeft: 0, scrollTop:(scroll-200)}, 500); }) .fail(function() { location = get_link; }); } это один из вариантов. И простите за код стаил, и за обращение к селектору два раза вместо 4х, привычка вот допустим необходимо вывести в окне fancybox список товаров конкретной категории в виде exel как вы это реализуете? Вы вправду верите, что задали корректно вопрос ? Такое я себе запишу в заметки, интересный вопрос как бы ))) прям шедевр в том виде как написан, скорее всего Вы имели что то другое говоря об exel в fancybox Не сочтите за грубость (хотя в какой то мере Вы уже на ето заслужили) но Ваша манера сильно напоминает Корса (если я не ошибаюсь), только он каждое решение выкладывал как платно, вплоть до трех строк кода. А как он дискуссия вел, это же просто катастрофа была. (была потому что не вижу его ника на форуме в постах) Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 29 августа, 2014 Автор Жалоба Поделиться Опубликовано 29 августа, 2014 это в случаи если верстка кардинально отличается от product.tpl. Но за частую можно все реализовать и в product.tpl через условия в css и js. зачастую проще создать отдельный шаблон без всяких условий. следуя вашей логике и вовсе все шаблоны можно воткнуть в index.tpl, добавить условия, и ведь все будет работать. я рад что до вас наконец дошло мое послание, пусть даже в сотый раз но именно об этом я не однократно вам писал. Вы очень сообразительный) Osben: И так, развеем некоторые мифы которые вы написали тут вы прям таки разрушитель мифов! ток какие в итоге вы развеяли? то что это не функция)) из вас прям вырывается зверь - "Дай ко мне кого то чему то научить") Может вам собаку завести что бы отпустило... я как то не понял что в моем вопросе по поводу exel в fancybox не корректного? задача заключается обратится к категории через ajax и вывести товары в табличке виде exel (exel привел в пример для того что бы понимать каким должен быть шаблон. когда говорят таблица в ввиде exel все понимают о чем речь, в вашем случае это не помогло). вы конечно запишите в заметки но на вопрос вы не ответили (конкретным примером) а начали вновь умничать. вы не в первый раз рассуждаете о том что вы что то у кого то видели, что кто то там как то криво что то написал. я попросил вас показать конкретный пример, написать код, вместо этого вы юлите и отвечаете вопросом на вопрос. задам еще разosben, вот допустим необходимо вывести в окне fancybox список товаров конкретной категории. Условия1. должен быть отдельный шаблон1. список товаров вывести в теге <table>, не забудьте добавить borderкак вы это реализуете?фиг знает правильно ли задал вопрос я просто не знаю как его сформулировать что бы вам было понятно... Простите но я вновь отмечу что вы ведете себя снисходительно, хотя уже смогли раскрыть свою мысль в конкретных, полезных примерах, уже хорошо. Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 29 августа, 2014 Автор Жалоба Поделиться Опубликовано 29 августа, 2014 Не сочтите за грубость (хотя в какой то мере Вы уже на ето заслужили) но Ваша манера сильно напоминает Корса (если я не ошибаюсь), только он каждое решение выкладывал как платно, вплоть до трех строк кода. А как он дискуссия вел, это же просто катастрофа была. (была потому что не вижу его ника на форуме в постах) возможно в этом причина вашей предвзятости. с полной ответственностью заявляю что не имею отношение к корсу. обратите внимание на первый пост - в нем нет ни какой "манеры". правда ведь? возможно, я не настаиваю, причина моей "манеры" заключается в чем то другом, возможно это реакция на ваш стиль общения. Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 29 августа, 2014 Жалоба Поделиться Опубликовано 29 августа, 2014 Парень, притихни чуток. Видно что ты только начинаешь в программировании, а уже возомнил себя спецом, что бы участок кода называть функцией. Та даже таблицу html называешь exel - не стыдно ? ну да, как ты писал "фиг знает правильно ли ....". Будь чуточку адекватнее, не надо меня пытаться обсырать выдергивая цитаты. Если ты все в штыки принимаешь, что то себе придумываешь что я тебя учу или еще что то, ну тебя нафиг, лучше вообще в твоих топиках не буду писать. Чао Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 29 августа, 2014 Автор Жалоба Поделиться Опубликовано 29 августа, 2014 Парень, притихни чуток. Видно что ты только начинаешь в программировании, а уже возомнил себя спецом, что бы участок кода называть функцией. Та даже таблицу html называешь exel - не стыдно ? ну да, как ты писал "фиг знает правильно ли ....". Будь чуточку адекватнее, не надо меня пытаться обсырать выдергивая цитаты. Если ты все в штыки принимаешь, что то себе придумываешь что я тебя учу или еще что то, ну тебя нафиг, лучше вообще в твоих топиках не буду писать. Чао чего так нервничать и ножками топать. я ведь не напрашиваюсь на ваше общение, вы по своей воле отвечаете в "топиках" вот смотрите что я вам написалв окне fancybox список товаров конкретной категории в виде exel Osben: Та даже таблицу html называешь exel - не стыдноНу за что мне должно быть стыдно? какую таблицу я назвал exel - внимательней - список товаров в виде exel - все понятно! помимо таблицы (table) в html есть еще <ul>, но дело не в этом, главное придать выводу вид exel таблицы УЧАСТОК КОДА (часть кода определенной функции я обубликовал и назвал функцией) ----->>>> ЧАСТЬ КОДА. с этого можно судить что вы только начинаете в программировании? Но это придирка ровно такая же как была с вашей стороны. я воспринимаю все достаточно адекватно - мои ответы адекватны вашим коментариям. В каком месте я вас обосрал не пойму... и вы опять не ответили задам еще разosben, вот допустим необходимо вывести в окне fancybox список товаров конкретной категории. Условия1. должен быть отдельный шаблон1. список товаров вывести в теге <table>, не забудьте добавить borderкак вы это реализуете?и вы опять не ответили Или умничать легче чем привести пример? Или вы боитесь что в вашем примере будет к чему придраться? псстранно что вам не нравится когда с вами общаются ровно в вашей же манере! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.