theInt Опубликовано 2 ноября, 2018 Жалоба Поделиться Опубликовано 2 ноября, 2018 Здравствуйте. Подскажите пожалуйста, кто как определяет последнюю страницу подтверждения заказа? Т.е. вот есть способ {if $module == 'OrderView' } {/if} Но он идет по всем этапам оформления. А как определить именно последнюю завершающую страницу? Цитата Ссылка на сообщение Поделиться на другие сайты
theInt Опубликовано 2 ноября, 2018 Автор Жалоба Поделиться Опубликовано 2 ноября, 2018 {if $module == 'OrderView' && $this->request->get('url')} ... {/if} Спасибо! Так страничка падает) Цитата Ссылка на сообщение Поделиться на другие сайты
theInt Опубликовано 2 ноября, 2018 Автор Жалоба Поделиться Опубликовано 2 ноября, 2018 {if $module == 'OrderView' || $this->request->get('url')} Вот так заработало. но - он все равно тащит по всем страницам оформления заказа (( Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 ноября, 2018 Жалоба Поделиться Опубликовано 2 ноября, 2018 {if $module == 'OrderView' && $this->request->get('url')} ... {/if} Совет принципиально неправильный - годится только для того, чтоб сделать сайт нерабочим.Крайне не рекомендуется использовать такое. На форуме недавно DaVinci настройчиво предостерегал всех от шарлатанов, не отличающих файлы от классов.В данном случае советчик даже не отличает PHP от шаблонизатора Smarty... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 2 ноября, 2018 Жалоба Поделиться Опубликовано 2 ноября, 2018 Здравствуйте. Подскажите пожалуйста, кто как определяет последнюю страницу подтверждения заказа? Т.е. вот есть способ {if $module == 'OrderView' } {/if} Но он идет по всем этапам оформления. А как определить именно последнюю завершающую страницу? OrderView это и есть последний этап. их два всего. корзина и заказ. еще есть оплата. вам нужно что именно сделать? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 2 ноября, 2018 Жалоба Поделиться Опубликовано 2 ноября, 2018 Совет принципиально неправильный - годится только для того, чтоб сделать сайт нерабочим.Крайне не рекомендуется использовать такое. На форуме недавно DaVinci настройчиво предостерегал всех от шарлатанов, не отличающих файлы от классов.В данном случае советчик даже не отличает PHP от шаблонизатора Smarty...Ты дебилище неужели не понятно что ошибся синтаксисом?Я в отличии от тебя мудозвона отличаю файлы от классов... Спасибо! Так страничка падает)Поправка: {if $module == 'OrderView' && $smarty.get.url} ... {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 3 ноября, 2018 Жалоба Поделиться Опубликовано 3 ноября, 2018 (изменено) Поправка:{if $module == 'OrderView' && $smarty.get.url} ... {/if} Интересно, а сам автор пробовал свой рецент в действии?Остерегайтесь сомнительных советов! Иногда встречаются даже такие советчики, что даже не могут отличить последнюю завершающую страницу заказа от страницы, открываемой много позднее по ссылке из письма... Изменено 3 ноября, 2018 пользователем phukortsin Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 3 ноября, 2018 Жалоба Поделиться Опубликовано 3 ноября, 2018 Интересно, а сам автор пробовал свой рецент в действии?Остерегайтесь сомнительных советов! Иногда встречаются даже такие советчики, что даже не могут отличить последнюю завершающую страницу заказа от страницы, открываемой много позднее по ссылке из письма...Сходи к врачу имбицил. Цитата Ссылка на сообщение Поделиться на другие сайты
theInt Опубликовано 7 ноября, 2018 Автор Жалоба Поделиться Опубликовано 7 ноября, 2018 Доброго дня {if $module == 'OrderView' && $smarty.get.url} ... {/if} Такой код тоже не дал особо ничего. И разницы между {if $module == 'OrderView'} ... {/if} не уловил. Проблема в том, что нужный элемент появляется на странице где "ваш заказ принят", а потом на след странице при нажатии на "закончить заказ". А нужно, чтобы было только на странице "закончить заказ". Но обе эти страницы являются orderView Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 Да просто потому, что в Симпле нет в принципе такой страницы.После нажатия Закончить заказ - появляется кнопка Оплаты, потом можно вернуться ОБРАТНО и поменять способ оплаты и так можно делать сколько угодно раз... Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 А как определить именно последнюю завершающую страницу? Надо что-то добавочно сделать, чтобы отличать страницу заказа, которая появляется ВПЕРВЫЕ сразу после оформления, от страниц этого же заказа, которые позднее могут открываться много раз, например, по ссылке из письма или личного кабинета. Простейший вариант: добавить к URL заказа параметр для первого открытия, в файле view/CartView.php при редиректе, примерно так: // Перенаправляем на страницу заказа header('Location: '.$this->config->root_url.'/order/'.$order->url."?just_created=yes"); А потом в шаблоне использовать{if $smarty,get.just_created} Я есть завершающая страница заказа.{/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 (изменено) Надо что-то добавочно сделать, чтобы отличать страницу заказа, которая появляется ВПЕРВЫЕ сразу после оформления, от страниц этого же заказа, которые позднее могут открываться много раз, например, по ссылке из письма или личного кабинета. Простейший вариант: добавить к URL заказа параметр для первого открытия, в файле view/CartView.php при редиректе, примерно так: // Перенаправляем на страницу заказа header('Location: '.$this->config->root_url.'/order/'.$order->url."?just_created=yes"); А потом в шаблоне использовать{if $smarty,get.just_created} Я есть завершающая страница заказа.{/if} Какой в этом толк если в письме с заказом и в кабинете покупателя будет обычная ссылка вида {$config->root_url}/order/{$order->url}??? Изменено 7 ноября, 2018 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Noxter Опубликовано 7 ноября, 2018 Решение Жалоба Поделиться Опубликовано 7 ноября, 2018 Доброго дня {if $module == 'OrderView' && $smarty.get.url} ... {/if} Такой код тоже не дал особо ничего. И разницы между {if $module == 'OrderView'} ... {/if} не уловил. Проблема в том, что нужный элемент появляется на странице где "ваш заказ принят", а потом на след странице при нажатии на "закончить заказ". А нужно, чтобы было только на странице "закончить заказ". Но обе эти страницы являются orderView Как вариант это проверять существует ли в заказе способ оплаты, а именно: {if $order->payment_method_id} ... {/if} Это последняя страница заказа, следующий шаг оплата (на этой же странице). Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 Какой в этом толк если в письме с заказом и в кабинете покупателя будет обычная ссылка вида {$config->root_url}/order/{$order->url}??? В том как раз и цель, чтобы эта ссылка ОТЛИЧАЛАСЬ параметром от всех прочих ссылок на страницу заказа. Догоняй! Как вариант это проверять существует ли в заказе способ оплаты, а именно: Годится как плохой вариант. Потому как наличие или отсутствие оплаты совсем не связано с обсуждаемым вопросом - страницу заказа после оформления можно открыть двадцать раз, и только на десятом оплатить online. А может, оплата будет делаться вообще не online и отметку об оплате поставит админ в админке после пятнадцати просмотров... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 В том как раз и цель, чтобы эта ссылка ОТЛИЧАЛАСЬ параметром от всех прочих ссылок на страницу заказа. Догоняй! Ну ты ТОРМОЗ! Клиенту в заказ ссылка никак не попадёт другая, потому как она формируется шаблонно (в шаблоне email_order.tpl) как я выше описал. Рукалицо...Годится как плохой вариант. Потому как наличие или отсутствие оплаты совсем не связано с обсуждаемым вопросом - страницу заказа после оформления можно открыть двадцать раз, и только на десятом оплатить online. А может, оплата будет делаться вообще не online и отметку об оплате поставит админ в админке после пятнадцати просмотров...Да хоть 100500 раз откроют, способ работает. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 Ну ты ТОРМОЗ!Клиенту в заказ ссылка никак не попадёт другая, потому как она формируется шаблонно (в шаблоне email_order.tpl) как я выше описал.Рукалицо...Да хоть 100500 раз откроют, способ работает. Еще как попадет!Вы, дяденька, даже не знаете, что есть стандартный момент в Simpla, где ссылка на страницу заказа формируется БЕЗ участия шаблона... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 7 ноября, 2018 Жалоба Поделиться Опубликовано 7 ноября, 2018 Еще как попадет!Вы, дяденька, даже не знаете, что есть стандартный момент в Simpla, где ссылка на страницу заказа формируется БЕЗ участия шаблона...Формируется и попадает в БД, ПОСЛЕ её не изменить твоим способом. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 8 ноября, 2018 Жалоба Поделиться Опубликовано 8 ноября, 2018 Формируется и попадает в БД, ПОСЛЕ её не изменить твоим способом. Во-первых, в БД попадает вовсе не ссылка на страницу заказа, а лишь ее часть - шифрованный токен.Во-вторых, мой способ и не собирался менять, что записано а БД. Он меняет совсем другое. Читайте внимательнее - способ простой, понять очень легко даже новичку. Опять не в тему.Догоняйте шустрее, дяденька... Цитата Ссылка на сообщение Поделиться на другие сайты
theInt Опубликовано 13 ноября, 2018 Автор Жалоба Поделиться Опубликовано 13 ноября, 2018 {if $order->payment_method_id} ... {/if} Вот этот вариант помог. Спасибо большое!! Цитата Ссылка на сообщение Поделиться на другие сайты
theInt Опубликовано 13 ноября, 2018 Автор Жалоба Поделиться Опубликовано 13 ноября, 2018 Надо что-то добавочно сделать, чтобы отличать страницу заказа, которая появляется ВПЕРВЫЕ сразу после оформления, от страниц этого же заказа, которые позднее могут открываться много раз, например, по ссылке из письма или личного кабинета. Простейший вариант: добавить к URL заказа параметр для первого открытия, в файле view/CartView.php при редиректе, примерно так: // Перенаправляем на страницу заказа header('Location: '.$this->config->root_url.'/order/'.$order->url."?just_created=yes"); А потом в шаблоне использовать{if $smarty,get.just_created} Я есть завершающая страница заказа.{/if} При таком способе just_created=yes тащится все равно по всем страницам order Только при условии {if $order->payment_method_id} появляется в конце. Лучшего варианта пока нет видимо Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 13 ноября, 2018 Жалоба Поделиться Опубликовано 13 ноября, 2018 При таком способе just_created=yes тащится все равно по всем страницам order Только при условии {if $order->payment_method_id} появляется в конце. Лучшего варианта пока нет видимо Смотря что имеете в виду под "тащится все равно по всем страницам order". Например, ссылка из письма стандартная, в ней нет такой добавки... Если у Вас "тащит" при работе с оплатой сразу после оформления, пробуйте в design/default/html/order.tpl заменить<form method=post>на<form method=post action={url just_created=null}>в двух местах. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.