scary.png Happy Halloween! Лови жутко страшный список шаблонов и модулей со скидками.
Jump to content
Sign in to follow this  
Padlik

Помогите с выводом строковой переменной

Recommended Posts

Доброго времени суток!

 

Помогите с выводом строковой переменной. Есть модуль выгрузки в яндекс маркет, не получается вывести описание товара в xml из атрибутов. Делаю так:

                $tmp_string = ' ';
                $data['param'] = array();
                $attributes = $this->model_export_yandex_yml->getProductAttributes($product['product_id']);
                if (count($attributes) > 0) {
                    foreach ($attributes as $attr) {
                        if ($attr['attribute_id'] == $this->config->get('yandex_yml_adult')) {
                            $data['adult'] = 'true';
                            $tmp_string += $data['param']['name'] + ' ' + $data['param']['value'] + ' ' + $data['param']['unit'] + ' ';
                        }
                        else if (isset($all_attributes[$attr['attribute_id']])) {
                            $data['param'][] = $this->detectUnits(array(
                                'name' => $all_attributes[$attr['attribute_id']],
                                'value' => $attr['text']));
                                $tmp_string += $data['param']['name'] + ' ' + $data['param']['value'] + ' ' + $data['param']['unit'] + ' ';
                        }
                    }
                }

                $data['description'] = $tmp_string;

 

На выходе должно быть $data['description'] = атрибуты через запятую, по факту $data['description'] имеет пустое значение.

 

 

Share this post


Link to post
Share on other sites
                $tmp_string = ' ';
                $data['param'] = array();
                $attributes = $this->model_export_yandex_yml->getProductAttributes($product['product_id']);
                if (count($attributes) > 0) {
                    foreach ($attributes as $attr) {
                        if ($attr['attribute_id'] == $this->config->get('yandex_yml_adult')) {
                            $data['adult'] = 'true';
                            $tmp_string .= $data['param']['name'] . ' ' . $data['param']['value'] . ' ' . $data['param']['unit'] . ' ';
                        }
                        else if (isset($all_attributes[$attr['attribute_id']])) {
                            $data['param'][] = $this->detectUnits(array(
                                'name' => $all_attributes[$attr['attribute_id']],
                                'value' => $attr['text']));
                                $tmp_string .= $data['param']['name'] . ' ' . $data['param']['value'] . ' ' . $data['param']['unit'] . ' ';
                        }
                    }
                }
                $data['description'] = $tmp_string;

В PHP конкатенация строк происходит через точку.

Share this post


Link to post
Share on other sites

Maximbl4m, не помогло, на выходе в xml только закрывающий тэг <description/>, при этом массив атрибутов в тэгах param выводится без проблем. Не пойму где собака зарыта.

<param name="Размер" unit="ДxШxВ">170х75x47.5см</param>

<param name="Материал">Чугун</param>

<param name="Объем">235л</param>

Share this post


Link to post
Share on other sites

а на фига ты пытаешься добавить 

$data['param']['name']?  

тебе разве не $attr надо?  $data['param] это ж пустой массив

Share this post


Link to post
Share on other sites

olaff, увидел, работает, спасибо!

  $tmp_string = ' ';
                $data['param'] = array();
                $attributes = $this->model_export_yandex_yml->getProductAttributes($product['product_id']);
                if (count($attributes) > 0) {
                    foreach ($attributes as $attr) {
                        if ($attr['attribute_id'] == $this->config->get('yandex_yml_adult')) {
                            $data['adult'] = 'true';
                        
                        }
                        else if (isset($all_attributes[$attr['attribute_id']])) {
                            $data['param'][] = $this->detectUnits(array(
                                'name' => $all_attributes[$attr['attribute_id']],
                                'value' => $attr['text']));
                                $tmp_string .= $all_attributes[$attr['attribute_id']] . ': ' . $attr['text']. '; ';
                        }
                    }
                }
                $data['description'] = $tmp_string;   

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.