Skip to content

Commit 541fba6

Browse files
author
unclecheese
committed
Merge pull request #65 from lazyeugene/master
SortOrder related bug fix and localisation
2 parents b71cd6c + 0979a47 commit 541fba6

23 files changed

Lines changed: 945 additions & 26 deletions

File tree

code/DataObjectManager.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -773,15 +773,16 @@ public function dosort()
773773
$candidates = singleton($ownerClass)->many_many();
774774
if(is_array($candidates)) {
775775
foreach($candidates as $name => $class)
776-
if($class == $className) {
776+
if($class == $className and substr($group, -strlen($name)-1) == '_'.$name) {
777777
$relationName = $name;
778778
break;
779779
}
780780
}
781781
if(!isset($relationName)) return false;
782-
list($parentClass, $componentClass, $componentField, $parentField, $table) = singleton($ownerClass)->many_many($relationName);
783-
foreach($map as $sort => $id)
782+
list($parentClass, $componentClass, $parentField, $componentField, $table) = singleton($ownerClass)->many_many($relationName);
783+
foreach($map as $sort => $id) {
784784
DB::query("UPDATE \"$table\" SET \"SortOrder\" = $sort WHERE \"{$componentField}\" = $id AND \"{$parentField}\" = $controllerID");
785+
}
785786
}
786787
else {
787788
foreach($map as $sort => $id) {

code/SortableDataObject.php

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public static function add_sortable_many_many_relation($ownerClass,$componentNam
4848
if(!isset(self::$many_many_sortable_relations[$componentClass]))
4949
self::$many_many_sortable_relations[$componentClass] = array();
5050

51-
self::$many_many_sortable_relations[$componentClass][$parentClass] = $table;
51+
self::$many_many_sortable_relations[$componentClass][$parentClass][] = $table;
5252
self::add_sortable_class($componentClass);
5353
}
5454

@@ -90,28 +90,37 @@ public static function get_join_tables($classname)
9090
}
9191

9292

93-
public function augmentSQL(SQLQuery &$query)
94-
{
95-
if(empty($query->select) || $query->delete || in_array("COUNT(*)",$query->select) || in_array("count(*)",$query->select)) return;
96-
$sort_field = false;
97-
if($join_tables = self::get_join_tables($this->owner->class)) {
98-
foreach($query->from as $from) {
99-
if($sort_field) break;
100-
foreach($join_tables as $join_table) {
101-
if(stristr($from,$join_table)) {
102-
$sort_field = "\"$join_table\".\"SortOrder\"";
103-
if(isset($query->select['SortOrder'])) {
104-
$query->select['SortOrder'] = "$sort_field AS LocalSort";
105-
}
106-
break;
107-
}
108-
}
109-
}
110-
}
111-
if(!$sort_field) $sort_field = "\"SortOrder\"";
112-
113-
if(!$query->orderby || ($query->orderby == $this->owner->stat('default_sort')))
114-
$query->orderby = "$sort_field " . self::$sort_dir;
93+
public function augmentSQL(SQLQuery &$query) {
94+
if(empty($query->select) || $query->delete || in_array("COUNT(*)",$query->select) || in_array("count(*)",$query->select))
95+
return;
96+
97+
$sort_field = false;
98+
if($join_classes = self::get_join_tables($this->owner->class)) {
99+
foreach($query->from as $from) {
100+
if($sort_field)
101+
break;
102+
foreach($join_classes as $join_tables) {
103+
if($sort_field)
104+
break;
105+
foreach ($join_tables as $join_table) {
106+
if(stristr($from,$join_table)) {
107+
$sort_field = "\"$join_table\".\"SortOrder\"";
108+
if(isset($query->select['SortOrder'])) {
109+
$query->select['SortOrder'] = "$sort_field AS LocalSort";
110+
}
111+
break;
112+
}
113+
}
114+
}
115+
}
116+
}
117+
118+
if(!$sort_field)
119+
$sort_field = "\"SortOrder\"";
120+
121+
if(!$query->orderby or $query->orderby == $this->owner->stat('default_sort')) {
122+
$query->orderby = "$sort_field " . self::$sort_dir;
123+
}
115124
}
116125

117126

code/flv/shadowbox/languages/shadowbox-uk.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
tinyMCE.addI18n({uk:{
2+
common:{
3+
edit_confirm:"Чи бажаэте ви використати WYSIWYG-редактор для цього поля?",
4+
apply:"Застосувати",
5+
insert:"Вставити",
6+
update:"Поновити",
7+
cancel:"Відмінити",
8+
close:"Зактити",
9+
browse:"Обрати",
10+
class_name:"Клас",
11+
not_set:"-- не встановлено --",
12+
clipboard_msg:"Копіювання/Вирізка/Вставка не доступні в Mozilla та Firefox.\nЧи бажаєте узнати більше про цю проблему?",
13+
clipboard_no_support:"Наразі не підтримується вашим браузером. Використовуйте клавіатурні комбінації для цієї дії.",
14+
popup_blocked:"Прикро, але ваш блокувальник popup-вікон заблокував вікно, яке реалізує функціонал редактора. Вам необхідно відключити блокування для цього сайту, щоб мати змогу користуватися цим інструментом.",
15+
invalid_data:"Помилка: Введено некоретні дані. Такі поля позначені червоним.",
16+
more_colors:"Ще кольори"
17+
},
18+
contextmenu:{
19+
align:"Вирівнювання",
20+
left:"По лівому краю",
21+
center:"По центру",
22+
right:"По правому краю",
23+
full:"По ширині"
24+
},
25+
insertdatetime:{
26+
date_fmt:"%Y-%m-%d",
27+
time_fmt:"%H:%M:%S",
28+
insertdate_desc:"Вставити дату",
29+
inserttime_desc:"Вставити час",
30+
months_long:"Січень,Лютий,Березень,Квітень,Травень,Червень,Липень,Серпень,Вересень,Жовтень,Листопад,Грудень",
31+
months_short:"Січ,Лют,Бер,Квт,Трв,Чрв,Лип,Сер,Вер,Жов,Лис,Грд",
32+
day_long:"Неділя,Понеділок,Вівторок,Середа,Червер,П'ятниця,Субота,Неділя",
33+
day_short:"Нд,Пн,Вт,Ср,Чт,Пт,Сб,Нд"
34+
},
35+
print:{
36+
print_desc:"Друкувати"
37+
},
38+
preview:{
39+
preview_desc:"Попередній перегляд"
40+
},
41+
directionality:{
42+
ltr_desc:"Напрям зліва направо",
43+
rtl_desc:"Напрям зправа наліво"
44+
},
45+
layer:{
46+
insertlayer_desc:"Додати новий шар",
47+
forward_desc:"Вперед",
48+
backward_desc:"Назад",
49+
absolute_desc:"Перемкнути абсолютне позиціювання",
50+
content:"Новий шар..."
51+
},
52+
save:{
53+
save_desc:"Зберегти",
54+
cancel_desc:"Відмінити всі зміни"
55+
},
56+
nonbreaking:{
57+
nonbreaking_desc:"Вставити нерозривний пробіл"
58+
},
59+
iespell:{
60+
iespell_desc:"Перевірити орфографію",
61+
download:"ieSpell не знайдено. Чи бажаєте встановити?"
62+
},
63+
advhr:{
64+
advhr_desc:"Horizontal rule"
65+
},
66+
emotions:{
67+
emotions_desc:"Смайлики"
68+
},
69+
searchreplace:{
70+
search_desc:"Шукати",
71+
replace_desc:"Пошук/Заміна"
72+
},
73+
advimage:{
74+
image_desc:"Вставити/редагувати зображення"
75+
},
76+
advlink:{
77+
link_desc:"Вставити/редагувати посилання"
78+
},
79+
xhtmlxtras:{
80+
cite_desc:"Цитування",
81+
abbr_desc:"Абревіатура",
82+
acronym_desc:"Акронім",
83+
del_desc:"Видалити",
84+
ins_desc:"Вставити",
85+
attribs_desc:"Вставити/редагувати атрибути"
86+
},
87+
style:{
88+
desc:"Редагувати CSS Стиль"
89+
},
90+
paste:{
91+
paste_text_desc:"Вставити як текст",
92+
paste_word_desc:"Вставити з Word",
93+
selectall_desc:"Виділити все"
94+
},
95+
paste_dlg:{
96+
text_title:"Користуйтесь CTRL+V на клавіатурі щоб вставити текст у вікно.",
97+
text_linebreaks:"Зберігати переноси рядків",
98+
word_title:"Користуйтесь CTRL+V на клавіатурі щоб вставити текст у вікно."
99+
},
100+
table:{
101+
desc:"Вставити нову таблицю",
102+
row_before_desc:"Додати рядок перед",
103+
row_after_desc:"Додати рядок після",
104+
delete_row_desc:"Видалити рядок",
105+
col_before_desc:"Додати стовбчик перед",
106+
col_after_desc:"Додати стовбчик після",
107+
delete_col_desc:"Видалити стовбчик",
108+
split_cells_desc:"Розділити об'єднані комірки таблиці",
109+
merge_cells_desc:"Об'єднати комірки",
110+
row_desc:"Властивості рядка таблиці",
111+
cell_desc:"Властивості комірки таблиці",
112+
props_desc:"Властивості таблиці",
113+
paste_row_before_desc:"Вставити рядок перед",
114+
paste_row_after_desc:"Вставити рядок після",
115+
cut_row_desc:"Вирізати рядок",
116+
copy_row_desc:"Копіювати рядок",
117+
del:"Видалити таблицю",
118+
row:"Рядок",
119+
col:"Стовбчик",
120+
cell:"Комірка"
121+
},
122+
autosave:{
123+
unload_msg:"Якщо ви залишите сторінку, ві зміни, що ви не зберегли, буде втрачено."
124+
},
125+
fullscreen:{
126+
desc:"Перемкнути повноекранний режим"
127+
},
128+
media:{
129+
desc:"Встатити/редагувати embedded media",
130+
edit:"Редагувати embedded media"
131+
},
132+
fullpage:{
133+
desc:"Властивості документу"
134+
},
135+
template:{
136+
desc:"Вставити predefined template content"
137+
},
138+
visualchars:{
139+
desc:"Показувати/ні службові символи."
140+
},
141+
spellchecker:{
142+
desc:"Увімкнути/вимкнути перевірку орфографії",
143+
menu:"Налаштування перевірки орфографії",
144+
ignore_word:"Ігнорувати слово",
145+
ignore_words:"Ігнорувати все",
146+
langs:"Мови",
147+
wait:"Будь ласка, зачекайте...",
148+
sug:"Підказки",
149+
no_sug:"Немає підказок",
150+
no_mpell:"Помилок не знайдено."
151+
},
152+
pagebreak:{
153+
desc:"Вставити розрив сторінки."
154+
}}});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
tinyMCE.addI18n('uk.advhr_dlg',{
2+
width:"\u0428\u0438\u0440\u0438\u043D\u0430",
3+
size:"\u0412\u0438\u0441\u043E\u0442\u0430",
4+
noshade:"\u0411\u0435\u0437 \u0442\u0456\u043D\u0456"
5+
});
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
tinyMCE.addI18n('uk.advimage_dlg',{
2+
tab_general:"Загальне",
3+
tab_appearance:"Вигляд",
4+
tab_advanced:"Додатково",
5+
general:"Загальне",
6+
title:"Заголовок",
7+
preview:"Попередній перегляд",
8+
constrain_proportions:"Зберігати пропорції",
9+
langdir:"Напрямок письма",
10+
langcode:"Код мови",
11+
long_desc:"Long description link",
12+
style:"Стиль",
13+
classes:"Класи",
14+
ltr:"Зліва направо",
15+
rtl:"Зправа наліво",
16+
id:"Атрибут Id",
17+
map:"Атрибут map",
18+
swap_image:"Swap image",
19+
alt_image:"Альтернативне зображення",
20+
mouseover:"при навеленні миші",
21+
mouseout:"при відведенні миші",
22+
misc:"Різне",
23+
example_img:"Попередній перегляд",
24+
missing_alt:"Ви певні, що бажаєте продовжити, не заповнюючи опис зображення? Без зображення буде недоступне користувачам з деякими вадами, а також користувачам текстових браузерів та тим, хто вимкнув зображення.",
25+
dialog_title:"Вставити/редагувати зображення",
26+
src:"URL зображення",
27+
alt:"Атрибут Alt (відображається, якщо зображення не завантажене)",
28+
list:"Image list",
29+
border:"Рамка",
30+
dimensions:"Розміри",
31+
vspace:"Вертикальний відступ",
32+
hspace:"Горизонтальний відступ",
33+
align:"Вирівнювання",
34+
align_baseline:"Baseline",
35+
align_top:"Top",
36+
align_middle:"Middle",
37+
align_bottom:"Bottom",
38+
align_texttop:"Text top",
39+
align_textbottom:"Text bottom",
40+
align_left:"По лівому краю",
41+
align_right:"По правому краю",
42+
image_list:"Image list"
43+
});
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
tinyMCE.addI18n('uk.advlink_dlg',{
2+
title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",
3+
url:"\u0410\u0434\u0440\u0435\u0441\u0430",
4+
target:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0432...",
5+
titlefield:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",
6+
is_email:"\u0412\u0432\u0435\u0434\u0435\u043D\u0438\u0439 URL \u0441\u0445\u043E\u0436\u0438\u0439 \u043D\u0430 email \u0430\u0434\u0440\u0435\u0441\u0443, \u0432\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u043F\u0440\u0435\u0444\u0456\u043A\u0441 mailto?",
7+
is_external:"\u0412\u0432\u0435\u0434\u0435\u043D\u0438\u0439 URL \u0441\u0445\u043E\u0436\u0438\u0439 \u043D\u0430 \u0437\u043E\u0432\u043D\u0456\u0448\u043D\u0454 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F, \u0432\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u043F\u0440\u0435\u0444\u0456\u043A\u0441 http://?",
8+
list:"\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u044C",
9+
general_tab:"\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0435",
10+
popup_tab:"Popup",
11+
events_tab:"\u041F\u043E\u0434\u0456\u0457",
12+
advanced_tab:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u043E",
13+
general_props:"\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0456 \u0432\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456",
14+
popup_props:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 Popup",
15+
event_props:"\u041F\u043E\u0434\u0456\u0457",
16+
advanced_props:"\u0420\u043E\u0437\u0448\u0438\u0440\u0435\u043D\u043D\u0456 \u0432\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456",
17+
popup_opts:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456",
18+
anchor_names:"\u042F\u043A\u043E\u0440\u0456",
19+
target_same:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0432 \u0446\u044C\u043E\u043C\u0443 \u0436 \u0432\u0456\u043A\u043D\u0456 / \u0444\u0440\u0435\u0439\u043C\u0456",
20+
target_parent:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0432 \u0431\u0430\u0442\u044C\u043A\u0456\u0432\u0441\u044C\u043A\u043E\u043C\u0443 \u0432\u0456\u043A\u043D\u0456 / \u0444\u0440\u0435\u0439\u043C\u0456",
21+
target_top:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0443 \u0432\u0435\u0440\u0445\u043D\u044C\u043E\u043C\u0443 \u0444\u0440\u0435\u0439\u043C\u0456 (\u0437\u0430\u043C\u0456\u043D\u0438\u0442\u0438 \u0432\u0441\u0456 \u0444\u0440\u0435\u0439\u043C\u0438)",
22+
target_blank:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0432 \u043D\u043E\u0432\u043E\u043C\u0443 \u0432\u0456\u043A\u043D\u0456",
23+
popup:"Javascript popup",
24+
popup_url:"Popup URL",
25+
popup_name:"\u041D\u0430\u0437\u0432\u0430 \u0432\u0456\u043A\u043D\u0430",
26+
popup_return:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 'return false'",
27+
popup_scrollbars:"\u041F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0441\u043A\u0440\u043E\u043B\u0435\u0440\u0438",
28+
popup_statusbar:"\u041F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0442\u0443\u0441",
29+
popup_toolbar:"\u041F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043F\u0430\u043D\u0435\u043B\u0456 \u0456\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0456\u0432",
30+
popup_menubar:"\u041F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043C\u0435\u043D\u044E",
31+
popup_location:"\u041F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043F\u0430\u043D\u0435\u043B\u044C location",
32+
popup_resizable:"\u0414\u043E\u0437\u0432\u043E\u043B\u044F\u0442\u0438 \u0437\u043C\u0456\u043D\u044E\u0432\u0430\u0442\u0438 \u0440\u043E\u0437\u043C\u0456\u0440",
33+
popup_dependent:"Dependent (\u043B\u0438\u0448\u0435 \u0434\u043B\u044F Mozilla/Firefox)",
34+
popup_size:"\u0420\u043E\u0437\u043C\u0456\u0440",
35+
popup_position:"\u041F\u043E\u0437\u0438\u0446\u0456\u044F (X/Y)",
36+
id:"Id",
37+
style:"\u0421\u0442\u0438\u043B\u044C",
38+
classes:"\u041A\u043B\u0430\u0441\u0438",
39+
target_name:"Target name",
40+
langdir:"\u041D\u0430\u043F\u0440\u044F\u043C \u043C\u043E\u0432\u0438",
41+
target_langcode:"Target language",
42+
langcode:"\u041A\u043E\u0434 \u043C\u043E\u0432\u0438",
43+
encoding:"Target character encoding",
44+
mime:"Target MIME type",
45+
rel:"Relationship page to target",
46+
rev:"Relationship target to page",
47+
tabindex:"Tabindex",
48+
accesskey:"Accesskey",
49+
ltr:"\u0417\u043B\u0456\u0432\u0430 \u043F\u0440\u0430\u0432\u043E\u0440\u0443\u0447",
50+
rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043B\u0456\u0432\u043E\u0440\u0443\u0447",
51+
link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u044C"
52+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
tinyMCE.addI18n('uk.emotions_dlg',{
2+
title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u043C\u0430\u0439\u043B",
3+
desc:"\u0421\u043C\u0430\u0439\u043B\u0438",
4+
cool:"Cool",
5+
cry:"Cry",
6+
embarassed:"Embarassed",
7+
foot_in_mouth:"Foot in mouth",
8+
frown:"Frown",
9+
innocent:"Innocent",
10+
kiss:"Kiss",
11+
laughing:"Laughing",
12+
money_mouth:"Money mouth",
13+
sealed:"Sealed",
14+
smile:"Smile",
15+
surprised:"Surprised",
16+
tongue_out:"Tongue out",
17+
undecided:"Undecided",
18+
wink:"Wink",
19+
yell:"Yell"
20+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
tinyMCE.addI18n('uk.example',{
2+
desc : 'Це лише кнопка шаблону'
3+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
tinyMCE.addI18n('uk.example_dlg',{
2+
title : 'Це лише заголовок прикладу'
3+
});

0 commit comments

Comments
 (0)