owncloud8.2.3で、フォルダをダウンロードしたときの文字化けと、ユーザ名の検索を修正する

owncloud8.2.3になってました。もう9.0とかもでているみたいですが。

さてフォルダをダウンロードしたときzipファイルを開くとファイル名が文字化けしている件は、下記で直ります。
まあWindows8以降なら問題ないそうですけど、7だといまだにダメなので。

owncloud/3rdparty/mcnetic/zipstreamer/src/ZipStreamer.php

private static function normalizeFilePath($filePath) {
return trim(str_replace('\\', '/', $filePath), '/');
}

private static function normalizeFilePath($filePath) {
return mb_convert_encoding(trim(str_replace('\\', '/', $filePath), '/'),"SJIS","UTF-8");
}

共有先のユーザの検索は、おせっかいなことに前後方一致検索になっているので、前方一致に直すなら下記の部分で「’%’ . $search . ‘%’」になっている部分を「$search . ‘%’」にしてください。まあ、投げているクエリからして20000ユーザ表示するみたいなので、直さなくてもいいかもですが……。

owncloud/lib/private/user/database.php

public function getDisplayNames($search = '', $limit = null, $offset = null) {
$parameters = [];
$searchLike = '';
if ($search !== '') {
$parameters[] = '%' . $search . '%';
$parameters[] = '%' . $search . '%';
$searchLike = ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR '
. 'LOWER(`uid`) LIKE LOWER(?)';
}

public function getUsers($search = '', $limit = null, $offset = null) {
$parameters = [];
$searchLike = '';
if ($search !== '') {
$parameters[] = '%' . $search . '%';
$searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)';

vi owncloud/lib/private/groups/database.php

public function getGroups($search = '', $limit = null, $offset = null) {
$parameters = [];
$searchLike = '';
if ($search !== '') {
$parameters[] = '%' . $search . '%';
$searchLike = ' WHERE LOWER(`gid`) LIKE LOWER(?)';
}

広告

owncloud8.2.3で、フォルダをダウンロードしたときの文字化けと、ユーザ名の検索を修正する」への3件のフィードバック

  1. km の発言:

    はじめまして。ZIP文字化けの件、たいへん助かりました。ただ、これですと日本語ファイル名のときだけ有効ですが、韓国語など他の言語ファイル名が混在しているときのよい方法はないでしょうか?

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中