Exemplo n.º 1
0
 /**
  * Deletes a language and redirect to admin/multilanguage/languages/manage
  *
  * Route: admin/multilanguage/languages/delete/:num
  *
  * @param int $id The id of the language to delete.
  */
 public static function delete($id)
 {
     if (Multilanguage::language()->delete($id)) {
         Message::ok('Language deleted successfully.');
     } else {
         Message::error('Error deleting language, please try again.');
     }
     Url::redirect('admin/multilanguage/languages/manage');
 }
Exemplo n.º 2
0
 /**
  * Display a form for editing a strings translation.
  */
 public static function editContent($stringId, $contentId)
 {
     if (!($translation = Multilanguage::string()->find($contentId))) {
         return ERROR_404;
     }
     if (isset($_POST['update_translation']) && Html::form()->validate()) {
         $status = Multilanguage::string()->where('id', '=', $contentId)->update(array('content' => $_POST['content']));
         if ($status) {
             Message::ok('Translation updated successfully.');
             $translation = Multilanguage::string()->find($contentId);
         } else {
             Message::error('Error updating translation, please try again.');
         }
     }
     $langs = Multilanguage::language()->orderBy('name')->all();
     $sortedLangs = array('' => 'Choose One');
     foreach ($langs as $l) {
         $sortedLangs[$l->id] = $l->name;
     }
     $form[] = array('fields' => array('language_id' => array('title' => 'Language', 'type' => 'select', 'options' => $sortedLangs, 'validate' => array('required'), 'selected' => $translation->language_id), 'content' => array('title' => 'Translated String', 'type' => strlen($translation->content) > 25 ? 'textarea' : 'text', 'validate' => array('required'), 'default_value' => $translation->content), 'update_translation' => array('type' => 'submit', 'value' => 'Update Translation')));
     return array('title' => 'Edit Translation', 'content' => Html::form()->build($form));
 }
Exemplo n.º 3
0
 /**
  * Checks if an available language code is set in the current route. Multilanguage must be enabled
  * in config in order for this to work.
  *
  * @param string $currentRoute The current route to check for a language code
  */
 public static function urlHasLangCode($currentRoute)
 {
     if (!Config::get('multilanguage.enabled')) {
         return false;
     }
     $code = null;
     if (strstr($currentRoute, '/')) {
         $bits = explode('/', $currentRoute);
         if ($bits && strlen($bits[0]) == 2) {
             $code = $bits[0];
         }
     } elseif (strlen($currentRoute) == 2) {
         $code = $currentRoute;
     }
     if (!is_null($code)) {
         $lang = Multilanguage::language()->where('code', 'LIKE', $code)->first();
         if ($lang) {
             Log::debug('multilanguage', 'Setting language to: ' . $lang->name);
             self::$_currentLang = $lang;
             return true;
         }
     }
     return false;
 }
Exemplo n.º 4
0
 /**
  * Builds the contents form based on parameters returned from event.
  *
  * @param array $data An array of data to populate the form fields with when editing, key is field name, value is field value
  */
 private static function _buildForm($module, $type, $typeId, $typeInfo, $data = array())
 {
     $langs = Multilanguage::language()->orderBy('name')->all();
     $sortedLangs = array('' => 'Choose One');
     foreach ($langs as $lang) {
         $sortedLangs[$lang->id] = $lang->name;
     }
     $form[] = array('fields' => array('language_id' => array('title' => 'Language', 'type' => 'select', 'options' => $sortedLangs, 'validate' => array('required'), 'selected' => isset($data['language_id']) ? $data['language_id'] : 0)));
     foreach ($typeInfo as $colName => $colType) {
         $form[0]['fields'][$colName] = array('title' => ucfirst($colName), 'type' => $colType, 'validate' => array('required'), 'default_value' => isset($data[$colName]) ? $data[$colName] : '');
         // Add tinymce to textareas
         if ($colType == 'textarea') {
             $form[0]['fields'][$colName]['attributes'] = array('class' => 'tinymce');
         }
     }
     // Determine if we are creating or editing
     if ($data) {
         $form[0]['fields']['update_content'] = array('type' => 'submit', 'value' => 'Update Content');
     } else {
         $form[0]['fields']['create_content'] = array('type' => 'submit', 'value' => 'Create Content');
     }
     return Html::form()->build($form);
 }