From 064d6b8a2cbb4d1c25f5c762eac2d8cf373b526e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 6 Jan 2012 21:56:47 +0100 Subject: [PATCH 01/27] update calendar pot file --- l10n/templates/calendar.pot | 312 +++++++++++++++++++++++++++++------- 1 file changed, 250 insertions(+), 62 deletions(-) diff --git a/l10n/templates/calendar.pot b/l10n/templates/calendar.pot index 56fce2285ec..ce255816ed5 100644 --- a/l10n/templates/calendar.pot +++ b/l10n/templates/calendar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-22 13:05+0200\n" +"POT-Creation-Date: 2012-01-06 21:55+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,8 +17,8 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ajax/editeventform.php:26 -msgid "Wrong calendar" +#: ajax/guesstimezone.php:42 +msgid "New Timezone:" msgstr "" #: ajax/settimezone.php:22 @@ -29,168 +29,312 @@ msgstr "" msgid "Invalid request" msgstr "" -#: appinfo/app.php:21 templates/calendar.php:11 -#: templates/part.eventform.php:21 +#: appinfo/app.php:20 templates/calendar.php:13 +#: templates/part.eventform.php:20 msgid "Calendar" msgstr "" -#: js/calendar.js:153 -msgid "ddd d MMMM[ yyyy]{ -[ddd d] MMMM yyyy}" +#: lib/app.php:19 +msgid "Wrong calendar" msgstr "" -#: js/calendar.js:155 -msgid "ddd d MMMM[ yyyy] HH:mm{ -[ ddd d MMMM yyyy] HH:mm}" -msgstr "" - -#: lib/object.php:344 +#: lib/app.php:60 lib/object.php:332 msgid "Birthday" msgstr "" -#: lib/object.php:345 +#: lib/app.php:61 lib/object.php:333 msgid "Business" msgstr "" -#: lib/object.php:346 +#: lib/app.php:62 lib/object.php:334 msgid "Call" msgstr "" -#: lib/object.php:347 +#: lib/app.php:63 lib/object.php:335 msgid "Clients" msgstr "" -#: lib/object.php:348 +#: lib/app.php:64 lib/object.php:336 msgid "Deliverer" msgstr "" -#: lib/object.php:349 +#: lib/app.php:65 lib/object.php:337 msgid "Holidays" msgstr "" -#: lib/object.php:350 +#: lib/app.php:66 lib/object.php:338 msgid "Ideas" msgstr "" -#: lib/object.php:351 +#: lib/app.php:67 lib/object.php:339 msgid "Journey" msgstr "" -#: lib/object.php:352 +#: lib/app.php:68 lib/object.php:340 msgid "Jubilee" msgstr "" -#: lib/object.php:353 +#: lib/app.php:69 lib/object.php:341 msgid "Meeting" msgstr "" -#: lib/object.php:354 +#: lib/app.php:70 lib/object.php:342 msgid "Other" msgstr "" -#: lib/object.php:355 +#: lib/app.php:71 lib/object.php:343 msgid "Personal" msgstr "" -#: lib/object.php:356 +#: lib/app.php:72 lib/object.php:344 msgid "Projects" msgstr "" -#: lib/object.php:357 +#: lib/app.php:73 lib/object.php:345 msgid "Questions" msgstr "" -#: lib/object.php:358 +#: lib/app.php:74 lib/object.php:346 msgid "Work" msgstr "" -#: lib/object.php:365 +#: lib/object.php:353 msgid "Does not repeat" msgstr "" -#: lib/object.php:366 +#: lib/object.php:354 msgid "Daily" msgstr "" -#: lib/object.php:367 +#: lib/object.php:355 msgid "Weekly" msgstr "" -#: lib/object.php:368 +#: lib/object.php:356 msgid "Every Weekday" msgstr "" -#: lib/object.php:369 +#: lib/object.php:357 msgid "Bi-Weekly" msgstr "" -#: lib/object.php:370 +#: lib/object.php:358 msgid "Monthly" msgstr "" -#: lib/object.php:371 +#: lib/object.php:359 msgid "Yearly" msgstr "" +#: lib/object.php:366 +msgid "never" +msgstr "" + +#: lib/object.php:367 +msgid "by occurrences" +msgstr "" + +#: lib/object.php:368 +msgid "by date" +msgstr "" + +#: lib/object.php:375 +msgid "by monthday" +msgstr "" + +#: lib/object.php:376 +msgid "by weekday" +msgstr "" + +#: lib/object.php:383 +msgid "Monday" +msgstr "" + +#: lib/object.php:384 +msgid "Tuesday" +msgstr "" + +#: lib/object.php:385 +msgid "Wednesday" +msgstr "" + +#: lib/object.php:386 +msgid "Thursday" +msgstr "" + +#: lib/object.php:387 +msgid "Friday" +msgstr "" + +#: lib/object.php:388 +msgid "Saturday" +msgstr "" + #: lib/object.php:389 +msgid "Sunday" +msgstr "" + +#: lib/object.php:396 +msgid "events week of month" +msgstr "" + +#: lib/object.php:397 +msgid "first" +msgstr "" + +#: lib/object.php:398 +msgid "second" +msgstr "" + +#: lib/object.php:399 +msgid "third" +msgstr "" + +#: lib/object.php:400 +msgid "fourth" +msgstr "" + +#: lib/object.php:401 +msgid "fifth" +msgstr "" + +#: lib/object.php:402 +msgid "last" +msgstr "" + +#: lib/object.php:424 +msgid "January" +msgstr "" + +#: lib/object.php:425 +msgid "February" +msgstr "" + +#: lib/object.php:426 +msgid "March" +msgstr "" + +#: lib/object.php:427 +msgid "April" +msgstr "" + +#: lib/object.php:428 +msgid "May" +msgstr "" + +#: lib/object.php:429 +msgid "June" +msgstr "" + +#: lib/object.php:430 +msgid "July" +msgstr "" + +#: lib/object.php:431 +msgid "August" +msgstr "" + +#: lib/object.php:432 +msgid "September" +msgstr "" + +#: lib/object.php:433 +msgid "October" +msgstr "" + +#: lib/object.php:434 +msgid "November" +msgstr "" + +#: lib/object.php:435 +msgid "December" +msgstr "" + +#: lib/object.php:441 +msgid "by events date" +msgstr "" + +#: lib/object.php:442 +msgid "by yearday(s)" +msgstr "" + +#: lib/object.php:443 +msgid "by weeknumber(s)" +msgstr "" + +#: lib/object.php:444 +msgid "by day and month" +msgstr "" + +#: lib/object.php:467 msgid "Not an array" msgstr "" -#: templates/calendar.php:8 +#: lib/search.php:32 lib/search.php:34 lib/search.php:37 +msgid "Date" +msgstr "" + +#: lib/search.php:40 +msgid "Cal." +msgstr "" + +#: templates/calendar.php:10 msgid "All day" msgstr "" -#: templates/calendar.php:9 +#: templates/calendar.php:11 msgid "Missing fields" msgstr "" -#: templates/calendar.php:10 templates/part.eventform.php:3 +#: templates/calendar.php:12 templates/part.eventform.php:3 msgid "Title" msgstr "" -#: templates/calendar.php:12 +#: templates/calendar.php:14 msgid "From Date" msgstr "" -#: templates/calendar.php:13 +#: templates/calendar.php:15 msgid "From Time" msgstr "" -#: templates/calendar.php:14 +#: templates/calendar.php:16 msgid "To Date" msgstr "" -#: templates/calendar.php:15 +#: templates/calendar.php:17 msgid "To Time" msgstr "" -#: templates/calendar.php:16 +#: templates/calendar.php:18 msgid "The event ends before it starts" msgstr "" -#: templates/calendar.php:17 +#: templates/calendar.php:19 msgid "There was a database fail" msgstr "" -#: templates/calendar.php:23 +#: templates/calendar.php:37 msgid "Week" msgstr "" -#: templates/calendar.php:24 +#: templates/calendar.php:38 msgid "Month" msgstr "" -#: templates/calendar.php:25 +#: templates/calendar.php:39 msgid "List" msgstr "" -#: templates/calendar.php:30 +#: templates/calendar.php:44 msgid "Today" msgstr "" -#: templates/calendar.php:31 +#: templates/calendar.php:45 msgid "Calendars" msgstr "" -#: templates/calendar.php:48 +#: templates/calendar.php:63 msgid "There was a fail, while parsing the file." msgstr "" @@ -216,7 +360,7 @@ msgid "Edit" msgstr "" #: templates/part.choosecalendar.rowfields.php:4 -#: templates/part.editevent.php:8 +#: templates/part.editevent.php:9 msgid "Delete" msgstr "" @@ -244,7 +388,7 @@ msgstr "" msgid "Save" msgstr "" -#: templates/part.editcalendar.php:42 templates/part.editevent.php:7 +#: templates/part.editcalendar.php:42 templates/part.editevent.php:8 #: templates/part.newevent.php:6 msgid "Submit" msgstr "" @@ -257,7 +401,7 @@ msgstr "" msgid "Edit an event" msgstr "" -#: templates/part.editevent.php:9 +#: templates/part.editevent.php:10 msgid "Export" msgstr "" @@ -273,43 +417,83 @@ msgstr "" msgid "Select category" msgstr "" -#: templates/part.eventform.php:39 +#: templates/part.eventform.php:37 msgid "All Day Event" msgstr "" -#: templates/part.eventform.php:43 +#: templates/part.eventform.php:41 msgid "From" msgstr "" -#: templates/part.eventform.php:51 +#: templates/part.eventform.php:49 msgid "To" msgstr "" -#: templates/part.eventform.php:59 +#: templates/part.eventform.php:57 msgid "Advanced options" msgstr "" -#: templates/part.eventform.php:64 +#: templates/part.eventform.php:61 msgid "Repeat" msgstr "" -#: templates/part.eventform.php:80 -msgid "Attendees" +#: templates/part.eventform.php:68 +msgid "Advanced" msgstr "" -#: templates/part.eventform.php:87 +#: templates/part.eventform.php:112 +msgid "Select weekdays" +msgstr "" + +#: templates/part.eventform.php:125 templates/part.eventform.php:138 +msgid "Select days" +msgstr "" + +#: templates/part.eventform.php:130 +msgid "and the events day of year." +msgstr "" + +#: templates/part.eventform.php:143 +msgid "and the events day of month." +msgstr "" + +#: templates/part.eventform.php:151 +msgid "Select months" +msgstr "" + +#: templates/part.eventform.php:164 +msgid "Select weeks" +msgstr "" + +#: templates/part.eventform.php:169 +msgid "and the events week of year." +msgstr "" + +#: templates/part.eventform.php:175 +msgid "Interval" +msgstr "" + +#: templates/part.eventform.php:181 +msgid "End" +msgstr "" + +#: templates/part.eventform.php:193 +msgid "occurrences" +msgstr "" + +#: templates/part.eventform.php:208 msgid "Location" msgstr "" -#: templates/part.eventform.php:89 +#: templates/part.eventform.php:210 msgid "Location of the Event" msgstr "" -#: templates/part.eventform.php:95 +#: templates/part.eventform.php:216 msgid "Description" msgstr "" -#: templates/part.eventform.php:96 +#: templates/part.eventform.php:218 msgid "Description of the Event" msgstr "" @@ -353,6 +537,10 @@ msgstr "" msgid "Timezone" msgstr "" +#: templates/settings.php:30 +msgid "Check always for changes of the timezone" +msgstr "" + #: templates/settings.php:32 msgid "Timeformat" msgstr "" From 67a8ae084a6d755d27b8b936bee572c91dd84ac4 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sat, 7 Jan 2012 14:31:47 +0100 Subject: [PATCH 02/27] fix search function --- apps/calendar/templates/calendar.php | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/calendar/templates/calendar.php b/apps/calendar/templates/calendar.php index 92c1b8a778a..50d3d70347a 100755 --- a/apps/calendar/templates/calendar.php +++ b/apps/calendar/templates/calendar.php @@ -25,6 +25,7 @@ $date = substr($data['startdate'], 0, 10); list($year, $month, $day) = explode('-', $date); echo '$(\'#calendar_holder\').fullCalendar(\'gotoDate\', ' . $year . ', ' . --$month . ', ' . $day . ');'; + echo '$(\'#dialog_holder\').load(OC.filePath(\'calendar\', \'ajax\', \'editeventform.php\') + \'?id=\' + ' . $_['showevent'] . ' , Calendar.UI.startEventDialog);'; } ?> }); From c3cda81577a396960fa69b651f27bad2828e0c30 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sat, 7 Jan 2012 18:30:32 +0100 Subject: [PATCH 03/27] update calendar pot file --- apps/calendar/l10n/xgettextfiles | 3 +- apps/calendar/templates/lAfix.php | 39 +++++++++ l10n/templates/calendar.pot | 128 ++++++++++++++++++++++++------ 3 files changed, 143 insertions(+), 27 deletions(-) create mode 100644 apps/calendar/templates/lAfix.php diff --git a/apps/calendar/l10n/xgettextfiles b/apps/calendar/l10n/xgettextfiles index 27b8e457193..a8c2601045f 100644 --- a/apps/calendar/l10n/xgettextfiles +++ b/apps/calendar/l10n/xgettextfiles @@ -8,4 +8,5 @@ ../templates/part.eventform.php ../templates/part.import.php ../templates/part.newevent.php -../templates/settings.php \ No newline at end of file +../templates/settings.php +../templates/lAfix.php \ No newline at end of file diff --git a/apps/calendar/templates/lAfix.php b/apps/calendar/templates/lAfix.php new file mode 100644 index 00000000000..61025ae6dea --- /dev/null +++ b/apps/calendar/templates/lAfix.php @@ -0,0 +1,39 @@ +t('Sunday'); +$l->t('Monday'); +$l->t('Tuesday'); +$l->t('Wednesday'); +$l->t('Thursday'); +$l->t('Friday'); +$l->t('Saturday'); +$l->t('Sun.'); +$l->t('Mon.'); +$l->t('Tue.'); +$l->t('Wed.'); +$l->t('Thu.'); +$l->t('Fri.'); +$l->t('Sat.'); +$l->t('January'); +$l->t('February'); +$l->t('March'); +$l->t('April'); +$l->t('May'); +$l->t('June'); +$l->t('July'); +$l->t('August'); +$l->t('September'); +$l->t('October'); +$l->t('November'); +$l->t('December'); +$l->t('Jan.'); +$l->t('Feb.'); +$l->t('Mar.'); +$l->t('Apr.'); +$l->t('May.'); +$l->t('Jun.'); +$l->t('Jul.'); +$l->t('Aug.'); +$l->t('Sep.'); +$l->t('Oct.'); +$l->t('Nov.'); +$l->t('Dec.'); \ No newline at end of file diff --git a/l10n/templates/calendar.pot b/l10n/templates/calendar.pot index ce255816ed5..7941082926b 100644 --- a/l10n/templates/calendar.pot +++ b/l10n/templates/calendar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-01-06 21:55+0100\n" +"POT-Creation-Date: 2012-01-07 18:29+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -146,31 +146,31 @@ msgstr "" msgid "by weekday" msgstr "" -#: lib/object.php:383 +#: lib/object.php:383 templates/lAfix.php:3 msgid "Monday" msgstr "" -#: lib/object.php:384 +#: lib/object.php:384 templates/lAfix.php:4 msgid "Tuesday" msgstr "" -#: lib/object.php:385 +#: lib/object.php:385 templates/lAfix.php:5 msgid "Wednesday" msgstr "" -#: lib/object.php:386 +#: lib/object.php:386 templates/lAfix.php:6 msgid "Thursday" msgstr "" -#: lib/object.php:387 +#: lib/object.php:387 templates/lAfix.php:7 msgid "Friday" msgstr "" -#: lib/object.php:388 +#: lib/object.php:388 templates/lAfix.php:8 msgid "Saturday" msgstr "" -#: lib/object.php:389 +#: lib/object.php:389 templates/lAfix.php:2 msgid "Sunday" msgstr "" @@ -202,51 +202,51 @@ msgstr "" msgid "last" msgstr "" -#: lib/object.php:424 +#: lib/object.php:424 templates/lAfix.php:16 msgid "January" msgstr "" -#: lib/object.php:425 +#: lib/object.php:425 templates/lAfix.php:17 msgid "February" msgstr "" -#: lib/object.php:426 +#: lib/object.php:426 templates/lAfix.php:18 msgid "March" msgstr "" -#: lib/object.php:427 +#: lib/object.php:427 templates/lAfix.php:19 msgid "April" msgstr "" -#: lib/object.php:428 +#: lib/object.php:428 templates/lAfix.php:20 msgid "May" msgstr "" -#: lib/object.php:429 +#: lib/object.php:429 templates/lAfix.php:21 msgid "June" msgstr "" -#: lib/object.php:430 +#: lib/object.php:430 templates/lAfix.php:22 msgid "July" msgstr "" -#: lib/object.php:431 +#: lib/object.php:431 templates/lAfix.php:23 msgid "August" msgstr "" -#: lib/object.php:432 +#: lib/object.php:432 templates/lAfix.php:24 msgid "September" msgstr "" -#: lib/object.php:433 +#: lib/object.php:433 templates/lAfix.php:25 msgid "October" msgstr "" -#: lib/object.php:434 +#: lib/object.php:434 templates/lAfix.php:26 msgid "November" msgstr "" -#: lib/object.php:435 +#: lib/object.php:435 templates/lAfix.php:27 msgid "December" msgstr "" @@ -314,30 +314,106 @@ msgstr "" msgid "There was a database fail" msgstr "" -#: templates/calendar.php:37 +#: templates/calendar.php:38 msgid "Week" msgstr "" -#: templates/calendar.php:38 +#: templates/calendar.php:39 msgid "Month" msgstr "" -#: templates/calendar.php:39 +#: templates/calendar.php:40 msgid "List" msgstr "" -#: templates/calendar.php:44 +#: templates/calendar.php:45 msgid "Today" msgstr "" -#: templates/calendar.php:45 +#: templates/calendar.php:46 msgid "Calendars" msgstr "" -#: templates/calendar.php:63 +#: templates/calendar.php:64 msgid "There was a fail, while parsing the file." msgstr "" +#: templates/lAfix.php:9 +msgid "Sun." +msgstr "" + +#: templates/lAfix.php:10 +msgid "Mon." +msgstr "" + +#: templates/lAfix.php:11 +msgid "Tue." +msgstr "" + +#: templates/lAfix.php:12 +msgid "Wed." +msgstr "" + +#: templates/lAfix.php:13 +msgid "Thu." +msgstr "" + +#: templates/lAfix.php:14 +msgid "Fri." +msgstr "" + +#: templates/lAfix.php:15 +msgid "Sat." +msgstr "" + +#: templates/lAfix.php:28 +msgid "Jan." +msgstr "" + +#: templates/lAfix.php:29 +msgid "Feb." +msgstr "" + +#: templates/lAfix.php:30 +msgid "Mar." +msgstr "" + +#: templates/lAfix.php:31 +msgid "Apr." +msgstr "" + +#: templates/lAfix.php:32 +msgid "May." +msgstr "" + +#: templates/lAfix.php:33 +msgid "Jun." +msgstr "" + +#: templates/lAfix.php:34 +msgid "Jul." +msgstr "" + +#: templates/lAfix.php:35 +msgid "Aug." +msgstr "" + +#: templates/lAfix.php:36 +msgid "Sep." +msgstr "" + +#: templates/lAfix.php:37 +msgid "Oct." +msgstr "" + +#: templates/lAfix.php:38 +msgid "Nov." +msgstr "" + +#: templates/lAfix.php:39 +msgid "Dec." +msgstr "" + #: templates/part.choosecalendar.php:1 msgid "Choose active calendars" msgstr "" From 6c09d9e0f8a22c77ff6ebf83e4e44de3aeb6be3e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 12 Nov 2011 18:06:07 +0100 Subject: [PATCH 04/27] some fixes in the sqlite3 driver --- lib/MDB2/Driver/Manager/sqlite3.php | 2 +- lib/MDB2/Driver/Reverse/sqlite3.php | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/MDB2/Driver/Manager/sqlite3.php b/lib/MDB2/Driver/Manager/sqlite3.php index c5c19a90fb5..7e30755fc3a 100644 --- a/lib/MDB2/Driver/Manager/sqlite3.php +++ b/lib/MDB2/Driver/Manager/sqlite3.php @@ -798,7 +798,7 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common return $db; } - $query = "SELECT name FROM sqlite_master WHERE type='table' AND sql NOT NULL ORDER BY name"; + $query = "SELECT name FROM sqlite_master WHERE type='table' AND sql NOT NULL AND name!='sqlite_sequence' ORDER BY name"; $table_names = $db->queryCol($query); if (PEAR::isError($table_names)) { return $table_names; diff --git a/lib/MDB2/Driver/Reverse/sqlite3.php b/lib/MDB2/Driver/Reverse/sqlite3.php index d5595da84c5..33e5b590268 100644 --- a/lib/MDB2/Driver/Reverse/sqlite3.php +++ b/lib/MDB2/Driver/Reverse/sqlite3.php @@ -69,7 +69,7 @@ class MDB2_Driver_Reverse_sqlite3 extends MDB2_Driver_Reverse_Common return $db->raiseError(MDB2_ERROR_UNSUPPORTED, null, null, 'unexpected empty table column definition list', __FUNCTION__); } - $regexp = '/^\s*([^\s]+) +(CHAR|VARCHAR|VARCHAR2|TEXT|BOOLEAN|SMALLINT|INT|INTEGER|DECIMAL|BIGINT|DOUBLE|FLOAT|DATETIME|DATE|TIME|LONGTEXT|LONGBLOB)( ?\(([1-9][0-9]*)(:([1-9][0-9]*))?\))?( NULL| NOT NULL)?( UNSIGNED)?( NULL| NOT NULL)?( PRIMARY KEY)?( DEFAULT (\'[^\']*\'|[^ ]+))?( NULL| NOT NULL)?( PRIMARY KEY)?(\s*\-\-.*)?$/i'; + $regexp = '/^\s*([^\s]+) +(CHAR|VARCHAR|VARCHAR2|TEXT|BOOLEAN|SMALLINT|INT|INTEGER|DECIMAL|BIGINT|DOUBLE|FLOAT|DATETIME|DATE|TIME|LONGTEXT|LONGBLOB)( ?\(([1-9][0-9]*)(:([1-9][0-9]*))?\))?( NULL| NOT NULL)?( UNSIGNED)?( NULL| NOT NULL)?( PRIMARY KEY)?( AUTOINCREMENT)?( DEFAULT (\'[^\']*\'|[^ ]+))?( NULL| NOT NULL)?( PRIMARY KEY)?(\s*\-\-.*)?$/i'; $regexp2 = '/^\s*([^ ]+) +(PRIMARY|UNIQUE|CHECK)$/i'; for ($i=0, $j=0; $i<$count; ++$i) { if (!preg_match($regexp, trim($column_sql[$i]), $matches)) { @@ -90,11 +90,16 @@ class MDB2_Driver_Reverse_sqlite3 extends MDB2_Driver_Reverse_Common if (isset($matches[8]) && strlen($matches[8])) { $columns[$j]['unsigned'] = true; } - if (isset($matches[9]) && strlen($matches[9])) { + if (isset($matches[10]) && strlen($matches[10])) { $columns[$j]['autoincrement'] = true; + $columns[$j]['notnull']=true; } - if (isset($matches[12]) && strlen($matches[12])) { - $default = $matches[12]; + if (isset($matches[10]) && strlen($matches[10])) { + $columns[$j]['autoincrement'] = true; + $columns[$j]['notnull']=true; + } + if (isset($matches[13]) && strlen($matches[13])) { + $default = $matches[13]; if (strlen($default) && $default[0]=="'") { $default = str_replace("''", "'", substr($default, 1, strlen($default)-2)); } @@ -107,8 +112,8 @@ class MDB2_Driver_Reverse_sqlite3 extends MDB2_Driver_Reverse_Common $columns[$j]['notnull'] = ($matches[7] === ' NOT NULL'); } else if (isset($matches[9]) && strlen($matches[9])) { $columns[$j]['notnull'] = ($matches[9] === ' NOT NULL'); - } else if (isset($matches[13]) && strlen($matches[13])) { - $columns[$j]['notnull'] = ($matches[13] === ' NOT NULL'); + } else if (isset($matches[14]) && strlen($matches[14])) { + $columns[$j]['notnull'] = ($matches[14] === ' NOT NULL'); } ++$j; } From 91a9688d0742b5c1af7d0b52da7a57e49e1e3e45 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 13 Nov 2011 16:06:29 +0100 Subject: [PATCH 05/27] minor changes to mysql setup --- lib/setup.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/setup.php b/lib/setup.php index b53c626c9a7..d454c17599d 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -160,8 +160,8 @@ class OC_Setup { //add prefix to the postgresql user name to prevent collissions $dbusername='oc_'.$username; - //hash the password so we don't need to store the admin config in the config file - $dbpassword=md5(time().$password); + //create a new password so we don't need to store the admin config in the config file + $dbpassword=md5(time()); self::pg_createDBUser($dbusername, $dbpassword, $connection); @@ -221,7 +221,7 @@ class OC_Setup { } public static function createDatabase($name,$user,$connection) { - //we cant user OC_BD functions here because we need to connect as the administrative user. + //we cant use OC_BD functions here because we need to connect as the administrative user. $query = "CREATE DATABASE IF NOT EXISTS `$name`"; $result = mysql_query($query, $connection); if(!$result) { @@ -243,7 +243,7 @@ class OC_Setup { } public static function pg_createDatabase($name,$user,$connection) { - //we cant user OC_BD functions here because we need to connect as the administrative user. + //we cant use OC_BD functions here because we need to connect as the administrative user. $query = "CREATE DATABASE $name OWNER $user"; $result = pg_query($connection, $query); if(!$result) { From 9a4e37483b9c6d7c6e287a9c95a408fc0249e8f9 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 13 Nov 2011 16:08:47 +0100 Subject: [PATCH 06/27] small fix in sqlite3 driver --- lib/MDB2/Driver/Manager/sqlite3.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/MDB2/Driver/Manager/sqlite3.php b/lib/MDB2/Driver/Manager/sqlite3.php index 7e30755fc3a..71b9597d202 100644 --- a/lib/MDB2/Driver/Manager/sqlite3.php +++ b/lib/MDB2/Driver/Manager/sqlite3.php @@ -168,9 +168,6 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common if (PEAR::isError($query_fields)) { return $query_fields; } - if (!empty($options['primary'])) { - $query_fields.= ', PRIMARY KEY ('.implode(', ', array_keys($options['primary'])).')'; - } if (!empty($options['foreign_keys'])) { foreach ($options['foreign_keys'] as $fkname => $fkdef) { if (empty($fkdef)) { From ecf6f2ca2f74abbfdc72788c502ef5a015dc890a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 13 Nov 2011 16:16:21 +0100 Subject: [PATCH 07/27] automatically upgrade the main database on version number increase (doesnt work with sqlite for now) --- lib/base.php | 10 ++++++++-- lib/db.php | 9 ++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/base.php b/lib/base.php index 0954e3615bd..803c0118e20 100644 --- a/lib/base.php +++ b/lib/base.php @@ -152,6 +152,12 @@ class OC{ } } + $installedVersion=OC_Config::getValue('version','0.0.0'); + $currentVersion=implode('.',OC_Util::getVersion()); + if (version_compare($currentVersion, $installedVersion, '>')) { + OC_DB::updateDbFromStructure('../db_structure.xml'); + } + ini_set('session.cookie_httponly','1;'); session_start(); @@ -230,8 +236,6 @@ if( !isset( $RUNTIME_NOAPPS )){ $RUNTIME_NOAPPS = false; } -OC::init(); - if(!function_exists('get_temp_dir')) { function get_temp_dir() { if( $temp=ini_get('upload_tmp_dir') ) return $temp; @@ -247,6 +251,8 @@ if(!function_exists('get_temp_dir')) { } } +OC::init(); + require_once('fakedirstream.php'); diff --git a/lib/db.php b/lib/db.php index c7085a975ef..05ed8398b7b 100644 --- a/lib/db.php +++ b/lib/db.php @@ -338,7 +338,6 @@ class OC_DB { * @param $file file to read structure from */ public static function updateDbFromStructure($file){ - $CONFIG_DBNAME = OC_Config::getValue( "dbname", "owncloud" ); $CONFIG_DBTABLEPREFIX = OC_Config::getValue( "dbtableprefix", "oc_" ); $CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" ); @@ -347,17 +346,17 @@ class OC_DB { // read file $content = file_get_contents( $file ); + $previousSchema = self::$schema->getDefinitionFromDatabase(); + // Make changes and save them to a temporary file $file2 = tempnam( get_temp_dir(), 'oc_db_scheme_' ); - $content = str_replace( '*dbname*', $CONFIG_DBNAME, $content ); + $content = str_replace( '*dbname*', $previousSchema['name'], $content ); $content = str_replace( '*dbprefix*', $CONFIG_DBTABLEPREFIX, $content ); if( $CONFIG_DBTYPE == 'pgsql' ){ //mysql support it too but sqlite doesn't $content = str_replace( '0000-00-00 00:00:00', 'CURRENT_TIMESTAMP', $content ); } file_put_contents( $file2, $content ); - $previousSchema = self::$schema->getDefinitionFromDatabase(); - $op = $schema->updateDatabase($file2, $previousSchema, array(), false); - + $op = self::$schema->updateDatabase($file2, $previousSchema, array(), false); if (PEAR::isError($op)) { $error = $op->getMessage(); OC_Log::write('core','Failed to update database structure ('.$error.')',OC_Log::FATAL); From 09a53170a309677b344b25d9820ef038a0e87929 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 15 Nov 2011 15:58:12 +0100 Subject: [PATCH 08/27] fixes in the sqlite manager driver --- lib/MDB2/Driver/Manager/sqlite3.php | 72 ++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/lib/MDB2/Driver/Manager/sqlite3.php b/lib/MDB2/Driver/Manager/sqlite3.php index 71b9597d202..a6fde69d6c4 100644 --- a/lib/MDB2/Driver/Manager/sqlite3.php +++ b/lib/MDB2/Driver/Manager/sqlite3.php @@ -531,9 +531,26 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common return MDB2_OK; } + if (empty($changes['remove']) and empty($changes['rename']) and empty($changes['change']) ){//if only rename or add changes are required, we can use ALTER TABLE + $query = ''; + if (!empty($changes['name'])) { + $change_name = $db->quoteIdentifier($changes['name'], true); + $query = 'RENAME TO ' . $change_name; + $db->exec("ALTER TABLE $name $query"); + } + + if (!empty($changes['add']) && is_array($changes['add'])) { + foreach ($changes['add'] as $field_name => $field) { + $query= 'ADD ' . $db->getDeclaration($field['type'], $field_name, $field); + $db->exec("ALTER TABLE $name $query"); + } + } + return MDB2_OK; + } + $db->loadModule('Reverse', null, true); - // actually sqlite 2.x supports no ALTER TABLE at all .. so we emulate it + // for other operations we need to emulate them with sqlite3 $fields = $db->manager->listTableFields($name); if (PEAR::isError($fields)) { return $fields; @@ -633,16 +650,10 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common } } + //rename the old table so we can create the new one + $db->exec("ALTER TABLE $name RENAME TO __$name"); $data = null; - if (!empty($select_fields)) { - $query = 'SELECT '.implode(', ', $select_fields).' FROM '.$db->quoteIdentifier($name, true); - $data = $db->queryAll($query, null, MDB2_FETCHMODE_ORDERED); - } - $result = $this->dropTable($name); - if (PEAR::isError($result)) { - return $result; - } $result = $this->createTable($name_new, $fields, $options); if (PEAR::isError($result)) { @@ -657,20 +668,35 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common $this->createConstraint($name_new, $constraint, $definition); } - if (!empty($select_fields) && !empty($data)) { - $query = 'INSERT INTO '.$db->quoteIdentifier($name_new, true); - $query.= '('.implode(', ', array_slice(array_keys($fields), 0, count($select_fields))).')'; - $query.=' VALUES (?'.str_repeat(', ?', (count($select_fields) - 1)).')'; - $stmt =$db->prepare($query, null, MDB2_PREPARE_MANIP); - if (PEAR::isError($stmt)) { - return $stmt; - } - foreach ($data as $row) { - $result = $stmt->execute($row); - if (PEAR::isError($result)) { - return $result; - } - } + //fill the new table with data from the old one + if (!empty($select_fields)) { + $query = 'INSERT INTO '.$db->quoteIdentifier($name_new, true); + $query.= '('.implode(', ', array_slice(array_keys($fields), 0, count($select_fields))).')'; + $query .= ' SELECT '.implode(', ', $select_fields).' FROM '.$db->quoteIdentifier('__'.$name, true); + $db->exec($query); + } + +// if (!empty($select_fields) && !empty($data)) { +// $query = 'INSERT INTO '.$db->quoteIdentifier($name_new, true); +// $query.= '('.implode(', ', array_slice(array_keys($fields), 0, count($select_fields))).')'; +// $query.=' VALUES (?'.str_repeat(', ?', (count($select_fields) - 1)).')'; +// $stmt =$db->prepare($query, null, MDB2_PREPARE_MANIP); +// if (PEAR::isError($stmt)) { +// return $stmt; +// } +// foreach ($data as $row) { +// $result = $stmt->execute($row); +// if (PEAR::isError($result)) { +// return $result; +// } +// } +// } + echo "changes $name"; + + //remove the old table + $result = $this->dropTable('__'.$name); + if (PEAR::isError($result)) { + return $result; } return MDB2_OK; } From c6aa0f9854a2e598c6bb2cd2d0b6ffce7a9c6e64 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 15 Nov 2011 15:59:01 +0100 Subject: [PATCH 09/27] set the installed version after updating the database --- lib/base.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/base.php b/lib/base.php index 803c0118e20..7b42d56f522 100644 --- a/lib/base.php +++ b/lib/base.php @@ -156,6 +156,7 @@ class OC{ $currentVersion=implode('.',OC_Util::getVersion()); if (version_compare($currentVersion, $installedVersion, '>')) { OC_DB::updateDbFromStructure('../db_structure.xml'); + OC_Config::setValue('version',implode('.',OC_Util::getVersion())); } ini_set('session.cookie_httponly','1;'); From 001d06f2ff4a641ff76b4d67a3a33cbdbf5b2bb5 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 15 Nov 2011 16:08:08 +0100 Subject: [PATCH 10/27] fix errors during database migration --- lib/MDB2/Driver/Manager/sqlite3.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/MDB2/Driver/Manager/sqlite3.php b/lib/MDB2/Driver/Manager/sqlite3.php index a6fde69d6c4..8f4e1312eb8 100644 --- a/lib/MDB2/Driver/Manager/sqlite3.php +++ b/lib/MDB2/Driver/Manager/sqlite3.php @@ -660,13 +660,15 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common return $result; } - foreach ($indexes as $index => $definition) { - $this->createIndex($name_new, $index, $definition); - } + //these seem to only give errors - foreach ($constraints as $constraint => $definition) { - $this->createConstraint($name_new, $constraint, $definition); - } +// foreach ($indexes as $index => $definition) { +// $this->createIndex($name_new, $index, $definition); +// } + +// foreach ($constraints as $constraint => $definition) { +// $this->createConstraint($name_new, $constraint, $definition); +// } //fill the new table with data from the old one if (!empty($select_fields)) { @@ -691,7 +693,6 @@ class MDB2_Driver_Manager_sqlite3 extends MDB2_Driver_Manager_Common // } // } // } - echo "changes $name"; //remove the old table $result = $this->dropTable('__'.$name); From fea68e08b4f0aa52ebd051e4428ff5abd8284f5c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 11 Dec 2011 22:08:01 +0100 Subject: [PATCH 11/27] update apps when their version number increases --- lib/app.php | 29 +++++++++++++++++++++++++++++ lib/base.php | 2 ++ 2 files changed, 31 insertions(+) diff --git a/lib/app.php b/lib/app.php index 1873e1136cd..6b35cdffec9 100644 --- a/lib/app.php +++ b/lib/app.php @@ -371,4 +371,33 @@ class OC_App{ } return $apps; } + + /** + * check if any apps need updating and update those + */ + public static function updateApps(){ + // The rest comes here + $apps = OC_Appconfig::getApps(); + foreach( $apps as $app ){ + $installedVersion=OC_Appconfig::getValue($app,'installed_version'); + $appInfo=OC_App::getAppInfo($app); + $currentVersion=$appInfo['version']; + if (version_compare($currentVersion, $installedVersion, '>')) { + OC_App::updateApp($app); + } + } + } + + /** + * update the database for the app and call the update script + * @param string appid + */ + public static function updateApp($appid){ + if(file_exists(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/database.xml')){ + OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/database.xml'); + } + if(file_exists(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/update.php')){ + include OC::$SERVERROOT.'/apps/'.$file.'/appinfo/update.php'; + } + } } diff --git a/lib/base.php b/lib/base.php index 7b42d56f522..c3965c9cd39 100644 --- a/lib/base.php +++ b/lib/base.php @@ -159,6 +159,8 @@ class OC{ OC_Config::setValue('version',implode('.',OC_Util::getVersion())); } + OC_App::updateApps(); + ini_set('session.cookie_httponly','1;'); session_start(); From 010bfa11e363928f4c3a6d8518cbab0e79e28149 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Sun, 1 Jan 2012 16:58:51 -0500 Subject: [PATCH 12/27] Fix updateApp() and add extra check to updateApps() --- lib/app.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/app.php b/lib/app.php index 6b35cdffec9..13c4cef32b4 100644 --- a/lib/app.php +++ b/lib/app.php @@ -381,9 +381,11 @@ class OC_App{ foreach( $apps as $app ){ $installedVersion=OC_Appconfig::getValue($app,'installed_version'); $appInfo=OC_App::getAppInfo($app); - $currentVersion=$appInfo['version']; - if (version_compare($currentVersion, $installedVersion, '>')) { - OC_App::updateApp($app); + if (isset($appInfo['version'])) { + $currentVersion=$appInfo['version']; + if (version_compare($currentVersion, $installedVersion, '>')) { + OC_App::updateApp($app); + } } } } @@ -393,11 +395,11 @@ class OC_App{ * @param string appid */ public static function updateApp($appid){ - if(file_exists(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/database.xml')){ - OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/database.xml'); + if(file_exists(OC::$SERVERROOT.'/apps/'.$appid.'/appinfo/database.xml')){ + OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/apps/'.$appid.'/appinfo/database.xml'); } - if(file_exists(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/update.php')){ - include OC::$SERVERROOT.'/apps/'.$file.'/appinfo/update.php'; + if(file_exists(OC::$SERVERROOT.'/apps/'.$appid.'/appinfo/update.php')){ + include OC::$SERVERROOT.'/apps/'.$appid.'/appinfo/update.php'; } } } From 034cf19159c828d242fbb3128fda6db815a75ca6 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 02:57:52 +0100 Subject: [PATCH 13/27] allow changing database backends between PDO and MDB2 --- lib/db.php | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/db.php b/lib/db.php index 05ed8398b7b..58a478ba0c0 100644 --- a/lib/db.php +++ b/lib/db.php @@ -71,7 +71,14 @@ class OC_DB { /** * connect to the database using pdo */ - private static function connectPDO(){ + public static function connectPDO(){ + if(self::$connection){ + if(self::$backend==self::BACKEND_MDB2){ + self::disconnect(); + }else{ + return; + } + } // The global data we need $name = OC_Config::getValue( "dbname", "owncloud" ); $host = OC_Config::getValue( "dbhost", "" ); @@ -113,7 +120,14 @@ class OC_DB { /** * connect to the database using mdb2 */ - static private function connectMDB2(){ + public static function connectMDB2(){ + if(self::$connection){ + if(self::$backend==self::BACKEND_PDO){ + self::disconnect(); + }else{ + return; + } + } // The global data we need $name = OC_Config::getValue( "dbname", "owncloud" ); $host = OC_Config::getValue( "dbhost", "" ); @@ -255,8 +269,8 @@ class OC_DB { self::$connection->disconnect(); } self::$connection=false; - self::$mdb2=false; - self::$pdo=false; + self::$MDB2=false; + self::$PDO=false; } return true; @@ -374,6 +388,7 @@ class OC_DB { private static function connectScheme(){ // We need a mdb2 database connection self::connectMDB2(); + self::$MDB2->loadModule('Manager'); // Connect if this did not happen before if(!self::$schema){ From 21c4515465748f4ed38a4dc14382d22649711c08 Mon Sep 17 00:00:00 2001 From: Bartek Przybylski Date: Sun, 8 Jan 2012 11:01:25 +0100 Subject: [PATCH 14/27] rename fix, licence header added --- apps/gallery/ajax/cover.php | 22 ++++++++++++++++++++++ apps/gallery/ajax/createAlbum.php | 22 ++++++++++++++++++++++ apps/gallery/ajax/galleryOp.php | 22 ++++++++++++++++++++++ apps/gallery/ajax/getAlbums.php | 22 ++++++++++++++++++++++ apps/gallery/ajax/getCovers.php | 22 ++++++++++++++++++++++ apps/gallery/ajax/scanForAlbums.php | 21 +++++++++++++++++++++ apps/gallery/ajax/thumbnail.php | 22 ++++++++++++++++++++++ apps/gallery/appinfo/app.php | 22 ++++++++++++++++++++++ apps/gallery/appinfo/info.xml | 2 +- apps/gallery/index.php | 22 ++++++++++++++++++++++ apps/gallery/lib/album.php | 21 +++++++++++++++++++++ apps/gallery/lib/hooks_handlers.php | 28 +++++++++++++++++++++++++--- apps/gallery/lib/images_utils.php | 22 ++++++++++++++++++++++ apps/gallery/lib/photo.php | 21 +++++++++++++++++++++ apps/gallery/lib/scanner.php | 21 +++++++++++++++++++++ 15 files changed, 308 insertions(+), 4 deletions(-) diff --git a/apps/gallery/ajax/cover.php b/apps/gallery/ajax/cover.php index d83f4daaa52..181a919375d 100644 --- a/apps/gallery/ajax/cover.php +++ b/apps/gallery/ajax/cover.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/ajax/createAlbum.php b/apps/gallery/ajax/createAlbum.php index 9413b54718a..152f5834bcb 100644 --- a/apps/gallery/ajax/createAlbum.php +++ b/apps/gallery/ajax/createAlbum.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/ajax/galleryOp.php b/apps/gallery/ajax/galleryOp.php index 8a006dda637..3d1ed1f33cb 100644 --- a/apps/gallery/ajax/galleryOp.php +++ b/apps/gallery/ajax/galleryOp.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); require_once(OC::$CLASSPATH['OC_Gallery_Album']); OC_JSON::checkLoggedIn(); diff --git a/apps/gallery/ajax/getAlbums.php b/apps/gallery/ajax/getAlbums.php index e4736076fed..9e9c6ef496c 100644 --- a/apps/gallery/ajax/getAlbums.php +++ b/apps/gallery/ajax/getAlbums.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/ajax/getCovers.php b/apps/gallery/ajax/getCovers.php index db7c8e9fcde..4db73d0fbf3 100644 --- a/apps/gallery/ajax/getCovers.php +++ b/apps/gallery/ajax/getCovers.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/ajax/scanForAlbums.php b/apps/gallery/ajax/scanForAlbums.php index b1f0a433a42..b8ed639d9dc 100644 --- a/apps/gallery/ajax/scanForAlbums.php +++ b/apps/gallery/ajax/scanForAlbums.php @@ -1,5 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/ajax/thumbnail.php b/apps/gallery/ajax/thumbnail.php index d937691fa03..6d25c7a2536 100644 --- a/apps/gallery/ajax/thumbnail.php +++ b/apps/gallery/ajax/thumbnail.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/appinfo/app.php b/apps/gallery/appinfo/app.php index 3a2dbcb43ad..9c665fd3500 100644 --- a/apps/gallery/appinfo/app.php +++ b/apps/gallery/appinfo/app.php @@ -1,4 +1,26 @@ . +* +*/ + OC::$CLASSPATH['OC_Gallery_Album'] = 'apps/gallery/lib/album.php'; OC::$CLASSPATH['OC_Gallery_Photo'] = 'apps/gallery/lib/photo.php'; OC::$CLASSPATH['OC_Gallery_Scanner'] = 'apps/gallery/lib/scanner.php'; diff --git a/apps/gallery/appinfo/info.xml b/apps/gallery/appinfo/info.xml index ba51bf0bd55..c275f39bb25 100644 --- a/apps/gallery/appinfo/info.xml +++ b/apps/gallery/appinfo/info.xml @@ -6,6 +6,6 @@ AGPL Bartek Przybylski 2 - + Gallery application for ownCloud diff --git a/apps/gallery/index.php b/apps/gallery/index.php index 0cd795bac01..822a5b8e143 100644 --- a/apps/gallery/index.php +++ b/apps/gallery/index.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../lib/base.php'); OC_Util::checkLoggedIn(); diff --git a/apps/gallery/lib/album.php b/apps/gallery/lib/album.php index 98876b891c5..a94eff3acd7 100644 --- a/apps/gallery/lib/album.php +++ b/apps/gallery/lib/album.php @@ -1,5 +1,26 @@ . +* +*/ + class OC_Gallery_Album { public static function create($owner, $name, $path){ $stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_albums (uid_owner, album_name, album_path) VALUES (?, ?, ?)'); diff --git a/apps/gallery/lib/hooks_handlers.php b/apps/gallery/lib/hooks_handlers.php index 1bddaf363e3..b6aa8a400cf 100644 --- a/apps/gallery/lib/hooks_handlers.php +++ b/apps/gallery/lib/hooks_handlers.php @@ -1,5 +1,26 @@ . +* +*/ + OC_Hook::connect("OC_Filesystem", "post_write", "OC_Gallery_Hooks_Handlers", "addPhotoFromPath"); OC_Hook::connect("OC_Filesystem", "delete", "OC_Gallery_Hooks_Handlers", "removePhoto"); OC_Hook::connect("OC_Filesystem", "post_rename", "OC_Gallery_Hooks_Handlers", "renamePhoto"); @@ -18,7 +39,8 @@ class OC_Gallery_Hooks_Handlers { private static function createAlbum($path) { $new_album_name = trim(str_replace('/', '.', $path), '.'); - if ($new_album_name == '') $new_album_name = 'main'; + if ($new_album_name == '') + $new_album_name = 'main'; OC_Log::write(self::$APP_TAG, 'Creating new album '.$new_album_name, OC_Log::DEBUG); OC_Gallery_Album::create(OC_User::getUser(), $new_album_name, $path); @@ -53,8 +75,8 @@ class OC_Gallery_Hooks_Handlers { } public static function renamePhoto($params) { - $olddir = substr($params['oldpath'], 0, strrpos($params['oldpath'], '/')); - $newdir = substr($params['newpath'], 0, strrpos($params['newpath'], '/')); + $olddir = substr($params['oldpath'], 0, strrpos($params['oldpath'], '/')+1); + $newdir = substr($params['newpath'], 0, strrpos($params['newpath'], '/')+1); if (!self::isPhoto($params['newpath'])) return; $album; $newAlbumId; diff --git a/apps/gallery/lib/images_utils.php b/apps/gallery/lib/images_utils.php index cb46bf3f160..0cfa52eb564 100644 --- a/apps/gallery/lib/images_utils.php +++ b/apps/gallery/lib/images_utils.php @@ -1,4 +1,26 @@ . +* +*/ + require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); diff --git a/apps/gallery/lib/photo.php b/apps/gallery/lib/photo.php index f8a640819a1..23887098e0f 100644 --- a/apps/gallery/lib/photo.php +++ b/apps/gallery/lib/photo.php @@ -1,5 +1,26 @@ . +* +*/ + class OC_Gallery_Photo{ public static function create($albumId, $img){ $stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_photos (album_id, file_path) VALUES (?, ?)'); diff --git a/apps/gallery/lib/scanner.php b/apps/gallery/lib/scanner.php index f754f913001..3eba9260ac7 100644 --- a/apps/gallery/lib/scanner.php +++ b/apps/gallery/lib/scanner.php @@ -1,5 +1,26 @@ . +* +*/ + require_once('base.php'); // base lib require_once('images_utils.php'); From c2392bbace7511dfa424513ba88a8d76f3ee620c Mon Sep 17 00:00:00 2001 From: Bartek Przybylski Date: Sun, 8 Jan 2012 11:25:08 +0100 Subject: [PATCH 15/27] db overwriting, gallery creating fix --- apps/gallery/appinfo/database.xml | 2 +- apps/gallery/lib/hooks_handlers.php | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/gallery/appinfo/database.xml b/apps/gallery/appinfo/database.xml index db88e4c1b5a..ccdfad9433a 100644 --- a/apps/gallery/appinfo/database.xml +++ b/apps/gallery/appinfo/database.xml @@ -2,7 +2,7 @@ *dbname* true - false + true latin1 *dbprefix*gallery_albums diff --git a/apps/gallery/lib/hooks_handlers.php b/apps/gallery/lib/hooks_handlers.php index b6aa8a400cf..65f3faaeeaf 100644 --- a/apps/gallery/lib/hooks_handlers.php +++ b/apps/gallery/lib/hooks_handlers.php @@ -32,6 +32,7 @@ class OC_Gallery_Hooks_Handlers { private static $APP_TAG = "Gallery"; private static function isPhoto($filename) { + OC_Log::write(self::$APP_TAG, "Checking file ".$filename." with mimetype ".OC_Filesystem::getMimeType($filename), OC_Log::DEBUG); if (substr(OC_Filesystem::getMimeType($filename), 0, 6) == "image/") return 1; return 0; @@ -53,6 +54,7 @@ class OC_Gallery_Hooks_Handlers { $fullpath = $params['path']; OC_Log::write(self::$APP_TAG, 'Adding file with path '. $fullpath, OC_Log::DEBUG); $path = substr($fullpath, 0, strrpos($fullpath, '/')); + if ($path == '') $path = '/'; $album = OC_Gallery_Album::find(OC_User::getUser(), null, $path); if ($album->numRows() == 0) { @@ -75,9 +77,12 @@ class OC_Gallery_Hooks_Handlers { } public static function renamePhoto($params) { - $olddir = substr($params['oldpath'], 0, strrpos($params['oldpath'], '/')+1); - $newdir = substr($params['newpath'], 0, strrpos($params['newpath'], '/')+1); + $olddir = substr($params['oldpath'], 0, strrpos($params['oldpath'], '/')); + $newdir = substr($params['newpath'], 0, strrpos($params['newpath'], '/')); + if ($olddir == '') $olddir = '/'; + if ($newdir == '') $newdir = '/'; if (!self::isPhoto($params['newpath'])) return; + OC_Log::write(self::$APP_TAG, 'Moving photo from '.$params['oldpath'].' to '.$params['newpath'], OC_Log::DEBUG); $album; $newAlbumId; $oldAlbumId; From 76b193c69818187b5d52fdcd3d07873c343aa5d9 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 13:01:41 +0100 Subject: [PATCH 16/27] don't try to upgrade what isn't installed --- lib/base.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/base.php b/lib/base.php index c3965c9cd39..854b91b0c1d 100644 --- a/lib/base.php +++ b/lib/base.php @@ -152,14 +152,16 @@ class OC{ } } - $installedVersion=OC_Config::getValue('version','0.0.0'); - $currentVersion=implode('.',OC_Util::getVersion()); - if (version_compare($currentVersion, $installedVersion, '>')) { - OC_DB::updateDbFromStructure('../db_structure.xml'); - OC_Config::setValue('version',implode('.',OC_Util::getVersion())); - } + if(OC_Config::getValue('installed', false)){ + $installedVersion=OC_Config::getValue('version','0.0.0'); + $currentVersion=implode('.',OC_Util::getVersion()); + if (version_compare($currentVersion, $installedVersion, '>')) { + OC_DB::updateDbFromStructure('../db_structure.xml'); + OC_Config::setValue('version',implode('.',OC_Util::getVersion())); + } - OC_App::updateApps(); + OC_App::updateApps(); + } ini_set('session.cookie_httponly','1;'); session_start(); From a4e14b49b14b2215037806ded362b2ded0e61465 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 13:16:11 +0100 Subject: [PATCH 17/27] load reverse driver when updating database --- lib/db.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/db.php b/lib/db.php index 58a478ba0c0..b901cc8b513 100644 --- a/lib/db.php +++ b/lib/db.php @@ -389,6 +389,7 @@ class OC_DB { // We need a mdb2 database connection self::connectMDB2(); self::$MDB2->loadModule('Manager'); + self::$MDB2->loadModule('Reverse'); // Connect if this did not happen before if(!self::$schema){ From 4d1ed7e05f5efc589b7fb6031661ccda496cee76 Mon Sep 17 00:00:00 2001 From: Cloud Dumper Date: Sat, 7 Jan 2012 23:41:51 +0100 Subject: [PATCH 18/27] Improve music playlist rendering. This change: * bolds currently playing song in playlist; * forces song names in playlist to one line, ellipsize after (...); * adds jQuery tipsies to get the whole song name, along with the artist name, and the album the song is coming from. No need to split this changeset into three different ones for the sake of atomicity. Two first elements were on the priorities / bug list available there: http://gitorious.org/owncloud/pages/Home --- apps/media/css/music.css | 4 ++-- apps/media/js/playlist.js | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/media/css/music.css b/apps/media/css/music.css index a6738058be3..41ade44a66f 100644 --- a/apps/media/css/music.css +++ b/apps/media/css/music.css @@ -22,11 +22,11 @@ div.jp-volume-bar-value { background:#ccc; width:0; height:0.4em; } #collection li.album,#collection li.song { margin-left:3em; } #leftcontent img.remove { display:none; float:right; cursor:pointer; } #leftcontent li:hover img.remove { display:inline; } -#leftcontent li {white-space: normal; } +#leftcontent li div.label { float: left; width: 200px; overflow: hidden; text-overflow: ellipsis; } #collection li button { float:right; } #collection li,#playlist li { list-style-type:none; } .template { display:none; } -.collection_playing { background:#eee; } +.collection_playing { background:#eee; font-weight: bold; } #collection li { padding-right:10px; } #searchresults input.play, #searchresults input.add { float:left; height:1em; width:1em; } diff --git a/apps/media/js/playlist.js b/apps/media/js/playlist.js index 57180b3be7b..089065989ae 100644 --- a/apps/media/js/playlist.js +++ b/apps/media/js/playlist.js @@ -1,11 +1,23 @@ PlayList.render=function(){ $('#playlist').show(); + + /* + * We should not empty() PlayList.parent() but thorougly manage its + * elements instead because some code might be attached to those. + * JQuery tipsies are one of them. The following line make sure they + * are all removed before we delete the associated
  • . + */ + $(".tipsy").remove(); + PlayList.parent.empty(); for(var i=0;i'); - li.append(item.name); - li.attr('class', 'jp-playlist-' + i); + li.attr('class', 'jp-playlist-' + i); + li.attr('title', item.artist + ' - ' + item.name + '
    (' + item.album + ')'); + var div = $('
    ' + item.name + '
    '); + li.append(div); + $('.jp-playlist-' + i).tipsy({gravity:'w', fade:true, live:true, html:true}); var img=$(''); img.click(function(event){ event.stopPropagation(); From ae711168c3308e013c0d24cc7f832ff91077e911 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 14:07:12 +0100 Subject: [PATCH 19/27] improve detection for mysql databases --- lib/setup.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/setup.php b/lib/setup.php index d454c17599d..a65dc9453c2 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -103,7 +103,7 @@ class OC_Setup { //use the admin login data for the new database user //add prefix to the mysql user name to prevent collissions - $dbusername=substr('oc_mysql_'.$username,0,16); + $dbusername=substr('oc_'.$username,0,16); //hash the password so we don't need to store the admin config in the config file $dbpassword=md5(time().$password); @@ -124,9 +124,12 @@ class OC_Setup { } //fill the database if needed - $query="SELECT * FROM $dbname.{$dbtableprefix}users"; + $query="select count(*) from information_schema.tables where table_schema='$dbname' AND table_name = '{$dbtableprefix}users';"; $result = mysql_query($query,$connection); - if(!$result) { + if($result){ + $row=mysql_fetch_row($result); + } + if(!$result or $row[0]==0) { OC_DB::createDbFromStructure('db_structure.xml'); } mysql_close($connection); From 49337e0ad1db8ecf8244f057f729241d923ac2ff Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 14:25:38 +0100 Subject: [PATCH 20/27] dont create a new user when it already exists --- lib/setup.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/setup.php b/lib/setup.php index a65dc9453c2..ebe7a45a1f6 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -98,26 +98,33 @@ class OC_Setup { ); } else { + $oldUser=OC_Config::getValue('dbuser', false); + $oldPassword=OC_Config::getValue('dbpassword', false); + $query="SELECT user FROM mysql.user WHERE user='$dbuser'"; //this should be enough to check for admin rights in mysql if(mysql_query($query, $connection)) { //use the admin login data for the new database user //add prefix to the mysql user name to prevent collissions $dbusername=substr('oc_'.$username,0,16); - //hash the password so we don't need to store the admin config in the config file - $dbpassword=md5(time().$password); - - self::createDBUser($dbusername, $dbpassword, $connection); - - OC_Config::setValue('dbuser', $dbusername); - OC_Config::setValue('dbpassword', $dbpassword); + if($dbusername!=$oldUser){ + //hash the password so we don't need to store the admin config in the config file + $dbpassword=md5(time().$password); + + self::createDBUser($dbusername, $dbpassword, $connection); + + OC_Config::setValue('dbuser', $dbusername); + OC_Config::setValue('dbpassword', $dbpassword); + } //create the database self::createDatabase($dbname, $dbusername, $connection); } else { - OC_Config::setValue('dbuser', $dbuser); - OC_Config::setValue('dbpassword', $dbpass); + if($dbuser!=$oldUser){ + OC_Config::setValue('dbuser', $dbuser); + OC_Config::setValue('dbpassword', $dbpass); + } //create the database self::createDatabase($dbname, $dbuser, $connection); From 9c6248443adf4be29cf9e85a8f7baca846bcb1d9 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 14:35:23 +0100 Subject: [PATCH 21/27] dont overwrite the database with the gallery database --- apps/gallery/appinfo/database.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/gallery/appinfo/database.xml b/apps/gallery/appinfo/database.xml index ccdfad9433a..db88e4c1b5a 100644 --- a/apps/gallery/appinfo/database.xml +++ b/apps/gallery/appinfo/database.xml @@ -2,7 +2,7 @@ *dbname* true - true + false latin1
  • *dbprefix*gallery_albums From a9aabd1c8d8acce429a66779d1fe69025a317a83 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sun, 8 Jan 2012 16:41:36 +0100 Subject: [PATCH 22/27] 3rdparty: fix bug in when --- 3rdparty/when/When.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/3rdparty/when/When.php b/3rdparty/when/When.php index f8bb9db0f67..5eaf3dec69d 100755 --- a/3rdparty/when/When.php +++ b/3rdparty/when/When.php @@ -621,7 +621,19 @@ class When if($interval == "month") { - $this->try_date->modify('+1 month'); + + $this->try_date->modify('first day of next month'); + if((int) date('t', $this->try_date->format('U')) > (int) $this->start_date->format('j')){ + $this->try_date->modify('+' . (int) $this->start_date->format('j') - 1 . ' day'); + }else{ + $this->try_date->modify('+' . (int) date('t', $this->try_date->format('U')) - 1 . ' day'); + } + //$this->try_date->setDate(date('y/n/j', mktime(0,0,0,$this->try_date->format('j'), $this->try_date->format('n') + 1, $year = $this->try_date->format('Y')))); + //echo date('t', $this->try_date->format('U')) . '-' . $this->try_date->format('U') . ' '; + /*$month_day = $this->try_date->format('j'); + $month = $this->try_date->format('n'); + $year = $this->try_date->format('Y');*/ + } else { From 9e105d9bd756ef079c407772cba4d67f1a5193fe Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sun, 8 Jan 2012 16:44:15 +0100 Subject: [PATCH 23/27] remove old code in comments --- 3rdparty/when/When.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/3rdparty/when/When.php b/3rdparty/when/When.php index 5eaf3dec69d..d54f296ed61 100755 --- a/3rdparty/when/When.php +++ b/3rdparty/when/When.php @@ -628,12 +628,6 @@ class When }else{ $this->try_date->modify('+' . (int) date('t', $this->try_date->format('U')) - 1 . ' day'); } - //$this->try_date->setDate(date('y/n/j', mktime(0,0,0,$this->try_date->format('j'), $this->try_date->format('n') + 1, $year = $this->try_date->format('Y')))); - //echo date('t', $this->try_date->format('U')) . '-' . $this->try_date->format('U') . ' '; - /*$month_day = $this->try_date->format('j'); - $month = $this->try_date->format('n'); - $year = $this->try_date->format('Y');*/ - } else { From 041e3575d157e1ac0886473c962af10726ae7e67 Mon Sep 17 00:00:00 2001 From: Kshitij Parajuli Date: Sun, 8 Jan 2012 11:00:30 -0500 Subject: [PATCH 24/27] When a music file is playing, the page title gets modified. --- apps/media/js/player.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/media/js/player.js b/apps/media/js/player.js index 3c022e9f8c4..1f76356fd97 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -93,9 +93,11 @@ var PlayList={ ended:PlayList.next, pause:function(){ localStorage.setItem(oc_current_user+'oc_playlist_playing','false'); + document.title = "ownCloud"; }, - play:function(){ + play:function(event){ localStorage.setItem(oc_current_user+'oc_playlist_playing','true'); + document.title = "\u25b8 " + event.jPlayer.status.media.name + " - " + event.jPlayer.status.media.artist + " - ownCloud"; }, supplied:type, ready:function(){ From 13784bee18ace83adc10d869e949420b797ac03f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 17:29:35 +0100 Subject: [PATCH 25/27] mp3info is giving to much trouble, get rid of it --- apps/media/lib_scanner.php | 112 ++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 65 deletions(-) diff --git a/apps/media/lib_scanner.php b/apps/media/lib_scanner.php index 320b1f79199..4039cce09ee 100644 --- a/apps/media/lib_scanner.php +++ b/apps/media/lib_scanner.php @@ -30,7 +30,6 @@ class OC_MEDIA_SCANNER{ //these are used to store which artists and albums we found, it can save a lot of addArtist/addAlbum calls static private $artists=array(); static private $albums=array();//stored as "$artist/$album" to allow albums with the same name from different artists - static private $useMp3Info=null; /** * scan a folder for music @@ -70,72 +69,55 @@ class OC_MEDIA_SCANNER{ * @return boolean */ public static function scanFile($path){ - if(is_null(self::$useMp3Info)){ - self::$useMp3Info=OC_Helper::canExecute("mp3info"); - } $file=OC_Filesystem::getLocalFile($path); - if(substr($path,-3)=='mp3' and self::$useMp3Info){//use the command line tool id3info if possible - $output=array(); - $size=filesize($file); - exec('mp3info -p "%a\n%l\n%t\n%n\n%S" "'.$file.'"',$output); - if(count($output)>4){ - $artist=$output[0]; - $album=$output[1]; - $title=$output[2]; - $track=$output[3]; - $length=$output[4]; - }else{ - return; //invalid mp3 file - } - }else{ - if(!self::isMusic($path)){ - return; - } - if(!self::$getID3){ - self::$getID3=@new getID3(); - self::$getID3->encoding='UTF-8'; - } - $data=@self::$getID3->analyze($file); - getid3_lib::CopyTagsToComments($data); - if(!isset($data['comments'])){ - OC_Log::write('media',"error reading id3 tags in '$file'",OC_Log::WARN); - return; - } - if(!isset($data['comments']['artist'])){ - OC_Log::write('media',"error reading artist tag in '$file'",OC_Log::WARN); - $artist='unknown'; - }else{ - $artist=stripslashes($data['comments']['artist'][0]); - } - if(!isset($data['comments']['album'])){ - OC_Log::write('media',"error reading album tag in '$file'",OC_Log::WARN); - $album='unknown'; - }else{ - $album=stripslashes($data['comments']['album'][0]); - } - if(!isset($data['comments']['title'])){ - OC_Log::write('media',"error reading title tag in '$file'",OC_Log::WARN); - $title='unknown'; - }else{ - $title=stripslashes($data['comments']['title'][0]); - } - $size=$data['filesize']; - if (isset($data['comments']['track'])) - { - $track = $data['comments']['track'][0]; - } - else if (isset($data['comments']['track_number'])) - { - $track = $data['comments']['track_number'][0]; - $track = explode('/',$track); - $track = $track[0]; - } - else - { - $track = 0; - } - $length=isset($data['playtime_seconds'])?round($data['playtime_seconds']):0; + if(!self::isMusic($path)){ + return; } + if(!self::$getID3){ + self::$getID3=@new getID3(); + self::$getID3->encoding='UTF-8'; + } + $data=@self::$getID3->analyze($file); + getid3_lib::CopyTagsToComments($data); + if(!isset($data['comments'])){ + OC_Log::write('media',"error reading id3 tags in '$file'",OC_Log::WARN); + return; + } + if(!isset($data['comments']['artist'])){ + OC_Log::write('media',"error reading artist tag in '$file'",OC_Log::WARN); + $artist='unknown'; + }else{ + $artist=stripslashes($data['comments']['artist'][0]); + } + if(!isset($data['comments']['album'])){ + OC_Log::write('media',"error reading album tag in '$file'",OC_Log::WARN); + $album='unknown'; + }else{ + $album=stripslashes($data['comments']['album'][0]); + } + if(!isset($data['comments']['title'])){ + OC_Log::write('media',"error reading title tag in '$file'",OC_Log::WARN); + $title='unknown'; + }else{ + $title=stripslashes($data['comments']['title'][0]); + } + $size=$data['filesize']; + if (isset($data['comments']['track'])) + { + $track = $data['comments']['track'][0]; + } + else if (isset($data['comments']['track_number'])) + { + $track = $data['comments']['track_number'][0]; + $track = explode('/',$track); + $track = $track[0]; + } + else + { + $track = 0; + } + $length=isset($data['playtime_seconds'])?round($data['playtime_seconds']):0; + if(!isset(self::$artists[$artist])){ $artistId=OC_MEDIA_COLLECTION::addArtist($artist); self::$artists[$artist]=$artistId; From ed5fb902bd1391d2fc2adb3c4e5cb25fcb16b93e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 17:30:33 +0100 Subject: [PATCH 26/27] remove mp3info from dependency check --- apps/admin_dependencies_chk/settings.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/apps/admin_dependencies_chk/settings.php b/apps/admin_dependencies_chk/settings.php index 34028056dbe..ce90dd604ca 100644 --- a/apps/admin_dependencies_chk/settings.php +++ b/apps/admin_dependencies_chk/settings.php @@ -44,12 +44,6 @@ $modules[] =array( 'modules'=> array('gallery'), 'message'=> $l->t('The php-gd module is needed to create thumbnails of your images')); -$modules[] =array( - 'status' => OC_Helper::canExecute("mp3info") ? 'ok' : 'warning', - 'part'=> 'mp3info', - 'modules'=> array('media'), - 'message'=> $l->t('The program mp3info is useful to discover ID3 tags of your music files')); - $modules[] =array( 'status' => function_exists("ldap_bind") ? 'ok' : 'error', 'part'=> 'php-ldap', From 37f5a8cdb4d2486982117c5d5984a253c2192e0b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 8 Jan 2012 17:49:53 +0100 Subject: [PATCH 27/27] improve pgsql database detection --- lib/setup.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/setup.php b/lib/setup.php index ebe7a45a1f6..1b74e945196 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -190,9 +190,12 @@ class OC_Setup { } //fill the database if needed - $query = "SELECT relname FROM pg_class WHERE relname='{$dbtableprefix}users' limit 1"; + $query = "select count(*) FROM pg_class WHERE relname='{$dbtableprefix}users' limit 1"; $result = pg_query($connection, $query); - if(!$result) { + if($result){ + $row = pg_fetch_row($result); + } + if(!$result or $row[0]==0) { OC_DB::createDbFromStructure('db_structure.xml'); } pg_close($connection);