Сегодня начертал выгрузку хмл, но 1 вопрос.

Machine

Новичок
Вообщем начну. Имеется код выгрузки :

PHP:
<?php
/**
 * Created by JetBrains PhpStorm.
 * User: User
 * Date: 28.09.12
 * Time: 0:04
 * To change this template use File | Settings | File Templates.
 */
class XmlController extends Controller
{
    public function actionIndex()
    {
        $criteria = new CDbCriteria();
        $criteria->with = array('cities');
        $offers = Items::model()->findAllActive($criteria);

        header('Content-Type: text/xml');

        echo '<?xml version="1.0" encoding="UTF-8"?>
<discounts>
    <operator>
        <name></name>
        <url></url>
        <param></param>
        <logo>images/logo_top.png</logo>
        <logo264></logo264>
        <logo88></logo88>
        <logo16></logo16>
    </operator>
    <offers>
    ';
        foreach($offers as $v)
        {
            $dates = ItemDates::model()->findByPk($v->getDatesId());
           echo '<offer>
                <id>'.$v->id.'</id>
                <name>'.htmlspecialchars($v->name).'</name>
                <url>'.$this->createUrl('item/',array('id'=>$v->id)).'</url>
                <description>'.htmlspecialchars($v->description).'</description>
                <regions>';
            foreach($v->cities as $v2)
            {
                    echo '<region>'.$v2->name.'</region>';
            }
           echo '</regions>
           <beginsell>'.$dates->start_date.'</beginsell>
           <endsell>'.$dates->end_date.'</endsell>
           <beginvalid>'.$dates->start_date.'</beginvalid>
           <endvalid>'.$dates->end_date.'</endvalid>
           <picture>'.Yii::app()->params['CONTENT_WAY'].'/items/'.$v->itemSlides[0]->image.'</picture>
           <price>'.$v->price.'</price>
           <discount>'.$v->discount.'</discount>
           <discountprice>'.$this->calcDiscPrice($v).'</discountprice>
           <pricecoupon>'.$v->cupon_price.'</pricecoupon>
           <supplier>
                <name>'.htmlspecialchars($v->company->name).'</name>
                <url />
                <tel />
                <addresses>
                    <address>
                        <name />
                        <coordinates>'.$v->company->map_lat.','.$v->company->map_lng.'</coordinates>
                    </address>
                </addresses>
            </supplier>
            </offer>';
        }
echo    '</offers>
</discounts>
        ';
        die();
    }
}
все отлично работает, но есть 1 вопрос. из кода видно,
PHP:
            foreach($v->cities as $v2)
            {
                    echo '<region>'.$v2->name.'</region>';
            }
то есть, к новости подбираются все города которые существуют в переменной.

Города моего сайта:

Киев, Винница, Днепропетровск и т.д. ХМЛ вытягивает их и приписует в выгрузку.. в итоге исход получается такой: пример на одной новости:

PHP:
<regions><region>Донецк</region>
<region>Киев</region>
<region>Винница</region>
<region>Днепропетровск</region>
<region>Житомир</region>
<region>Запорожье</region>
<region>Ивано-Франковск</region>
<region>Кировоград</region>
<region>Кривой Рог</region>
<region>Луганск</region>
<region>Луцк</region>
<region>Львов</region>
<region>Мариуполь</region>
<region>Николаев</region>
<region>Одесса</region>
<region>Полтава</region>
<region>Ровно</region>
<region>Севастополь</region>
<region>Симферополь</region>
<region>Сумы</region></regions>
А нужно сделать, так чтобы все эти регионы не приписывались к одной новости, а выгрузка создавала такие же новости только каждую с разным городом, чтобы материал продублировался 20 раз к примеру( в зависимости кол-ва городов ) , но к каждому был только 1 регион.

Уважаемые форумчане, прошу помощи. подскажите что изменить в коде?
 

Фанат

oncle terrible
Команда форума
ну, видимо, цикл надо перенести уровнем выше?
Хотя лично я такой бы РСС читать не стал, с 20-ю одинаковыми новостями, которые мне хотят впарить, как якобы новости для моего региона.
 

Machine

Новичок
"как якобы новости для моего региона."

так мы просто во всей украине работаем, и в выгрузке нам сказали сделать либо 1 регион, либо дублированные новости со всеми регионами.
 

С.

Продвинутый новичок
Следи за руками. Было:
PHP:
foreach ($array1 as $a1)
{
   foreach ($array2 as $a2)
   { 
      echo $a1, $a2;
   }
}
стало:
PHP:
foreach ($array2 as $a2)
{
   foreach ($array1 as $a1)
   { 
      echo $a1, $a2;
   }
}
Перенесли!
 

С.

Продвинутый новичок
Ну Вурдалак, ну please! Он в двух циклах заблудился, ты про какие-то контроллеры тут. Как он объяснит, если просто нашел где-то этот код.
 
Сверху