Yii Framework Forum: CDbMessageSource? - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

CDbMessageSource? Rate Topic: -----

#21 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 04 March 2011 - 03:33 AM

Una volta ho visto una estensione o un post a proposito di url localizzati, ma si tratta di un anno fa.

Prova a cercare nel forum, c'era la possiblita di creare url in base alla lingua tipo:

contatti => contacts + italiano
kontakt=> contacts + tetesco

eccetera eccetera.
0

#22 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 04 March 2011 - 03:36 AM

Eccoli qua: il thread e il coockbook, by Y!!
1

#23 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 04 March 2011 - 09:45 AM

Ragazzi forse ho fatto un gigaaccrocchio o forse sono stato proprio bravo. Se avete seguito i miei ultimi post, sto facendo un sito multilingua. Ho aggiunto a questo sito il modulo delle news. Una volta creata la tabella, model, crud attraverso Gii, mi sono reso conto che non avevo il supporto multilingua delle news.

Così ho pensato. Bene..: quando salvo una news, prendo il suo id e creo per ogni campo di testo un corrispondente campo SourceMessage. Quindi i relativi campi in tutte le lingue del mio sistema.

  /**
   * Creates a new model.
   * If creation is successful, the browser will be redirected to the 'view' page.
   */
  public function actionCreate() {
    $model = new News;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if (isset($_POST['News'])) {
      $model->attributes = $_POST['News'];
      if ($model->save()) {

        foreach (array('titolo', 'corpo', 'abstract') as $itemFields) {
          /* Creo il SourceMessaggio */
          $sm = new SourceMessage;
          $sm->category = 'news-' . ($itemFields);
          $sm->message = $model->id;
          $sm->save();

          /* Ricopio l'italiano in tutte le lingue che sono state impostate */
          foreach (Yii::app()->params['languages'] as $item) {
            $m = new Message;
            $m->id = $sm->id;
            $m->language = $item;
            $m->translation = $model->$itemFields;
            $m->save();
          }
        }

        $this->redirect(array('view', 'id' => $model->id));
      }
    }

    $this->render('create', array(
        'model' => $model,
    ));
  }


Che ne pensate? Ho osato troppo?
0

#24 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 04 March 2011 - 09:56 AM

Mi sembra che stai mischiando diverse cose.

I message sono usati per le traduzioni dei messaggi di sistema, che sono di solito pochi e infatti io non uso dbMessageSource, ma semplicemente i message in php.

Le news e' contenuto gestito dagli utenti o dagli amministriatori del sito, non fa certo parte dei messaggi di sistema. Io in questo caso vedrei meglio una form completa in cui chiedi all'utente/amministratore:

Titolo della notizia italiano - titolo della notizia inglese - titolo della notiza turco

Testo della notizia italiano - testo della notizia inglese - testo della notiza turco

Cosi' l'utente che inserisce una notizia la inserisce gia' in tutte le lingue, e non sara' certo il programmatore che ha fatto il sito 2 anni fa a tradurre le notizie in turco, o no?
0

#25 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 04 March 2011 - 11:36 AM

Diciamo che data la lingua corrente del sito, posso inserire una news.

In automatico questa viene ricopiata in tutte le lingue così com'è (come dire ... non c'è la lingua che mi richiedi... ti mostro la lingua con cui hai creato la news).

Il vantaggio che mi ha spinto a fare questo, è stato il fatto che cambiando la lingua mi assicuro una traduzione di ogni contenuto (anche se non disponibile nel momento corrente). Poi, predisporrò l'interfaccia in modo tale che si possa variare la lingua e dunque la traduzione di quella news in quella lingua.

Ora però ho un problemino con l'Update. Se io ho un Id di un record... posso fare qualche cosa tipo:
$modello = Modello::loadModel(33);
$modello->attributo = 'valore';
$modello->save();


In sostanza, come lo aggiorno al volo un record?
0

#26 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 04 March 2011 - 11:38 AM

MMmmm trovato:
http://www.dawancha....chives/142.html

updateByPk(...,...,...,..)
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users