Skip to content

Commit 329a030

Browse files
committed
1.36 release
1 parent db0ef47 commit 329a030

File tree

34 files changed

+100
-87
lines changed

34 files changed

+100
-87
lines changed

app/controller/filter/userGroup.class.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,10 @@ private function checkItemRead($check,$action){
129129
$groupID = $groupArray ? $groupArray[0]:false;
130130
$GLOBALS['in'][$check['group']] = $groupID;
131131
if($action == 'admin.group.get'){
132-
$items = Model('Group')->listByID($groupArray);
133-
show_json(array('list'=>$items,'pageInfo'=>array()),true);
132+
// 普通用户选择用户(内部协作,权限设置); 加入最近使用;及自己常用保存;
133+
Action("admin.group")->get();
134+
// $items = Model('Group')->listByID($groupArray);
135+
// show_json(array('list'=>$items,'pageInfo'=>array()),true);
134136
}
135137
}
136138

app/function/file.function.php

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -774,18 +774,29 @@ function content_search(&$content,$search,$isCase,$maxCount=1000,$isUtf8=false){
774774
}
775775
//文件没有搜索到目标直接返回
776776
if ($strpos($content,$search) === false) return false;
777-
$pose = 0;
778-
$fileSize = strlen($content);
779-
$arrSearch = array(); // 匹配结果所在位置
780-
while ( $pose !== false) {
781-
$pose = $strpos($content,$search, $pose);
782-
if($pose === false){break;}
783-
$arrSearch[] = $pose;$pose ++;
777+
778+
$fileSize = strlen($content);
779+
$arrSearch = array();$pose = 0; // 匹配结果所在位置
780+
$searchLen = strlen($search);
781+
// 通过分割方式快速得到数组,加速处理; 比一次strpos快(去除最后一项)
782+
$arraySplit = explode(strtolower($search),strtolower($content));
783+
$arraySplitCount = count($arraySplit);
784+
foreach ($arraySplit as $i => $chunk){
784785
if(count($arrSearch) >= $maxCount){break;}
786+
if($i == $arraySplitCount - 1){break;}
787+
$arrSearch[] = strlen($chunk) + $pose;
788+
$pose = $pose + strlen($chunk) + $searchLen;
785789
}
790+
791+
// $arrSearch = array();$pose = 0;
792+
// while ( $pose !== false) {
793+
// $pose = stripos($content,$search, $pose);
794+
// if($pose === false){break;}
795+
// $arrSearch[] = $pose;$pose ++;
796+
// if(count($arrSearch) >= $maxCount){break;}
797+
// }
786798

787-
$arrLine = array();
788-
$pose = 0;
799+
$arrLine = array();$pose = 0;
789800
while($pose !== false) {
790801
$pose = strpos($content, "\n", $pose);
791802
if($pose === false){break;}
@@ -794,30 +805,29 @@ function content_search(&$content,$search,$isCase,$maxCount=1000,$isUtf8=false){
794805
$arrLine[] = $fileSize;//文件只有一行而且没有换行,则构造虚拟换行
795806
$result = array();// [2,10,22,45,60] [20,30,40,50,55]
796807
$lenSearch = count($arrSearch);
797-
$lenLine = count($arrLine);
808+
$lenLine = count($arrLine);
798809
for ($i=0,$line=0; $i < $lenSearch && $line < $lenLine; $line++) {
799810
while ( $arrSearch[$i] <= $arrLine[$line]) {
800-
//行截取字符串
801-
$curPose = $arrSearch[$i];
802-
$curMin = $curPose - 50 <= 0 ? 0 : $curPose - 50;
803-
$curMax = $curPose + 100 >= $fileSize ? $fileSize : $curPose + 100;
804-
$from = $curPose; $to = $curPose + strlen($search);
811+
$curPose = $arrSearch[$i];//行截取字符串
812+
$lenLeft = 80;$lenRight = 120;$curFrom = $curPose + $searchLen;
813+
$curMin = $curPose - $lenLeft <= 0 ? 0 : $curPose - $lenLeft;
814+
$curMax = $curFrom + $lenRight >= $fileSize ? $fileSize : $curFrom + $lenRight;
815+
$from = $curMin; $to = $curMax;
805816

806817
//中文避免截断(向前 向后找到分隔符后终止) // ',','、',
807-
$token = array("\r","\n"," ","\t",",","/","#","_","[","]","+","-","*","/","=","&",'');
808-
while($from > $curMin){
809-
$chrFind = false;$strTemp = substr($content,$from,5);
810-
foreach($token as $chr){if(strstr($strTemp,$chr)){$chrFind = true;break;} }
811-
if($chrFind){$from++;break;}; $from--;
818+
$token = array("\r","\n",'');
819+
$strLeft = substr($content,$curMin,($curPose - $curMin));
820+
$strRight = substr($content,$curFrom,$lenRight);
821+
foreach($token as $char){
822+
$leftFind = strrpos($strLeft,$char);
823+
$rightFind = strpos($strRight,$char);
824+
if($leftFind !== false){$from = max($from, $curMin + $leftFind + strlen($char));}
825+
if($rightFind !== false){$to = min($to, $curFrom + $rightFind + strlen($char));}
812826
}
813-
while($to < $curMax){
814-
$chrFind = false;$strTemp = substr($content,$to,5);
815-
foreach($token as $chr){if(strstr($strTemp,$chr)){$chrFind = true;break;} }
816-
if($chrFind){$to += 5;break;}; $to++;
817-
}
818-
// $from = $curMin;$to = $curMax;
827+
828+
// $lineStr = substr($content,$from,$to - $from);
819829
$lineStr = utf8Repair(substr($content,$from,$to - $from));
820-
$result[] = array('line'=>$line+1,'str'=>trim($lineStr),[$curPose,$from,$to]);
830+
$result[] = array('line'=>$line+1,'str'=>trim($lineStr));
821831
if(count($result) >= $maxCount) return $result;
822832
if(++$i >= $lenSearch ){break;}
823833
}

app/sdks/archiveLib/bin/data.bin

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

config/i18n/ar/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,14 @@
866866
"admin.backup.node" => "العقدة",
867867
"admin.backup.notYet" => "لا",
868868
"admin.backup.storeNotExist" => "تخزين النسخ الاحتياطي غير موجود ، يرجى إعادة التعيين",
869-
"admin.backup.timeNote" => "ملاحظة: يتم الاحتفاظ ببيانات النسخ الاحتياطي لآخر 7 أيام والأول من كل شهر فقط. وقت النسخ الاحتياطي:",
869+
"admin.backup.timeNote" => "ملاحظة: يحتفظ النظام فقط بالنسخ الاحتياطية لقاعدة البيانات لآخر 7 أيام والأول من كل شهر. وقت النسخ الاحتياطي:",
870870
"admin.backup.recover" => "يرجى الاتصال بمزود الخدمة لاستعادة البيانات.",
871871
"admin.backup.optionTime" => "يستغرق النسخ الاحتياطي وقتًا طويلاً ، يرجى محاولة اختياره في غير ساعات العمل",
872872
"admin.backup.optionLocation" => "إذا كنت بحاجة إلى نسخ الملفات احتياطيًا ، فيرجى إنشاء وحدة تخزين جديدة مخصصة للنسخ الاحتياطي",
873873
"admin.backup.optionTips1" => "يتم تقسيم النسخة الاحتياطية إلى جزأين: نسخة احتياطية لقاعدة البيانات ونسخ احتياطي للملف.",
874874
"admin.backup.optionTips2" => "النسخ الاحتياطي لقاعدة البيانات: قم بإنشاء ملفات SQL من محتوى قاعدة البيانات ونسخها احتياطيًا إلى دليل قاعدة بيانات التخزين الهدف.",
875875
"admin.backup.optionTips3" => "النسخ الاحتياطي للملفات: نسخ ملفات تخزين النظام الاحتياطية إلى التخزين الهدف بشكل متزايد وفقًا لمسار التخزين الأصلي.",
876-
"admin.backup.optionTips4" => "يحتفظ النظام بالنسخة الاحتياطية فقط لآخر 7 أيام والأول من كل شهر.",
876+
"admin.backup.optionTips4" => "يحتفظ النظام فقط بالنسخ الاحتياطية لقاعدة البيانات لآخر 7 أيام والأول من كل شهر.",
877877
"admin.backup.needStorage" => "لا يمكن أن تكون مساحة التخزين الاحتياطية فارغة",
878878
"admin.backup.needNoDefault" => "لا تختر التخزين الافتراضي كموقع النسخ الاحتياطي للملف",
879879
"admin.backup.contentDesc" => "يدعم الإصدار المرخص النسخ الاحتياطي المتزامن لقواعد البيانات والملفات",

config/i18n/bn/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,14 @@
866866
"admin.backup.node" => "নোড",
867867
"admin.backup.notYet" => "না",
868868
"admin.backup.storeNotExist" => "ব্যাকআপ সঞ্চয়স্থান বিদ্যমান নেই, অনুগ্রহ করে পুনরায় সেট করুন৷",
869-
"admin.backup.timeNote" => "দ্রষ্টব্য: কেবলমাত্র গত 7 দিনের ব্যাকআপ ডেটা এবং প্রতি মাসের প্রথম তারিখ বজায় রাখা হয়। ব্যাকআপ সময়:",
869+
"admin.backup.timeNote" => "দ্রষ্টব্য: সিস্টেমটি শুধুমাত্র শেষ 7 দিন এবং প্রতি মাসের 1 তারিখের ডেটাবেস ব্যাকআপ রাখে। ব্যাকআপ সময়:",
870870
"admin.backup.recover" => "ডেটা পুনরুদ্ধারের জন্য দয়া করে পরিষেবা সরবরাহকারীর সাথে যোগাযোগ করুন।",
871871
"admin.backup.optionTime" => "ব্যাকআপটি দীর্ঘ সময় নেয়, অনুগ্রহপূর্বক এটিকে বেছে নেওয়ার চেষ্টা করুন",
872872
"admin.backup.optionLocation" => "আপনার যদি ফাইলগুলির ব্যাকআপ প্রয়োজন হয়, অনুগ্রহ করে ব্যাকআপের জন্য একটি নতুন স্টোরেজ তৈরি করুন",
873873
"admin.backup.optionTips1" => "ব্যাকআপটি দুটি ভাগে বিভক্ত: ডাটাবেস ব্যাকআপ এবং ফাইল ব্যাকআপ।",
874874
"admin.backup.optionTips2" => "ডাটাবেস ব্যাকআপ: ডাটাবেস সামগ্রী থেকে এসকিউএল ফাইলগুলি তৈরি করুন এবং সেগুলি লক্ষ্য সঞ্চয়স্থানের ডাটাবেস ডিরেক্টরিতে ব্যাক আপ করুন।",
875875
"admin.backup.optionTips3" => "ফাইল ব্যাকআপ: ব্যাকআপ সিস্টেম স্টোরেজ ফাইলগুলিকে মূল স্টোরেজ পাথ অনুযায়ী বার্ষিকভাবে টার্গেট স্টোরেজ করতে হবে।",
876-
"admin.backup.optionTips4" => "সিস্টেমটি কেবলমাত্র সর্বশেষ 7 দিন এবং প্রতি মাসের প্রথম তারিখে ব্যাকআপ রাখে।",
876+
"admin.backup.optionTips4" => "সিস্টেমটি শুধুমাত্র শেষ 7 দিন এবং প্রতি মাসের 1 তারিখের ডেটাবেস ব্যাকআপ রাখে।",
877877
"admin.backup.needStorage" => "ব্যাকআপ সঞ্চয়স্থান খালি থাকতে পারে না",
878878
"admin.backup.needNoDefault" => "ফাইল ব্যাকআপ লোকেশন হিসেবে ডিফল্ট স্টোরেজ নির্বাচন করবেন না",
879879
"admin.backup.contentDesc" => "লাইসেন্সকৃত সংস্করণটি ডাটাবেস এবং ফাইলগুলির একযোগে ব্যাকআপ সমর্থন করে",

config/i18n/de/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,14 @@
866866
"admin.backup.node" => "Knoten",
867867
"admin.backup.notYet" => "Nein",
868868
"admin.backup.storeNotExist" => "Der Backup-Speicher existiert nicht, bitte zurücksetzen",
869-
"admin.backup.timeNote" => "Hinweis: Es werden nur die Sicherungsdaten der letzten 7 Tage und des 1. eines jeden Monats gespeichert. Sicherungszeit:",
869+
"admin.backup.timeNote" => "Hinweis: Das System bewahrt nur die Datenbanksicherungen der letzten 7 Tage und des 1. jedes Monats auf. Sicherungszeit:",
870870
"admin.backup.recover" => "Bitte wenden Sie sich zur Datenwiederherstellung an den Dienstanbieter.",
871871
"admin.backup.optionTime" => "Die Sicherung dauert lange. Bitte versuchen Sie, sie außerhalb der Arbeitszeit auszuwählen",
872872
"admin.backup.optionLocation" => "Wenn Sie Dateien sichern müssen, erstellen Sie bitte einen neuen Speicher für die Sicherung",
873873
"admin.backup.optionTips1" => "Die Sicherung ist in zwei Teile unterteilt: Datenbanksicherung und Dateisicherung.",
874874
"admin.backup.optionTips2" => "Datenbanksicherung: Generieren Sie SQL-Dateien aus Datenbankinhalten und sichern Sie sie im Zielspeicher-Datenbankverzeichnis.",
875875
"admin.backup.optionTips3" => "Dateisicherung: Sichern Sie die Systemspeicherdateien schrittweise gemäß dem ursprünglichen Speicherpfad auf dem Zielspeicher.",
876-
"admin.backup.optionTips4" => "Das System speichert das Backup nur für die letzten 7 Tage und den 1. eines jeden Monats.",
876+
"admin.backup.optionTips4" => "Das System bewahrt nur die Datenbanksicherungen der letzten 7 Tage und des 1. eines jeden Monats auf.",
877877
"admin.backup.needStorage" => "Der Sicherungsspeicher darf nicht leer sein",
878878
"admin.backup.needNoDefault" => "Wählen Sie nicht den Standardspeicher als Speicherort für die Dateisicherung",
879879
"admin.backup.contentDesc" => "Die lizenzierte Version unterstützt die gleichzeitige Sicherung von Datenbanken und Dateien",

config/i18n/en/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,14 @@
866866
"admin.backup.node" => "Node",
867867
"admin.backup.notYet" => "No",
868868
"admin.backup.storeNotExist" => "The backup storage does not exist, please reset",
869-
"admin.backup.timeNote" => "Note: Only the backup data of the last 7 days and the 1st of each month are retained. Backup time:",
869+
"admin.backup.timeNote" => "Note: The system only keeps the database backups of the last 7 days and the 1st of each month. Backup time:",
870870
"admin.backup.recover" => "Please contact the service provider for data recovery.",
871871
"admin.backup.optionTime" => "The backup takes a long time, please try to choose it during non-working hours",
872872
"admin.backup.optionLocation" => "If you need to back up files, please create a new storage dedicated for backup",
873873
"admin.backup.optionTips1" => "The backup is divided into two parts: database backup and file backup.",
874874
"admin.backup.optionTips2" => "Database backup: Generate SQL files from database content and back them up to the target storage database directory.",
875875
"admin.backup.optionTips3" => "File backup: backup system storage files to the target storage incrementally according to the original storage path.",
876-
"admin.backup.optionTips4" => "The system only keeps the backup for the last 7 days and the 1st of each month.",
876+
"admin.backup.optionTips4" => "The system only keeps the database backups of the last 7 days and the 1st of each month.",
877877
"admin.backup.needStorage" => "Backup storage cannot be empty",
878878
"admin.backup.needNoDefault" => "Do not choose the default storage as the file backup location",
879879
"admin.backup.contentDesc" => "The licensed version supports simultaneous backup of databases and files",

config/i18n/es/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,14 @@
866866
"admin.backup.node" => "nodo",
867867
"admin.backup.notYet" => "No",
868868
"admin.backup.storeNotExist" => "El almacenamiento de respaldo no existe, reinicie",
869-
"admin.backup.timeNote" => "Nota: Solo se conservan los datos de respaldo de los últimos 7 días y el 1 de cada mes. Tiempo de respaldo:",
869+
"admin.backup.timeNote" => "Nota: El sistema solo mantiene las copias de seguridad de la base de datos de los últimos 7 días y el 1 de cada mes. Tiempo de respaldo:",
870870
"admin.backup.recover" => "Comuníquese con el proveedor de servicios para la recuperación de datos.",
871871
"admin.backup.optionTime" => "La copia de seguridad lleva mucho tiempo, intente elegirla durante las horas no laborables",
872872
"admin.backup.optionLocation" => "Si necesita hacer una copia de seguridad de los archivos, cree un nuevo almacenamiento dedicado para la copia de seguridad",
873873
"admin.backup.optionTips1" => "La copia de seguridad se divide en dos partes: copia de seguridad de la base de datos y copia de seguridad de archivos.",
874874
"admin.backup.optionTips2" => "Copia de seguridad de la base de datos: genere archivos SQL a partir del contenido de la base de datos y realice una copia de seguridad de ellos en el directorio de la base de datos de almacenamiento de destino.",
875875
"admin.backup.optionTips3" => "Copia de seguridad de archivos: copia de seguridad de los archivos de almacenamiento del sistema en el almacenamiento de destino de forma incremental de acuerdo con la ruta de almacenamiento original.",
876-
"admin.backup.optionTips4" => "El sistema solo conserva la copia de seguridad durante los últimos 7 días y el día 1 de cada mes.",
876+
"admin.backup.optionTips4" => "El sistema solo mantiene las copias de seguridad de la base de datos de los últimos 7 días y el 1 de cada mes.",
877877
"admin.backup.needStorage" => "El almacenamiento de respaldo no puede estar vacío",
878878
"admin.backup.needNoDefault" => "No elija el almacenamiento predeterminado como la ubicación de la copia de seguridad del archivo",
879879
"admin.backup.contentDesc" => "La versión con licencia admite copias de seguridad simultáneas de bases de datos y archivos.",

config/i18n/fr/index.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -866,14 +866,14 @@
866866
"admin.backup.node" => "nœud",
867867
"admin.backup.notYet" => "Non",
868868
"admin.backup.storeNotExist" => "Le stockage de sauvegarde n'existe pas, veuillez réinitialiser",
869-
"admin.backup.timeNote" => "Remarque: seules les données de sauvegarde des 7 derniers jours et du 1er de chaque mois sont conservées. Temps de sauvegarde:",
869+
"admin.backup.timeNote" => "Remarque : Le système ne conserve que les sauvegardes de la base de données des 7 derniers jours et du 1er de chaque mois. Temps de sauvegarde :",
870870
"admin.backup.recover" => "Veuillez contacter le fournisseur de services pour la récupération des données.",
871871
"admin.backup.optionTime" => "La sauvegarde prend beaucoup de temps, veuillez essayer de la choisir pendant les heures creuses",
872872
"admin.backup.optionLocation" => "Si vous devez sauvegarder des fichiers, veuillez créer un nouveau stockage dédié à la sauvegarde",
873873
"admin.backup.optionTips1" => "La sauvegarde est divisée en deux parties: la sauvegarde de la base de données et la sauvegarde des fichiers.",
874874
"admin.backup.optionTips2" => "Sauvegarde de la base de données: générez des fichiers SQL à partir du contenu de la base de données et sauvegardez-les dans le répertoire de la base de données de stockage cible.",
875875
"admin.backup.optionTips3" => "Sauvegarde de fichiers: sauvegardez les fichiers de stockage système sur le stockage cible de manière incrémentielle en fonction du chemin de stockage d'origine.",
876-
"admin.backup.optionTips4" => "Le système ne conserve la sauvegarde que pour les 7 derniers jours et le 1er de chaque mois.",
876+
"admin.backup.optionTips4" => "Le système ne conserve que les sauvegardes de la base de données des 7 derniers jours et du 1er de chaque mois.",
877877
"admin.backup.needStorage" => "Le stockage de sauvegarde ne peut pas être vide",
878878
"admin.backup.needNoDefault" => "Ne choisissez pas le stockage par défaut comme emplacement de sauvegarde de fichiers",
879879
"admin.backup.contentDesc" => "La version sous licence prend en charge la sauvegarde simultanée des bases de données et des fichiers",

0 commit comments

Comments
 (0)