Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Технические требования к публикуемым дополнениям


Recommended Posts

7 часов назад, buslikdrev сказал:

И думаю в вашем способе должна быть валидация на существующие названия

Та без проблем. В пхп есть function_exists, class_exists, но почему-то в опенкарте их не используют.  Просто я показал пример, когда дефакто эта функция существует, поэтому нет надобности проверять if(function_exists($this->$function))

Надіслати
Поділитися на інших сайтах

6 часов назад, esculapra сказал:

о почему-то в опенкарте их не используют. 

а смысл?
хотя есть
 

if (extension_loaded('mbstring')) {
	mb_internal_encoding('UTF-8');


На самом деле, например array_column
И вдруг!!! 5.3

Надіслати
Поділитися на інших сайтах

21 час назад, esculapra сказал:

Я работал в газете в свое время, и всегда избегал такого оборота речи. "научить писать"... научить ваять код  / создавать код / написать код - реально меня коробит "писать"

А в той газете, где Вы работали, был словарь лексической сочетаемости слов? Или все ориентировались на собственное "коробит - не коробит"? :wink:

Надіслати
Поділитися на інших сайтах

11 часов назад, SergeTkach сказал:

был словарь лексической сочетаемости слов? Или все ориентировались на собственное "коробит - не коробит"?

Таки да, меня глючяит ассоциация слов "писал", "написал". Я  употребление этих слов стараюсь избегать.

Надіслати
Поділитися на інших сайтах

17 часов назад, chukcha сказал:

а смысл?

Я привел конкретный пример - неявный вызов функции.

<script>
    $('#popup-form-callme').popup();
     $(document).on('click', '#callbacktop', function (e) {
      e.preventDefault();
      $('#popup-form-callme').popup('show');
      title = $('title').context;
      $('#target_callme').val(title.title);
      $('#url_callme').val(title.URL);
});

function callMe(task){

form = $('#modal-form-'+task).serializeArray();//console.log(form);
$.ajax({url:"<?php echo $action ?>",type:'post',data:{form:form},success: function(data){alert(data);$('#popup-form-'+task).popup('hide');}})

}
</script>

   <?php

 class ControllerInformationCallMe extends Controller
     {
       private $error = array();

     public function index()
         {
           $this->load->language('extension/module/callme');
            if($this->request->server['REQUEST_METHOD'] == 'POST')
             {
               $mail = new Mail();
               $mail->protocol = $this->config->get('config_mail_protocol');
               $mail->parameter = $this->config->get('config_mail_parameter');
               $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
               $mail->smtp_username = $this->config->get('config_mail_smtp_username');
               $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'),ENT_QUOTES,'UTF-8');
               $mail->smtp_port = $this->config->get('config_mail_smtp_port');
               $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
               $mail->setTo($this->config->get('config_email'));
               $mail->setFrom($this->config->get('config_email'));
               $mail->setReplyTo($this->config->get('config_email'));
               $data = array();
               $data['from'] = $this->config->get('config_email');
               $data['to'] = $this->config->get('config_email');
               $data['date'] = gmdate("M d Y H:i:s", time());
               $data['text_from'] = $this->language->get('text_from');
               $data['text_to'] = $this->language->get('text_to');
               $data['text_date'] = $this->language->get('text_date');
               $params = $this->request->post['form'];
                foreach ($params as $param)
                 {
                     switch ($param['name'])
                     {
                       case 'task':
                       $data['message_type'] = $this->language->get('text_'.$param['value'].'_please');
                       $data['text_callme_new'] = $this->language->get('text_'.$param['value'].'_new');
                       $mail->setSubject(html_entity_decode($this->language->get('text_'.$param['value'].'_please'),ENT_QUOTES,'UTF-8'));
                         break;
                       case 'name':
                       $data['customer'] = $param['value'];
                       $data['customer_name'] = $this->language->get('customer_name');
                       $mail->setSender(html_entity_decode($param['value'],ENT_QUOTES,'UTF-8'));
                         break;
                       case 'city':
                       $data['city'] = $param['value'];
                       $data['customer_city'] = $this->language->get('customer_city');
                         break;
                       case 'phone':
                       $data['phone'] = $param['value'];
                       $data['customer_phone'] = $this->language->get('customer_phone');
                         break;
                       case 'sumname':
                       $data['sumname'] = $param['value'];
                       $data['customer_sumname'] = $this->language->get('customer_sumname');
                         break;
                       case 'email':
                       $data['email'] = $param['value'];
                       $data['customer_email'] = $this->language->get('customer_email');
                         break;
                       case 'target':
                       $data['target'] = $param['value'];
                         break;
                       case 'url':
                       $data['url'] = $param['value'];
                         break;
                     }
                 }
                 //$this->log_write($data);
               $body = $this->load->view('information/callme',$data);
               $mail->setHtml(html_entity_decode($body,ENT_QUOTES,'UTF-8'));/*$this->log_write($mail);*/
               $mail->send();
                echo $this->language->get('text_success'); exit;
             }
         }

     private function log_write($message)
         {
           $handle = fopen('test.log','a');
           fwrite($handle,print_r($message,true)."\n");
           fclose($handle);
         }
     }

PS. Немного не то, но пример хороший. Есть 3 формы, но обработчик один. И это реальный рабочий пример - на сайте https://orimak.com.ua/

 

Надіслати
Поділитися на інших сайтах

В 12.06.2021 в 11:29, esculapra сказал:

Таки да, меня глючяит ассоциация слов "писал", "написал". Я  употребление этих слов стараюсь избегать.

А значение слово "ваять" не смущает? Как оно вообще может сочетаться со словом "код"?

 

И чем, с Вашей точки зрения, так плохо, слово "писал"?

Надіслати
Поділитися на інших сайтах

В 14.06.2021 в 16:27, SergeTkach сказал:

А значение слово "ваять" не смущает? Как оно вообще может сочетаться со словом "код"?

Ну код можно и "создавать"

Надіслати
Поділитися на інших сайтах

2 часа назад, esculapra сказал:

Ну код можно и "создавать"

Да не важно как это называется... я вообще код х**рю.  Вместо того-что бы по старой привычке докапываться до слов, пишите нормальный код.

Посыл от @dinox вполне адекватный и правильный, то что там в самом opencart есть косяки по codestyle итд не означает, что вы все должны деградировать и писать как придумается. Стандарты ведь существуют не просто так, лучше бы вам коллеги начать их придерживаться.

Ну вот за прямые запросы в БД из контроллера, надо отдельное наказание ввести. :grin:

  • +1 2
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.