From 9363f7373c542e583c6b1268bf613af53f08cf73 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 9 Jan 2013 23:06:15 +0200 Subject: [PATCH 1/3] belongs_many_many improvements + added support for dot-notation in belongs_many_many Example: static $belongs_many_many = array( 'BelongsManyMantRelation' => 'Class.ManyManyRelation' ); You can use notation without '.' as well. Needs patched sapphire 2.4 framework (https://github.com/lazyeugene/sapphire/tree/2.4). Works in the old way without one's patches. --- code/ManyManyDataObjectManager.php | 16 ++++++++++------ code/ManyManyFileDataObjectManager.php | 17 +++++++++++------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/code/ManyManyDataObjectManager.php b/code/ManyManyDataObjectManager.php index e19cff5..a29b084 100644 --- a/code/ManyManyDataObjectManager.php +++ b/code/ManyManyDataObjectManager.php @@ -36,15 +36,19 @@ function __construct($controller, $name, $sourceClass, $fieldList = null, $detai } $belongsManyManyRelations = $singleton->uninherited( 'belongs_many_many', true ); - if( isset( $belongsManyManyRelations ) && array_key_exists( $this->name, $belongsManyManyRelations ) ) { + if( isset( $belongsManyManyRelations ) && array_key_exists( $this->name, $belongsManyManyRelations ) ) { $this->manyManyParentClass = $class; // @modification http://open.silverstripe.org/ticket/5194 - $manyManyClass = $belongsManyManyRelations[$this->name]; - $manyManyRelations = singleton($manyManyClass)->uninherited('many_many', true); - foreach($manyManyRelations as $manyManyRelationship => $manyManyChildClass) - if ($manyManyChildClass == $class) - break; + list($manyManyClass, $manyManyRelationship) = array_pad(explode('.', $belongsManyManyRelations[$this->name], 2), 2, NULL); + if (!$manyManyRelationship) { + $manyManyRelations = singleton($manyManyClass)->uninherited('many_many', true); + foreach($manyManyRelations as $manyManyRelationship => $manyManyChildClass) { + if ($manyManyChildClass == $class) { + break; + } + } + } $manyManyTable = $manyManyClass . '_' . $manyManyRelationship; break; diff --git a/code/ManyManyFileDataObjectManager.php b/code/ManyManyFileDataObjectManager.php index 411bc8e..44a9223 100644 --- a/code/ManyManyFileDataObjectManager.php +++ b/code/ManyManyFileDataObjectManager.php @@ -31,16 +31,21 @@ function __construct($controller, $name, $sourceClass, $fileFieldName = null, $f $manyManyTable = $class . '_' . $this->name; break; } + $belongsManyManyRelations = $singleton->uninherited( 'belongs_many_many', true ); - if( isset( $belongsManyManyRelations ) && array_key_exists( $this->name, $belongsManyManyRelations ) ) { + if( isset( $belongsManyManyRelations ) && array_key_exists( $this->name, $belongsManyManyRelations ) ) { $this->manyManyParentClass = $class; // @modification http://open.silverstripe.org/ticket/5194 - $manyManyClass = $belongsManyManyRelations[$this->name]; - $manyManyRelations = singleton($manyManyClass)->uninherited('many_many', true); - foreach($manyManyRelations as $manyManyRelationship => $manyManyChildClass) - if ($manyManyChildClass == $class) - break; + list($manyManyClass, $manyManyRelationship) = array_pad(explode('.', $belongsManyManyRelations[$this->name], 2), 2, NULL); + if (!$manyManyRelationship) { + $manyManyRelations = singleton($manyManyClass)->uninherited('many_many', true); + foreach($manyManyRelations as $manyManyRelationship => $manyManyChildClass) { + if ($manyManyChildClass == $class) { + break; + } + } + } $manyManyTable = $manyManyClass . '_' . $manyManyRelationship; break; From 5550131e32a0d84845c88092f365050892174b5f Mon Sep 17 00:00:00 2001 From: lazyeugene Date: Mon, 14 Jan 2013 23:37:38 +0200 Subject: [PATCH 2/3] Image box cluttering when hover in ImageDOM. Delete button stretching image box vertically in ImageDataObjectManager fix. --- css/dataobject_manager.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/css/dataobject_manager.css b/css/dataobject_manager.css index b4b0a5d..9330276 100644 --- a/css/dataobject_manager.css +++ b/css/dataobject_manager.css @@ -108,7 +108,8 @@ /* Image DOM */ .ImageDataObjectManager .grid .dataobject-list li {text-align:left;width:100px;float:left;height:100px;border:2px solid #aaa;margin:5px 5px 0 0;background:#eee;padding:.5%;} .ImageDataObjectManager .grid .dataobject-list li .pad {padding:0;} -.ImageDataObjectManager .grid .dataobject-list li:hover .delete {background:#fff;width:16px;height:16px;position:absolute;bottom:0;right:0;padding:4px 0 0 4px;} +.ImageDataObjectManager .grid .dataobject-list li .delete {display:none;background:#fff;width:16px;height:16px;position:absolute;bottom:0;right:0;padding:4px 0 0 4px;} +.ImageDataObjectManager .grid .dataobject-list li:hover .delete {display:block} .DataObjectManager-popup .preview-image {text-align:center;position:relative;} .size-control.ui-slider {background:#ccc;height:3px;border:1px solid #aaa;} From 5d205e970459049405986f93924cad87f9b8b1f4 Mon Sep 17 00:00:00 2001 From: lazyeugene Date: Sat, 19 Jan 2013 13:01:13 +0200 Subject: [PATCH 3/3] Translation of some untranslated texts. --- code/FileDataObjectManager.php | 8 ++-- lang/ru_RU.php | 75 ++++++++++++++++++---------------- lang/uk_UA.php | 7 +++- 3 files changed, 50 insertions(+), 40 deletions(-) diff --git a/code/FileDataObjectManager.php b/code/FileDataObjectManager.php index e87e2e0..1492c65 100644 --- a/code/FileDataObjectManager.php +++ b/code/FileDataObjectManager.php @@ -302,7 +302,7 @@ protected function getUploadifyFields() $class = $this->uploadifyField; $fields = new FieldSet( new HeaderField($title = sprintf(_t('DataObjectManager.ADDITEM', 'Add %s'),$this->PluralTitle()), $headingLevel = 2), - $uploader = new $class('UploadedFiles') + $uploader = new $class('UploadedFiles', _t('DataObjectManager.UPLOADEDFILES','Uploaded Files')) ); if(!$this->allowUploadFolderSelection) { @@ -354,7 +354,7 @@ public function UploadifyForm() { ); $uploader = $form->Fields()->fieldByName('UploadedFiles'); - $action = $this->Can('upload') ? new FieldSet(new FormAction('saveUploadifyForm', 'Continue')) : new FieldSet(); + $action = $this->Can('upload') ? new FieldSet(new FormAction('saveUploadifyForm', _t('DataObjectManager.CONTINUE','Continue'))) : new FieldSet(); $form->setActions($action); return $form; } @@ -553,7 +553,7 @@ public function EditUploadedForm() foreach($remaining_files as $id) $fields->push(new LiteralField("u-$id","")); $first = $fields->First()->Name(); - $fields->insertBefore(new HeaderField("Header","Editing file $index of $total",2), $first); + $fields->insertBefore(new HeaderField("Header", sprintf(_t('DataObjectManager.EDITING_N_OF_N', 'Editing file %1$d of %2$d'), $index, $total), 2), $first); $fields->insertBefore($this->getPreviewFieldFor($fileObject), $first); } } @@ -567,7 +567,7 @@ public function EditUploadedForm() false, $childData ); - $form->setActions(new FieldSet(new FormAction("saveEditUploadedForm", $index == $total ? "Finish" : "Next"))); + $form->setActions(new FieldSet(new FormAction("saveEditUploadedForm", $index == $total ? _t('DataObjectManager.FINISH','Finish') : _t('DataObjectManager.NEXT','Next')))); if(isset($dataObject) && $dataObject) $form->loadDataFrom($dataObject); $fields->loaded = true; diff --git a/lang/ru_RU.php b/lang/ru_RU.php index b259cce..31703fb 100644 --- a/lang/ru_RU.php +++ b/lang/ru_RU.php @@ -2,42 +2,47 @@ global $lang; -$lang['en_US']['DataObjectManager']['ADD'] = 'Добавить'; -$lang['en_US']['DataObjectManager']['ADDEDNEW'] = 'Создание %s прошло успешно'; -$lang['en_US']['DataObjectManager']['ADDITEM'] = array( +$lang['ru_RU']['DataObjectManager']['ADD'] = 'Добавить'; +$lang['ru_RU']['DataObjectManager']['ADDEDNEW'] = 'Создание %s прошло успешно'; +$lang['ru_RU']['DataObjectManager']['ADDITEM'] = array( 'Добавить %s', PR_MEDIUM, 'Добавить [name]' ); -$lang['en_US']['DataObjectManager']['ALLOWEDFILETYPES'] = 'Допускаются только файлы с типом %s'; -$lang['en_US']['DataObjectManager']['DELETE'] = 'Удалить'; -$lang['en_US']['DataObjectManager']['DISPLAYING'] = 'Показано: от'; -$lang['en_US']['DataObjectManager']['DRAGDROP'] = 'Разрешить сортировку перетаскиванием'; -$lang['en_US']['DataObjectManager']['ERROR'] = 'Ошибка'; -$lang['en_US']['DataObjectManager']['EXPORT'] = 'Экспортировать %s'; -$lang['en_US']['DataObjectManager']['IMPORTFROMFOLDER'] = 'Импортировать из существующего каталога'; -$lang['en_US']['DataObjectManager']['NOFILTER'] = 'Нет фильтра'; -$lang['en_US']['DataObjectManager']['NOITEMSFOUND'] = '%s не найдено'; -$lang['en_US']['DataObjectManager']['OF'] = 'из'; -$lang['en_US']['DataObjectManager']['PERPAGERESULTS'] = 'результатов на страницу'; -$lang['en_US']['DataObjectManager']['PERPAGESHOW'] = 'Показать'; -$lang['en_US']['DataObjectManager']['REFRESH'] = 'обновить'; -$lang['en_US']['DataObjectManager']['SAVE'] = 'Сохранить'; -$lang['en_US']['DataObjectManager']['SAVEANDADD'] = 'Сохранить и создать %s'; -$lang['en_US']['DataObjectManager']['SAVED'] = '%s успешно сохранено'; -$lang['en_US']['DataObjectManager']['SEARCH'] = 'Искать'; -$lang['en_US']['DataObjectManager']['SELECTFOLDER'] = 'Выбрать каталог'; -$lang['en_US']['DataObjectManager']['SILVERSTRIPEVERSION'] = 'DataObjectManager\'у требуется Silverstripe версии не ниже 2.3.'; -$lang['en_US']['DataObjectManager']['TO'] = 'до'; -$lang['en_US']['DataObjectManager']['TOTALNOT100'] = 'Ширины колонок должны в сумме составлять 100%%, а не %s'; -$lang['en_US']['DataObjectManager']['UPLOADFROMPC'] = 'Загрузить с моего компьютера'; -$lang['en_US']['DataObjectManager']['VIEWFIRST'] = 'К первой странице'; -$lang['en_US']['DataObjectManager']['VIEWLAST'] = 'К последней странице'; -$lang['en_US']['DataObjectManager']['VIEWNEXT'] = 'Следующая страница'; -$lang['en_US']['DataObjectManager']['VIEWPREVIOUS'] = 'Предыдущая страница'; -$lang['en_US']['DataObjectManager_popup.ss']['NEXT'] = 'Следующая'; -$lang['en_US']['DataObjectManager_popup.ss']['PREVIOUS'] = 'Предыдущая'; -$lang['en_US']['FileDataObjectManager']['GRIDVIEW'] = 'В виде сетки'; -$lang['en_US']['FileDataObjectManager']['LISTVIEW'] = 'В виде списка'; -$lang['en_US']['FileDataObjectManager']['SWFUPLOAD'] = 'Для работы DataObjectManager\'у требуется модуль Uploadify.'; -$lang['en_US']['AssetManager']['ADDFILESTO'] = 'файлы к "%s"'; +$lang['ru_RU']['DataObjectManager']['ALLOWEDFILETYPES'] = 'Допускаются только файлы с типом %s'; +$lang['ru_RU']['DataObjectManager']['CONTINUE'] = 'Продолжить'; +$lang['ru_RU']['DataObjectManager']['DELETE'] = 'Удалить'; +$lang['ru_RU']['DataObjectManager']['DISPLAYING'] = 'Показано: от'; +$lang['ru_RU']['DataObjectManager']['DRAGDROP'] = 'Разрешить сортировку перетаскиванием'; +$lang['ru_RU']['DataObjectManager']['EDITING_N_OF_N'] = 'Редактировать файл (%1$d з %2$d)'; +$lang['ru_RU']['DataObjectManager']['ERROR'] = 'Ошибка'; +$lang['ru_RU']['DataObjectManager']['EXPORT'] = 'Экспортировать %s'; +$lang['ru_RU']['DataObjectManager']['FINISH'] = 'Закончить'; +$lang['ru_RU']['DataObjectManager']['IMPORTFROMFOLDER'] = 'Импортировать из существующего каталога'; +$lang['ru_RU']['DataObjectManager']['NEXT'] = 'Следующий'; +$lang['ru_RU']['DataObjectManager']['NOFILTER'] = 'Нет фильтра'; +$lang['ru_RU']['DataObjectManager']['NOITEMSFOUND'] = '%s не найдено'; +$lang['ru_RU']['DataObjectManager']['OF'] = 'из'; +$lang['ru_RU']['DataObjectManager']['PERPAGERESULTS'] = 'результатов на страницу'; +$lang['ru_RU']['DataObjectManager']['PERPAGESHOW'] = 'Показать'; +$lang['ru_RU']['DataObjectManager']['REFRESH'] = 'обновить'; +$lang['ru_RU']['DataObjectManager']['SAVE'] = 'Сохранить'; +$lang['ru_RU']['DataObjectManager']['SAVEANDADD'] = 'Сохранить и создать %s'; +$lang['ru_RU']['DataObjectManager']['SAVED'] = '%s успешно сохранено'; +$lang['ru_RU']['DataObjectManager']['SEARCH'] = 'Искать'; +$lang['ru_RU']['DataObjectManager']['SELECTFOLDER'] = 'Выбрать каталог'; +$lang['ru_RU']['DataObjectManager']['SILVERSTRIPEVERSION'] = 'DataObjectManager\'у требуется Silverstripe версии не ниже 2.3.'; +$lang['ru_RU']['DataObjectManager']['TO'] = 'до'; +$lang['ru_RU']['DataObjectManager']['TOTALNOT100'] = 'Ширины колонок должны в сумме составлять 100%%, а не %s'; +$lang['uk_UA']['DataObjectManager']['UPLOADEDFILES'] = 'Загруженные файлы'; +$lang['ru_RU']['DataObjectManager']['UPLOADFROMPC'] = 'Загрузить с моего компьютера'; +$lang['ru_RU']['DataObjectManager']['VIEWFIRST'] = 'К первой странице'; +$lang['ru_RU']['DataObjectManager']['VIEWLAST'] = 'К последней странице'; +$lang['ru_RU']['DataObjectManager']['VIEWNEXT'] = 'Следующая страница'; +$lang['ru_RU']['DataObjectManager']['VIEWPREVIOUS'] = 'Предыдущая страница'; +$lang['ru_RU']['DataObjectManager_popup.ss']['NEXT'] = 'Следующая'; +$lang['ru_RU']['DataObjectManager_popup.ss']['PREVIOUS'] = 'Предыдущая'; +$lang['ru_RU']['FileDataObjectManager']['GRIDVIEW'] = 'В виде сетки'; +$lang['ru_RU']['FileDataObjectManager']['LISTVIEW'] = 'В виде списка'; +$lang['ru_RU']['FileDataObjectManager']['SWFUPLOAD'] = 'Для работы DataObjectManager\'у требуется модуль Uploadify.'; +$lang['ru_RU']['AssetManager']['ADDFILESTO'] = 'файлы к "%s"'; diff --git a/lang/uk_UA.php b/lang/uk_UA.php index 7accb76..fbda43f 100644 --- a/lang/uk_UA.php +++ b/lang/uk_UA.php @@ -5,7 +5,7 @@ $lang['uk_UA']['AssetManager']['ADDFILESTO'] = 'файли до "%s"'; $lang['uk_UA']['AssetManager']['FILES'] = 'файли'; $lang['uk_UA']['DataObjectManager']['ADD'] = 'Додати'; -$lang['uk_UA']['DataObjectManager']['ADDEDNEW'] = 'Створення %s успішно завершено'; +$lang['uk_UA']['DataObjectManager']['ADDEDNEW'] = 'Успішно створено %s'; $lang['uk_UA']['DataObjectManager']['ADDITEM'] = array( 'Додати %s', PR_MEDIUM, @@ -16,6 +16,7 @@ $lang['uk_UA']['DataObjectManager']['ANDOTHERCOMPONENTS'] = 'та %d інших компонентів'; $lang['uk_UA']['DataObjectManager']['ALLOWEDFILETYPES'] = 'Дозволені лише файли типу %s'; $lang['uk_UA']['DataObjectManager']['CONFIRMDELETE'] = 'Видатили?'; +$lang['uk_UA']['DataObjectManager']['CONTINUE'] = 'Продовжити'; $lang['uk_UA']['DataObjectManager']['COPIESOFOBJECT'] = ' копій %s'; $lang['uk_UA']['DataObjectManager']['COULDNOTFINDRELATION'] = 'Не вдається знайти відношення для класу %s'; $lang['uk_UA']['DataObjectManager']['CREATE'] = 'Створити '; @@ -26,11 +27,14 @@ $lang['uk_UA']['DataObjectManager']['DUPLICATE'] = 'Клонувати'; $lang['uk_UA']['DataObjectManager']['DUPLICATESCREATED'] = 'клонування виконано'; $lang['uk_UA']['DataObjectManager']['EDIT'] = 'Редагувати'; +$lang['uk_UA']['DataObjectManager']['EDITING_N_OF_N'] = 'Редагувати файл (%1$d з %2$d)'; $lang['uk_UA']['DataObjectManager']['ERROR'] = 'Помилка'; $lang['uk_UA']['DataObjectManager']['ERRORDUPLICATING'] = 'Під час клонування виникла помилка.'; $lang['uk_UA']['DataObjectManager']['EXPORT'] = 'Експортувати %s'; +$lang['uk_UA']['DataObjectManager']['FINISH'] = 'Завершити'; $lang['uk_UA']['DataObjectManager']['IMPORTFROMFOLDER'] = 'Імпортувати з існуючої папки'; $lang['uk_UA']['DataObjectManager']['INCLUDERELATIONS'] = 'Разом зі зв\'язаними об\'єктами'; +$lang['uk_UA']['DataObjectManager']['NEXT'] = 'Наступний'; $lang['uk_UA']['DataObjectManager']['NOFILTER'] = 'Без фільтра'; $lang['uk_UA']['DataObjectManager']['NOITEMSFOUND'] = '%s не знайдено'; $lang['uk_UA']['DataObjectManager']['OF'] = 'з'; @@ -46,6 +50,7 @@ $lang['uk_UA']['DataObjectManager']['SILVERSTRIPEVERSION'] = 'DataObjectManager потребує Silverstripe версії 2.3 або вище.'; $lang['uk_UA']['DataObjectManager']['TO'] = 'до'; $lang['uk_UA']['DataObjectManager']['TOTALNOT100'] = 'Ширини колонок в сумі мають складати 100, а не %s'; +$lang['uk_UA']['DataObjectManager']['UPLOADEDFILES'] = 'Завантажені файли'; $lang['uk_UA']['DataObjectManager']['UPLOADFROMPC'] = 'Завантажити з мого комп\'ютера'; $lang['uk_UA']['DataObjectManager']['VIEW'] = 'Переглянути'; $lang['uk_UA']['DataObjectManager']['VIEWFIRST'] = 'Перші';