IPB

Здравствуйте, гость ( Вход | Регистрация )

> Правильно формулируйте вопросы - Вам быстрей ответят

Перед подачей запроса воспользуйтесь сервисом Поиск. Возможно Ваш вопрос уже был задан и доступно быстрое решение.

Для максимально быстрого решения проблемы обязательно укажите:
- адрес Вашего сайта + наименование хостинга (локальный/внешний)
- номер установленного релиза PHPSHOP CMS FREE (Указывается в админпанели. Пример PHPShop CMS Free (сборка 34501).
- подготовьте принтскрин Вашей проблемы (снимок рабочего стола в момент ошибки) и прикрепите принтскрин в теме.
- укажите наименование и/или номер ошибки.
- подробно опишите алгоритм Ваших действий при выполнении поставленной задачи

 
Ответить в данную темуНачать новую тему
> модификация формы "ОТЗЫВА", вывод сообщения "ВАШ ОТЗЫВ ПРИНЯТ. СПАСИБО"
mak
сообщение 26.4.2011, 16:58
Сообщение #1


Активный участник
***

Группа: Модератор
Сообщений: 586
Регистрация: 16.1.2011
Из: KZ
Пользователь №: 985



Предисловие:
В общем на всем форуме нашел две подходящие темы обе были открыты в прошлом году в июне и в декабре.
вот они:
это РАЗ
это ДВА

и обе заканчиваются постом типа:
"И как можно вывести, вывести сообщение после удачной отправки отзыва, например "Ваш отзыв принят"??? "
Т.е. без ответа.
===========================================
2 WORM: кстати, одна из них- твоя тема...
===========================================
А теперь о главном:
задача: как можно вывести, вывести сообщение после удачной отправки отзыва, например
"Ваш вопрос был отправлен, в ближайшее время мы свяжемся с вами."???


1) попытался сделать по подобию forma.core.php (где формируется сообщение через переменную @error@)
в gbook.core.php в функцию записи в базу вставить код:
$this->set('Error',"Ваш вопрос был отправлен, в ближайшее время мы свяжемся с вами.");
т.е. получилось типа этого:
Код
     /**
     * Запись отзыва в базу
     */
    function write() {
        
        // Подключаем библиотеку отправки почты
        PHPShopObj::loadClass("mail");
        
        if(isset($_POST['send_gb'])) {
            if(!preg_match("/@/",$_POST['mail_new']))//проверка почты
            {
                $_POST['mail_new']="";
            }
            if(PHPShopSecurity::true_param($_POST['name_new'],$_POST['otsiv_new'],$_POST['tema_new'])){
                $name_new=PHPShopSecurity::TotalClean($_POST['name_new'],2);
                $question_new=PHPShopSecurity::TotalClean($_POST['otsiv_new'],2);
                $title_new=PHPShopSecurity::TotalClean($_POST['tema_new'],2);
                $mail_new=addslashes($_POST['mail_new']);
                $date = date("U");
                $ip=$_SERVER['REMOTE_ADDR'];
                
                // Запись в базу
                $this->PHPShopOrm->insert(array('date'=>$date,'name'=>$name_new,'mail'=>$mail_new,'title'=>$title_new,'question'=>$question_new),
                        $prefix='');
                
                $zag=$this->PHPShopSystem->getValue('name')." - Уведомление о добалении отзыва / ".$date;
                $message="
Доброго времени!
---------------

С сайта ".$this->PHPShopSystem->getValue('name')." пришло уведомление о добалении отзыва
в гостевую книгу.

Данные о пользователе:
----------------------

Имя:                ".$name_new."
E-mail:             ".$mail_new."
Тема сообщения:     ".$title_new."
Сообщение:          ".$question_new."
Дата:               ".PHPShopDate::dataV($date)."
IP:                 ".$ip."

---------------

С уважением,
http://".$_SERVER['SERVER_NAME'];
                
                $PHPShopMail = new PHPShopMail($this->PHPShopSystem->getValue('admin_mail'),$mail_new,$zag,$message);
$this->set('Error',"Ваш вопрос был отправлен, в ближайшее время мы свяжемся с вами.");                
                
            }
        }
    }


2) делал так:
Код
    /**
     * Экшен записи отзыва при получении $_POST[send_gb]
     */
    function send_gb() {
            $this->write();
            header("Location: ../gbook/?write=ok");
           $this->set('Error',"Ваш вопрос был отправлен, в ближайшее время мы свяжемся с вами.");

Ни так, ни так НЕ РАБОТАЕТ!!!!
PS Надеюясь, что эта тема не заглохнет как две предыдущие
PS2 Предполагаю вопрос: "А присутствует ли в шаблоне переменная @Error@?", отвечаю:"Да, присутствует!!!"
======================================================
2 Dennion:
Зачем в Экшен записи отзыва при получении $_POST[send_gb]
через переменную $_GET передается write=ok?
Я не нашел адресата, кто ее бы принял и обработал, может плохо искал?
Если это осталось от какой-то задумки, то можно ее как-нить использовать для вышеописанной задачи?
========================================================================
ЗЫ3 Надеюсь кто-нить дочитал мой пост до конца laugh.gif
Причина редактирования: Не надо кричать
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 26.4.2011, 17:26
Сообщение #2


Администратор
***

Группа: Главные администраторы
Сообщений: 5910
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Нужно для начала понять, что экшены они же роутера выполняют роль регулировщика движения, те взависимости от того какая перемнная пришла - выполнять ту или иную функцию.

У нас в gbook.core.php экшены имеют вид $this->action=array("post"=>"send_gb","nav"=>"index","nav"=>"ID","get"=>"add_forma");
те для нашей задачи нужно обратить внимание на "post"=>"send_gb". Иными словами когда приходит перемнная $_POST['send_gb'] то выполнеятся функция send_gb().

Если по детсадовски, то это можно было записать так

Код
if(isset($_POST['send_gb'])) {
   echo send_gb();
}


Далее, ты хочешь вставить сообщение об успешной отправки, но ты не туда смотришь. У нас в send_gb() идет код

Код
if(!empty($_SESSION['text']) and $_POST['key']==$_SESSION['text']) {
            $this->write();
            header("Location: ../gbook/?write=ok");
        }else {
            $this->set('Error',"Ошибка ключа, повторите попытку ввода ключа");
            $this->parseTemplate($this->getValue('templates.gbook_forma_question'));
        }


Строка header("Location: ../gbook/?write=ok"); перегружает страницу и то что ты назначишь перемнную @error@ она не моймет, тк при перезагрузке будет другая функция отрабатываться, а точнее index().

Самый простой способ вставить условие в шаблон вывода отзывов
Код
@php if($_GET['wrirte'] == "ok")  echo "Усе пучком"; php@
Перейти в начало страницы
 
+Цитировать сообщение
mak
сообщение 26.4.2011, 18:05
Сообщение #3


Активный участник
***

Группа: Модератор
Сообщений: 586
Регистрация: 16.1.2011
Из: KZ
Пользователь №: 985



Самый простой способ вставить условие в шаблон вывода отзывов
Код
@php if($_GET['wrirte'] == "ok")  echo "Усе пучком"; php@



ТО ЧТО ДОКТОР ПРОПИСАЛ!!!!
ВСЕ ПОЛУЧИЛОСЬ, СПАСИБО ДЕННИОН
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 26.4.2011, 19:14
Сообщение #4


Администратор
***

Группа: Главные администраторы
Сообщений: 5910
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Цитата(mak @ 26.4.2011, 18:05) *
Самый простой способ вставить условие в шаблон вывода отзывов
Код
@php if($_GET['wrirte'] == "ok")  echo "Усе пучком"; php@



ТО ЧТО ДОКТОР ПРОПИСАЛ!!!!
ВСЕ ПОЛУЧИЛОСЬ, СПАСИБО ДЕННИОН


меджик biggrin.gif
Перейти в начало страницы
 
+Цитировать сообщение
mak
сообщение 26.4.2011, 19:31
Сообщение #5


Активный участник
***

Группа: Модератор
Сообщений: 586
Регистрация: 16.1.2011
Из: KZ
Пользователь №: 985



Цитата(Dennion @ 26.4.2011, 22:14) *
меджик biggrin.gif


Так и не понял кем ты меня Обозвал...
...
толи медик, толи Вжик,
А толи девка, толь мужик....
...

ЗЫ Аж пришлось закаламбурить
ohmy.gif laugh.gif
Перейти в начало страницы
 
+Цитировать сообщение
ElGato
сообщение 27.4.2011, 3:23
Сообщение #6


Я - не волшебник, я только лечусь
***

Группа: Модератор
Сообщений: 1009
Регистрация: 19.8.2010
Из: Екб. Подгорье
Пользователь №: 549
Версия CMS Free: 342-344



Цитата(mak @ 26.4.2011, 22:31) *
Так и не понял кем ты меня Обозвал...
...
толи медик, толи Вжик,
А толи девка, толь мужик....
...

ЗЫ Аж пришлось закаламбурить
ohmy.gif laugh.gif

magic
Перейти в начало страницы
 
+Цитировать сообщение
mak
сообщение 27.4.2011, 12:40
Сообщение #7


Активный участник
***

Группа: Модератор
Сообщений: 586
Регистрация: 16.1.2011
Из: KZ
Пользователь №: 985



Цитата(ElGato @ 27.4.2011, 6:23) *
magic

А колдун чтоли???
Перейти в начало страницы
 
+Цитировать сообщение
Worm
сообщение 27.4.2011, 13:54
Сообщение #8


Активный участник
***

Группа: Модератор
Сообщений: 2675
Регистрация: 30.12.2009
Из: Самара
Пользователь №: 213
Версия CMS Free: 34
Создано сайтов: Достаточно много



СТоп флуд!
Это никак не переводится!
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 18.9.2019, 23:06