Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

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

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

Link to post
Share on other sites
6 часов назад, esculapra сказал:

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

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

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


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

Link to post
Share on other sites
21 час назад, esculapra сказал:

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

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

Link to post
Share on other sites
11 часов назад, SergeTkach сказал:

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

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

Link to post
Share on other sites
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/

 

Link to post
Share on other sites
В 12.06.2021 в 11:29, esculapra сказал:

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

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

 

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

Link to post
Share on other sites
В 14.06.2021 в 16:27, SergeTkach сказал:

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

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

Link to post
Share on other sites
2 часа назад, esculapra сказал:

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

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

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

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

  • +1 2
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.