mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 14:46:19 +08:00 
			
		
		
		
	enchansment of db message source
This commit is contained in:
		@ -134,11 +134,14 @@ class MessageController extends Controller
 | 
				
			|||||||
				throw new Exception('The "db" option must refer to a valid database application component.');
 | 
									throw new Exception('The "db" option must refer to a valid database application component.');
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			$sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}';
 | 
								$sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}';
 | 
				
			||||||
 | 
					            $messageTable = isset($config['messageTable']) ? $config['messageTable'] : '{{%message}}';
 | 
				
			||||||
			$this->saveMessagesToDb(
 | 
								$this->saveMessagesToDb(
 | 
				
			||||||
				$messages,
 | 
									$messages,
 | 
				
			||||||
				$db,
 | 
									$db,
 | 
				
			||||||
				$sourceMessageTable,
 | 
									$sourceMessageTable,
 | 
				
			||||||
				$config['removeUnused']
 | 
					                $messageTable,
 | 
				
			||||||
 | 
									$config['removeUnused'],
 | 
				
			||||||
 | 
					                $config['languages']
 | 
				
			||||||
			);
 | 
								);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -149,9 +152,11 @@ class MessageController extends Controller
 | 
				
			|||||||
	 * @param array $messages
 | 
						 * @param array $messages
 | 
				
			||||||
	 * @param \yii\db\Connection $db
 | 
						 * @param \yii\db\Connection $db
 | 
				
			||||||
	 * @param string $sourceMessageTable
 | 
						 * @param string $sourceMessageTable
 | 
				
			||||||
 | 
					     * @param string $messageTable
 | 
				
			||||||
	 * @param boolean $removeUnused
 | 
						 * @param boolean $removeUnused
 | 
				
			||||||
 | 
					     * @param array $languages
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $removeUnused)
 | 
						protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $messageTable, $removeUnused, $languages)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		$q = new \yii\db\Query;
 | 
							$q = new \yii\db\Query;
 | 
				
			||||||
		$current = [];
 | 
							$current = [];
 | 
				
			||||||
@ -196,6 +201,11 @@ class MessageController extends Controller
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				$db->createCommand()
 | 
									$db->createCommand()
 | 
				
			||||||
					->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute();
 | 
										->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute();
 | 
				
			||||||
 | 
					                $last_id = $db->getLastInsertID();
 | 
				
			||||||
 | 
									foreach ($languages as $language) {
 | 
				
			||||||
 | 
										$db->createCommand()
 | 
				
			||||||
 | 
										->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute();
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -210,12 +220,17 @@ class MessageController extends Controller
 | 
				
			|||||||
					->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute();
 | 
										->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute();
 | 
				
			||||||
			echo "deleted.\n";
 | 
								echo "deleted.\n";
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
 | 
					                $last_id = $db->getLastInsertID();
 | 
				
			||||||
				$db->createCommand()
 | 
									$db->createCommand()
 | 
				
			||||||
					->update(
 | 
										->update(
 | 
				
			||||||
						$sourceMessageTable,
 | 
											$sourceMessageTable,
 | 
				
			||||||
						['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")],
 | 
											['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")],
 | 
				
			||||||
						['in', 'id', $obsolete]
 | 
											['in', 'id', $obsolete]
 | 
				
			||||||
					)->execute();
 | 
										)->execute();
 | 
				
			||||||
 | 
					                    foreach ($languages as $language) {
 | 
				
			||||||
 | 
										    $db->createCommand()
 | 
				
			||||||
 | 
										        ->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute();
 | 
				
			||||||
 | 
									    }
 | 
				
			||||||
				echo "updated.\n";
 | 
									echo "updated.\n";
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user