コード例 #1
0
function test_writePostion()
{
    appendTestMessage(NEW_LINE_LOG . " >> Tests writing of single position..." . NEW_LINE_LOG);
    appendTestMessage("Prepare: Create new user");
    $ret = checkUser("dUser", "dPassword");
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Check parameter lat");
    $ret = writePostion('', '', '', '', '', '', '', '', '', '');
    if (!$ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Check parameter lon");
    $ret = writePostion('', '', '47.50457163540115', '', '', '', '', '', '', '');
    if (!$ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Prepare: Create new user");
    $ret = checkUser("dUser", "dPassword");
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks (individually 1) for user (no positions yet)");
    $ret = getLastPostionsAndTracksIndividually('');
    if (isNullOrEmptyString($ret)) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks (individually 2) for user (no positions yet)");
    $ret = getLastPostionsAndTracksIndividually('dUser');
    if (isNullOrEmptyString($ret)) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks (individually 3) for user (no positions yet)");
    $ret = getLastPostionsAndTracksIndividually('dUser=2013-03-03 15:48:47.484', 'true');
    if (isNullOrEmptyString($ret)) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Test helper function to write the postion.csv > new");
    $ret = writePositionFile('dUser', 'test;test;test');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    $testDateTime = getDateForTimezoneOffset('dUser', '', false);
    appendTestMessage("Write single position");
    $csvLine = 'lat=47.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDateTime;
    $ret = writePositionFile('dUser', $csvLine);
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Write lat and lon");
    $ret = writePostion('dUser', '', '42.50457163540115', '11.071390274487026', '', '', '', '', '2012-03-03T15:48:47.484', 'true');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks (individually 1) for user  (one position yet) no track for today");
    $ret = getLastPostionsAndTracksIndividually('dUser');
    $expectedTracks = '[positions]' . PHP_EOL . 'user=dUser;lat=42.50457163540115;lon=11.071390274487026;time=2012-03-03T15:48:47.484';
    if ($ret == $expectedTracks) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks (individually 2) for user  (one position yet) - track excluded because of time");
    $ret = getLastPostionsAndTracksIndividually('dUser=2012-03-03T15:48:47.4841');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;lat=42.50457163540115;lon=11.071390274487026;time=2012-03-03T15:48:47.484';
    if ($ret == $expectedTracks) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    $testDate = getDateForTimezoneOffset('dUser', '', true);
    appendTestMessage("Write lat and lon");
    $ret = writePostion('dUser', '', '42.50457163540115', '11.071390274487026', '', '', '', '', $testDate . 'T15:48:47.484', 'true');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    $today = getDateForTimezoneOffset('dUser', '', true);
    $gpxFileName = $today . '.csv';
    appendTestMessage("Check for a data file (gpx) for this user");
    $ret = getUsersForDataFileName('dUser', $gpxFileName);
    if ($ret == 'dUser') {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // TODO: New
    appendTestMessage("Check for a data file (gpx) for this user. But exclude the user");
    $ret = getUsersForDataFileName('dUser', $gpxFileName, 'dUser');
    if ($ret == '') {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("View single position");
    $csvLine0 = 'lat=42.50457163540115;lon=11.071390274487026;time=' . $testDate . 'T15:48:47.484';
    $ret = getPosition('dUser');
    if ($ret === $csvLine0) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("View single position (parameter = getGroupPostions");
    $ret = getGroupPostions('dUser');
    $expectedLine = 'user=dUser;' . $csvLine0;
    if ($ret === $expectedLine) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Write lat and lon");
    $ret = writePostion('dUser', 'cGroup_changed', '43.50457163540115', '11.071390274487026', '171.61432', '0.7065948', '1067.652498529502', '6.0', $testDate . 'T15:48:48.484', 'true');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for user (omit tracks)");
    $ret = getLastPostionsAndTracksIndividually('dUser', 'false');
    $expectedTracks = '[positions]' . PHP_EOL . 'user=dUser;lat=43.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:48:48.484';
    if ($ret == $expectedTracks) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for user (omit tracks)");
    $ret = getLastPostionsAndTracksIndividually('dUser', 'no');
    $expectedTracks = '[positions]' . PHP_EOL . 'user=dUser;lat=43.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:48:48.484';
    if ($ret == $expectedTracks) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for user (two positions yet no last time given)");
    $ret = getLastPostionsAndTracksIndividually('dUser', 'true');
    $expectedTracks = '[positions]' . PHP_EOL . 'user=dUser;lat=43.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:48:48.484' . PHP_EOL . '[track-dUser]' . PHP_EOL . 'lat=42.50457163540115;lon=11.071390274487026;time=' . $testDate . 'T15:48:47.484' . PHP_EOL . 'lat=43.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:48:48.484';
    if ($ret == $expectedTracks) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("View single position");
    $csvLine1 = 'lat=43.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:48:48.484';
    $ret = getPosition('dUser');
    if ($ret === $csvLine1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Write empty multiline positions");
    $ret = writePostions('dUser', 'cGroup_changed', '', 'true');
    if (!$ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Write multiline positions");
    $csvLine2 = 'lat=44.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:41.484';
    $csvLine3 = 'lat=45.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:42.484';
    $csvLine4 = 'lat=46.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:43.484';
    $csvLines2_4 = $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    $csvLines0_4 = $csvLine0 . PHP_EOL . $csvLine1 . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    $ret = writePostions('dUser', 'cGroup_changed', $csvLines2_4, 'true');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("View single position set by multiline writing");
    $ret = getPosition('dUser');
    if ($ret === $csvLine4) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individally for user (five positions yet, last time given)");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:48:48.484');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    if ($ret == $expectedTracks) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("List tracks");
    $ret = listTracks('dUser');
    $expectedFileName = '2012-03-03.gpx';
    if ($ret == $expectedFileName) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("List tracks");
    $ret = listTracksCSV('dUser');
    $expectedFileNames1 = $testDate . '.csv' . PHP_EOL . '2012-03-03.csv';
    $expectedFileNames2 = '2012-03-03.csv' . PHP_EOL . $testDate . '.csv';
    if ($ret === $expectedFileNames1 || $ret === $expectedFileNames2) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get track check empty parameter date");
    $ret = getTrack('dUser', '', '');
    if ($ret === $csvLines0_4) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get track");
    $ret = getTrack('dUser', $today, '');
    if ($ret === $csvLines0_4) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // Review: This test seems to be double, see test somewhere above
    appendTestMessage("Get track after a certain line number only");
    $ret = getTrack('dUser', $today, $testDate . 'T15:48:48.484');
    if ($ret === $csvLines2_4) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get track after a certain line number (at end already)");
    $ret = getTrack('dUser', $today, $testDate . 'T15:54:43.484');
    if ($ret === '') {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get postions of group");
    $ret = getPositions('cGroup_changed');
    $expectedString = 'user=dUser;' . $csvLine4;
    if ($ret === $expectedString) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // TODO: New
    appendTestMessage("Get postions of group. But exclude the user dUser");
    $ret = getPositions('cGroup_changed', dUser);
    if ($ret === '') {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // Add second user with same group
    appendTestMessage("Prepare: Create new user");
    $ret = checkUser("eUser", "ePassword");
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Check for a data file (gpx) for this user. A second user is in the group but without this file.");
    $ret = getUsersForDataFileName('dUser', $gpxFileName);
    if ($ret == 'dUser') {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // TODO: New
    appendTestMessage("Check for a data file (gpx) for this user. AND exclude the user. A second user is in the group but without this file.");
    $ret = getUsersForDataFileName('dUser', $gpxFileName, 'dUser');
    if ($ret == '') {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Prepare: Write position new second user with same group");
    $csvLine5 = 'lat=47.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:43.484';
    $ret = writePostions('eUser', 'cGroup_changed', $csvLine5, 'true');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Check for a data file (gpx) for this user. A second user is in the group now.");
    $ret = getUsersForDataFileName('dUser', $gpxFileName);
    $expectedUsers = 'dUser' . PHP_EOL . 'eUser';
    $expectedUsers1 = 'eUser' . PHP_EOL . 'dUser';
    if ($ret == $expectedUsers || $ret == $expectedUsers1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // TODO: New
    appendTestMessage("Check for a data file (gpx) for this user. But exclude the user. A second user is in the group now.");
    $ret = getUsersForDataFileName('dUser', $gpxFileName, 'dUser');
    $expectedUsers = 'eUser';
    if ($ret == $expectedUsers) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get postions of the two members of the group");
    $ret = getPositions('cGroup_changed');
    $expectedPostions = 'user=dUser;' . $csvLine4 . PHP_EOL . 'user=eUser;' . $csvLine5;
    $expectedPostions1 = 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine4;
    if ($ret === $expectedPostions || $ret === $expectedPostions1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // TODO: New
    appendTestMessage("Get postions of the two members of the group. Exclude user eUser");
    $ret = getPositions('cGroup_changed', 'eUser');
    $expectedPostions = 'user=dUser;' . $csvLine4;
    if ($ret === $expectedPostions) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users (last time given - 1)");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:48:48.484');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users (last line given - 2)");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:48:48.484;eUser');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users (last line given - 3)");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:48:48.484;eUser='******'T15:54:42.484');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users (last line given - 4)");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:48:48.484;eUser='******'T15:54:43.484');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users (last line given - 5)");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:54:43.484' . ';eUser='******'T15:54:43.484');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine4 . PHP_EOL . 'user=eUser;' . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine4;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get postions of the two members of the group (param = getGroupPostions");
    $ret = getGroupPostions('dUser');
    if ($ret === $expectedPostions || $ret === $expectedPostions1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Util: write some csv files to create gpx (later)");
    if (test_writeGpxFromCsv()) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Create gpx from csv and list. Check eUser");
    $ret = listTracks('eUser');
    $expected1 = "2013-03-10.gpx" . PHP_EOL . "2013-03-11.gpx";
    $expected2 = "2013-03-11.gpx" . PHP_EOL . "2013-03-10.gpx";
    if ($ret == $expected1 || $ret == $expected2) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Create gpx from csv and list. Check dUser");
    $ret = listTracks('dUser');
    $expected1 = "2013-03-10.gpx" . PHP_EOL . "2012-03-03.gpx";
    $expected2 = "2012-03-03.gpx" . PHP_EOL . "2013-03-10.gpx";
    if ($ret == $expected1 || $ret == $expected2) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Write multiline positions with different dates");
    $csvLine6 = 'lat=44.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=2012-04-03T15:54:41.484';
    $csvLine7 = 'lat=45.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:44.484';
    $csvLine8 = 'lat=46.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:45.484';
    $csvLines6_8 = $csvLine6 . PHP_EOL . $csvLine7 . PHP_EOL . $csvLine8;
    $csvLines0_8_dUser = $csvLine0 . PHP_EOL . $csvLine1 . PHP_EOL . $csvLine2 . PHP_EOL . $csvLine3 . PHP_EOL . $csvLine4 . PHP_EOL . $csvLine7 . PHP_EOL . $csvLine8;
    $ret = writePostions('dUser', 'cGroup_changed', $csvLines6_8, 'true');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users all lines");
    $ret = getLastPostionsAndTracksIndividually('dUser;eUser');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine8 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLines0_8_dUser . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine8 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLines0_8_dUser;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users all lines");
    $ret = getLastPostionsAndTracksIndividually('dUser='******'T15:54:44.484;eUser');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine8 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine8 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine8 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLine8;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("List tracks");
    $ret = listTracksCSV('dUser');
    $expectedFileNames1 = $testDate . '.csv' . PHP_EOL . '2012-03-03.csv' . PHP_EOL . '2012-04-03.csv' . PHP_EOL . '2013-03-10.csv';
    $searchString = '/' . $testDate . '.csv/i';
    if (preg_match($searchString, $ret, $matches)) {
        $foundTime = $matches[0];
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    $searchString = '/2012-03-03.csv/i';
    if (preg_match($searchString, $ret, $matches)) {
        $foundTime = $matches[0];
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    $searchString = '/2012-04-03.csv/i';
    if (preg_match($searchString, $ret, $matches)) {
        $foundTime = $matches[0];
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    $searchString = '/2013-03-10.csv/i';
    if (preg_match($searchString, $ret, $matches)) {
        $foundTime = $matches[0];
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Write multiline positions with different dates and track not stored");
    $csvLine6 = 'lat=44.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=2012-04-03T15:54:41.484';
    $csvLine7 = 'lat=45.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:44.484';
    $csvLine8 = 'lat=46.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:45.484';
    $csvLine9 = 'lat=46.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=' . $testDate . 'T15:54:46.484';
    $csvLines6_9 = $csvLine6 . PHP_EOL . $csvLine7 . PHP_EOL . $csvLine8 . PHP_EOL . $csvLine9;
    $ret = writePostions('dUser', 'cGroup_changed', $csvLines6_9, 'false');
    if ($ret) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("Get tracks individually for 2 users all lines");
    $ret = getLastPostionsAndTracksIndividually('dUser;eUser');
    $expectedTracks = "[positions]" . PHP_EOL . 'user=dUser;' . $csvLine9 . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLines0_8_dUser . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5;
    $expectedTracks1 = "[positions]" . PHP_EOL . 'user=eUser;' . $csvLine5 . PHP_EOL . 'user=dUser;' . $csvLine9 . PHP_EOL . '[track-eUser]' . PHP_EOL . $csvLine5 . PHP_EOL . '[track-dUser]' . PHP_EOL . $csvLines0_8_dUser;
    if ($ret == $expectedTracks || $ret == $expectedTracks1) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    return true;
}
コード例 #2
0
ファイル: geo5.php プロジェクト: einervonvielen/mushrooms
}
// Get the position of a user
$getPositionForUser = getParam('getPosition');
if (!isNullOrEmptyString($getPositionForUser)) {
    $currentPosition = getPosition($getPositionForUser);
    if (isNullOrEmptyString($currentPosition)) {
        setServerError("Failed to get postion for user {$getPositionForUser}.");
        return;
    }
    setServerResponse($currentPosition);
    return;
}
// Get the positions of a group
$getPositionsForGroup = getParam('getPositions');
if (!isNullOrEmptyString($getPositionsForGroup)) {
    $currentPositions = getPositions($getPositionsForGroup);
    if (isNullOrEmptyString($currentPositions)) {
        setServerError("Failed to get postions for group {$getPositionsForGroup}.");
        return;
    }
    setServerResponse($currentPositions);
    return;
}
// List the tracks of a user
$userToList = getParam('listTracks');
if (!isNullOrEmptyString($userToList)) {
    // clean up old tracks and all inactive users (decay time is set via configuration)
    cleanUp($user);
    // Now try to find the tracks for the user and all of the group members
    $getTimezoneoffset = getParam('timezoneoffset');
    $tracks = listTracks($user, $getTimezoneoffset);
コード例 #3
0
ファイル: util.php プロジェクト: einervonvielen/mushrooms
/**
 *
 * @param type $user user name as String
 * @param type $excludeRequestingUser if not empty or null the user (param $user) will be excluded the return positions
 * @return type
 *  a) the user is not in a group > return the last postion as CSV
 *         Example: user=Peter;lat=47.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=2013-03-03T15:48:47.484
 *  b) the user belongs to a group > return CSV strings. Each user one line containing the last position
 *         Example:
 *              user=Peter;lat=47.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=2013-03-03T15:48:47.484
 *              user=Lisa;lat=47.50451538021159;lon=11.071421406744932;bearing=173.14859;speed=0.0;altitude=1068.2914401409275;accuracy=6.0;time=2013-03-03T15:48:57.511
 */
function getGroupPostions($user, $excludeRequestingUser)
{
    // Get the group if any
    $foundGroup = getGroup($user);
    if ($foundGroup != '') {
        // yes, user is in group
        return getPositions($foundGroup, $excludeRequestingUser);
    } else {
        // no group > get the postion of this user only
        if (!isNullOrEmptyString($excludeRequestingUser)) {
            return '';
        } else {
            $postions = getPosition($user);
            if (isNullOrEmptyString($postions)) {
                return '';
            }
            $csv = 'user='******';' . $postions;
            return $csv;
        }
    }
}
コード例 #4
0
ファイル: admin.swmenufree.php プロジェクト: enjoy2000/smcd
function editDhtmlMenu($id, $option)
{
    global $my, $mainframe;
    global $lang, $offset;
    $absolute_path = JPATH_ROOT;
    $config =& JFactory::getConfig();
    $dbprefix = $config->getValue('config.dbprefix');
    $db = $config->getValue('config.db');
    $database =& JFactory::getDBO();
    $sql = "SELECT id FROM #__modules where module='mod_swmenufree'";
    $database->setQuery($sql);
    $id = $database->loadResult();
    $swmenufree_array = array();
    $now = date("Y-m-d H:i:s", time() + $offset * 60 * 60);
    $row =& JTable::getInstance('module');
    // load the row from the db table
    $row->load($id);
    $registry = new JRegistry();
    $registry->loadINI($row->params);
    $params = $registry->toObject();
    $menu = @$params->menutype ? $params->menutype : 'mainmenu';
    $menustyle = @$params->menustyle ? $params->menustyle : 'transmenu';
    $hybrid = @$params->hybrid ? $params->hybrid : 0;
    $css_load = @$params->cssload ? $params->cssload : 0;
    $use_table = @$params->tables ? $params->tables : 0;
    $moduleID = @$params->moduleID;
    $parent_id = @$params->parentid ? $params->parentid : '0';
    $modulename = $row->title;
    $cache = @$params->cache ? $params->cache : 0;
    $moduleclass_sfx = @$params->moduleclass_sfx ? $params->moduleclass_sfx : "";
    $cache_time = @$params->cache_time ? $params->cache_time : "1 hour";
    $active_menu = @$params->active_menu ? $params->active_menu : 0;
    $parent_level = @$params->parent_level ? $params->parent_level : 0;
    $levels = @$params->levels ? $params->levels : 0;
    $onload_hack = @$params->onload_hack ? $params->onload_hack : 0;
    $editor_hack = @$params->editor_hack ? $params->editor_hack : 0;
    $overlay_hack = @$params->overlay_hack ? $params->overlay_hack : 0;
    $sub_indicator = @$params->sub_indicator ? $params->sub_indicator : 2;
    $selectbox_hack = @$params->selectbox_hack ? $params->selectbox_hack : 0;
    $auto_position = @$params->auto_position ? $params->auto_position : 0;
    $padding_hack = @$params->padding_hack ? $params->padding_hack : 0;
    $show_shadow = @$params->show_shadow ? $params->show_shadow : 0;
    $template = @$params->template ? $params->template : "";
    $language = @$params->language ? $params->language : "*";
    $component = @$params->component ? $params->component : "";
    if (!$id) {
        $menustyle = JRequest::getVar('menutype', "superfishmenu");
    }
    $row2 = new swmenufreeMenu($database);
    $row2->load('1');
    if (!$row2->id) {
        if (!$row2->gosumenu()) {
            echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
            exit;
        }
        $row2->id = 1;
    }
    $padding1 = explode("px", $row2->main_padding);
    $padding2 = explode("px", $row2->sub_padding);
    for ($i = 0; $i < 4; $i++) {
        $padding1[$i] = trim($padding1[$i]);
        $padding2[$i] = trim($padding2[$i]);
    }
    $border1 = explode(" ", $row2->main_border);
    $border2 = explode(" ", $row2->sub_border);
    $border1[0] = rtrim(trim($border1[0]), 'px');
    $border2[0] = rtrim(trim($border2[0]), 'px');
    $border1[1] = trim($border1[1]);
    $border2[1] = trim($border2[1]);
    $border1[2] = trim($border1[2]);
    $border2[2] = trim($border2[2]);
    $border3 = explode(" ", $row2->main_border_over);
    $border4 = explode(" ", $row2->sub_border_over);
    $border3[0] = rtrim(trim($border3[0]), 'px');
    $border4[0] = rtrim(trim($border4[0]), 'px');
    $border3[1] = trim($border3[1]);
    $border4[1] = trim($border4[1]);
    $border3[2] = trim($border3[2]);
    $border4[2] = trim($border4[2]);
    $database->setQuery("SELECT position, ordering, showtitle, title FROM #__modules WHERE client_id=0" . "\nORDER BY ordering");
    if (!($orders = $database->loadObjectList())) {
        echo $database->stderr();
        return false;
    }
    //print_r($orders);
    $lists = array();
    // build the order lists to be used to make the javascript arrays
    // hard code options for now
    $orders2 = array();
    $orders2['left'] = array();
    $orders2['right'] = array();
    $orders2['top'] = array();
    $orders2['bottom'] = array();
    $orders2['inset'] = array();
    $orders2['user1'] = array();
    $orders2['user2'] = array();
    if (!(defined('_JLEGACY') && _JLEGACY == '1.0')) {
        $orders2 = getPositions();
    }
    //while (list ($key) = each ($pos2[0]))
    //{
    //  $orders2[$key]=array();
    //}
    $l = 0;
    $r = 0;
    for ($i = 0, $n = count($orders); $i < $n; $i++) {
        $ord = 0;
        if (array_key_exists($orders[$i]->position, $orders2)) {
            $ord = count(array_keys($orders2[$orders[$i]->position])) + 1;
        }
        $orders2[$orders[$i]->position][] = JHTML::_('select.option', $ord, $ord . '::' . addslashes($orders[$i]->title));
    }
    // make an array for the left and right positions
    foreach (array_keys($orders2) as $v) {
        $ord = count(array_keys($orders2[$v])) + 1;
        $orders2[$v][] = JHTML::_('select.option', $ord, $ord . '::last');
        ##$pos[] = JHTML::_('select.option', 'left' );
        ##$pos[] = JHTML::_('select.option', 'right' );
        $pos[] = JHTML::_('select.option', $v);
    }
    //$pos3=getPositions();
    //echo count($orders2);
    //echo $pos3[0];
    // build the html select list
    $lists['module_position'] = JHTML::_('select.genericlist', $pos, 'position2', 'class="inputbox" size="1" onchange="changeDynaList(\'ordering\',orders,this.options[this.selectedIndex].value, originalPos, originalOrder);"', 'value', 'text', $row->position ? $row->position : 'left');
    // get selected pages for $lists['selections']
    $query = 'SELECT menuid AS value FROM #__modules_menu WHERE moduleid=' . $id;
    $database->setQuery($query);
    $lookup = $database->loadObjectList();
    $cssload[] = JHTML::_('select.option', '0', _SW_CSS_DYNAMIC_SELECT);
    $cssload[] = JHTML::_('select.option', '1', _SW_CSS_LINK_SELECT);
    //$cssload[]= JHTML::_('select.option', '2', _SW_CSS_IMPORT_SELECT );
    $cssload[] = JHTML::_('select.option', '3', _SW_CSS_NONE_SELECT);
    $lists['cssload'] = JHTML::_('select.genericlist', $cssload, 'cssload', 'id="cssload" class="inputbox" size="1" style="width:200px" ', 'value', 'text', $css_load ? $css_load : '0');
    $cachet[] = JHTML::_('select.option', '10 seconds', _SW_10SECOND_SELECT);
    $cachet[] = JHTML::_('select.option', '1 minute', _SW_1MINUTE_SELECT);
    $cachet[] = JHTML::_('select.option', '30 minutes', _SW_30MINUTE_SELECT);
    $cachet[] = JHTML::_('select.option', '1 hour', _SW_1HOUR_SELECT);
    $cachet[] = JHTML::_('select.option', '6 hours', _SW_6HOUR_SELECT);
    $cachet[] = JHTML::_('select.option', '12 hours', _SW_12HOUR_SELECT);
    $cachet[] = JHTML::_('select.option', '1 day', _SW_1DAY_SELECT);
    $cachet[] = JHTML::_('select.option', '3 days', _SW_3DAY_SELECT);
    $cachet[] = JHTML::_('select.option', '1 week', _SW_1WEEK_SELECT);
    $lists['cache_time'] = JHTML::_('select.genericlist', $cachet, 'cache_time', 'id="cache_time" class="inputbox" size="1" style="width:200px" ', 'value', 'text', $cache_time ? $cache_time : '1 hour');
    $tables[] = JHTML::_('select.option', '1', _SW_SHOW_TABLES_SELECT);
    $tables[] = JHTML::_('select.option', '0', _SW_SHOW_BLOGS_SELECT);
    $lists['tables'] = JHTML::_('select.genericlist', $tables, 'tables', 'id="tables" class="inputbox" size="1" style="width:200px" ', 'value', 'text', $use_table ? $use_table : '0');
    $lists['parent_level'] = JHTML::_('select.integerlist', 0, 10, 1, 'parent_level', 'class="inputbox"', $parent_level);
    $lists['levels'] = JHTML::_('select.integerlist', 0, 10, 1, 'levels', 'class="inputbox"', $levels);
    $lists['hybrid'] = JHTML::_('select.booleanlist', 'hybrid', 'class="inputbox"', $hybrid);
    $lists['active_menu'] = JHTML::_('select.booleanlist', 'active_menu', 'class="inputbox"', $active_menu);
    $lists['auto_position'] = JHTML::_('select.booleanlist', 'auto_position', 'class="inputbox"', $auto_position);
    $lists['padding_hack'] = JHTML::_('select.booleanlist', 'padding_hack', 'class="inputbox"', $padding_hack);
    $lists['cache'] = JHTML::_('select.booleanlist', 'cache', 'class="inputbox"', $cache);
    $lists['onload_hack'] = JHTML::_('select.booleanlist', 'onload_hack', 'class="inputbox"', $onload_hack);
    $lists['editor_hack'] = JHTML::_('select.booleanlist', 'editor_hack', 'class="inputbox"', $editor_hack);
    $lists['overlay_hack'] = JHTML::_('select.booleanlist', 'overlay_hack', 'class="inputbox"', $overlay_hack);
    $subindicator[] = JHTML::_('select.option', '0', 'none');
    $subindicator[] = JHTML::_('select.option', '1', 'text arrows');
    $subindicator[] = JHTML::_('select.option', '2', 'white arrows');
    $subindicator[] = JHTML::_('select.option', '3', 'black arrows');
    $subindicator[] = JHTML::_('select.option', '4', 'grey arrows');
    $subindicator[] = JHTML::_('select.option', '5', 'blue arrows');
    $subindicator[] = JHTML::_('select.option', '6', 'red arrows');
    $subindicator[] = JHTML::_('select.option', '7', 'green arrows');
    $subindicator[] = JHTML::_('select.option', '8', 'yellow arrows');
    $lists['sub_indicator'] = JHTML::_('select.genericlist', $subindicator, 'sub_indicator', 'id="sub_indicator" class="inputbox" size="1" style="width:200px" ', 'value', 'text', $sub_indicator ? $sub_indicator : '0');
    $lists['selectbox_hack'] = JHTML::_('select.booleanlist', 'selectbox_hack', 'class="inputbox"', $selectbox_hack);
    $lists['show_shadow'] = JHTML::_('select.booleanlist', 'show_shadow', 'class="inputbox"', $show_shadow);
    $lists['showtitle'] = JHTML::_('select.booleanlist', 'showtitle', 'class="inputbox"', $row->showtitle ? $row->showtitle : 0);
    $lists['access'] = JHTML::_('list.accesslevel', $row);
    // build the html select list for published
    $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published ? $row->published : 0);
    $query = 'SELECT DISTINCT #__menu.menutype AS value FROM #__menu';
    $database->setQuery($query);
    $menutypes = $database->loadObjectList();
    //$menutypes3[]= JHTML::_('select.option', '-999', 'Select Source Menu' );
    //$menutypes3[]= JHTML::_('select.option', '-999', '-----------------' );
    $menutypes3[] = JHTML::_('select.option', 'swcontentmenu', _SW_SOURCE_CONTENT_SELECT);
    $menutypes3[] = JHTML::_('select.option', '-999', '-----------------');
    if (file_exists($absolute_path . "/components/com_virtuemart/virtuemart.php")) {
        $menutypes3[] = JHTML::_('select.option', 'virtuemart', 'Virtuemart Component');
        $menutypes3[] = JHTML::_('select.option', '-999', '-----------------');
    }
    $menutypes3[] = JHTML::_('select.option', '-999', _SW_SOURCE_EXISTING_SELECT);
    $menutypes3[] = JHTML::_('select.option', '-999', '-----------------');
    foreach ($menutypes as $menutypes2) {
        $menutypes3[] = JHTML::_('select.option', addslashes($menutypes2->value), addslashes($menutypes2->value));
    }
    $lists['menutype'] = JHTML::_('select.genericlist', $menutypes3, 'menutype', ' id="menutype" class="inputbox" size="1" style="width:200px" onchange="changeDynaList(\'parentid\',orders2,document.getElementById(\'menutype\').options[document.getElementById(\'menutype\').selectedIndex].value, originalPos2, originalOrder2);"', 'value', 'text', $menu ? $menu : 'mainmenu');
    $categories3[] = JHTML::_('select.option', 0, 'TOP');
    $categories3[] = JHTML::_('select.option', -999, '----------');
    $categories3[] = JHTML::_('select.option', -999, 'Categories');
    $categories3[] = JHTML::_('select.option', -999, '----------');
    $sql = "SELECT DISTINCT #__categories.id AS value, #__categories.title AS text, #__categories.extension, #__categories.level AS level\r\r\n                FROM #__categories                                  \r\r\n                INNER JOIN #__content ON #__content.catid = #__categories.id\r\r\n                WHERE #__categories.published = 1\r\r\n                AND #__categories.extension='com_content'\r\r\n                ORDER BY #__categories.lft\r\r\n                \r\r\n                ";
    $database->setQuery($sql);
    $categories = $database->loadObjectList();
    foreach ($categories as $categories2) {
        $categories3[] = JHTML::_('select.option', $categories2->value, str_repeat("- ", $categories2->level) . $categories2->text);
    }
    foreach ($categories3 as $category) {
        $menuitems['swcontentmenu'][] = JHTML::_('select.option', $category->value, addslashes($category->text));
    }
    if (file_exists($absolute_path . "/components/com_virtuemart/virtuemart.php")) {
        $categories4[] = JHTML::_('select.option', 0, 'All Categories (top)');
        $sql = "SELECT DISTINCT #__vm_category.category_id AS value, #__vm_category.category_name AS text\r\r\n                FROM #__vm_category ";
        $database->setQuery($sql);
        $sections = $database->loadObjectList();
        $categories4[] = JHTML::_('select.option', -999, '--------');
        $categories4[] = JHTML::_('select.option', -999, 'Categories');
        $categories4[] = JHTML::_('select.option', -999, '--------');
        foreach ($sections as $sections2) {
            $categories4[] = JHTML::_('select.option', $sections2->value, $sections2->text);
        }
        foreach ($categories4 as $category) {
            $menuitems['virtuemart'][] = JHTML::_('select.option', $category->value, addslashes($category->text));
        }
    }
    $menuitems2 = array();
    $database->setQuery("SELECT m.*" . "\n FROM #__menu m" . "\n WHERE published = '1'" . "\n AND parent_id!='0'" . "\n ORDER BY menutype, parent_id, ordering");
    $mitems = $database->loadObjectList();
    $mitems_temp = $mitems;
    // establish the hierarchy of the menu
    $children = array();
    // first pass - collect children
    foreach ($mitems as $v) {
        $id = $v->id;
        $pt = $v->parent_id;
        $list = @$children[$pt] ? $children[$pt] : array();
        array_push($list, $v);
        $children[$pt] = $list;
    }
    // second pass - get an indent list of the items
    $list = swmenuTreeRecurse(intval($mitems[0]->parent_id), '', array(), $children);
    // Code that adds menu name to Display of Page(s)
    $text_count = "0";
    $mitems_spacer = "";
    foreach ($list as $list_a) {
        foreach ($mitems_temp as $mitems_a) {
            if ($mitems_a->id == $list_a->id) {
                // Code that inserts the blank line that seperates different menus
                if ($mitems_a->menutype != $mitems_spacer) {
                    //$list_temp[] = JHTML::_('select.option', -99, "----------" );
                    $list_temp[] = JHTML::_('select.option', -99, "--------------");
                    $list_temp[] = JHTML::_('select.option', -99, $mitems_a->menutype);
                    $list_temp[] = JHTML::_('select.option', -99, "--------------");
                    $menuitems[$mitems_a->menutype][] = JHTML::_('select.option', 0, "TOP");
                    $mitems_spacer = $mitems_a->menutype;
                }
                $text = addslashes("- " . $list_a->treename);
                $text2 = addslashes($list_a->treename);
                $list_temp[] = JHTML::_('select.option', $list_a->id, $text);
                $menuitems[$mitems_a->menutype][] = JHTML::_('select.option', $list_a->id, $text2);
                if (strlen($text) > $text_count) {
                    $text_count = strlen($text);
                }
            }
        }
    }
    $list = $list_temp;
    $mitems2 = array();
    $mitems2[] = JHTML::_('select.option', 0, 'All');
    $mitems2[] = JHTML::_('select.option', -99, '----');
    $mitems2[] = JHTML::_('select.option', -999, 'None');
    foreach ($list as $item) {
        $mitems2[] = JHTML::_('select.option', $item->value, $item->text);
    }
    $lists['selections'] = JHTML::_('select.genericlist', $mitems2, 'selections[]', 'class="inputbox" size="20" style="width:580px" multiple="multiple"', 'value', 'text', $lookup ? $lookup : 0);
    $database->setQuery("SELECT DISTINCT #__template_styles.template AS text FROM #__template_styles WHERE client_id=0");
    $list = $database->loadObjectList();
    $template2 = array();
    $template2[] = JHTML::_('select.option', "All", 'All');
    //$template[] = JHTML::_('select.option', -99, '----' );
    //$template[] = JHTML::_('select.option', -999, 'None' );
    foreach ($list as $item) {
        $template2[] = JHTML::_('select.option', $item->text, $item->text);
    }
    $lists['templates'] = JHTML::_('select.genericlist', $template2, 'template', 'class="inputbox"  style="width:130px" ', 'text', 'text', $template);
    if (TableExists($dbprefix . "languages", $db)) {
        $database->setQuery("SELECT DISTINCT #__languages.title AS text, #__languages.lang_code AS value FROM #__languages");
        $list = $database->loadObjectList();
        $language2 = array();
        $language2[] = JHTML::_('select.option', "*", 'All');
        //$template[] = JHTML::_('select.option', -99, '----' );
        //$template[] = JHTML::_('select.option', -999, 'None' );
        foreach ($list as $item) {
            $language2[] = JHTML::_('select.option', $item->value, $item->text);
        }
        $lists['languages'] = JHTML::_('select.genericlist', $language2, 'language', 'class="inputbox"  style="width:130px" ', 'value', 'text', $row->language);
    } else {
        $lists['languages'] = "Default";
    }
    $database->setQuery("SELECT DISTINCT #__extensions.name AS text, #__extensions.element AS value FROM #__extensions WHERE client_id=0 AND type='component'");
    $list = $database->loadObjectList();
    $component2 = array();
    $component2[] = JHTML::_('select.option', "All", 'All');
    $component2[] = JHTML::_('select.option', "com_content", 'Content');
    //$template[] = JHTML::_('select.option', -999, 'None' );
    foreach ($list as $item) {
        $component2[] = JHTML::_('select.option', $item->value, $item->text);
    }
    $lists['components'] = JHTML::_('select.genericlist', $component2, 'component', 'class="inputbox"  style="width:130px" ', 'value', 'text', $component);
    $align[] = JHTML::_('select.option', 'left', 'left');
    $align[] = JHTML::_('select.option', 'right', 'right');
    $align[] = JHTML::_('select.option', 'texttop', 'texttop');
    $align[] = JHTML::_('select.option', 'absmiddle', 'absmiddle');
    $align[] = JHTML::_('select.option', 'baseline', 'baseline');
    $align[] = JHTML::_('select.option', 'absbottom', 'absbottom');
    $align[] = JHTML::_('select.option', 'bottom', 'bottom');
    $align[] = JHTML::_('select.option', 'middle', 'middle');
    $align[] = JHTML::_('select.option', 'top', 'top');
    $lists['align'] = JHTML::_('select.genericlist', $align, 'tree-image_align', 'id="tree-image_align" class="inputbox" onchange="treeInfoUpdate();"', 'value', 'text', '');
    //$lists['showname'] = JHTML::_('select.genericlist', 'tree-image_showname', 'class="inputbox" id="tree-image_showname" onchange="treeInfoUpdate();"', 1 );
    //$lists['target'] = JHTML::_('select.genericlist', 'tree-image_target', 'class="inputbox" id="tree-image_target" onchange="treeInfoUpdate();"', 1 );
    //$lists['showitem'] = JHTML::_('select.genericlist', 'tree-image_showitem', 'class="inputbox" id="tree-image_showitem" onchange="treeInfoUpdate();"', 1 );
    $cssload = array();
    $cssload[] = JHTML::_('select.option', 'none', 'none');
    $cssload[] = JHTML::_('select.option', 'solid', 'solid');
    $cssload[] = JHTML::_('select.option', 'dashed', 'dashed');
    $cssload[] = JHTML::_('select.option', 'inset', 'inset');
    $cssload[] = JHTML::_('select.option', 'outset', 'outset');
    $cssload[] = JHTML::_('select.option', 'grooved', 'grooved');
    $cssload[] = JHTML::_('select.option', 'double', 'double');
    $lists['main_border_style'] = JHTML::_('select.genericlist', $cssload, 'main_border_style', 'id="main_border_style" class="inputbox" onchange="doMainBorder();" size="1" style="width:100px"', 'value', 'text', $border1[1]);
    $lists['sub_border_style'] = JHTML::_('select.genericlist', $cssload, 'sub_border_style', 'id="sub_border_style" class="inputbox" onchange="doSubBorder();" size="1" style="width:100px"', 'value', 'text', $border2[1]);
    $lists['main_border_over_style'] = JHTML::_('select.genericlist', $cssload, 'main_border_over_style', 'id="main_border_over_style" class="inputbox" onchange="doMainBorder();" size="1" style="width:100px"', 'value', 'text', $border3[1]);
    $lists['sub_border_over_style'] = JHTML::_('select.genericlist', $cssload, 'sub_border_over_style', 'id="sub_border_over_style" class="inputbox" onchange="doSubBorder();" size="1" style="width:100px"', 'value', 'text', $border4[1]);
    $cssload = array();
    $cssload[] = JHTML::_('select.option', 'Arial, Helvetica, sans-serif', 'Arial, Helvetica, sans-serif');
    $cssload[] = JHTML::_('select.option', '\'Times New Roman\', Times, serif', 'Times New Roman, Times, serif');
    $cssload[] = JHTML::_('select.option', 'Georgia, \'Times New Roman\', Times, serif', 'Georgia, Times New Roman, Times, serif');
    $cssload[] = JHTML::_('select.option', 'Verdana, Arial, Helvetica, sans-serif', 'Verdana, Arial, Helvetica, sans-serif');
    $cssload[] = JHTML::_('select.option', 'Geneva, Arial, Helvetica, sans-serif', 'Geneva, Arial, Helvetica, sans-serif');
    $cssload[] = JHTML::_('select.option', 'Tahoma, Arial, sans-serif', 'Tahoma, Arial, sans-serif');
    $lists['font_family'] = JHTML::_('select.genericlist', $cssload, 'font_family', 'id="font_family" class="inputbox" size="1" style="width:230px"', 'value', 'text', $row2->font_family);
    $lists['sub_font_family'] = JHTML::_('select.genericlist', $cssload, 'sub_font_family', 'id="sub_font_family" class="inputbox" size="1" style="width:230px"', 'value', 'text', $row2->sub_font_family);
    $cssload = array();
    $cssload[] = JHTML::_('select.option', 'normal', 'normal');
    $cssload[] = JHTML::_('select.option', 'bold', 'bold');
    $cssload[] = JHTML::_('select.option', 'bolder', 'bolder');
    $cssload[] = JHTML::_('select.option', 'lighter', 'lighter');
    $lists['font_weight'] = JHTML::_('select.genericlist', $cssload, 'font_weight', 'id="font_weight" class="inputbox" size="1" style="width:100px"', 'value', 'text', $row2->font_weight);
    $lists['font_weight_over'] = JHTML::_('select.genericlist', $cssload, 'font_weight_over', 'id="font_weight_over" class="inputbox" size="1" style="width:100px"', 'value', 'text', $row2->font_weight_over);
    $cssload = array();
    $cssload[] = JHTML::_('select.option', 'left', 'left');
    $cssload[] = JHTML::_('select.option', 'right', 'right');
    $cssload[] = JHTML::_('select.option', 'center', 'center');
    $cssload[] = JHTML::_('select.option', 'justify', 'justify');
    $lists['main_align'] = JHTML::_('select.genericlist', $cssload, 'main_align', 'id="main_align" class="inputbox" size="1" style="width:100px"', 'value', 'text', $row2->main_align);
    $lists['sub_align'] = JHTML::_('select.genericlist', $cssload, 'sub_align', 'id="sub_align" class="inputbox" size="1" style="width:100px"', 'value', 'text', $row2->sub_align);
    $cssload = array();
    if ($menustyle == "tigramenu") {
        $cssload[] = JHTML::_('select.option', 'absolute', 'absolute');
        $cssload[] = JHTML::_('select.option', 'relative', 'relative');
    } else {
        $cssload[] = JHTML::_('select.option', 'left', 'left');
        $cssload[] = JHTML::_('select.option', 'right', 'right');
        $cssload[] = JHTML::_('select.option', 'center', 'center');
    }
    $lists['position'] = JHTML::_('select.genericlist', $cssload, 'position', 'id="position" class="inputbox" size="1" style="width:120px"', 'value', 'text', $row2->position ? $row2->position : '0');
    $cssload = array();
    $cssload[] = JHTML::_('select.option', 'transmenu', _SW_TRANS_MENU);
    $cssload[] = JHTML::_('select.option', 'mygosumenu', _SW_MYGOSU_MENU);
    $cssload[] = JHTML::_('select.option', 'tigramenu', _SW_TIGRA_MENU);
    $cssload[] = JHTML::_('select.option', 'superfishmenu', _SW_SUPERFISH_MENU);
    $lists['menustyle'] = JHTML::_('select.genericlist', $cssload, 'menustyle', 'id="menustyle" class="inputbox" size="1" onChange="changeOrientation();" style="width:200px"', 'value', 'text', $menustyle ? $menustyle : 'transmenu');
    $cssload = array();
    if ($menustyle == "transmenu") {
        $cssload[] = JHTML::_('select.option', 'horizontal/down', 'horizontal/down/right');
        $cssload[] = JHTML::_('select.option', 'vertical/right', 'vertical/right');
        $cssload[] = JHTML::_('select.option', 'horizontal/up', 'horizontal/up');
        $cssload[] = JHTML::_('select.option', 'vertical/left', 'vertical/left');
        $cssload[] = JHTML::_('select.option', 'horizontal/left', 'horizontal/down/left');
    } else {
        $cssload[] = JHTML::_('select.option', 'horizontal', 'horizontal');
        $cssload[] = JHTML::_('select.option', 'vertical', 'vertical');
    }
    $lists['orientation'] = JHTML::_('select.genericlist', $cssload, 'orientation', 'id="orientation" class="inputbox" size="1" style="width:120px"', 'value', 'text', $row2->orientation ? $row2->orientation : '0');
    $extra2[] = JHTML::_('select.option', '0', _SW_SPECIAL_EFFECTS_NONE);
    $extra2[] = JHTML::_('select.option', '1', 'fade in');
    $extra2[] = JHTML::_('select.option', '2', 'slide down');
    $extra2[] = JHTML::_('select.option', '3', 'slide right');
    $extra2[] = JHTML::_('select.option', '4', 'fade in - slide down');
    $extra2[] = JHTML::_('select.option', '5', 'fade in - slide right');
    //$extra2[]= JHTML::_('select.option', '6', 'slide down' );
    $lists['extra'] = JHTML::_('select.genericlist', $extra2, 'extra', 'id="extra" class="inputbox" size="1" style="width:200px" ', 'value', 'text', $row2->extra ? $row2->extra : 'none');
    //echo $menustyle;
    HTML_swmenufree::MenuConfig($menustyle, $row2, $row, $menu, $padding1, $padding2, $border1, $border2, $border3, $border4, $modulename, $parent_id, $orders2, $lists, $menuitems, $moduleclass_sfx);
    HTML_swmenufree::footer();
}