wokster


wokster

  • wokster wokster 2 июня 2016 18:23 #

    Спасибо за время

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 18:23 #

    Удалил /wa-apps/site/plugins/ajax/lib/config/routing.php

    Теперь норм

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 18:21 #

    Вот только ответ странный:

    return array(
        'ajax/' => 'frontend/mail',
    );{"status":"ok","data":{"hhh":"\u0436\u043e\u043f\u0430"}}

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 18:16 #

    Залез в routing.php для site

    добавил

    <?php
    
    return array(
    .............
    	    'ajax/' => array(
            'module' => 'frontend',
    		'plugin' => 'ajax',
            'action' => 'mail',
            'secure' => false,
        ),
    ......................
    );

    работает


    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 17:44 #

    extends -дубль убрал

    кеш вычищен, debug mode включен


    Все равно 404

    Проверяю так (в шапке сайта)

    $(function() {
        $.getJSON('/site/ajax/', function (json) {
        alert(json);
    });
        $.getJSON('/ajax/', function (json) {
        alert(json);
    });
    });

    может тут ошибка, но в консоле вижу что запрос идет и получает 404

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 15:13 #
    не было, но не помогло. Вот /wa-apps/site/plugins/ajax/lib/config/plugin.php


    <?php
    
    return array(
        // обязательные параметры
        'name' => 'ajax',
        'description' => 'ajax',
        'version' => '1.0',
    	'frontend' => true,
    );

    /wa-apps/site/plugins/ajax/lib/config/routing.php


    return array(
        'ajax/' => 'frontend/mail',
    );

    /wa-apps/site/plugins/ajax/lib/siteAjax.plugin.php

    <?php
    
    class siteAjaxPlugin extends sitePlugin
    {
    
            public function method1($params) 
            {
    
            }
    }

    /wa-apps/site/plugins/ajax/lib/actions/siteAjaxPluginFrontendMail.controller.php

    <?php
    
    class siteAjaxPluginFrontendMailController extends extends waJsonController
    {
    
        public function execute()
        {
                $this->response = array(
                    'hhh' => 'жопа',
                );
        }
    
    }

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 12:13 #

    domain.ru/ajax/ дает 404

    domain.ru/site/ajax/ тоже 404


    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 11:29 #

    7 кругов ада, что бы получить "hello world" по ajax

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 11:08 #

    получаю

    <h2 id="Title" style="font-family: 'Times New Roman'; line-height: normal;">Empty module and/or action after parsing the URL "/?plugin=ajax&action=mail" (frontend/mail).
    Not found classes: shopFrontendMailController, shopFrontendMailAction, shopFrontendActions</h2>

    причем

    <h2 style="font-family: 'Times New Roman'; line-height: normal;">Call stack</h2>
    #0 /home/billyboy/domains/billy-boy.su/public_html/wa-system/controller/waFrontController.class.php(58): waFrontController->execute('', 'frontend', 'mail')
    #1 /home/billyboy/domains/billy-boy.su/public_html/wa-system/waSystem.class.php(586): waFrontController->dispatch()
    #2 /home/billyboy/domains/billy-boy.su/public_html/index.php(7): waSystem->dispatch() 

    почему-то waFrontController->execute('', 'frontend', 'mail') - не правильно подключен plugin? Почему он передает пустые кавычки?

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 2 июня 2016 10:39 #

    А где должен быть routing.php для плагина?

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 31 мая 2016 15:40 #

    А если нет возможности поселить "Сайт" в корень сайта: domain/* - будет работать по domain/site/ajax ? И надо ли при этом править routing.php

    Где должен находится routing.php плагина?

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 22 мая 2016 12:39 #

    В /wa-config/routing.php добавил:

          5 => 
        array (
          'url' => 'ajax/*',
          'app' => 'site',
          'plugin' => 'ajax',
        ),

    обращаюсь к домен.su/ajax теперь другая ошибка:


    Empty module and/or action after parsing the URL "/ajax/" (frontend/).
    Not found classes: siteAjaxPluginFrontendController, siteAjaxPluginFrontendAction, siteAjaxPluginFrontendActions
    
    Error with code 404 in '/home/billyboy/domains/billy-boy.su/public_html/wa-system/controller/waFrontController.class.php' around line 189:
    
       184	        if ($action && $default) {
       185	            return $this->execute($plugin, $module);
       186	        }
       187	
       188	        // Too bad. 404.
     >>189	        throw new waException(sprintf('Empty module and/or action after parsing the URL "%s" (%s/%s).<br />Not found classes: %s', $this->system->getConfig()->getCurrentUrl(), $module, $action,implode(', ',$class_names)), 404);
       190	    }
       191	}
       192	
       193	// EOF

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 22 мая 2016 12:23 #

    переделал. Сделал siteAjaxPluginFrontendMail.controller.php вместо siteAjaxPluginFrontendMail.action.php


    <?php
    
    class siteAjaxPluginFrontendMailController extends extends waJsonController
    {
    
        public function execute()
        {
                $this->response = array(
                    'hhh' => 'жопа',
                );
        }
    

    С routing.php подскажите? Что в нем и где он?

    в ответ на Помогите с плагином для обработки ajax

  • wokster wokster 21 апреля 2016 15:23 #

    Вынес, но кеш не работает:


    class shopCustom
    {
      public static function getProductList($set_id, $offset = null, $limit = null, $options = array())
      {
        if ($cache = wa('shop')->getCache('default')){
          $products = $cache->get('ProductList_'.$set_id, 'sets');
          if ($products !== null) {
            return $products;
          }
        }
        $collection = new shopProductsCollection('set/'.$set_id, null);
        $products = $collection->getProducts('*,images', 0, null, true);
        if (!empty($cache)) {
          $cache->set('ProductList_'.$set_id, $products, 1200, 'sets');
        }
        return $products;
      }
    }

    в ответ на Где формируется $wa->shop->productSet ?

  • wokster wokster 21 апреля 2016 13:06 #

    Остается только вопрос что будет после обновления. Я так понимаю, все перезапишется. Стоит вынести все это в пользовательский helper? Можно ли его унаследовать от shopViewHelper.class.php или есть другой способ дергать его методы?

    в ответ на Где формируется $wa->shop->productSet ?

  • wokster wokster 21 апреля 2016 12:59 #

    Спасибо

    в ответ на Где формируется $wa->shop->productSet ?

  • wokster wokster 21 апреля 2016 12:13 #

    Это понятно. Вопрос был, где там формирование массива. Но уже сделал. Не уверен, что это допустимо, так что, уважаемые профи, скажите насколько правильным методом будет добавления следующего в shopViewHelper.class.php

        public function productSetWithImg($set_id, $offset = null, $limit = null, $options = array())
        {
            if (!$offset && !$limit && !$options && ($cache = $this->wa->getCache())) {
                $route = $this->getRoute();
                $cache_key = 'set_'.$set_id.'_'.str_replace('/', '_', waRouting::clearUrl($route['domain'].'/'.$route['url']));
                $products = $cache->get($cache_key, 'sets');
                if ($products !== null) {
                    return $products;
                }
            }
            $products = $this->products('set/'.$set_id, $offset, $limit, $options);
            foreach ($products as $key=>$one)
            {
                $products[$key]['images'] = [];
                $model = new shopProductImagesModel();
                foreach($model->select('id','product_id','sort')
                            ->where('product_id = '.(int)$one['id'])
                            ->order('sort ASC')
                            ->fetchAll() as $img){
                    $products[$key]['images'][] = $img['id'];
                }
            }
            if (!empty($cache)) {
                $cache->set($cache_key, $products, 1200, 'sets');
            }
            return $products;
        }

    в ответ на Где формируется $wa->shop->productSet ?