diff options
Diffstat (limited to 'mayor-orig/mayor-naplo')
118 files changed, 7889 insertions, 604 deletions
diff --git a/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql b/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql index 8254eb20..6d7c5890 100644 --- a/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql +++ b/mayor-orig/mayor-naplo/install/module-naplo/mysql/intezmeny.sql @@ -140,7 +140,8 @@ CREATE TABLE `diak` ( `telefon` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, `mobil` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, `email` varchar(96) COLLATE utf8_hungarian_ci DEFAULT NULL, - `statusz` enum('felvételt nyert','jogviszonyban van','magántanuló','vendégtanuló','jogviszonya felfüggesztve','jogviszonya lezárva') COLLATE utf8_hungarian_ci NOT NULL, + `emailMagan` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + `statusz` enum('felvételt nyert','jogviszonyban van','magántanuló','egyéni munkarend','vendégtanuló','jogviszonya felfüggesztve','jogviszonya lezárva') COLLATE utf8_hungarian_ci NOT NULL, `penzugyiStatusz` enum('állami finanszírozás','térítési díj','tandíj') COLLATE utf8_hungarian_ci DEFAULT 'állami finanszírozás', `szocialisHelyzet` set('szülei elváltak','három vagy több gyerekes család','rendszeres gyermekvédelmi támogatást kap','állami gondozott','veszélyeztetett','hátrányos helyzetű','halmozottan hátrányos helyzetű','sajátos nevelési igényű') COLLATE utf8_hungarian_ci DEFAULT NULL, `fogyatekossag` set('tartósan beteg', @@ -215,7 +216,7 @@ CREATE TABLE `idoszak` ( `idoszakId` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `tanev` smallint(5) unsigned NOT NULL, `szemeszter` tinyint(3) unsigned NOT NULL, - `tipus` enum('zárás','bizonyítvány írás','vizsga','előzetes tárgyválasztás','tárgyválasztás','tankörnévsor módosítás','fogadóóra jelentkezés','tanmenet leadás') COLLATE utf8_hungarian_ci DEFAULT NULL, + `tipus` enum('zárás','bizonyítvány írás','vizsga','előzetes tárgyválasztás','tárgyválasztás','tankörnévsor módosítás','fogadóóra jelentkezés','tanmenet leadás','felvételi szóbeli lekérdezés','felvételi ideiglenes rangsor lekérdezés','felvételi végeredmény lekérdezés') COLLATE utf8_hungarian_ci DEFAULT NULL, `tolDt` datetime NOT NULL, `igDt` datetime NOT NULL, PRIMARY KEY (`idoszakId`), @@ -286,6 +287,7 @@ CREATE TABLE `tanar` ( `titulusRovid` varchar(10) COLLATE utf8_hungarian_ci DEFAULT '', `email` varchar(64) COLLATE utf8_hungarian_ci DEFAULT '', `kretaNev` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `elerhetoseg` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, PRIMARY KEY (`tanarId`), UNIQUE KEY `tanarOid` (`oId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; @@ -701,7 +703,7 @@ CREATE TABLE `kepzesOraterv` ( `szemeszter` tinyint(3) unsigned NOT NULL, `hetiOraszam` decimal(4,2) DEFAULT NULL, `kovetelmeny` enum('jegy','négyszintű (szöveges minősítés)','százalékos','aláírás','háromszintű','egyedi felsorolás','szöveges szempontrendszer','teljesített óra','nincs') COLLATE utf8_hungarian_ci DEFAULT NULL, - `tipus` enum('első nyelv','második nyelv','mintatantervi','kötelezően választható 1.','kötelezően választható 2.','szabadon választható 1.','szabadon választható 2.','művészetek') COLLATE utf8_hungarian_ci DEFAULT 'mintatantervi', + `tipus` enum('első nyelv','második nyelv','mintatantervi','kötelezően választható 1.','kötelezően választható 2.','szabadon választható 1.','szabadon választható 2.','művészetek','természettudomány') COLLATE utf8_hungarian_ci DEFAULT 'mintatantervi', PRIMARY KEY (`kepzesOratervId`), UNIQUE KEY `kot_kulcs2` (`kepzesId`,`targyId`,`evfolyamJel`,`szemeszter`), KEY `kepzesOraterv_FKIndex1` (`targyId`), @@ -958,6 +960,20 @@ CREATE TABLE `cimke` ( PRIMARY KEY (`cimkeId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +CREATE TABLE `dokumentum` ( + `dokumentumId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `dokumentumLeiras` varchar(511) COLLATE utf8_hungarian_ci NOT NULL, + `dokumentumRovidLeiras` varchar(255) COLLATE utf8_hungarian_ci NOT NULL, + `dokumentumUrl` varchar(1023) COLLATE utf8_hungarian_ci DEFAULT NULL, + `dokumentumMegjegyzes` varchar(63) COLLATE utf8_hungarian_ci NOT NULL, + `dokumentumSorrend` smallint(6) DEFAULT '1', + `dokumentumDt` datetime DEFAULT NULL, + `dokumentumPolicy` enum('public','parent','private') COLLATE utf8_hungarian_ci DEFAULT NULL, + `dokumentumTipus` enum('general','tanev') COLLATE utf8_hungarian_ci DEFAULT NULL, + PRIMARY KEY (`dokumentumId`), + KEY `dokumentumSorrend` (`dokumentumSorrend`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + DELIMITER // DROP FUNCTION IF EXISTS diakNaploSorszam // CREATE function diakNaploSorszam ( thisDiakId INT, thisTanev INT, thisOsztalyId INT ) returns INT @@ -997,14 +1013,14 @@ CREATE TABLE `cimke` ( -- ------------------ SELECT diakId,IF(beDt<inKezdesDt,inKezdesDt,beDt) AS tolDt,IF(ifnull(kiDt,inZarasDt)<inZarasDt,kiDt,inZarasDt) AS igDt, (SELECT COUNT(*) FROM diakJogviszony AS ds - WHERE ds.diakId=diak.diakId AND tolDt<dt AND dt<=igDt AND ds.statusz IN ('jogviszonyban van','magántanuló') + WHERE ds.diakId=diak.diakId AND tolDt<dt AND dt<=igDt AND ds.statusz IN ('jogviszonyban van','magántanuló','egyéni munkarend') ) AS aktJogviszonyDb, (SELECT statusz FROM diakJogviszony AS ds WHERE ds.diakId=diak.diakId AND dt<=tolDt ORDER BY dt DESC LIMIT 1 ) AS elozoStatusz FROM osztalyDiak LEFT JOIN diak USING (diakId) WHERE osztalyId=thisOsztalyId AND beDt<=inZarasDt AND (kiDt IS NULL OR kiDt>=inKezdesDt) - HAVING (aktJogviszonyDb>0 or elozoStatusz in ('magántanuló','jogviszonyban van')) + HAVING (aktJogviszonyDb>0 or elozoStatusz in ('magántanuló','jogviszonyban van','egyéni munkarend')) ORDER BY tolDt, CONCAT_WS(' ',viseltCsaladinev,viseltUtonev) COLLATE utf8_hungarian_ci; -- Ha RETURN, akkor az EXIT HANDLER úgy is, nem? diff --git a/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql b/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql index 3ba37839..dbdc3ac6 100644 --- a/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql +++ b/mayor-orig/mayor-naplo/install/module-naplo/mysql/tanev.sql @@ -174,8 +174,8 @@ CREATE TABLE `oraHazifeladatDiak` ( CREATE TABLE `orarendiOraTankor` ( `tanarId` int(10) unsigned NOT NULL, - `osztalyJel` varchar(7) COLLATE utf8_bin NOT NULL, - `targyJel` varchar(32) COLLATE utf8_bin NOT NULL, + `osztalyJel` varchar(7) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `targyJel` varchar(96) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `tankorId` int(10) unsigned NOT NULL, PRIMARY KEY (`tanarId`,`osztalyJel`,`targyJel`), KEY `orarendiOraTankor_tankorId` (`tankorId`), @@ -233,7 +233,7 @@ CREATE TABLE `orarendiOra` ( `ora` tinyint(3) unsigned NOT NULL, `tanarId` int(10) unsigned NOT NULL, `osztalyJel` varchar(7) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `targyJel` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `targyJel` varchar(96) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `teremId` smallint(5) unsigned DEFAULT NULL, `tolDt` date NOT NULL DEFAULT '0000-00-00', `igDt` date DEFAULT NULL, @@ -429,7 +429,7 @@ CREATE TABLE `szovegesErtekeles` ( CREATE TABLE `szeEgyediMinosites` ( `szeId` int(10) unsigned NOT NULL, `szempontId` int(10) unsigned NOT NULL, - `egyediMinosites` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + `egyediMinosites` text COLLATE utf8_hungarian_ci DEFAULT NULL, PRIMARY KEY (`szeId`,`szempontId`), KEY `szeem_FKindex1` (`szempontId`), KEY `szeem_FKindex2` (`szeId`), @@ -765,6 +765,104 @@ CREATE TABLE `jegyzetTankor` ( CONSTRAINT `oraCimke_ibfk_2` FOREIGN KEY (`cimkeId`) REFERENCES `%DB%`.`cimke` (`cimkeId`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +CREATE TABLE `felveteli` ( + `oId` bigint(20) NOT NULL, + `nev` varchar(50) COLLATE utf8_hungarian_ci DEFAULT NULL, + `jelige` varchar(30) COLLATE utf8_hungarian_ci DEFAULT NULL, + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `szuldt` date DEFAULT NULL, + `fl` enum('fiú','lány') CHARACTER SET utf8 DEFAULT NULL, + `an` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `atlag` decimal(4,2) DEFAULT NULL, + `jel_tagozat1` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat2` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat3` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat4` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat5` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat6` smallint(5) unsigned DEFAULT NULL, + `magyar` smallint(5) unsigned NOT NULL DEFAULT '0', + `matek` smallint(5) unsigned NOT NULL DEFAULT '0', + `pont` decimal(5,2) DEFAULT NULL, + `evfolyam` enum('4','5','6','8','') COLLATE utf8_hungarian_ci DEFAULT NULL, + `rangsor` smallint(5) unsigned DEFAULT NULL, + `jelenleg` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `joslat` varchar(250) CHARACTER SET utf8 DEFAULT NULL, + `vegeredmeny` varchar(60) COLLATE utf8_hungarian_ci DEFAULT NULL, + `level1` enum('nincs értesítve','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `level2` enum('nincs értesítve','nem kell értesíteni','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `extra` varchar(100) COLLATE utf8_hungarian_ci DEFAULT NULL, + `felveteliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`felveteliId`), + UNIQUE KEY `indx_fa_oId2` (`oId`), + KEY `indx_fa_oId` (`oId`), + KEY `indx_fa_nev` (`nev`,`oId`), + KEY `indx_fa_jelige` (`jelige`,`oId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_levelLog` ( + `oId` bigint(20) NOT NULL, + `generalasDt` datetime DEFAULT NULL, + `ip` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `token` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `letoltesDt` datetime DEFAULT NULL, + KEY `IDX_levelLog_oId` (`oId`), + CONSTRAINT `felveteli_levelLog_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_tagozat` ( + `tagozat` int(11) unsigned NOT NULL, + `tagozatNev` varchar(64) COLLATE utf8_hungarian_ci NOT NULL, + `szobeliMegjegyzes` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + `szobeliNelkulAjanlat` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + `szobeliElutasito` varchar(255) COLLATE utf8_hungarian_ci DEFAULT NULL, + PRIMARY KEY (`tagozat`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_szobeli` ( + `felveteliSzobeliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oId` bigint(20) NOT NULL, + `szoveg` varchar(128) CHARACTER SET utf8 DEFAULT NULL, + `bizottsag` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `nap` varchar(10) CHARACTER SET utf8 DEFAULT NULL, + `napdt` date DEFAULT NULL, + `ido` time DEFAULT NULL, + `tagozat` int(11) unsigned DEFAULT NULL, + `szobeliTipus` enum('szóbeli','szóbeli nélküli ajánlat','elutasítás') COLLATE utf8_hungarian_ci DEFAULT 'szóbeli', + `szobelipont` tinyint(3) unsigned DEFAULT NULL, + PRIMARY KEY (`felveteliSzobeliId`), + KEY `oId` (`oId`), + KEY `felveteli_szobeli_ibfk_2` (`tagozat`), + CONSTRAINT `felveteli_szobeli_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_szobeli_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + + CREATE TABLE `felveteli_jelentkezes` ( + `oId` bigint(20) NOT NULL, + `tagozat` int(11) unsigned NOT NULL DEFAULT '0', + `ideiglenesRangsor` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`oId`,`tagozat`), + KEY `felveteli_jelentkezes_ibfk_2` (`tagozat`), + CONSTRAINT `felveteli_jelentkezes_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_jelentkezes_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +CREATE TABLE `felveteli_iskolak` ( + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `iskolaNev` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaIrsz` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaCim` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelepules` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelefon` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaEmail` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + KEY `ID_felveteli_iskolak_omkod` (`omkod`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + DROP FUNCTION IF EXISTS getNev; DROP FUNCTION IF EXISTS getOraIgTime; DROP FUNCTION IF EXISTS getOraTolTime; diff --git a/mayor-orig/mayor-naplo/log/mayor-naplo.rev b/mayor-orig/mayor-naplo/log/mayor-naplo.rev index 7e1fd933..c9d96ecc 100644 --- a/mayor-orig/mayor-naplo/log/mayor-naplo.rev +++ b/mayor-orig/mayor-naplo/log/mayor-naplo.rev @@ -1 +1 @@ -4716 +4834 diff --git a/mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql new file mode 100644 index 00000000..581c58de --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004721-1-intezmeny.sql @@ -0,0 +1,13 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4721 $$ + +CREATE PROCEDURE upgrade_database_4721() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='tanar' and COLUMN_NAME='elerhetoseg') THEN + ALTER TABLE `tanar` ADD `elerhetoseg` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL; +END IF; +END $$ +DELIMITER ; +CALL upgrade_database_4721(); diff --git a/mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql new file mode 100644 index 00000000..f09f8f4f --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004722-1-naplo.sql @@ -0,0 +1,98 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4722 $$ + +CREATE PROCEDURE upgrade_database_4722() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli' +) THEN +CREATE TABLE `felveteli` ( + `oId` bigint(20) NOT NULL, + `nev` varchar(50) COLLATE utf8_hungarian_ci DEFAULT NULL, + `jelige` varchar(30) COLLATE utf8_hungarian_ci DEFAULT NULL, + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `szuldt` date DEFAULT NULL, + `fl` enum('fiú','lány') CHARACTER SET utf8 DEFAULT NULL, + `an` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `lakcim_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_irsz` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_telepules` varchar(40) CHARACTER SET utf8 DEFAULT NULL, + `tartozkodasi_utcahazszam` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `atlag` decimal(4,2) DEFAULT NULL, + `jel_tagozat1` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat2` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat3` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat4` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat5` smallint(5) unsigned DEFAULT NULL, + `jel_tagozat6` smallint(5) unsigned DEFAULT NULL, + `magyar` smallint(5) unsigned NOT NULL DEFAULT '0', + `matek` smallint(5) unsigned NOT NULL DEFAULT '0', + `pont` decimal(5,2) DEFAULT NULL, + `evfolyam` ENUM('4','5','6','8','') DEFAULT NULL, + `rangsor` smallint(5) unsigned DEFAULT NULL, + `jelenleg` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `joslat` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `vegeredmeny` varchar(40) COLLATE utf8_hungarian_ci DEFAULT NULL, + `level1` enum('nincs értesítve','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `level2` enum('nincs értesítve','nem kell értesíteni','értesítve') CHARACTER SET utf8 DEFAULT NULL, + `extra` varchar(100) COLLATE utf8_hungarian_ci DEFAULT NULL, + `felveteliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`felveteliId`), + KEY `indx_fa_oId` (`oId`), + KEY `indx_fa_nev` (`nev`,`oId`), + KEY `indx_fa_jelige` (`jelige`,`oId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_tagozat' +) THEN +CREATE TABLE `felveteli_tagozat` ( + `tagozat` int(11) unsigned NOT NULL, + `tagozatNev` varchar(64) NOT NULL, + `szobeliMegjegyzes` varchar(255) DEFAULT NULL, + `szobeliNelkulAjanlat` varchar(255) DEFAULT NULL, + `szobeliElutasito` varchar(255) DEFAULT NULL, + PRIMARY KEY (`tagozat`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_szobeli' +) THEN +CREATE TABLE `felveteli_szobeli` ( + `felveteliSzobeliId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oId` bigint(20) NOT NULL, + `szoveg` varchar(128) CHARACTER SET utf8 DEFAULT NULL, + `bizottsag` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `nap` varchar(10) CHARACTER SET utf8 DEFAULT NULL, + `napdt` date DEFAULT NULL, + `ido` time DEFAULT NULL, + `tagozat` int(11) unsigned DEFAULT NULL, + `szobeliTipus` enum ('szóbeli','szóbeli nélküli ajánlat','elutasítás') DEFAULT 'szóbeli', + PRIMARY KEY (`felveteliSzobeliId`), + KEY `oId` (`oId`), + CONSTRAINT `felveteli_szobeli_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_szobeli_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_jelentkezes' +) THEN +CREATE TABLE `felveteli_jelentkezes` ( + `oId` bigint(20) NOT NULL, + `tagozat` int(11) unsigned DEFAULT NULL, + PRIMARY KEY (`oId`,`tagozat`), + CONSTRAINT `felveteli_jelentkezes_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `felveteli_jelentkezes_ibfk_2` FOREIGN KEY (`tagozat`) REFERENCES `felveteli_tagozat` (`tagozat`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + + +END $$ +DELIMITER ; +CALL upgrade_database_4722(); diff --git a/mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql new file mode 100644 index 00000000..795c266c --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004722-2-intezmeny.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4722b $$ + +CREATE PROCEDURE upgrade_database_4722b() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +ALTER TABLE `idoszak` MODIFY `tipus` enum('zárás','bizonyítvány írás','vizsga','előzetes tárgyválasztás','tárgyválasztás','tankörnévsor módosítás','fogadóóra jelentkezés','tanmenet leadás','felvételi szóbeli lekérdezés','felvételi ideiglenes rangsor lekérdezés','felvételi végeredmény lekérdezés') COLLATE utf8_hungarian_ci DEFAULT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4722b(); diff --git a/mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql new file mode 100644 index 00000000..c9124f12 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004725-1-naplo.sql @@ -0,0 +1,16 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4725 $$ + +CREATE PROCEDURE upgrade_database_4725() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.statistics WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli' and INDEX_NAME = 'indx_fa_oId2' +) THEN + ALTER TABLE felveteli ADD UNIQUE KEY indx_fa_oId2 (oId); +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4725(); diff --git a/mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql new file mode 100644 index 00000000..a0bc8010 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004734-1-naplo.sql @@ -0,0 +1,16 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4734 $$ + +CREATE PROCEDURE upgrade_database_4734() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_szobeli' and COLUMN_NAME='szobelipont' +) THEN + ALTER TABLE felveteli_szobeli ADD szobelipont tinyint UNSIGNED DEFAULT NULL; +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4734(); diff --git a/mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql new file mode 100644 index 00000000..02fb5bf5 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004735-1-intezmeny.sql @@ -0,0 +1,24 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4735 $$ + +CREATE PROCEDURE upgrade_database_4735() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS (SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='dokumentum') THEN +CREATE TABLE `dokumentum` ( + `dokumentumId` int(10) unsigned NOT NULL AUTO_INCREMENT, + `dokumentumLeiras` varchar(511) NOT NULL, + `dokumentumRovidLeiras` varchar(255) NOT NULL, + `dokumentumUrl` varchar(1023) COLLATE utf8_hungarian_ci DEFAULT NULL, + `dokumentumMegjegyzes` varchar(63) NOT NULL, + `dokumentumSorrend` SMALLINT DEFAULT 1, + `dokumentumDt` datetime DEFAULT NULL, + PRIMARY KEY (`dokumentumId`), + INDEX (`dokumentumSorrend`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4735(); diff --git a/mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql new file mode 100644 index 00000000..4614cfc8 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004736-1-intezmeny.sql @@ -0,0 +1,18 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4736 $$ + +CREATE PROCEDURE upgrade_database_4736() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='dokumentum' AND COLUMN_NAME='dokumentumPolicy') THEN +ALTER TABLE `dokumentum` ADD dokumentumPolicy ENUM('public','parent','private'); +END IF; + +IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='dokumentum' AND COLUMN_NAME='dokumentumTipus') THEN +ALTER TABLE `dokumentum` ADD dokumentumTipus ENUM('general','tanev'); +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4736(); diff --git a/mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql new file mode 100644 index 00000000..dbcf23c2 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004737-1-naplo.sql @@ -0,0 +1,18 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4737 $$ + +CREATE PROCEDURE upgrade_database_4737() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_jelentkezes' and COLUMN_NAME='ideiglenesRangsor' +) THEN + ALTER TABLE felveteli_jelentkezes ADD ideiglenesRangsor mediumint unsigned not null; +END IF; +ALTER TABLE felveteli MODIFY joslat varchar(250); + + +END $$ +DELIMITER ; +CALL upgrade_database_4737(); diff --git a/mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql new file mode 100644 index 00000000..4ef93a68 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004742-1-intezmeny.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4742 $$ + +CREATE PROCEDURE upgrade_database_4742() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +ALTER TABLE `dokumentum` MODIFY `dokumentumDt` datetime DEFAULT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4742(); diff --git a/mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql new file mode 100644 index 00000000..c0160e45 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004772-1-naplo.sql @@ -0,0 +1,29 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4772 $$ + +CREATE PROCEDURE upgrade_database_4772() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_levelLog' +) THEN + +CREATE TABLE `felveteli_levelLog` ( + `oId` bigint(20) NOT NULL, + `generalasDt` datetime DEFAULT NULL, + `ip` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `token` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `letoltesDt` datetime DEFAULT NULL, + KEY `IDX_levelLog_oId` (`oId`), + CONSTRAINT `felveteli_levelLog_ibfk_1` FOREIGN KEY (`oId`) REFERENCES `felveteli` (`oId`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +END IF; + +alter table felveteli modify `vegeredmeny` varchar(60) COLLATE utf8_hungarian_ci DEFAULT NULL; + + +END $$ +DELIMITER ; +CALL upgrade_database_4772(); diff --git a/mayor-orig/mayor-naplo/update/pre004772-2.sh b/mayor-orig/mayor-naplo/update/pre004772-2.sh new file mode 100644 index 00000000..cc03ecba --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004772-2.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +#BASEDIR="/var/mayor" + +DIR="$BASEDIR/download/private/naplo/felveteli/level/" +mkdir -p $DIR +chown -R www-data $DIR +echo "$DIR Kész." + +DIR="$BASEDIR/download/public/naplo/felveteli/level/" +mkdir -p $DIR +chown -R www-data $DIR +echo "$DIR Kész." diff --git a/mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql new file mode 100644 index 00000000..b6bb34f9 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004775-1-naplo.sql @@ -0,0 +1,27 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4775 $$ + +CREATE PROCEDURE upgrade_database_4775() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='felveteli_iskolak' +) THEN + +CREATE TABLE `felveteli_iskolak` ( + `omkod` varchar(7) CHARACTER SET utf8 DEFAULT NULL, + `iskolaNev` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaIrsz` varchar(10) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaCim` varchar(128) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelepules` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaTelefon` varchar(32) COLLATE utf8_hungarian_ci DEFAULT NULL, + `iskolaEmail` varchar(64) COLLATE utf8_hungarian_ci DEFAULT NULL, + KEY `ID_felveteli_iskolak_omkod` (`omkod`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci; + +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4775(); diff --git a/mayor-orig/mayor-naplo/update/pre004789-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004789-1-intezmeny.sql new file mode 100644 index 00000000..cfb21fda --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004789-1-intezmeny.sql @@ -0,0 +1,15 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4789 $$ + +CREATE PROCEDURE upgrade_database_4789() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +-- https://tasz.hu/cikkek/igy-vedd-meg-a-gyermeked-az-allamositastol + +ALTER TABLE `diakJogviszony` MODIFY `statusz` enum('felvételt nyert','jogviszonyban van','magántanuló','egyéni munkarend','vendégtanuló','jogviszonya felfüggesztve','jogviszonya lezárva') COLLATE utf8_hungarian_ci NOT NULL; +ALTER TABLE `diak` MODIFY `statusz` enum('felvételt nyert','jogviszonyban van','magántanuló','egyéni munkarend','vendégtanuló','jogviszonya felfüggesztve','jogviszonya lezárva') COLLATE utf8_hungarian_ci NOT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4789(); diff --git a/mayor-orig/mayor-naplo/update/pre004789-2-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004789-2-intezmeny.sql new file mode 100644 index 00000000..4dd6c244 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004789-2-intezmeny.sql @@ -0,0 +1,44 @@ +DELIMITER // + DROP FUNCTION IF EXISTS diakNaploSorszam // + CREATE function diakNaploSorszam ( thisDiakId INT, thisTanev INT, thisOsztalyId INT ) returns INT + READS SQL DATA + BEGIN + DECLARE inKezdesDt,inZarasDt DATE; + DECLARE a,i INT; -- for loop + DECLARE b DATE; -- for loop + DECLARE c DATE; + DECLARE d INT; + DECLARE e VARCHAR(255); + + DECLARE cur1 + CURSOR FOR + SELECT diakId,IF(beDt<inKezdesDt,inKezdesDt,beDt) AS tolDt,IF(ifnull(kiDt,inZarasDt)<inZarasDt,kiDt,inZarasDt) AS igDt, + (SELECT COUNT(*) FROM diakJogviszony AS ds + WHERE ds.diakId=diak.diakId AND tolDt<dt AND dt<=igDt AND ds.statusz IN ('jogviszonyban van','magántanuló','egyéni munkarend') + ) AS aktJogviszonyDb, + (SELECT statusz FROM diakJogviszony AS ds + WHERE ds.diakId=diak.diakId AND dt<=tolDt ORDER BY dt DESC LIMIT 1 + ) AS elozoStatusz + FROM osztalyDiak LEFT JOIN diak USING (diakId) + WHERE osztalyId=thisOsztalyId AND beDt<=inZarasDt AND (kiDt IS NULL OR kiDt>=inKezdesDt) + HAVING (aktJogviszonyDb>0 or elozoStatusz in ('magántanuló','jogviszonyban van','egyéni munkarend')) + ORDER BY tolDt, CONCAT_WS(' ',viseltCsaladinev,viseltUtonev) COLLATE utf8_hungarian_ci; + + DECLARE EXIT HANDLER FOR NOT FOUND RETURN NULL; + SELECT kezdesDt FROM szemeszter WHERE tanev=thisTanev AND szemeszter=1 INTO inKezdesDt; + SELECT MAX(zarasDt) FROM szemeszter WHERE tanev=thisTanev INTO inZarasDt; + + SET i := 1; + OPEN cur1; + lo: LOOP +-- FETCH cur1 INTO a,b; + FETCH cur1 INTO a,b,c,d,e; + IF a = thisDiakId THEN + LEAVE lo; + END IF; + SET i := i+1; + END LOOP; + CLOSE cur1; + return i; + END; // + DELIMITER ; // diff --git a/mayor-orig/mayor-naplo/update/pre004791-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004791-1-intezmeny.sql new file mode 100644 index 00000000..b3786834 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004791-1-intezmeny.sql @@ -0,0 +1,23 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4791 $$ +CREATE PROCEDURE upgrade_database_4791() +BEGIN + +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF EXISTS ( + SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='kepzesOraterv' AND COLUMN_NAME='tipus' +) THEN + + alter table `kepzesOraterv` modify `tipus` + enum('első nyelv','második nyelv','mintatantervi','kötelezően választható 1.','kötelezően választható 2.', + 'szabadon választható 1.','szabadon választható 2.','művészetek','természettudomány') CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT 'mintatantervi'; + +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4791(); + +-- | Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. | +-- | Warning | 3778 | 'utf8_hungarian_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead. diff --git a/mayor-orig/mayor-naplo/update/pre004800-1-intezmeny.sql b/mayor-orig/mayor-naplo/update/pre004800-1-intezmeny.sql new file mode 100644 index 00000000..9c9b6a20 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004800-1-intezmeny.sql @@ -0,0 +1,17 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4800 $$ +CREATE PROCEDURE upgrade_database_4800() +BEGIN + +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +IF NOT EXISTS ( + SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='diak' AND COLUMN_NAME='emailMagan' +) THEN + + alter table `diak` ADD `emailMagan` varchar(255) AFTER `email`; +END IF; + +END $$ +DELIMITER ; +CALL upgrade_database_4800(); diff --git a/mayor-orig/mayor-naplo/update/pre004812-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004812-1-naplo.sql new file mode 100644 index 00000000..d5644095 --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004812-1-naplo.sql @@ -0,0 +1,13 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4812 $$ + +CREATE PROCEDURE upgrade_database_4812() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +ALTER TABLE `orarendiOra` MODIFY `targyJel` varchar(96) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL; +ALTER TABLE `orarendiOraTankor` MODIFY `targyJel` varchar(96) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4812(); diff --git a/mayor-orig/mayor-naplo/update/pre004819-1-naplo.sql b/mayor-orig/mayor-naplo/update/pre004819-1-naplo.sql new file mode 100644 index 00000000..c638832d --- /dev/null +++ b/mayor-orig/mayor-naplo/update/pre004819-1-naplo.sql @@ -0,0 +1,12 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS upgrade_database_4819 $$ + +CREATE PROCEDURE upgrade_database_4819() +BEGIN +SET NAMES utf8 COLLATE utf8_hungarian_ci; + +ALTER TABLE `szeEgyediMinosites` MODIFY `egyediMinosites` text CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT NULL; + +END $$ +DELIMITER ; +CALL upgrade_database_4819(); diff --git a/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php b/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php index fa205518..95d42abb 100644 --- a/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php +++ b/mayor-orig/mayor-naplo/www/include/menu/private/hu_HU/module-naplo.php @@ -104,13 +104,16 @@ 'osszesites' => array(array('txt' => 'Összesítés')), ); $MENU['modules']['naplo']['sub']['intezmeny'] = array( - 'tankorDiak' => array(array('txt' => 'Tankörnévsor', 'url' => 'index.php?page=naplo&sub=intezmeny&f=tankorDiak')), + 'valtas'=> array(array('txt' => 'Intézmény, tanévváltás', 'url' => 'index.php?page=naplo&sub=intezmeny&f=valtas')), + 'osztaly' => array(array('txt' => 'Osztályok', 'url' => 'index.php?page=naplo&sub=intezmeny&f=osztaly')), + 'diak' => array(array('txt' => 'Diákok', 'url' => 'index.php?page=naplo&sub=intezmeny&f=diak')), 'diakTankor' => array(array('txt' => 'Diák tankörei', 'url'=> 'index.php?page=naplo&sub=intezmeny&f=diakTankor')), 'diakTankorJelentkezes' => array(array('txt' => 'Diák választott tankörei', 'url'=> 'index.php?page=naplo&sub=intezmeny&f=diakTankorJelentkezes')), - 'diak' => array(array('txt' => 'Diákok', 'url' => 'index.php?page=naplo&sub=intezmeny&f=diak')), 'diakFelmentes' => array(array('txt' => 'Felmentés', 'url' => 'index.php?page=naplo&sub=intezmeny&f=diakFelmentes')), - 'valtas'=> array(array('txt' => 'Tanévváltás', 'url' => 'index.php?page=naplo&sub=intezmeny&f=valtas')), + 'tankorDiak' => array(array('txt' => 'Tankörnévsor', 'url' => 'index.php?page=naplo&sub=intezmeny&f=tankorDiak')), 'tovabbkepzes' => array(array('txt' => 'Továbbképzés')), + 'kepzesOraterv' => array(array('txt' => 'Képzés óraterv')), + 'tankorTanarHozzarendeles' => array(array('txt' => 'Tantárgyfelosztás, tankör-tanár')), ); $MENU['modules']['naplo']['sub']['orarend'] = array( 'helyettesites' => array(array('txt'=> 'Helyettesítések')), @@ -408,7 +411,7 @@ $MENU['modules']['naplo']['export'][] = array('txt' => 'Export', 'url' => 'index.php?page=naplo&sub=export&f=diakExport'); $MENU['modules']['naplo']['intezmeny'] = array(array('txt' => 'Intézményi adatok', 'url' => 'index.php?page=naplo&sub=intezmeny')); - $MENU['modules']['naplo']['stat'] = array(array('txt' => 'Látszám statisztika', 'url' => 'index.php?page=naplo&sub=stat&f=letszam')); + $MENU['modules']['naplo']['stat'] = array(array('txt' => 'Létszám statisztika', 'url' => 'index.php?page=naplo&sub=stat&f=letszam')); $MENU['modules']['naplo']['ertekeles'] = array(array('txt' => 'Értékelés', 'url' => 'index.php?page=naplo&sub=ertekeles', 'rejtett' => true)); $MENU['modules']['naplo']['admin'] = array(array('txt' => 'Admin', 'url' => 'index.php?page=naplo&sub=admin&f=tanevek')); $MENU['modules']['naplo']['koszi'] = array(array('txt' => 'Köszi', 'url' => 'index.php?page=naplo&sub=koszi&f=kosziAdmin')); @@ -583,6 +586,14 @@ if (__UZENO_INSTALLED===true && __UZENOADMIN===true) $MENU['modules']['naplo']['uzeno'] = array(array('txt' => 'Üzenő', 'url' => 'index.php?page=naplo&sub=uzeno&f=uzeno')); + $MENU['modules']['naplo']['dokumentum'] = array(array('txt' => 'Dokumentumok', 'url' => 'index.php?page=naplo&sub=dokumentum')); + + // Felvételi + $MENU['modules']['naplo']['felveteli'] = array(array('txt' => 'Felvételi', 'url' => 'index.php?page=naplo&sub=felveteli&f=szobeli')); + $MENU['modules']['naplo']['sub']['felveteli'] = array( + 'szobeli' => array(array('txt' => 'Szóbeli lekérdezés','icon'=>'icon-search')) + ); + // SNI if (__NAPLOADMIN || __VEZETOSEG || __TANAR) { $MENU['modules']['naplo']['sni'] = array(array('txt' => 'Egyéni fejlesztés', 'url' => 'index.php?page=naplo&sub=sni')); diff --git a/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php b/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php index 090c7db2..56cb4d36 100644 --- a/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php +++ b/mayor-orig/mayor-naplo/www/include/menu/public/hu_HU/module-naplo.php @@ -3,11 +3,25 @@ module: naplo */ - $MENU['naplo'] = array(array('txt' => 'Órarend', 'url' => 'index.php?page=naplo&sub=orarend&f=orarend')); + $MENU['naplo'] = array(array('txt' => 'Napló', 'url' => 'index.php?page=naplo&sub=orarend&f=orarend')); $MENU['modules']['naplo']['orarend'] = array( array('txt' => 'Órarend', 'url' => 'index.php?page=naplo&sub=orarend&f=orarend'), array('txt' => 'Helyettesítés', 'url'=>'index.php?page=naplo&sub=orarend&f=helyettesites', 'refresh'=>60), array('txt' => 'Szabad termek', 'url' => 'index.php?page=naplo&sub=orarend&f=szabadTerem'), ); +if (__PORTAL_CODE=='kanizsay') { +// $MENU['tanari_kar'] = array(array('txt' => 'Tanári kar', 'url' => 'index.php?page=naplo&sub=intezmeny&f=tanarok')); + $MENU['modules']['naplo']['intezmeny'] = array( + array('txt' => 'Tanári Kar', 'url' => 'index.php?page=naplo&sub=intezmeny&f=tanarok'), + ); + $MENU['modules']['naplo']['dokumentum'] = array( + array('txt' => 'Dokumentumok', 'url' => 'index.php?page=naplo&sub=dokumentum'), + ); + $MENU['modules']['naplo']['felveteli'] = array( + array('txt' => 'Felvételi, szóbeli, végeredmény lekérdezés', 'url' => 'index.php?page=naplo&sub=felveteli&f=szobeli'), + ); +// require_once('include/menu/public/hu_HU/module-portal-kanizsay.php') or die(); +} + ?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php index a0377a17..e5653309 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/rights.php @@ -62,7 +62,7 @@ function initTanev($intezmeny, $tanev) { - global $MYSQL_DATA, $_TANEV; + global $MYSQL_DATA, $_TANEV, $policy; $MYSQL_DATA['naplo'] = $MYSQL_DATA['naplo_base']; $MYSQL_DATA['naplo']['db']= tanevDbNev($intezmeny, $tanev); @@ -85,7 +85,7 @@ if (__FOLYO_TANEV === true) if (__MUNKATERV_OK && __ORAREND_OK && __TANKOROK_OK) checkNaplo(date('Y-m-d')); else { - if (MAYOR_SOCIAL!==true) $_SESSION['alert'][]= 'info:checkNaploFailed:Tanév:'.($_TANEV['tanev']).':Részletek '.((__MUNKATERV_OK)?'munkaterv ok':'#chknaplo1 nincs munkaterv!').':'.((__ORAREND_OK)?'órarend ok':'#chknaplo2 nincs órarend!').':'.((__TANKOROK_OK)?'órarend-tankörök ok':'#chknaplo3 órarendi óra tankör összerendezési hiány!'); + if (MAYOR_SOCIAL!==true && $policy==='private') $_SESSION['alert'][]= 'info:checkNaploFailed:Tanév:'.($_TANEV['tanev']).':Részletek '.((__MUNKATERV_OK)?'munkaterv ok':'#chknaplo1 nincs munkaterv!').':'.((__ORAREND_OK)?'órarend ok':'#chknaplo2 nincs órarend!').':'.((__TANKOROK_OK)?'órarend-tankörök ok':'#chknaplo3 órarendi óra tankör összerendezési hiány!'); } } } @@ -347,7 +347,7 @@ } if (defined('__TANEV') && __TANEV!='') $tanev = __TANEV; - if (defined('_SESSIONID') && _SESSIONID!='' && !$vanSession) { + if (defined('_SESSIONID') && _SESSIONID!='' && !$vanSession && _RUNLEVEL!='cron') { $q = "REPLACE INTO session (sessionID, policy, intezmeny, telephelyId, tanev) VALUES ('"._SESSIONID."','"._POLICY."' , '".$intezmeny."',".$telephelyId.", ".$tanev.")"; db_query($q, array('fv' => 'naploBeallitasok/session', 'modul' => 'naplo_base'), $lr); diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php index d5ba4c6c..a871e5ed 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/tool.php @@ -42,8 +42,7 @@ function getToolParameters() { ); - foreach ( $TOOL as $tool => $params ) if (is_array($params)) { - + foreach ( $TOOL as $tool => $params ) if (is_array($params) && is_array($params['post'])) { for ($i = 0; $i < count($params['post']); $i++) { $_var = $params['post'][$i]; //if ($TOOLVARS[$_var]=='') $_SESSION['alert'][] = '::toolvars:'.$_var; // nem üzenünk hibát diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php index 12b7dea5..2b2d1478 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/base/zcheck.php @@ -80,7 +80,7 @@ } if (!defined('__TANITASINAP_HETENTE')) define('__TANITASINAP_HETENTE',5); - if (!define('__ORACIMKE_ENABLED')) define('__ORACIMKE_ENABLED',true) ; + if (!defined('__ORACIMKE_ENABLED')) define('__ORACIMKE_ENABLED',true) ; /* üzenő szerepkor beallitasa */ if (__UZENOADMIN===true) { @@ -97,8 +97,16 @@ elseif (__UZENOADMIN===true) define('__UZENOSZEREP','admin'); else define('__UZENOSZEREP',''); - if (count($KERELEM_TAG) ==0) $KERELEM_TAG = array('névsor','jogviszony','órarend, haladási','hiányzás, igazolás','jegy, zárójegy'); + if (!is_array($KERELEM_TAG) || count($KERELEM_TAG) ==0) $KERELEM_TAG = array('névsor','jogviszony','órarend, haladási','hiányzás, igazolás','jegy, zárójegy'); if (!defined('__HABEL_GYURI_DEBUG')) define('__HABEL_GYURI_DEBUG',false); + if (!defined('MAYOR_SOCIAL')) define('MAYOR_SOCIAL',false); + + if (_USERACCOUNT=='mayoradmin' || (_POLICY=='private' && memberOf(_USERACCOUNT, 'felveteliadmin'))) { + $AUTH['my']['categories'][] = 'felveteliadmin'; + define('__FELVETELIADMIN',true); + } else { + define('__FELVETELIADMIN',false); + } ?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..aec7bf3d --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/dokumentum/dokumentum.php @@ -0,0 +1,63 @@ +<?php + + function getDokumentumok() { + + $q = "SELECT * FROM dokumentum ORDER BY dokumentumTipus, dokumentumSorrend"; + $v = array(); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'indexed')); + return $r; + + } + + function getDokumentumokAssoc() { + + $q = "select dokumentum.*,IFNULL(tanev,YEAR(dokumentumDt)) AS dokumentumTanev from dokumentum left join szemeszter ON (DATE(dokumentumDt)>kezdesDt && DATE(dokumentumDt)<=szemeszter.ZarasDt) +ORDER BY dokumentumTipus, dokumentumSorrend"; + $v = array(); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'indexed')); + + return (reindex($r,array('dokumentumTipus','dokumentumTanev'))); + return $r; + + } + + function updateDokumentum($ADAT) { + + if ($ADAT['dokumentumSorrend']>0 && readVariable($ADAT['dokumentumId'],'id')>0) { + $q = "UPDATE dokumentum SET dokumentumSorrend=%u WHERE dokumentumId=%u"; + $v = array(intval($ADAT['dokumentumSorrend']),intval($ADAT['dokumentumId'])); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'update')); + } + return $r; + + } + + function addDokumentum($ADAT) { + + if ($ADAT['dokumentumLeiras']!='' && readVariable($ADAT['dokumentumUrl'],'url')!='') { + $q = "INSERT INTO dokumentum (dokumentumLeiras, dokumentumRovidLeiras, dokumentumUrl, dokumentumMegjegyzes, dokumentumSorrend, dokumentumTipus, dokumentumPolicy, dokumentumDt) + VALUES ('%s','%s','%s','%s',%u,'%s','%s',NOW())"; + $v = array($ADAT['dokumentumLeiras'],$ADAT['dokumentumRovidLeiras'],$ADAT['dokumentumUrl'],$ADAT['dokumentumMegjegyzes'],intval($ADAT['dokumentumSorrend']),$ADAT['dokumentumTipus'],$ADAT['dokumentumPolicy']); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'insert')); + } + return $r; + + } + + function delDokumentum($dokumentumId) { + + if (!is_array($dokumentumId) && intval($dokumentumId)>0) { + $q = "DELETE FROM dokumentum WHERE dokumentumId=%u"; + $v = array($dokumentumId); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'')); + } elseif (is_array($dokumentumId)) { + $q = 'DELETE FROM dokumentum WHERE dokumentumId IN ('.implode(',',$dokumentumId).')'; + $v = array(); + $r = db_query($q, array('modul'=>'naplo_intezmeny','fv'=>'dokumentum','values'=>$v, 'result'=>'')); + } + return $r; + + } + + +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php new file mode 100644 index 00000000..d8dfa8ff --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/level.php @@ -0,0 +1,201 @@ +<?php + + if (__PORTAL_CODE!=='kanizsay') { + die('hiba, nem támogatott intézmény'); + } + + function pdfLevel($file, $ADAT) { + +# global $V2L, $OSZTALYABA; +# global $IKTSZ; + + $TeX = '\documentclass[8pt]{article}'."\n\n"; + $TeX .= '\usepackage[a4paper]{geometry} % A4-os méret'."\n"; + $TeX .= '\usepackage{graphicx}'."\n"; +// $TeX .= '\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás'."\n"; + $TeX .= '\usepackage[utf8x]{inputenc} % UTF-8 kódolású forrás (ucs)'."\n"; + $TeX .= '\usepackage{ucs} % Jobb UTF-8 támogatás'."\n"; + $TeX .= '\usepackage{t1enc}'."\n"; + $TeX .= '\usepackage[magyar]{babel} % magyar elválasztási szabályok'."\n"; + $TeX .= '\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után'."\n"; + $TeX .= '\usepackage{booktabs} % táblázatok magasabb szintű formázása'."\n"; +// $TeX .= '\usepackage{soul} % Ritkítás'."\n"; + $TeX .= '\usepackage{fancyhdr} % Ritkítás'."\n"; +// $TeX .= '\pagestyle{empty}'."\n"; + $TeX .= '\pagestyle{fancy}'."\n"; + + $TeX .= '\def\mayor{%'."\n"; +// $TeX .= '\font\mayorfnt=cmsl6%'."\n"; +// $TeX .= '\font\Mayorfnt=cmsl9'."\n"; + $TeX .= '\font\mayorfnt=cmsl4%'."\n"; + $TeX .= '\font\Mayorfnt=cmsl6'."\n"; + $TeX .= '{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}}'."\n"; + + $TeX .= '\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont}'."\n"; + $TeX .= '\addtolength{\skip\footins}{2mm}'."\n"; +// $TeX .= '\addtolength{\textheight}{10mm}'."\n"; + $TeX .= '\parindent 0mm'."\n"; +# $TeX .= '\linespread{1.3}'."\n"; + $TeX .= '\setlength{\footskip}{16pt}'."\n"; + $TeX .= '\setlength{\headsep}{20pt}'."\n"; // 14pt helyett + + $TeX .= '\cfoot{\tiny \copyright\mayor\ elektronikus adminisztráció - https://kanizsay.edu.hu - Nyomtatva: '.date('Y.m.d').'}'."\n"; + $TeX .= '\setlength{\voffset}{0mm}'."\n"; + $TeX .= '\setlength{\headheight}{40mm}'."\n"; + $TeX .= '\renewcommand{\headrulewidth}{0pt}'."\n"; + $TeX .= '\chead{\includegraphics[width=160mm]{/var/mayor/www/skin/classic/module-portal/img/fejlec.png}}'."\n"; +# $TeX .= '\lhead{\includegraphics[width=160mm]{/var/mayor/www/skin/classic/module-felveteli/img/iskola.png}}'."\n"; +# $TeX .= '\rhead{\tiny Felvételi értesítő}'; + + + $TeX .= '\begin{document}'."\n"; +# $TeX .= ''."\n"; + $TeX .= '\newpage'."\n"; + for ($i = 0; $i < count($ADAT['level']); $i++) { + + $D = $ADAT['level'][$i]; + $eredmeny = $D['vegeredmeny']; + + if (strstr($D['vegeredmeny'],'nem nyert')!==false) $eredmeny=0; elseif(strstr($D['extra'],'9.')!==false) $eredmeny = 3; else $eredmeny=0; + +$A['eü. 9.B']=array('osztalyJel'=>'9.B', 'tagozatNev'=>'Technikumi képzés egészségügyi ágazatban'); +$A['eü. 9.C']=array('osztalyJel'=>'9.C', 'tagozatNev'=>'Technikumi képzés egészségügyi ágazatban'); +$A['gimi 9.G']=array('osztalyJel'=>'9.G', 'tagozatNev'=>'Gimnáziumi képzés'); +$A['nyek 9/Ny.N']=array('osztalyJel'=>'9/Ny.N', 'tagozatNev'=>'Gimnáziumi képzés nyelvi előkészítő évfolyammal'); +$A['ped 9.C']=array('osztalyJel'=>'9.C', 'tagozatNev'=>'Szakgimnáziumi képzés pedagógiai ágazatban'); +$A['szoc 9.C']=array('osztalyJel'=>'9.C', 'tagozatNev'=>'Technikumi képzés szociális ágazatban'); + + + $nev = $D['nev']; + $kernev = $nev; + $tagozatId = $eredmeny; + $D['iktsz'] = $IKTSZ[$eredmeny].' ['.$D['vegeredmeny'].']'; + + $TeX .= '\begin{flushleft}'."\n"; + + $TeX .= putTeXLevelFejlec($D); + + $TeX .= '\end{flushleft}'."\n"; + +# $TeX .= '\parskip'."\n"; + $TeX .= '\vspace{40pt}'."\n"; + $TeX .= '\vspace{20pt}'."\n"; + + $TeX .= '\noindent '.'Kedves Felvételiző! Tisztelt Szülő!'."\n\n"; + + $TeX .= '\vspace{20pt}'."\n"; + + $TeX .= '{\baselineskip16pt'."\n"; + + if ($eredmeny>2) { + + $TeX .= 'Nagy Örömmel értesítem, hogy '.$nev.' tanuló az általános iskolai eredménye és a felvételi vizsgán mutatott teljesítménye alapján (a Felvételi Központ által megküldött végleges listák sze\-rint)'."\n\n"; + $TeX .= '\begin{center}'."\n"; + $TeX .= '\textbf{ felvételt nyert }'."\n\n"; + $TeX .= '\end{center}'."\n"; + $TeX .= '\begin{center}'."\n"; + $TeX .= ' a Kanizsay Dorottya Katolikus Középiskola '.$A[$D['extra']]['osztalyJel']." osztályába.\n\n"; + $TeX .= '('.$A[$D['extra']]['tagozatNev'].")\n\n"; + $TeX .= '\end{center}'."\n\n"; + //if (defined('_SZULOI_ERTEKEZLET_IDOPONTBAN')) { + $TeX .= 'Tájékoztatom, hogy az első szülői értekezlet 2021. május 17-én (hétfőn) 17:30-kor lesz, amelyre ezúton hívom meg a Szülőket. A további teendőkkel (pl. beiratkozás, nyelvi szintfelmérő stb.) kapcsolatos teendőkért kérjük ne felejtsék el rendszeresen felkeresni honlapunkat.'."\n"; + //} + + $TeX .= 'Figyelembe véve a jelenlegi vírushelyzetet, a nyár folyamán két (egymástól különböző) gólya-napot fogunk tartani. Ezekről bővebb tájékoztatást a szülői értekezleten kapnak majd.'."\n"; + $TeX .= "\n\n"; + $TeX .= '\vspace{14pt}'."\n"; + $TeX .= 'Remélem, az iskolánkban eltöltött évek hasznosak és eredményesek lesznek.'."\n\n"; + + } elseif ($eredmeny==2) { + +// $TeX .= 'Sajnálattal vettük tudomásul, hogy '.$kernev.' másik iskolát választott, ezért nem vehettük fel a Városmajori Gimnáziumba.'."\n\n"; +// $TeX .= '\vspace{14pt}'."\n"; +// $TeX .= 'Remélem, hogy a választása jó döntésnek fog bizonyulni. Sikeres tanulmányi éveket és minden jót kívánok!'."\n\n"; + + } elseif ($eredmeny==1) { + +// $TeX .= 'Sajnálattal értesítem, hogy '.$nev.' tanuló a felvételi vizsgán megfelelt, de helyhiány miatt nem nyert felvételt gimnáziumunkba.'."\n\n"; +// $TeX .= '\vspace{14pt}'."\n"; +// $TeX .= 'A Szülő e döntés ellen jogorvoslati lehetőséggel (a kézhezvételtől számított 15 napon belül) akkor élhet, ha az utolsó helyen megjelölt iskola elutasító értesítése megérkezett. Jogorvoslati kérelmét az általános iskola igazgatójának kell benyújtani. ' +// .'Felhívom figyelmét arra, hogy gyermeke tankötelezettségének teljesítésére vonatkozó kérelemmel a lakóhely szerinti önkormányzat jegyzőjéhez fordulhat.'."\n\n"; + + } elseif ($eredmeny==0) { + + $TeX .= 'Sajnálattal értesítem, hogy '.$nev.' tanuló - a Felvételi Központ által megküldött végleges listák szerint - nem nyert felvételt a Kanizsay Dorottya Katolikus Középiskolába.'."\n\n"; + $TeX .= '\vspace{14pt}'."\n\n"; + $TeX .= 'A Szülő e döntés ellen jogorvoslati lehetőséggel (a kézhezvételtől számított 15 napon belül) jogorvoslati lehetőséggel élhet, ha az utolsó megjelölt iskola elutasító értesítése is megérkezett. Jogorvoslati kérelmét az általános iskola igazgatójának kell benyújtania. Felhívom a figyelmét arra, hogy gyermeke tankötelezettségének teljesítésére vonatkozó kérelemmel a lakóhely szerinti önkormányzat jegyzőjéhez fordulhat.'."\n\n"; + + } else { + + } + $TeX .= '}'."\n"; + $TeX .= '\vspace{20pt}'."\n"; + $TeX .= '\noindent Budapest, 2021. április 26.'.' \par%'."\n"; + + + $TeX .= '\vspace{14pt}'."\n\n"; + if ($eredmeny > 2 ) $TeX .= '\vspace{14pt}'."\n\n"; + + $TeX .= '\begin{flushright}'."\n"; + + + +$TeX .= '\begin{tabular}{ccc}'."\n"; + +//if ($eredmeny <= 2 ) { +// $TeX .= '&&\includegraphics[width=30mm]{/var/mayor/www/skin/classic/module-felveteli/img/bp.png}\\\\ '."\n"; +//} +$TeX .= '&&\rule{4cm}{0.1pt}\\\\ '."\n"; +$TeX .= '&&Bärnkopf Péter\\\\ '."\n"; +$TeX .= '&&igazgató\\\\ '."\n"; +$TeX .= '\end{tabular}'."\n"; + + + $TeX .= '\end{flushright}'."\n"; + + + + $TeX .= '\newpage'."\n\n"; + $TeX .= '\setcounter{footnote}{0}'."\n\n"; + + } + + // dokumentum lezárása + $TeX .= '\end{document}'."\n"; + return pdfLaTeX($TeX, $file); + + } + + function putTeXLevelFejlec($ADAT) { + + + if ($ADAT['lakcim_telepules']!='') $TeX.= "Cím: ".$ADAT['lakcim_telepules'].', '.$ADAT['lakcim_irsz'].' '.$ADAT['lakcim_utcahazszam']."\n\n"; + if ($ADAT['tartozkodasi_telepules']!='') $TeX.= "Levelezési cím: ".$ADAT['tartozkodasi_telepules'].', '.$ADAT['tartozkodasi_irsz'].' '.$ADAT['tartozkodasi_utcahazszam']."\n\n"; + $TeX.= "Oktatási azonosító: ".$ADAT['oId']."\n\n"; + $TeX.= "MaYoR azonosító: ".$ADAT['felveteliId'].'/'.$ADAT['omkod']."\n\n"; + $TeX.= "Iktatószám: C8-62/2021"."\n\n"; + $TeX.= "Tárgy: Értesítés ".$ADAT['nev']." (".str_replace('_','',$ADAT['an'])." ".str_replace('-','.',$ADAT['szuldt']).".) felvételi eredményéről\n\n"; + +# $TeX.= '\hrule%'."\n"; + +# $TeX.= '%'."\n"; + +# $TeX.= '\vskip2cm\alap'; + +# $TeX.= '\item{}C.mzett: '.$nev.' .s Sz.lei'; +# $TeX.= '\item{}Postai c.m: '.$cim; +# $TeX.= '\item{}Iktat.sz.m: '.$IKTSZ[$eredmeny].' ('.$id.')%'."\n"; +# $TeX.= '\vskip0.8cm'; +# $TeX.= '{{Tárgy}: {Értesítés '.$nev.' ('; +# if ($an!="") $TeX.= 'a.n.: '.$an.', '; +# $TeX.= 'sz.l.: '.str_replace('-','.',$szul_dt).'.) felv.teli eredm.ny.r.l}}'; + +# $TeX.= '%'."\n"; + + return $TeX; + + } + + + +?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php new file mode 100644 index 00000000..e06e9dca --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/felveteli/levelIgazgato.php @@ -0,0 +1,177 @@ +<?php + + function pdfLevel($file, $ADAT) { + + for ($i=0; $i<count($ADAT['diak']); $i++) { + $D = $ADAT['diak'][$i]; + $omkod = $ADAT['diak'][$i]['omkod']; + if (strstr($D['vegeredmeny'],'nem nyert')!==false) $eredmeny=0; elseif(strstr($D['extra'],'9.')!==false) $eredmeny = 3; else $eredmeny=0; + if ($eredmeny>2) $DATA[$omkod]['ok'][] = $ADAT['diak'][$i]; + else $DATA[$omkod]['nemok'][] = $ADAT['diak'][$i]; + } + + $TeX = '\documentclass[8pt]{article}'."\n\n"; + $TeX .= '\usepackage[a4paper]{geometry} % A4-os méret'."\n"; + $TeX .= '\usepackage{graphicx}'."\n"; +// $TeX .= '\usepackage[utf8]{inputenc} % UTF-8 kódolású forrás'."\n"; + $TeX .= '\usepackage[utf8x]{inputenc} % UTF-8 kódolású forrás (ucs)'."\n"; + $TeX .= '\usepackage{ucs} % Jobb UTF-8 támogatás'."\n"; + $TeX .= '\usepackage{t1enc}'."\n"; + $TeX .= '\usepackage[magyar]{babel} % magyar elválasztási szabályok'."\n"; + $TeX .= '\frenchspacing % a magyar tipográfiai szabályoknak megfelelő szóközök írásjelek után'."\n"; + $TeX .= '\usepackage{booktabs} % táblázatok magasabb szintű formázása'."\n"; +// $TeX .= '\usepackage{soul} % Ritkítás'."\n"; + $TeX .= '\usepackage{fancyhdr} % Ritkítás'."\n"; +// $TeX .= '\pagestyle{empty}'."\n"; + $TeX .= '\pagestyle{fancy}'."\n"; + + $TeX .= '\def\mayor{%'."\n"; +// $TeX .= '\font\mayorfnt=cmsl6%'."\n"; +// $TeX .= '\font\Mayorfnt=cmsl9'."\n"; + $TeX .= '\font\mayorfnt=cmsl4%'."\n"; + $TeX .= '\font\Mayorfnt=cmsl6'."\n"; + $TeX .= '{\mayorfnt\lower0.5ex\hbox{\lower-0.5ex\hbox{Ma}\kern-0.3em\lower0.25ex\hbox{\Mayorfnt Y}\kern-0.2em\hbox{o}\lower0ex\hbox{R}}}}'."\n"; + + $TeX .= '\renewcommand{\footnotesize}{\fontsize{6pt}{8pt}\selectfont}'."\n"; + $TeX .= '\addtolength{\skip\footins}{2mm}'."\n"; +# $TeX .= '\addtolength{\textheight}{10mm}'."\n"; + $TeX .= '\parindent 0mm'."\n"; +# $TeX .= '\linespread{1.3}'."\n"; + $TeX .= '\setlength{\footskip}{16pt}'."\n"; + $TeX .= '\setlength{\headsep}{0pt}'."\n"; // 14pt helyett + + $TeX .= '\cfoot{\tiny \copyright\mayor\ elektronikus adminisztráció - Nyomtatva: '.date('Y.m.d').'}'; + $TeX .= '\setlength{\voffset}{0mm}'."\n"; + $TeX .= '\setlength{\headheight}{40mm}'."\n"; + $TeX .= '\renewcommand{\headrulewidth}{0pt}'."\n"; + $TeX .= '\chead{\includegraphics[width=160mm]{/var/mayor/www/skin/classic/module-portal/img/fejlec.png}}'."\n"; +# $TeX .= '\lhead{\includegraphics[width=160mm]{/var/mayor/www/skin/classic/module-felveteli/img/iskola.png}}'."\n"; +# $TeX .= '\rhead{\tiny Felvételi értesítő}'; + + + $TeX .= '\begin{document}'."\n\n"; + + foreach ($DATA as $omkod => $DA) { + + $TeX .= '\begin{flushleft}'."\n"; + + $TeX .= putTeXIgLevelFejlec($ADAT['iskola'][$omkod],'C8-62/2021'); + + $TeX .= '\end{flushleft}'."\n"; + +# $TeX .= '\parskip'."\n"; + $TeX .= '\vspace{40pt}'."\n"; + + $TeX .= '{'."\n"; + $TeX .= 'Kedves Igazgató Kolléga!'."\n\n"; + + $TeX .= '\vspace{20pt}'."\n\n"; + + if (count($DA['ok'])==1) { $vanfelvett=true; + $TeX .= 'Értesítem, hogy az Önök iskolájából az alábbi tanuló nyert felvételt iskolánkba:'."\n\n"; + } elseif (count($DA['ok'])>1) { $vanfelvett=true; + $TeX .= 'Értesítem, hogy az Önök iskolájából az alábbi tanulók nyertek felvételt iskolánkba:'."\n\n"; + } else { + $vanfelvett=false; + } + + if ($vanfelvett) { + $TeX .= '\begin{itemize}'."\n"; + for ($i=0; $i<count($DA['ok']); $i++) { + $TeX .= '\item '.$DA['ok'][$i]['nev'].''; +// $DA['ok'][$i]['vegeredmeny']. '} '."\n". +// $DA['ok'][0]['vegeredmeny']."\n"; + } + $TeX .= '\end{itemize}'."\n"; + $TeX .= '\vspace{14pt}'."\n\n"; + } +//dump($TeX); +//die(); + + if (count($DA['nemok'])>0) { + if ($vanfelvett) { $TeX .= 'Egyúttal s'; $kieg=' iskolánkba'; } + else { $TeX .= 'S'; $kieg = ' iskolánkba';} + if (count($DA['nemok'])==1) + $TeX .= 'ajnálattal tájékoztatom, hogy a következő tanuló nem nyert felvételt'.$kieg.':'."\n\n"; + else + $TeX .= 'ajnálattal tájékoztatom, hogy a következő tanulók nem nyertek felvételt'.$kieg.':'."\n\n"; + + $TeX .= '\vspace{14pt}'."\n\n"; + + $TeX .= '\begin{itemize}'."\n"; + for ($i=0; $i<count($DA['nemok']); $i++) { + $TeX .= '\item '.$DA['nemok'][$i]['nev']."\n"; + } + $TeX .= '\end{itemize}'."\n"; + + } + + $TeX .= '}'."\n"; + $TeX .= '\vspace{20pt}'."\n"; + $TeX .= '\noindent Budapest, 2021. április 30. \par%'."\n"; + + $TeX .= '\vspace{14pt}'."\n\n"; + if ($eredmeny > 2 ) $TeX .= '\vspace{14pt}'."\n\n"; + + $TeX .= '\begin{flushright}'."\n"; + + +#$TeX .= '\begin{tabular}{ccc}'."\n"; +#$TeX .= '&&\includegraphics[width=30mm]{/var/mayor/www/skin/classic/module-felveteli/img/tasai.png}\\\\ '."\n"; +#$TeX .= '&&\rule{4cm}{0.1pt}\\\\ '."\n"; +#$TeX .= '&&Dr. Szebedy Tas\\\\ '."\n"; +#$TeX .= '&&igazgató\\\\ '."\n"; +#$TeX .= '\end{tabular}'."\n"; + +$TeX .= '\begin{tabular}{ccc}'."\n"; +$TeX .= '&&\rule{4cm}{0.1pt}\\\\ '."\n"; +$TeX .= '&&Bärnkopf Péter\\\\ '."\n"; +$TeX .= '&&igazgató\\\\ '."\n"; +$TeX .= '\end{tabular}'."\n"; + + $TeX .= '\end{flushright}'."\n"; + + + + $TeX .= '\newpage %%%%%%%%%%%%%%%%% új oldal %%%%%%%%%%%%%%%%%%%%'."\n\n"; + + } + + // dokumentum lezárása + $TeX .= '\end{document}'."\n"; + return pdfLaTeX($TeX, $file); + + } + + function putTeXIgLevelFejlec($ADAT,$iktsz) { + + + $TeX.= "Intézmény: ".$ADAT['nev']."\n\n"; + $TeX.= "Cím: ".$ADAT['telepules'].', '.$ADAT['irsz'].' '.$ADAT['cim']."\n\n"; + $TeX.= "OM kód: ".$ADAT['omkod']."\n\n"; + $TeX.= "Iktatószám: ".$iktsz."\n\n"; + $TeX.= "Tárgy: Értesítés felvételi eredményről\n\n"; + +# $TeX.= '\hrule%'."\n"; + +# $TeX.= '%'."\n"; + +# $TeX.= '\vskip2cm\alap'; + +# $TeX.= '\item{}C.mzett: '.$nev.' .s Sz.lei'; +# $TeX.= '\item{}Postai c.m: '.$cim; +# $TeX.= '\item{}Iktat.sz.m: '.$IKTSZ[$eredmeny].' ('.$id.')%'."\n"; +# $TeX.= '\vskip0.8cm'; +# $TeX.= '{{Tárgy}: {Értesítés '.$nev.' ('; +# if ($an!="") $TeX.= 'a.n.: '.$an.', '; +# $TeX.= 'sz.l.: '.str_replace('-','.',$szul_dt).'.) felv.teli eredm.ny.r.l}}'; + +# $TeX.= '%'."\n"; + + return $TeX; + + } + + + +?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/haladasi/helyettesites.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/haladasi/helyettesites.php index 2fbbc4ac..152c5371 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/haladasi/helyettesites.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/haladasi/helyettesites.php @@ -418,7 +418,7 @@ $error = ''; db_start_trans($lr); - $q = "INSERT INTO csere VALUES ('')"; + $q = "INSERT INTO csere VALUES (NULL)"; $csereId = db_query($q, array('fv' => 'oraMozgatas', 'modul' => 'naplo', 'result' => 'insert', 'rollback' => true), $lr); if (!$csereId) { if ($olr == '') db_close($lr); return false; } @@ -561,7 +561,7 @@ db_start_trans($lr); - $q = "INSERT INTO csere VALUES ('')"; + $q = "INSERT INTO csere VALUES (NULL)"; $csereId1 = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'result' => 'insert', 'rollback' => true), $lr); if (!$csereId1) { if ($olr == '') db_close($lr); return false; } @@ -614,7 +614,7 @@ db_start_trans($lr); - $q = "INSERT INTO csere VALUES ('')"; + $q = "INSERT INTO csere VALUES (NULL)"; $csereId2 = db_query($q, array('fv' => 'oraCsere', 'modul' => 'naplo', 'result' => 'insert', 'rollback' => true), $lr); if (!$csereId2) { if ($olr == '') db_close($lr); return false; } diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php index 600ee897..4e178097 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/tankorTanarHozzarendeles.php @@ -158,7 +158,7 @@ hetiMunkaora,hetiKotelezoOraszam, hetiLekotottMinOraszam,hetiLekotottMaxOraszam,hetiKotottMaxOraszam FROM tanar WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó') - AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') + AND beDt<='".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') AND tanarId IN (".implode(',', array_fill(0, count($Szuro['tanarIds']), '%u')).")"; $v = array_merge($v, $Szuro['tanarIds']); } @@ -168,7 +168,7 @@ hetiLekotottMinOraszam,hetiLekotottMaxOraszam,hetiKotottMaxOraszam FROM tanar LEFT JOIN mkTanar USING (tanarId) WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó') - AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') + AND beDt<='".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') AND mkId IN (".implode(',', array_fill(0, count($Szuro['mkIds']), '%u')).")"; $v = array_merge($v, $Szuro['mkIds']); } @@ -179,7 +179,7 @@ FROM tanar LEFT JOIN tanarKepesites USING (tanarId) LEFT JOIN kepesitesTargy USING (kepesitesId) WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó') - AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') + AND beDt<='".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') AND targyId IN (".implode(',', array_fill(0, count($targyIds), '%u')).")"; $v = array_merge($v, $targyIds); $q[] = "SELECT tanarId, concat_ws(' ',viseltNevElotag,viseltCsaladinev,viseltUtonev) as tanarNev, @@ -188,7 +188,7 @@ FROM tanar LEFT JOIN mkTanar USING (tanarId) LEFT JOIN targy USING (mkId) WHERE statusz IN ('határozatlan idejű','határozott idejű','külső óraadó') - AND beDt<'".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') + AND beDt<='".$_TANEV['kezdesDt']."' AND (kiDt IS NULL OR kiDt<'".$_TANEV['zarasDt']."') AND targyId IN (".implode(',', array_fill(0, count($targyIds), '%u')).")"; $v = array_merge($v, $targyIds); diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/terem.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/terem.php index ee640a54..82326db2 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/terem.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/intezmeny/terem.php @@ -3,7 +3,7 @@ function teremAdatModositas($ADAT,$uj=false) { if ($uj===true) { - $q = "INSERT INTO `terem` (`teremId`,`leiras`,`tipus`,`ferohely`,`telephelyId`) VALUES ((SELECT max(teremId)+1 FROM terem AS s),'%s','%s',%u,NULL)"; + $q = "INSERT INTO `terem` (`teremId`,`leiras`,`tipus`,`ferohely`,`telephelyId`) VALUES ((SELECT IF(teremId>0,max(teremId)+1,1) FROM terem AS s),'%s','%s',%u,NULL)"; $v = array($ADAT['leiras'], $ADAT['tipus'], intval($ADAT['ferohely'])); } else { $q = "UPDATE `terem` SET `leiras`='%s',`tipus`='%s'"; @@ -13,6 +13,10 @@ if (isset($ADAT['telephelyId'])) { $q .= ",`telephelyId`=%u"; $v[] = $ADAT['telephelyId']; } else { $q .= ",`telephelyId`=NULL"; } + if ($ADAT['teremIdMod']!='' && $ADAT['teremIdMod']!=$ADAT['teremId']) { + $q .= ",`teremId`=".intval($ADAT['teremIdMod']); + } + $q .= " WHERE teremId=%u"; $v[] = $ADAT['teremId']; } diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php index ab2ca3c0..d2bf5100 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/nyomtatas/tex.php @@ -640,7 +640,7 @@ $return .= '% ------------------------------------------------------------- % $pluszHIANYZASOK[ $H['ora'][$k] ] .= $k.'.'; } } - while (list($key,$val) = each($pluszHIANYZASOK)) { + foreach($pluszHIANYZASOK as $key=>$val) { $return .= ' '.$key.':'.$val; } } else { // nem hiányzott, csak késett diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/orarend/convert-aSc Timetables Ctrl-Shift-E.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/orarend/convert-aSc Timetables Ctrl-Shift-E.php index 01e14858..fe656b3a 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/orarend/convert-aSc Timetables Ctrl-Shift-E.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/orarend/convert-aSc Timetables Ctrl-Shift-E.php @@ -72,7 +72,9 @@ dump($Tanarok); $oJelek = explode(',', $rec[4]); if (count($oJelek) > 1) $osztalyJel = $oJelek[0].'...'; // Nem fér ki több, csak jelezzük, hogy volt még... else $osztalyJel = $oJelek[0]; // nem érdemes szétvágni, mert nem feleltethető meg... + $osztalyJel = substr($osztalyJel,0,16); $targyJel = mb_convert_encoding($rec[6],'UTF-8','ISO-8859-2'); //.$rec[12]; + $targyJel = substr($targyJel,0,32); $teremIds = explode(',',$rec[9]); // szétvág $tolDt = $ADAT['tolDt']; $igDt = $ADAT['igDt']; diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/diak.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/diak.php index 25ac8d8a..b98dbcb5 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/diak.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/diak.php @@ -434,7 +434,7 @@ $q = "SELECT diak.*, TRIM(CONCAT_WS(' ',viseltNevElotag, ViseltCsaladiNev, viseltUtoNev)) AS diakNev, TIMESTAMPDIFF(YEAR, diak.szuletesiIdo, CURDATE()) AS diakEletkor, dj.dt AS jogviszonyDt, dj.statusz AS jogviszonyStatusz FROM ".__INTEZMENYDBNEV.".diak LEFT JOIN ".__INTEZMENYDBNEV.".diakJogviszony AS dj ON diak.diakId=dj.diakId AND dj.dt=(SELECT MAX(dt) FROM ".__INTEZMENYDBNEV.".diakJogviszony WHERE dt<=CURDATE() AND diakId=dj.diakId) - WHERE diak.diakId IN (".implode(',', array_fill(0, count($diakIds), '%u')).")"; + WHERE diak.diakId IN (".implode(',', array_fill(0, count($diakIds), '%u')).") ORDER BY diakNev"; $r = db_query($q, array('fv' => 'getDiakAdatById', 'modul' => 'naplo_intezmeny', 'result' => $result, 'keyfield'=>$SET['keyfield'],'values' => $diakIds), $lr); @@ -444,15 +444,22 @@ function getDiakBySzulDt($md) { + + $lr = db_connect('naplo_intezmeny'); if ($md == '') $md = date('m-d'); - $q = "SELECT diakId FROM diak WHERE szuletesiIdo like '%%-%s' AND jogviszonyVege is NULL"; // credits: Neumayer Béla <szepi1971@gmail.com> - $diakIds = db_query($q, array('fv' => 'getDiakBySzulDt', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => array($md))); + $q = "SELECT diakId FROM diak WHERE szuletesiIdo like '%s' AND jogviszonyVege is NULL"; // credits: Neumayer Béla <szepi1971@gmail.com> + $diakIds = db_query($q, array('lr'=>$lr,'fv' => 'getDiakBySzulDt', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => array('____-'.$md))); if (count($diakIds)>0) { $RET['diak'] = getDiakAdatById($diakIds); + for ($i=0; $i<count($diakIds); $i++) { + $diakId = $diakIds[$i]; + $RET['diak'][$i]['osztaly'] = getDiakOsztalya($diakId,null,$lr); + } $RET['diakOsztaly'] = getDiakokOsztalyai($diakIds); } else { $RET = false; } + db_close($lr); return $RET; } diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php new file mode 100644 index 00000000..e8568332 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/felveteli.php @@ -0,0 +1,112 @@ +<?php + + function updateLevelToken($oId) { + if ($oId=='') return false; + $token = bin2hex(openssl_random_pseudo_bytes(20)); + $ip = _clientIp(); + $q = "INSERT INTO felveteli_levelLog (oId,generalasDt,ip,token) VALUES ('%s',NOW(),'%s','%s')"; + $v = array($oId,$ip,$token); + db_Query($q,array('modul'=>'naplo','values'=>$v,'debug'=>false),$lr); + return $token; + } + + function checkLevelToken($token) { + + } + + function getIrasbeliEredmeny($nev,$oId) { + $lr = @db_connect('felveteli'); + $q = "SELECT * FROM irasbeli_eredmenyek_"._EV." WHERE nev='%s' AND oId='%s'"; + $RET = db_query($q,array('modul'=>'felveteli', 'result'=>'indexed','values'=>array($nev,$oId),'debug'=>false),$lr); + db_close($lr); + return $RET; + } + + function getFelvetelizoAdatok($nev,$oId) { + $lr = db_connect('naplo'); + if (__FELVETELIADMIN===TRUE && $oId=='') { + $q = "SELECT count(*) AS db FROM felveteli WHERE (nev LIKE '$nev%' or jelige='$nev')"; + } else { + $q = "SELECT count(*) AS db FROM felveteli WHERE (nev='$nev' or jelige='$nev') AND oId='$oId'"; + } + $c = db_query($q,array('result'=>'value','modul'=>'naplo'),$lr); + if ($c==1) { + if (__FELVETELIADMIN===TRUE && $oId=='') + $q = "SELECT * FROM felveteli WHERE (nev LIKE '$nev%' or jelige='$nev')"; + else + $q = "SELECT * FROM felveteli WHERE (nev='$nev' or jelige='$nev') AND oId='$oId'"; + $R = db_query($q,array('result'=>'record','modul'=>'naplo'),$lr); +// if ($R['OM'] != '') { +// $q = "SELECT * FROM iskolak WHERE omkod like '%".$R['OM']."' LIMIT 1"; +// $Rtmp = db_query($q,array('result'=>'indexed'),$lr); +// $R['iskolaAdat'] = $Rtmp[0]; +// } else { + $R['iskolaAdat'] = array(); +// } + } else { + // $_SESSION['alert'][] = 'info:Nincs találat!:'.$c; + if (__FELVETELIADMIN===true && $nev!='') { //chatty error + $q = "SELECT nev,oId FROM felveteli WHERE (nev LIKE '$nev%' or jelige='$nev')"; + $ER = db_query($q,array('result'=>'indexed','modul'=>'naplo'),$lr); + if (count($ER)>0) $_SESSION['alert'][] = 'info:'.json_encode($ER); + } + } + if ($lr) db_close($lr); + return $R; + } +/* + function getSzobeli($jid, $olr = '') { + if (!is_numeric($jid)) return false; + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + //$q = "SELECT * FROM szobeli_"._EV." WHERE jid=$jid ORDER BY napdt,ido,tagozat"; + $q = "SELECT * FROM szobeli_"._EV." WHERE id=$jid ORDER BY napdt,ido,tagozat"; + // 2012 +// $q = "SELECT * FROM szobeli_"._EV." AS sz LEFT JOIN jelentkezok_tagozatok"._EV." AS jel ON sz.id=jel.id AND sz.tagozat=jel.tid +// WHERE sz.id=$jid ORDER BY napdt,ido,tagozat"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + } +*/ + + function getSzobeliByoId($oId, $olr = '') { + if (!is_numeric($oId)) return false; + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + $q = "SELECT * FROM felveteli_szobeli + LEFT JOIN felveteli_tagozat USING (tagozat) + WHERE `oId`='$oId' ORDER BY napdt,ido,felveteli_szobeli.tagozat"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + } + + function getJelentkezes($oId, $olr = '') { + if (!is_numeric($oId)) return false; + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + $q = "SELECT * FROM felveteli_jelentkezes LEFT JOIN felveteli_tagozat USING (tagozat) WHERE oId='%s'"; + $v = array($oId); + $R = db_query($q,array('result'=>'indexed', 'values'=>$v),$lr); + if ($olr=='') db_close($lr); + return $R; + } + + function getIdeiglenesRangsor($oId) { + + if (!is_numeric($oId)) return false; + if ($olr=='') $lr = db_connect('felveteli'); else $lr=$olr; + $q = "SELECT tagozat,rangsor,pont,szobeli,joslat FROM eredmenyek_tagozatonkent_"._EV." WHERE oId='$oId'"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + + } + + function getFelveteliTagozat() { + if ($olr=='') $lr = db_connect('naplo'); else $lr=$olr; + $q = "SELECT * FROM felveteli_tagozat"; + $R = db_query($q,array('result'=>'indexed'),$lr); + if ($olr=='') db_close($lr); + return $R; + } + +?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php index 94ffa865..86cd0e49 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/hirnok.php @@ -191,12 +191,17 @@ global $SZEMESZTER; } // ha diák if (__TANAR === true || (__NAPLOADMIN===true && $tanarId>0)) { if (defined('__USERTANARID') && is_numeric(__USERTANARID)) { + $q = "SELECT COUNT(*) AS dbBeirtOra FROM ora WHERE ki=".__USERTANARID." AND dt <= CURDATE() AND (leiras!='')"; + $dbBeirtOra = db_query($q, array('fv' => 'getBeirasiAdatok', 'modul' => 'naplo', 'result' => 'value')); $q = "SELECT COUNT(*) FROM ora WHERE ki=".__USERTANARID." AND dt <= CURDATE() AND (leiras IS NULL OR leiras='')"; $r = db_query($q, array('fv' => 'getBeirasiAdatok', 'modul' => 'naplo', 'result' => 'value')); - $R[mktime()][] = array( - 'hirnokTipus'=>'haladasiBeiratlan', - 'db'=>$r - ); + if ($dbBeirtOra>0) { // csak ha van mar egy beirt oraja legalabb + $R[mktime()][] = array( + 'hirnokTipus'=>'haladasiBeiratlan', + 'db'=>$r, + 'dbBeirtOra'=>$dbBeirtOra + ); + } $q = "select * from idoszak where NOW() BETWEEN tolDt AND igDt ORDER BY tolDt"; $r = db_query($q, array('fv' => 'getIdoszakAktiv', 'modul' => 'naplo_intezmeny', 'result' => 'indexed')); for ($i=0; $i<count($r); $i++) { diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/kepesites.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/kepesites.php index 4315e64b..34e73988 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/kepesites.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/kepesites.php @@ -17,7 +17,7 @@ } - function getTanarKepesitesIds($tanarIds) { + function getTanarKepesitesIds($tanarIds = null) { $q = "SELECT tanarId, kepesitesId FROM tanarKepesites"; if (is_array($tanarIds)) { diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/orarend.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/orarend.php index 45d8754c..2180b9b1 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/orarend.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/orarend.php @@ -20,7 +20,17 @@ } return getOrarend($TANKORIDK, array('tolDt'=>$tolDt, 'igDt'=>$igDt)); } - + + function getLebegoOrarendiOra($tanarId, $SET=array('tolDt'=>'','igDt'=>'')) { + $tolDt = $SET['tolDt']; $igDt = $SET['igDt']; + initTolIgDt(__TANEV, $tolDt, $igDt); + + $q = "SELECT * FROM orarendiOra LEFT JOIN orarendiOraTankor USING (tanarId,osztalyJel,targyJel) + WHERE igDt>='%s' AND tolDt<='%s' AND tanarId=%u"; + $v = array($tolDt, $igDt, $tanarId); + $RES = db_query($q, array('fv' => 'getLebegoOrarendiOra', 'modul' => 'naplo', 'result' => 'indexed', 'values' => $v)); + return $RES; + } // ++ function getOrarendByTanarId($tanarId, $SET=array('tolDt'=>'','igDt'=>'', 'telephely'=>null, 'orarendiOraTankor'=>false)) { $tolDt = $SET['tolDt']; $igDt = $SET['igDt']; diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanar.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanar.php index 0a931863..77b47fb8 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanar.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanar.php @@ -121,7 +121,7 @@ if (!is_array($tanarIds)) $tanarIds = array($tanarIds); $q = "SELECT *,TRIM(CONCAT_WS(' ',viseltNevElotag, ViseltCsaladiNev, viseltUtoNev)) AS tanarNev FROM ".__INTEZMENYDBNEV.".tanar WHERE tanarId IN (".implode(',', array_fill(0, count($tanarIds), '%u')).")"; - $R = db_query($q, array('fv' => 'getTanarAdatById', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $tanarIds)); + $R = db_query($q, array('fv' => 'getTanarAdatById', 'modul' => 'naplo_intezmeny', 'result' => 'indexed', 'values' => $tanarIds), $olr); // for ($i=0; $i<count($R); $i++) { // $q2 = "SELECT osztalyId // $R[$i]['osztalya'] = @@ -193,4 +193,20 @@ } */ + function getTanarBySzulDt($md) + { + + $lr = db_connect('naplo_intezmeny'); + if ($md == '') $md = date('m-d'); + $q = "SELECT tanarId FROM tanar WHERE szuletesiIdo like '%s' AND kiDt is NULL"; + $tanarIds = db_query($q, array('lr'=>$lr,'fv' => 'getTanarBySzulDt', 'modul' => 'naplo_intezmeny', 'result' => 'idonly', 'values' => array('____-'.$md))); + if (count($tanarIds)>0) { + $RET = getTanarAdatById($tanarIds,$lr); + } else { + $RET = false; + } + db_close($lr); + return $RET; + } + ?> diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php index 05174959..d76607dd 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanarModifier.php @@ -5,7 +5,7 @@ foreach($SET as $k => $v) { $kv[] = "$k='%s'"; } - $q = "UPDATE tanar SET ".implode($kv,',')." WHERE tanarId=%u"; + $q = "UPDATE tanar SET ".implode(',',$kv)." WHERE tanarId=%u"; } $v = array_merge(array_values($SET),array($tanarId)); return db_query($q, array('fv' => 'updateTanarAdat', 'modul' => 'naplo_intezmeny', 'result' => 'update', 'values' => $v), $olr); diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php index fe26de8f..ed26f4ac 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/tanmenet.php @@ -165,7 +165,7 @@ $W = array(); if ($SET['jovahagyva']===true) $W[] = " AND statusz='publikus'"; - $q = "SELECT tankorId, tanmenetId FROM tanmenetTankor LEFT JOIN tanmenet USING (tanmenetId) WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).") AND tanev=%u".implode($W,' '); + $q = "SELECT tankorId, tanmenetId FROM tanmenetTankor LEFT JOIN tanmenet USING (tanmenetId) WHERE tankorId IN (".implode(',', array_fill(0, count($tankorIds), '%u')).") AND tanev=%u".implode(' ',$W); $tankorIds[] = $tanev; return db_query($q, array('fv' => 'getTanmenetByTankorIds', 'modul' => 'naplo_intezmeny', 'result' => 'keyvaluepair', 'values' => $tankorIds)); diff --git a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaradek.php b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaradek.php index 2cb75750..6f08e3b5 100644 --- a/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaradek.php +++ b/mayor-orig/mayor-naplo/www/include/modules/naplo/share/zaradek.php @@ -129,416 +129,415 @@ } if (__TANEV < 2013) { + $Zaradek = array( + 1 => array('sorszam' => '1.', 'szoveg' => 'Felvéve a(z) %iskola címe% iskolába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 2 => array('sorszam' => '1.', 'szoveg' => 'Átvéve a(z) %iskola címe% iskolába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 3 => array('sorszam' => '1.', 'szoveg' => 'A(z) %határozat száma% számú határozattal áthelyezve a(z) %iskola címe% iskolába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 4 => array('sorszam' => '1/A', 'szoveg' => 'Az első évfolyam követelményeit nem teljesítette, munkája előkészítőnek minősül, tanulmányait az első évfolyamon folytathatja.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 5 => array('sorszam' => '2.', 'szoveg' => 'A %fordítás száma% számú fordítással hitelesített bizonyítvány alapján tanulmányait a(z) %évfolyam betűvel% évfolyamon folytatja.', 'dokumentum' => 'beírási napló, törzslap'), + 6 => array('sorszam' => '3.', 'szoveg' => 'Felvette a(z) %iskola címe% iskola.', 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), + 7 => array('sorszam' => '4.', 'szoveg' => 'Tanulmányait évfolyamismétléssel kezdheti meg, illetve osztályozó vizsga letételével folytathatja.', 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), + 8 => array('sorszam' => '4/A', 'szoveg' => '%Tantárgy% tantárgyból tanulmányait egyéni továbbhaladás szerint végzi.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 9 => array('sorszam' => '4/B', 'szoveg' => 'Mentesítve %tantárgy% tantárgyból az értékelés és a minősítés alól.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 10 => array('sorszam' => '4/C', 'szoveg' => '%Tantárgy% tantárgy %évfolyamok% évfolyamainak követelményeit egy tanévben teljesítette a következők szerint: %jegyek%', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 11 => array('sorszam' => '5.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány)'), + 12 => array('sorszam' => '5.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt. Osztályozó vizsgát köteles tenni', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 13 => array('sorszam' => '6.', 'szoveg' => 'Tanulmányait a szülő kérésére (szakértői vélemény alapján) magántanulóként folytatja.', 'dokumentum' => 'osztálynapló, törzslap'), + 14 => array('sorszam' => '7.', 'szoveg' => 'Mentesítve a(z) %tantárgyak neve% tantárgy tanulása alól.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 15 => array('sorszam' => '8.', 'szoveg' => 'Tanulmányi idejének megrövidítése miatt a(z) %évfolyam% évfolyam tantárgyból osztályozó vizsgát köteles tenni.', 'dokumentum' => 'osztálynapló, törzslap'), + 16 => array('sorszam' => '9.', 'szoveg' => 'A(z) évfolyamra megállapított tantervi követelményeket a tanulmányi idő megrövidítésével teljesítette.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 17 => array('sorszam' => '10.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig.', 'dokumentum' => 'osztálynapló'), + 18 => array('sorszam' => '10.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig. Osztályozó vizsgát köteles tenni.', 'dokumentum' => 'osztálynapló'), + 19 => array('sorszam' => '11.', 'szoveg' => 'Mulasztása miatt nem osztályozható, a nevelőtestület határozata értelmében osztályozó vizsgát tehet.', 'dokumentum' => 'osztálynapló, törzslap'), + 20 => array('sorszam' => '12.', 'szoveg' => 'A nevelőtestület határozata: a(z) %évfolyam betűvel% évfolyamba léphet.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 21 => array('sorszam' => '12.', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte, tanulmányait %évfolyam% évfolyamon folytathatja.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 22 => array('sorszam' => '13.', 'szoveg' => 'A tanuló az %évfolyam% évfolyam követelményeit egy tanítási évnél hosszabb ideig, %hónap szám% hónap alatt teljesítette.', 'dokumentum' => 'osztálynapló, törzslap'), + 23 => array('sorszam' => '14.', 'szoveg' => 'A(z) %tantárgy% tantárgyból javítóvizsgát tehet.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 24 => array('sorszam' => '14.', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból %osztályzat% osztályzatot kapott, %évfolyam% évfolyamba léphet.', 'dokumentum' => 'törzslap, bizonyítvány'), + 25 => array('sorszam' => '15.', 'szoveg' => 'A(z) %évfolyam% évfolyam követelményeit nem teljesítette, az évfolyamot megismételheti.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 26 => array('sorszam' => '15/A', 'szoveg' => 'Az %évfolyam% évfolyamot az 1993. évi LXXIX. törvény 72. §-ának (4) bekezdésében foglaltak alapján megismételte.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 27 => array('sorszam' => '16.', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból elégtelen osztályzatot kapott. Évfolyamot ismételni köteles.', 'dokumentum' => 'törzslap, bizonyítvány'), + 28 => array('sorszam' => '17.', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án osztályozó vizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), + 29 => array('sorszam' => '18.', 'szoveg' => 'Osztályozó vizsgát tett.', 'dokumentum' => 'törzslap, bizonyítvány'), + 30 => array('sorszam' => '19.', 'szoveg' => 'A(z) %tantárgy% tantárgy alól %felmentés oka% okból felmentve.', 'dokumentum' => 'törzslap, bizonyítvány'), + 31 => array('sorszam' => '20.', 'szoveg' => 'A(z) %tanóra% tanóra alól %felmentés oka% okból felmentve.', 'dokumentum' => 'törzslap, bizonyítvány'), + 32 => array('sorszam' => '21.', 'szoveg' => 'Az osztályozóvizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), + 33 => array('sorszam' => '21.', 'szoveg' => 'Az beszámoltatóvizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), + 34 => array('sorszam' => '21.', 'szoveg' => 'Az különbözetivizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), + 35 => array('sorszam' => '21.', 'szoveg' => 'Az javítóvizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), + 36 => array('sorszam' => '22.', 'szoveg' => 'Az osztályozó vizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', 'dokumentum' => 'törzslap, bizonyítvány'), + 37 => array('sorszam' => '22.', 'szoveg' => 'Az javítóvizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', 'dokumentum' => 'törzslap, bizonyítvány'), + 38 => array('sorszam' => '23.', 'szoveg' => 'A(z) %szakképesítés% szakképesítés évfolyamán folytatja tanulmányait.', 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), + 39 => array('sorszam' => '24.', 'szoveg' => 'Tanulmányait %ok% okból megszakította, a tanulói jogviszonya %igDt%-ig szünetel.', 'dokumentum' => 'beírási napló, törzslap'), + 40 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya kimaradással megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 41 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya %igazolatlan órák száma% óra igazolatlan mulasztás miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 42 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya egészségügyi alkalmasság miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 43 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya térítési díj fizetési hátralék miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 44 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya tandíj fizetési hátralék miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 45 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya %iskola% iskolába való átvétel miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 46 => array('sorszam' => '26.', 'szoveg' => '%Fegyelmező intézkedés% fegyelmező intézkedésben részesült.', 'dokumentum' => 'osztálynapló'), + 47 => array('sorszam' => '27.', 'szoveg' => '%Fegyelmi büntetés% fegyelmi büntetésben részesült. A büntetés végrehajtása %igDt%-ig felfüggesztve.', 'dokumentum' => ''), + 48 => array('sorszam' => '28.', 'szoveg' => 'Tanköteles tanuló igazolatlan mulasztása esetén a tanuló %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülőt felszólítottam.', 'dokumentum' => 'osztálynapló'), + 49 => array('sorszam' => '28.', 'szoveg' => 'Tanköteles tanuló igazolatlan mulasztása esetén a tanuló ismételt %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülő ellen szabálysértési eljárást kezdeményeztem.', 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), + 50 => array('sorszam' => '29.', 'szoveg' => 'Tankötelezettség megszűnt.', 'dokumentum' => 'beírási napló'), + 51 => array('sorszam' => '30.', 'szoveg' => 'A %szó% szót %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), + 52 => array('sorszam' => '30.', 'szoveg' => 'A %szavak% szavakat %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), + 53 => array('sorszam' => '30.', 'szoveg' => 'A %osztályzat% osztályzatot %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), + 54 => array('sorszam' => '30.', 'szoveg' => 'A %osztályzatok% osztályzatokat %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), + 55 => array('sorszam' => '31.', 'szoveg' => 'A bizonyítvány %lap% lapját téves bejegyzés miatt érvénytelenítettem.', 'dokumentum' => 'bizonyítvány'), + 56 => array('sorszam' => '32.', 'szoveg' => 'Ezt a póttörzslapot a(z) %ok% következtében elvesztett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', 'dokumentum' => 'Pót. törzslap'), + 57 => array('sorszam' => '33.', 'szoveg' => 'Ezt a bizonyítványmásodlatot az elveszett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', 'dokumentum' => 'Pót. törzslap'), + 58 => array('sorszam' => '33/A', 'szoveg' => 'A bizonyítványt %kérelmező% kérelmére a %bizonyítványszám% számú bizonyítvány alapján, téves bejegyzés miatt állítottam ki.', 'dokumentum' => 'törzslap, bizonyítvány'), + 59 => array('sorszam' => '34.', 'szoveg' => 'Pótbizonyítvány. Igazolom, hogy név %Név%, anyja neve %Anyja neve% a(z) %iskola% iskola %szak% szak (szakmai, speciális osztály, két tanítási nyelvű osztály, tagozat) %évfolyam% évfolyamát a(z) %tanév jele% tanévben eredményesen elvégezte.', 'dokumentum' => 'Pót. bizonyítvány'), + 60 => array('sorszam' => '35.', 'szoveg' => 'Az iskola a tanulmányi eredmények bejegyzéséhez, a kiemelkedő tanulmányi eredmények elismeréséhez, a felvételi vizsga eredményeinek bejegyzéséhez %vizsga% vizsga eredményének befejezéséhez vagy egyéb, a záradékok között nem szereplő, a tanulóval kapcsolatos közlés dokumentálásához a záradékokat megfelelően alkalmazhatja, illetve megfelelően záradékot alakíthat ki.', 'dokumentum' => ''), + 61 => array('sorszam' => '36.', 'szoveg' => 'Érettségi vizsgát tehet.', 'dokumentum' => 'törzslap, bizonyítvány'), + 62 => array('sorszam' => '37.', 'szoveg' => 'Gyakorlati képzésről mulasztását %tólDt%-tól %igDt%-ig pótolhatja.', 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), + 63 => array('sorszam' => '38.', 'szoveg' => 'Beírtam a %iskola% iskola első osztályába.', 'dokumentum' => ''), + 64 => array('sorszam' => '39.', 'szoveg' => 'Ezt a haladási naplót %tanítási napok száma% tanítási nappal lezártam.', 'dokumentum' => 'osztálynapló'), + 65 => array('sorszam' => '39.', 'szoveg' => 'Ezt a haladási naplót %tanítási órák száma% tanítási órával lezártam.', 'dokumentum' => 'osztálynapló'), + 66 => array('sorszam' => '40.', 'szoveg' => 'Ezt az osztályozó naplót %tanulók száma% azaz %tanulók száma betűvel% osztályozott tanulóval lezártam.', 'dokumentum' => 'osztálynapló'), + + 67 => array('sorszam' => '1/B', 'szoveg' => 'Felvéve a(z) %iskola címe% %osztály% osztályába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 68 => array('sorszam' => '17/A', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án beszámoltatóvizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), + 69 => array('sorszam' => '17/B', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án különbözetivizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), + 70 => array('sorszam' => '12/A', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 71 => array('sorszam' => '35/D', 'szoveg' => 'A %iktatószám% alapján tanulmányait a %osztály% osztályban folytatja.', 'dokumentum' => 'beírási napló, törzslap'), + 72 => array('sorszam' => '16/A', 'szoveg' => 'Az osztályozó vizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', 'dokumentum' => 'törzslap, bizonyítvány'), + 73 => array('sorszam' => '16/B', 'szoveg' => 'A beszámoltatóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', 'dokumentum' => 'törzslap, bizonyítvány'), + 74 => array('sorszam' => '16/C', 'szoveg' => 'A különbözetivizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', 'dokumentum' => 'törzslap, bizonyítvány'), + 75 => array('sorszam' => '16/D', 'szoveg' => 'A javítóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%. Évfolyamot ismételni köteles.', 'dokumentum' => 'törzslap, bizonyítvány'), + + 100 => array('sorszam' => '35/A', 'szoveg' => '%Egyedi osztálynapló záradék%', 'dokumentum' => 'osztálynapló'), + 101 => array('sorszam' => '35/B', 'szoveg' => '%Egyedi törzslap záradék%', 'dokumentum' => 'törzslap'), + 102 => array('sorszam' => '35/C', 'szoveg' => '%Egyedi bizonyítvány záradék%', 'dokumentum' => 'bizonyítvány'), + 103 => array('sorszam' => '35/F', 'szoveg' => 'A(z) %zaradekId% nyilvántartási számú záradékban rögzített felmentést %dt% napon hatályon kívül helyeztem. ', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 104 => array('sorszam' => '4/C', 'szoveg' => '%miatt% miatt mentesítve a(z) %mi% értékelés(e) és a minősítés(e) alól.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 105 => array('sorszam' => '35/E', 'szoveg' => 'A(z) %tankorDiakFelmentesId% nyilvántartási számú felmentést %dt% napon hatályon kívül helyeztem. ', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 106 => array('sorszam' => '17/C', 'szoveg' => 'A(z) %tantárgy% tantárgyból a(z) %évfolyam% évfolyam anyagából %dátum% napon %osztályzat% eredménnyel osztályozó vizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), + + 107 => array('sorszam' => '25/A', 'szoveg' => 'A tanuló jogviszonya haláleset miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -$Zaradek = array( -1 => array('sorszam' => '1.', 'szoveg' => 'Felvéve a(z) %iskola címe% iskolába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -2 => array('sorszam' => '1.', 'szoveg' => 'Átvéve a(z) %iskola címe% iskolába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -3 => array('sorszam' => '1.', 'szoveg' => 'A(z) %határozat száma% számú határozattal áthelyezve a(z) %iskola címe% iskolába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -4 => array('sorszam' => '1/A', 'szoveg' => 'Az első évfolyam követelményeit nem teljesítette, munkája előkészítőnek minősül, tanulmányait az első évfolyamon folytathatja.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -5 => array('sorszam' => '2.', 'szoveg' => 'A %fordítás száma% számú fordítással hitelesített bizonyítvány alapján tanulmányait a(z) %évfolyam betűvel% évfolyamon folytatja.', 'dokumentum' => 'beírási napló, törzslap'), -6 => array('sorszam' => '3.', 'szoveg' => 'Felvette a(z) %iskola címe% iskola.', 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), -7 => array('sorszam' => '4.', 'szoveg' => 'Tanulmányait évfolyamismétléssel kezdheti meg, illetve osztályozó vizsga letételével folytathatja.', 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), -8 => array('sorszam' => '4/A', 'szoveg' => '%Tantárgy% tantárgyból tanulmányait egyéni továbbhaladás szerint végzi.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -9 => array('sorszam' => '4/B', 'szoveg' => 'Mentesítve %tantárgy% tantárgyból az értékelés és a minősítés alól.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -10 => array('sorszam' => '4/C', 'szoveg' => '%Tantárgy% tantárgy %évfolyamok% évfolyamainak követelményeit egy tanévben teljesítette a következők szerint: %jegyek%', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -11 => array('sorszam' => '5.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány)'), -12 => array('sorszam' => '5.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt. Osztályozó vizsgát köteles tenni', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -13 => array('sorszam' => '6.', 'szoveg' => 'Tanulmányait a szülő kérésére (szakértői vélemény alapján) magántanulóként folytatja.', 'dokumentum' => 'osztálynapló, törzslap'), -14 => array('sorszam' => '7.', 'szoveg' => 'Mentesítve a(z) %tantárgyak neve% tantárgy tanulása alól.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -15 => array('sorszam' => '8.', 'szoveg' => 'Tanulmányi idejének megrövidítése miatt a(z) %évfolyam% évfolyam tantárgyból osztályozó vizsgát köteles tenni.', 'dokumentum' => 'osztálynapló, törzslap'), -16 => array('sorszam' => '9.', 'szoveg' => 'A(z) évfolyamra megállapított tantervi követelményeket a tanulmányi idő megrövidítésével teljesítette.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -17 => array('sorszam' => '10.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig.', 'dokumentum' => 'osztálynapló'), -18 => array('sorszam' => '10.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig. Osztályozó vizsgát köteles tenni.', 'dokumentum' => 'osztálynapló'), -19 => array('sorszam' => '11.', 'szoveg' => 'Mulasztása miatt nem osztályozható, a nevelőtestület határozata értelmében osztályozó vizsgát tehet.', 'dokumentum' => 'osztálynapló, törzslap'), -20 => array('sorszam' => '12.', 'szoveg' => 'A nevelőtestület határozata: a(z) %évfolyam betűvel% évfolyamba léphet.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -21 => array('sorszam' => '12.', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte, tanulmányait %évfolyam% évfolyamon folytathatja.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -22 => array('sorszam' => '13.', 'szoveg' => 'A tanuló az %évfolyam% évfolyam követelményeit egy tanítási évnél hosszabb ideig, %hónap szám% hónap alatt teljesítette.', 'dokumentum' => 'osztálynapló, törzslap'), -23 => array('sorszam' => '14.', 'szoveg' => 'A(z) %tantárgy% tantárgyból javítóvizsgát tehet.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -24 => array('sorszam' => '14.', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból %osztályzat% osztályzatot kapott, %évfolyam% évfolyamba léphet.', 'dokumentum' => 'törzslap, bizonyítvány'), -25 => array('sorszam' => '15.', 'szoveg' => 'A(z) %évfolyam% évfolyam követelményeit nem teljesítette, az évfolyamot megismételheti.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -26 => array('sorszam' => '15/A', 'szoveg' => 'Az %évfolyam% évfolyamot az 1993. évi LXXIX. törvény 72. §-ának (4) bekezdésében foglaltak alapján megismételte.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -27 => array('sorszam' => '16.', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból elégtelen osztályzatot kapott. Évfolyamot ismételni köteles.', 'dokumentum' => 'törzslap, bizonyítvány'), -28 => array('sorszam' => '17.', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án osztályozó vizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), -29 => array('sorszam' => '18.', 'szoveg' => 'Osztályozó vizsgát tett.', 'dokumentum' => 'törzslap, bizonyítvány'), -30 => array('sorszam' => '19.', 'szoveg' => 'A(z) %tantárgy% tantárgy alól %felmentés oka% okból felmentve.', 'dokumentum' => 'törzslap, bizonyítvány'), -31 => array('sorszam' => '20.', 'szoveg' => 'A(z) %tanóra% tanóra alól %felmentés oka% okból felmentve.', 'dokumentum' => 'törzslap, bizonyítvány'), -32 => array('sorszam' => '21.', 'szoveg' => 'Az osztályozóvizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), -33 => array('sorszam' => '21.', 'szoveg' => 'Az beszámoltatóvizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), -34 => array('sorszam' => '21.', 'szoveg' => 'Az különbözetivizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), -35 => array('sorszam' => '21.', 'szoveg' => 'Az javítóvizsga letételére %igDt%-ig halasztást kapott.', 'dokumentum' => 'törzslap, bizonyítvány'), -36 => array('sorszam' => '22.', 'szoveg' => 'Az osztályozó vizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', 'dokumentum' => 'törzslap, bizonyítvány'), -37 => array('sorszam' => '22.', 'szoveg' => 'Az javítóvizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', 'dokumentum' => 'törzslap, bizonyítvány'), -38 => array('sorszam' => '23.', 'szoveg' => 'A(z) %szakképesítés% szakképesítés évfolyamán folytatja tanulmányait.', 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), -39 => array('sorszam' => '24.', 'szoveg' => 'Tanulmányait %ok% okból megszakította, a tanulói jogviszonya %igDt%-ig szünetel.', 'dokumentum' => 'beírási napló, törzslap'), -40 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya kimaradással megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -41 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya %igazolatlan órák száma% óra igazolatlan mulasztás miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -42 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya egészségügyi alkalmasság miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -43 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya térítési díj fizetési hátralék miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -44 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya tandíj fizetési hátralék miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -45 => array('sorszam' => '25.', 'szoveg' => 'A tanuló jogviszonya %iskola% iskolába való átvétel miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -46 => array('sorszam' => '26.', 'szoveg' => '%Fegyelmező intézkedés% fegyelmező intézkedésben részesült.', 'dokumentum' => 'osztálynapló'), -47 => array('sorszam' => '27.', 'szoveg' => '%Fegyelmi büntetés% fegyelmi büntetésben részesült. A büntetés végrehajtása %igDt%-ig felfüggesztve.', 'dokumentum' => ''), -48 => array('sorszam' => '28.', 'szoveg' => 'Tanköteles tanuló igazolatlan mulasztása esetén a tanuló %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülőt felszólítottam.', 'dokumentum' => 'osztálynapló'), -49 => array('sorszam' => '28.', 'szoveg' => 'Tanköteles tanuló igazolatlan mulasztása esetén a tanuló ismételt %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülő ellen szabálysértési eljárást kezdeményeztem.', 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), -50 => array('sorszam' => '29.', 'szoveg' => 'Tankötelezettség megszűnt.', 'dokumentum' => 'beírási napló'), -51 => array('sorszam' => '30.', 'szoveg' => 'A %szó% szót %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), -52 => array('sorszam' => '30.', 'szoveg' => 'A %szavak% szavakat %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), -53 => array('sorszam' => '30.', 'szoveg' => 'A %osztályzat% osztályzatot %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), -54 => array('sorszam' => '30.', 'szoveg' => 'A %osztályzatok% osztályzatokat %helyesbítés%-ra/re helyesbítettem.', 'dokumentum' => 'törzslap, bizonyítvány'), -55 => array('sorszam' => '31.', 'szoveg' => 'A bizonyítvány %lap% lapját téves bejegyzés miatt érvénytelenítettem.', 'dokumentum' => 'bizonyítvány'), -56 => array('sorszam' => '32.', 'szoveg' => 'Ezt a póttörzslapot a(z) %ok% következtében elvesztett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', 'dokumentum' => 'Pót. törzslap'), -57 => array('sorszam' => '33.', 'szoveg' => 'Ezt a bizonyítványmásodlatot az elveszett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', 'dokumentum' => 'Pót. törzslap'), -58 => array('sorszam' => '33/A', 'szoveg' => 'A bizonyítványt %kérelmező% kérelmére a %bizonyítványszám% számú bizonyítvány alapján, téves bejegyzés miatt állítottam ki.', 'dokumentum' => 'törzslap, bizonyítvány'), -59 => array('sorszam' => '34.', 'szoveg' => 'Pótbizonyítvány. Igazolom, hogy név %Név%, anyja neve %Anyja neve% a(z) %iskola% iskola %szak% szak (szakmai, speciális osztály, két tanítási nyelvű osztály, tagozat) %évfolyam% évfolyamát a(z) %tanév jele% tanévben eredményesen elvégezte.', 'dokumentum' => 'Pót. bizonyítvány'), -60 => array('sorszam' => '35.', 'szoveg' => 'Az iskola a tanulmányi eredmények bejegyzéséhez, a kiemelkedő tanulmányi eredmények elismeréséhez, a felvételi vizsga eredményeinek bejegyzéséhez %vizsga% vizsga eredményének befejezéséhez vagy egyéb, a záradékok között nem szereplő, a tanulóval kapcsolatos közlés dokumentálásához a záradékokat megfelelően alkalmazhatja, illetve megfelelően záradékot alakíthat ki.', 'dokumentum' => ''), -61 => array('sorszam' => '36.', 'szoveg' => 'Érettségi vizsgát tehet.', 'dokumentum' => 'törzslap, bizonyítvány'), -62 => array('sorszam' => '37.', 'szoveg' => 'Gyakorlati képzésről mulasztását %tólDt%-tól %igDt%-ig pótolhatja.', 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), -63 => array('sorszam' => '38.', 'szoveg' => 'Beírtam a %iskola% iskola első osztályába.', 'dokumentum' => ''), -64 => array('sorszam' => '39.', 'szoveg' => 'Ezt a haladási naplót %tanítási napok száma% tanítási nappal lezártam.', 'dokumentum' => 'osztálynapló'), -65 => array('sorszam' => '39.', 'szoveg' => 'Ezt a haladási naplót %tanítási órák száma% tanítási órával lezártam.', 'dokumentum' => 'osztálynapló'), -66 => array('sorszam' => '40.', 'szoveg' => 'Ezt az osztályozó naplót %tanulók száma% azaz %tanulók száma betűvel% osztályozott tanulóval lezártam.', 'dokumentum' => 'osztálynapló'), - -67 => array('sorszam' => '1/B', 'szoveg' => 'Felvéve a(z) %iskola címe% %osztály% osztályába.', 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -68 => array('sorszam' => '17/A', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án beszámoltatóvizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), -69 => array('sorszam' => '17/B', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án különbözetivizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), -70 => array('sorszam' => '12/A', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -71 => array('sorszam' => '35/D', 'szoveg' => 'A %iktatószám% alapján tanulmányait a %osztály% osztályban folytatja.', 'dokumentum' => 'beírási napló, törzslap'), -72 => array('sorszam' => '16/A', 'szoveg' => 'Az osztályozó vizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', 'dokumentum' => 'törzslap, bizonyítvány'), -73 => array('sorszam' => '16/B', 'szoveg' => 'A beszámoltatóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', 'dokumentum' => 'törzslap, bizonyítvány'), -74 => array('sorszam' => '16/C', 'szoveg' => 'A különbözetivizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', 'dokumentum' => 'törzslap, bizonyítvány'), -75 => array('sorszam' => '16/D', 'szoveg' => 'A javítóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%. Évfolyamot ismételni köteles.', 'dokumentum' => 'törzslap, bizonyítvány'), - -100 => array('sorszam' => '35/A', 'szoveg' => '%Egyedi osztálynapló záradék%', 'dokumentum' => 'osztálynapló'), -101 => array('sorszam' => '35/B', 'szoveg' => '%Egyedi törzslap záradék%', 'dokumentum' => 'törzslap'), -102 => array('sorszam' => '35/C', 'szoveg' => '%Egyedi bizonyítvány záradék%', 'dokumentum' => 'bizonyítvány'), -103 => array('sorszam' => '35/F', 'szoveg' => 'A(z) %zaradekId% nyilvántartási számú záradékban rögzített felmentést %dt% napon hatályon kívül helyeztem. ', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -104 => array('sorszam' => '4/C', 'szoveg' => '%miatt% miatt mentesítve a(z) %mi% értékelés(e) és a minősítés(e) alól.', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -105 => array('sorszam' => '35/E', 'szoveg' => 'A(z) %tankorDiakFelmentesId% nyilvántartási számú felmentést %dt% napon hatályon kívül helyeztem. ', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -106 => array('sorszam' => '17/C', 'szoveg' => 'A(z) %tantárgy% tantárgyból a(z) %évfolyam% évfolyam anyagából %dátum% napon %osztályzat% eredménnyel osztályozó vizsgát tett.', 'dokumentum' => 'osztálynapló, törzslap'), - -107 => array('sorszam' => '25/A', 'szoveg' => 'A tanuló jogviszonya haláleset miatt megszűnt, a létszámból törölve.', 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), - -); + ); -$ZaradekIndex = array( - 'konferencia' => array( - // továbbléphet - 'következő évfolyamba léphet' => 20, // %évfolyam betűvel% - 'tanulmányait befejezte' => 70, - // vizsgázhat - 'mulasztás miatt osztályozóvizsga' => 19, - 'javítóvizsgát tehet' => 23, // %tantárgy% - // évfolyamot ismételhet - 'előkészítőt végzett' => 4, - 'követelményeket nem teljesítette, évfolyamot ismételhet' => 25, // %évfolyam% - ), - 'jogviszony' => array( - 'megnyitás' => array( - 'felvétel' => 1, - 'felvétel osztályba' => 67, - 'átvétel' => 2, - 'áthelyezés' => 3 - ), - 'változás' => array( - 'magántanuló' => 13, - 'felfüggesztés' => 39 - ), - 'lezárás' => array( - 'kimaradás' => 40, - 'igazolatlan órák' => 41, - 'egészségügyi alkalmasság' => 42, - 'térítési díj hátralék' => 43, - 'tandíj hátralék' => 44, - 'átvétel' => 45, - 'haláleset' => 107, - 'tanulmányait folytathatja' => 21, - 'tanulmányait befejezte' => 70 - ) - ), - 'vizsga halasztás' => array( - 'osztályozó vizsga' => 32, - 'beszámoltatóvizsga' => 33, - 'különbözetivizsga' => 34, - 'javítóvizsga' => 35, - ), - 'vizsga' => array( - 'osztályozó vizsga' => 106, // 28 volt - 'osztályozó vizsga bukás' => 72, - 'beszámoltatóvizsga' => 68, - 'beszámoltatóvizsga bukás' => 73, - 'különbözetivizsga' => 69, - 'különbözetivizsga bukás' => 74, - 'javítóvizsga' => 24, - 'javítóvizsga bukás' => 27, - 'javítóvizsga nem teljesített' => 75, - ), - 'felmentés' => array( - 'értékelés alól' =>9, - 'értékelés és minősítés alól' => 104, - 'óra látogatása alól' => 17, - 'óra látogatása alól osztályozóvizsgával' => 18, - 'tárgy tanulása alól' => 14, - 'törlés' => 105 - ), - 'törzslap feljegyzés' => array( - 'egyedi törzslap záradék' => 101 - ) + $ZaradekIndex = array( + 'konferencia' => array( + // továbbléphet + 'következő évfolyamba léphet' => 20, // %évfolyam betűvel% + 'tanulmányait befejezte' => 70, + // vizsgázhat + 'mulasztás miatt osztályozóvizsga' => 19, + 'javítóvizsgát tehet' => 23, // %tantárgy% + // évfolyamot ismételhet + 'előkészítőt végzett' => 4, + 'követelményeket nem teljesítette, évfolyamot ismételhet' => 25, // %évfolyam% + ), + 'jogviszony' => array( + 'megnyitás' => array( + 'felvétel' => 1, + 'felvétel osztályba' => 67, + 'átvétel' => 2, + 'áthelyezés' => 3 + ), + 'változás' => array( + 'magántanuló' => 13, + 'felfüggesztés' => 39 + ), + 'lezárás' => array( + 'kimaradás' => 40, + 'igazolatlan órák' => 41, + 'egészségügyi alkalmasság' => 42, + 'térítési díj hátralék' => 43, + 'tandíj hátralék' => 44, + 'átvétel' => 45, + 'haláleset' => 107, + 'tanulmányait folytathatja' => 21, + 'tanulmányait befejezte' => 70 + ) + ), + 'vizsga halasztás' => array( + 'osztályozó vizsga' => 32, + 'beszámoltatóvizsga' => 33, + 'különbözetivizsga' => 34, + 'javítóvizsga' => 35, + ), + 'vizsga' => array( + 'osztályozó vizsga' => 106, // 28 volt + 'osztályozó vizsga bukás' => 72, + 'beszámoltatóvizsga' => 68, + 'beszámoltatóvizsga bukás' => 73, + 'különbözetivizsga' => 69, + 'különbözetivizsga bukás' => 74, + 'javítóvizsga' => 24, + 'javítóvizsga bukás' => 27, + 'javítóvizsga nem teljesített' => 75, + ), + 'felmentés' => array( + 'értékelés alól' =>9, + 'értékelés és minősítés alól' => 104, + 'óra látogatása alól' => 17, + 'óra látogatása alól osztályozóvizsgával' => 18, + 'tárgy tanulása alól' => 14, + 'törlés' => 105 + ), + 'törzslap feljegyzés' => array( + 'egyedi törzslap záradék' => 101 + ) -); + ); } else { // 20/2012 EMMI rendelet -$Zaradek = array( -1 => array('sorszam' => '1.', 'szoveg' => 'Felvéve a(z) %iskola címe% iskolába.', - 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -2 => array('sorszam' => '1.', 'szoveg' => 'Átvéve a(z) %iskola címe% iskolába.', - 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -3 => array('sorszam' => '1.', 'szoveg' => 'A(z) %határozat száma% számú határozattal áthelyezve a(z) %iskola címe% iskolába.', - 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -4 => array('sorszam' => '1/A', 'szoveg' => 'Az első évfolyam követelményeit nem teljesítette, munkája előkészítőnek minősül, tanulmányait az első évfolyamon folytathatja.', - 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -5 => array('sorszam' => '2.', 'szoveg' => 'A %fordítás száma% számú fordítással hitelesített bizonyítvány alapján tanulmányait a(z) %évfolyam betűvel% évfolyamon folytatja.', - 'dokumentum' => 'beírási napló, törzslap'), -6 => array('sorszam' => '3.', 'szoveg' => 'Felvette a(z) %iskola címe% iskola.', - 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), -7 => array('sorszam' => '4.', 'szoveg' => 'Tanulmányait évfolyamismétléssel kezdheti meg, vagy osztályozó vizsga letételével folytathatja.', - 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), -8 => array('sorszam' => '5.', 'szoveg' => '%Tantárgy% tantárgyból tanulmányait egyéni továbbhaladás szerint végzi.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -9 => array('sorszam' => '6.', 'szoveg' => 'Mentesítve %tantárgy% tantárgyból az értékelés és a minősítés alól.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -10 => array('sorszam' => '7.', 'szoveg' => '%Tantárgy% tantárgy %évfolyamok% évfolyamainak követelményeit egy tanévben teljesítette a következők szerint: %jegyek%', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -11 => array('sorszam' => '8.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány)'), -12 => array('sorszam' => '8.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt. Osztályozó vizsgát köteles tenni', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -13 => array('sorszam' => '9.', 'szoveg' => 'Tanulmányait a szülő kérésére (szakértői vélemény alapján) magántanulóként folytatja.', - 'dokumentum' => 'osztálynapló, törzslap'), -14 => array('sorszam' => '10.', 'szoveg' => 'Mentesítve a(z) %tantárgyak neve% tantárgy tanulása alól.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -15 => array('sorszam' => '11.', 'szoveg' => 'Tanulmányi idejének megrövidítése miatt a(z) %évfolyam% évfolyam tantárgyaiból osztályozó vizsgát köteles tenni.', - 'dokumentum' => 'osztálynapló, törzslap'), -16 => array('sorszam' => '12.', 'szoveg' => 'A(z) %évfolyam% évfolyamra megállapított tantervi követelményeket a tanulmányi idő megrövidítésével teljesítette.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), // %evfolyam% paraméter nincs a rendeletben -17 => array('sorszam' => '13.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig.', - 'dokumentum' => 'osztálynapló'), // %ezen óráinak% paraméter nincs a rendeletben -18 => array('sorszam' => '13.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig. Osztályozó vizsgát köteles tenni.', - 'dokumentum' => 'osztálynapló'), // %ezen óráinak% paraméter nincs a rendeletben -19 => array('sorszam' => '14.', 'szoveg' => 'Mulasztása miatt nem osztályozható, a nevelőtestület határozata értelmében osztályozó vizsgát tehet.', - 'dokumentum' => 'osztálynapló, törzslap'), -20 => array('sorszam' => '15.', 'szoveg' => 'A nevelőtestület határozata: a(z) %évfolyam betűvel% évfolyamba léphet.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -21 => array('sorszam' => '15.', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte, tanulmányait %évfolyam% évfolyamon folytathatja.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), // csak "iskolai tanulmányait befejezte - nincs? -22 => array('sorszam' => '16.', 'szoveg' => 'A tanuló az %évfolyam% évfolyam követelményeit egy tanítási évnél hosszabb ideig, %hónap szám% hónap alatt teljesítette.', - 'dokumentum' => 'osztálynapló, törzslap'), -23 => array('sorszam' => '17.', 'szoveg' => 'A(z) %tantárgy% tantárgyból javítóvizsgát tehet.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -24 => array('sorszam' => '17.', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból %osztályzat% osztályzatot kapott, %évfolyam% évfolyamba léphet.', - 'dokumentum' => 'törzslap, bizonyítvány'), -25 => array('sorszam' => '18.', 'szoveg' => 'A(z) %évfolyam% évfolyam követelményeit nem teljesítette, az évfolyamot meg kell ismételnie.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -26 => array('sorszam' => '', 'szoveg' => '', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -27 => array('sorszam' => '19', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból elégtelen osztályzatot kapott. Évfolyamot ismételni köteles.', - 'dokumentum' => 'törzslap, bizonyítvány'), -28 => array('sorszam' => '20.', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án osztályozó vizsgát tett.', - 'dokumentum' => 'osztálynapló, törzslap'), -29 => array('sorszam' => '21.', 'szoveg' => 'Osztályozó vizsgát tett.', - 'dokumentum' => 'törzslap, bizonyítvány'), -30 => array('sorszam' => '22.', 'szoveg' => 'A(z) %tantárgy% tantárgy alól %felmentés oka% okból felmentve.', - 'dokumentum' => 'törzslap, bizonyítvány'), -31 => array('sorszam' => '23.', 'szoveg' => 'A(z) %tanóra% tanóra alól %felmentés oka% okból felmentve.', - 'dokumentum' => 'törzslap, bizonyítvány'), -32 => array('sorszam' => '24.', 'szoveg' => 'Az osztályozóvizsga letételére %igDt%-ig halasztást kapott.', - 'dokumentum' => 'törzslap, bizonyítvány'), -33 => array('sorszam' => '24.', 'szoveg' => 'Az beszámoltatóvizsga letételére %igDt%-ig halasztást kapott.', - 'dokumentum' => 'törzslap, bizonyítvány'), -34 => array('sorszam' => '24.', 'szoveg' => 'Az különbözetivizsga letételére %igDt%-ig halasztást kapott.', - 'dokumentum' => 'törzslap, bizonyítvány'), -35 => array('sorszam' => '24.', 'szoveg' => 'Az javítóvizsga letételére %igDt%-ig halasztást kapott.', - 'dokumentum' => 'törzslap, bizonyítvány'), -36 => array('sorszam' => '25.', 'szoveg' => 'Az osztályozó vizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', - 'dokumentum' => 'törzslap, bizonyítvány'), -37 => array('sorszam' => '25.', 'szoveg' => 'Az javítóvizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', - 'dokumentum' => 'törzslap, bizonyítvány'), -38 => array('sorszam' => '26.', 'szoveg' => 'A(z) %szakképesítés% szakképesítés évfolyamán folytatja tanulmányait.', - 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), -39 => array('sorszam' => '27.', 'szoveg' => 'Tanulmányait %ok% okból megszakította, a tanulói jogviszonya %igDt%-ig szünetel.', - 'dokumentum' => 'beírási napló, törzslap'), -40 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya kimaradással megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -41 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya %igazolatlan órák száma% óra igazolatlan mulasztás miatt megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -42 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya egészségügyi alkalmasság miatt megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -43 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya térítési díj fizetési hátralék miatt megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -44 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya tandíj fizetési hátralék miatt megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -45 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya %iskola% iskolába való átvétel miatt megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -46 => array('sorszam' => '29.', 'szoveg' => '%Fegyelmező intézkedés% fegyelmező intézkedésben részesült.', - 'dokumentum' => 'osztálynapló'), -47 => array('sorszam' => '30.', 'szoveg' => '%Fegyelmi büntetés% fegyelmi büntetésben részesült. A büntetés végrehajtása %igDt%-ig felfüggesztve.', - 'dokumentum' => 'törzslap'), -48 => array('sorszam' => '31.', 'szoveg' => 'A tanuló %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülőt felszólítottam.', - 'dokumentum' => 'osztálynapló'), // A "Tanköteles tanuló igazolatlan mulasztása esetén" szöveget magyarázatnak tekintettem -49 => array('sorszam' => '31.', 'szoveg' => 'A tanuló ismételt %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülő ellen szabálysértési eljárást kezdeményeztem.', - 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), // A "Tanköteles tanuló igazolatlan mulasztása esetén" szöveget magyarázatnak tekintettem -50 => array('sorszam' => '32.', 'szoveg' => 'Tankötelezettség megszűnt.', 'dokumentum' => 'beírási napló'), -51 => array('sorszam' => '33.', 'szoveg' => 'A %szó% szót %helyesbítés%-ra/re helyesbítettem.', - 'dokumentum' => 'törzslap, bizonyítvány'), -52 => array('sorszam' => '33.', 'szoveg' => 'A %szavak% szavakat %helyesbítés%-ra/re helyesbítettem.', - 'dokumentum' => 'törzslap, bizonyítvány'), -53 => array('sorszam' => '33.', 'szoveg' => 'A %osztályzat% osztályzatot %helyesbítés%-ra/re helyesbítettem.', - 'dokumentum' => 'törzslap, bizonyítvány'), -54 => array('sorszam' => '33.', 'szoveg' => 'A %osztályzatok% osztályzatokat %helyesbítés%-ra/re helyesbítettem.', - 'dokumentum' => 'törzslap, bizonyítvány'), -55 => array('sorszam' => '34.', 'szoveg' => 'A bizonyítvány %lap% lapját téves bejegyzés miatt érvénytelenítettem.', - 'dokumentum' => 'bizonyítvány'), -56 => array('sorszam' => '35.', 'szoveg' => 'Ezt a póttörzslapot a(z) %ok% következtében elvesztett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', - 'dokumentum' => 'Pót. törzslap'), -57 => array('sorszam' => '36.', 'szoveg' => 'Ezt a bizonyítványmásodlatot az elveszett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', - 'dokumentum' => 'Pót. törzslap'), -58 => array('sorszam' => '37.', 'szoveg' => 'A bizonyítványt %kérelmező% kérelmére a %bizonyítványszám% számú bizonyítvány alapján, téves bejegyzés miatt állítottam ki.', - 'dokumentum' => 'törzslap, bizonyítvány'), -59 => array('sorszam' => '38.', 'szoveg' => 'Pótbizonyítvány. Igazolom, hogy név %Név%, anyja neve %Anyja neve% a(z) %iskola% iskola %szak% szak (szakmai, speciális osztály, két tanítási nyelvű osztály, tagozat) %évfolyam% évfolyamát a(z) %tanév jele% tanévben eredményesen elvégezte.', - 'dokumentum' => 'Pót. bizonyítvány'), -60 => array('sorszam' => '39.', 'szoveg' => 'Az iskola a tanulmányi eredmények bejegyzéséhez, a kiemelkedő tanulmányi eredmények elismeréséhez, a felvételi vizsga eredményeinek bejegyzéséhez %vizsga% vizsga eredményének befejezéséhez vagy egyéb, a záradékok között nem szereplő, a tanulóval kapcsolatos közlés dokumentálásához a záradékokat megfelelően alkalmazhatja, illetve megfelelően záradékot alakíthat ki.', - 'dokumentum' => ''), -61 => array('sorszam' => '40.', 'szoveg' => 'Érettségi vizsgát tehet.', - 'dokumentum' => 'törzslap, bizonyítvány'), -62 => array('sorszam' => '41.', 'szoveg' => 'Gyakorlati képzésről mulasztását %tólDt%-tól %igDt%-ig pótolhatja.', - 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), -63 => array('sorszam' => '42.', 'szoveg' => 'Beírtam a %iskola% iskola első osztályába.', - 'dokumentum' => ''), -64 => array('sorszam' => '43.', 'szoveg' => 'Ezt a naplót %tanítási napok száma% tanítási nappal lezártam.', - 'dokumentum' => 'osztálynapló'), -65 => array('sorszam' => '43.', 'szoveg' => 'Ezt a naplót %tanítási órák száma% tanítási órával lezártam.', - 'dokumentum' => 'osztálynapló'), -66 => array('sorszam' => '44.', 'szoveg' => 'Ezt az osztályozó naplót %tanulók száma% azaz %tanulók száma betűvel% osztályozott tanulóval lezártam.', - 'dokumentum' => 'osztálynapló'), -67 => array('sorszam' => '45.', 'szoveg' => 'Ezt az osztályozó naplót %tanulók száma% azaz %tanulók száma betűvel% osztályozott tanulóval lezártam.', - 'dokumentum' => 'osztálynapló'), -68 => array('sorszam' => '46.', 'szoveg' => 'Igazolom, hogy a tanuló a %tanév jele% tanévben %elvégzett órák száma% óra közösségi szolgálatot teljesített.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -69 => array('sorszam' => '47.', 'szoveg' => 'A tanuló teljesítette az érettségi bizonyítvány kiadásához szükséges közösségi szolgálatot', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -70 => array('sorszam' => '48.', 'szoveg' => '%nemzetiség megnevezése% kiegészítő nemzetiségi tanulmányait a nyolcadik/tizenkettedik évfolyamon befejezte', - 'dokumentum' => 'törzslap, bizonyítvány'), - - - - -100 => array('sorszam' => '1/A', 'szoveg' => 'Felvéve a(z) %iskola címe% %osztály% osztályába.', - 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), -101 => array('sorszam' => '6/B', 'szoveg' => '%miatt% miatt mentesítve a(z) %mi% értékelés(e) és a minősítés(e) alól.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -102 => array('sorszam' => '15/A', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte.', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -103 => array('sorszam' => '19/A', 'szoveg' => 'Az osztályozó vizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', - 'dokumentum' => 'törzslap, bizonyítvány'), -104 => array('sorszam' => '19/B', 'szoveg' => 'A beszámoltatóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', - 'dokumentum' => 'törzslap, bizonyítvány'), -105 => array('sorszam' => '19/C', 'szoveg' => 'A különbözetivizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', - 'dokumentum' => 'törzslap, bizonyítvány'), -106 => array('sorszam' => '19/D', 'szoveg' => 'A javítóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%. Évfolyamot ismételni köteles.', - 'dokumentum' => 'törzslap, bizonyítvány'), // Ez nem kell, mert az eredeti 19-es épp erről az esetről szól - nem? -107 => array('sorszam' => '20/A', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án beszámoltatóvizsgát tett.', - 'dokumentum' => 'osztálynapló, törzslap'), -108 => array('sorszam' => '20/B', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án különbözetivizsgát tett.', - 'dokumentum' => 'osztálynapló, törzslap'), -109 => array('sorszam' => '20/C', 'szoveg' => 'A(z) %tantárgy% tantárgyból a(z) %évfolyam% évfolyam anyagából %dátum% napon %osztályzat% eredménnyel osztályozó vizsgát tett.', - 'dokumentum' => 'osztálynapló, törzslap'), -110 => array('sorszam' => '28/A', 'szoveg' => 'A tanuló jogviszonya haláleset miatt megszűnt, a létszámból törölve.', - 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), -111 => array('sorszam' => '39/A', 'szoveg' => '%Egyedi osztálynapló záradék%', - 'dokumentum' => 'osztálynapló'), -112 => array('sorszam' => '39/B', 'szoveg' => '%Egyedi törzslap záradék%', - 'dokumentum' => 'törzslap'), -113 => array('sorszam' => '39/C', 'szoveg' => '%Egyedi bizonyítvány záradék%', - 'dokumentum' => 'bizonyítvány'), -114 => array('sorszam' => '39/D', 'szoveg' => 'A %iktatószám% alapján tanulmányait a %osztály% osztályban folytatja.', - 'dokumentum' => 'beírási napló, törzslap'), -115 => array('sorszam' => '39/E', 'szoveg' => 'A(z) %tankorDiakFelmentesId% nyilvántartási számú felmentést %dt% napon hatályon kívül helyeztem. ', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -116 => array('sorszam' => '39/F', 'szoveg' => 'A(z) %zaradekId% nyilvántartási számú záradékban rögzített felmentést %dt% napon hatályon kívül helyeztem. ', - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -117 => array('sorszam' => '18/A', 'szoveg' => 'A(z) %évfolyam% évfolyam követelményeit nem teljesítette, az évfolyamot megismételheti.', // nem tanköteles diák esetén - 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), -118 => array('sorszam' => '9/A', 'szoveg' => 'Tanulmányait egyéni munkarendben folytatja.', - 'dokumentum' => 'osztálynapló, törzslap'), - -); - -$ZaradekIndex = array( - 'konferencia' => array( - // továbbléphet - 'következő évfolyamba léphet' => 20, // %évfolyam betűvel% - 'tanulmányait befejezte, következő évfolyamon folytathatja' => 21, // %évfolyam% - 'tanulmányait befejezte' => 102, - 'érettségi vizsgát tehet' => 61, - 'szakképző évfolyamba léphet' => 38, // %szakképesítés% - // mulasztás - de vizsgázat - 'mulasztás miatt osztályozóvizsga' => 19, - ), - 'konferencia bukás' => array( - 'javítóvizsgát tehet' => 23, // %tantárgy% - 'előkészítőt végzett' => 4, // csak első évfolyamon!! - 'követelményeket nem teljesítette, évfolyamot ismétel' => 25, // %évfolyam% - tanköteles eset - 'követelményeket nem teljesítette, évfolyamot ismételhet' => 117, // %évfolyam% - nem tanköteles eset - ), - 'jogviszony megnyitás' => array( - 'felvétel' => 1, - 'felvétel osztályba' => 100, // %iskola címe%, %osztály% - 'átvétel' => 2, // %iskola címe% - 'áthelyezés' => 3, // %határozat száma%, %iskola címe% - ), - 'jogviszony változás' => array( - 'magántanuló' => 13, - 'egyéni munkarend' => 118, - 'felfüggesztés' => 39 // %ok%, %igDt% - ), - 'jogviszony lezárás' => array( - 'kimaradás' => 40, - 'igazolatlan órák' => 41, // %igazolatlan órák száma% - 'egészségügyi alkalmasság' => 42, - 'térítési díj hátralék' => 43, - 'tandíj hátralék' => 44, - 'átvétel' => 45, // %iskola% - 'haláleset' => 110, - 'tanulmányait folytathatja' => 21, // %évfolyam% - 'tanulmányait befejezte' => 102, - ), - 'vizsga halasztás' => array( - 'osztályozó vizsga' => 32, // %igDt% - 'beszámoltatóvizsga' => 33, // %igDt% - 'különbözetivizsga' => 34, // %igDt% - 'javítóvizsga' => 35, // %igDt% - ), - 'vizsga' => array( - 'osztályozó vizsga' => 109, // %tantárgy%, %évfolyam%, %dátum%, %osztályzat% - 'osztályozó vizsga bukás' => 103, // %tantárgy%, %osztályzat% - 'beszámoltatóvizsga' => 107, // %tantárgy% - 'beszámoltatóvizsga bukás' => 104, // %tantárgy%, %osztályzat% - 'különbözetivizsga' => 108, // %tantárgy% - 'különbözetivizsga bukás' => 105, // %tantárgy%, %osztályzat% - 'javítóvizsga' => 24, // %tárgy%, %osztályzat%, %évfolyam% - 'javítóvizsga bukás' => 27, // %tantárgy% - 'javítóvizsga nem teljesített' => 25, // %évfolyam% (az évfolyam követelményeit) - ), - 'felmentés' => array( - 'értékelés alól' => 9, // %tantárgy% - 'értékelés és minősítés alól' => 101, // %miatt%, %mi% - 'óra látogatása alól' => 17, // %tantárgy%, %ezen óráinka%, %tólDt%, %igDt% - 'óra látogatása alól osztályozóvizsgával' => 18, // %tantárgy%, %ezen óráinka%, %tólDt%, %igDt% - 'tárgy tanulása alól' => 14, // %tantárgyak neve% - 'törlés' => 115, // %tankorDiakFelmentesId% - ), - 'törzslap feljegyzés' => array( - 'egyedi törzslap záradék' => 112 - ) + $Zaradek = array( + 1 => array('sorszam' => '1.', 'szoveg' => 'Felvéve a(z) %iskola címe% iskolába.', + 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 2 => array('sorszam' => '1.', 'szoveg' => 'Átvéve a(z) %iskola címe% iskolába.', + 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 3 => array('sorszam' => '1.', 'szoveg' => 'A(z) %határozat száma% számú határozattal áthelyezve a(z) %iskola címe% iskolába.', + 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 4 => array('sorszam' => '1/A', 'szoveg' => 'Az első évfolyam követelményeit nem teljesítette, munkája előkészítőnek minősül, tanulmányait az első évfolyamon folytathatja.', + 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 5 => array('sorszam' => '2.', 'szoveg' => 'A %fordítás száma% számú fordítással hitelesített bizonyítvány alapján tanulmányait a(z) %évfolyam betűvel% évfolyamon folytatja.', + 'dokumentum' => 'beírási napló, törzslap'), + 6 => array('sorszam' => '3.', 'szoveg' => 'Felvette a(z) %iskola címe% iskola.', + 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), + 7 => array('sorszam' => '4.', 'szoveg' => 'Tanulmányait évfolyamismétléssel kezdheti meg, vagy osztályozó vizsga letételével folytathatja.', + 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), + 8 => array('sorszam' => '5.', 'szoveg' => '%Tantárgy% tantárgyból tanulmányait egyéni továbbhaladás szerint végzi.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 9 => array('sorszam' => '6.', 'szoveg' => 'Mentesítve %tantárgy% tantárgyból az értékelés és a minősítés alól.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 10 => array('sorszam' => '7.', 'szoveg' => '%Tantárgy% tantárgy %évfolyamok% évfolyamainak követelményeit egy tanévben teljesítette a következők szerint: %jegyek%', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 11 => array('sorszam' => '8.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány)'), + 12 => array('sorszam' => '8.', 'szoveg' => 'Egyes tantárgyak tanórai látogatása alól az %tanév jele% tanévben felmentve %felmentés oka% miatt. Osztályozó vizsgát köteles tenni', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 13 => array('sorszam' => '9.', 'szoveg' => 'Tanulmányait a szülő kérésére (szakértői vélemény alapján) magántanulóként folytatja.', + 'dokumentum' => 'osztálynapló, törzslap'), + 14 => array('sorszam' => '10.', 'szoveg' => 'Mentesítve a(z) %tantárgyak neve% tantárgy tanulása alól.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 15 => array('sorszam' => '11.', 'szoveg' => 'Tanulmányi idejének megrövidítése miatt a(z) %évfolyam% évfolyam tantárgyaiból osztályozó vizsgát köteles tenni.', + 'dokumentum' => 'osztálynapló, törzslap'), + 16 => array('sorszam' => '12.', 'szoveg' => 'A(z) %évfolyam% évfolyamra megállapított tantervi követelményeket a tanulmányi idő megrövidítésével teljesítette.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), // %evfolyam% paraméter nincs a rendeletben + 17 => array('sorszam' => '13.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig.', + 'dokumentum' => 'osztálynapló'), // %ezen óráinak% paraméter nincs a rendeletben + 18 => array('sorszam' => '13.', 'szoveg' => 'A(z) %tantárgy% tantárgy %ezen óráinak% óráinak látogatása alól felmentve %tólDt%-tól %igDt%-ig. Osztályozó vizsgát köteles tenni.', + 'dokumentum' => 'osztálynapló'), // %ezen óráinak% paraméter nincs a rendeletben + 19 => array('sorszam' => '14.', 'szoveg' => 'Mulasztása miatt nem osztályozható, a nevelőtestület határozata értelmében osztályozó vizsgát tehet.', + 'dokumentum' => 'osztálynapló, törzslap'), + 20 => array('sorszam' => '15.', 'szoveg' => 'A nevelőtestület határozata: a(z) %évfolyam betűvel% évfolyamba léphet.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 21 => array('sorszam' => '15.', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte, tanulmányait %évfolyam% évfolyamon folytathatja.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), // csak "iskolai tanulmányait befejezte - nincs? + 22 => array('sorszam' => '16.', 'szoveg' => 'A tanuló az %évfolyam% évfolyam követelményeit egy tanítási évnél hosszabb ideig, %hónap szám% hónap alatt teljesítette.', + 'dokumentum' => 'osztálynapló, törzslap'), + 23 => array('sorszam' => '17.', 'szoveg' => 'A(z) %tantárgy% tantárgyból javítóvizsgát tehet.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 24 => array('sorszam' => '17.', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból %osztályzat% osztályzatot kapott, %évfolyam% évfolyamba léphet.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 25 => array('sorszam' => '18.', 'szoveg' => 'A(z) %évfolyam% évfolyam követelményeit nem teljesítette, az évfolyamot meg kell ismételnie.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 26 => array('sorszam' => '', 'szoveg' => '', 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 27 => array('sorszam' => '19', 'szoveg' => 'A javítóvizsgán %tantárgy% tantárgyból elégtelen osztályzatot kapott. Évfolyamot ismételni köteles.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 28 => array('sorszam' => '20.', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án osztályozó vizsgát tett.', + 'dokumentum' => 'osztálynapló, törzslap'), + 29 => array('sorszam' => '21.', 'szoveg' => 'Osztályozó vizsgát tett.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 30 => array('sorszam' => '22.', 'szoveg' => 'A(z) %tantárgy% tantárgy alól %felmentés oka% okból felmentve.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 31 => array('sorszam' => '23.', 'szoveg' => 'A(z) %tanóra% tanóra alól %felmentés oka% okból felmentve.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 32 => array('sorszam' => '24.', 'szoveg' => 'Az osztályozóvizsga letételére %igDt%-ig halasztást kapott.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 33 => array('sorszam' => '24.', 'szoveg' => 'Az beszámoltatóvizsga letételére %igDt%-ig halasztást kapott.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 34 => array('sorszam' => '24.', 'szoveg' => 'Az különbözetivizsga letételére %igDt%-ig halasztást kapott.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 35 => array('sorszam' => '24.', 'szoveg' => 'Az javítóvizsga letételére %igDt%-ig halasztást kapott.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 36 => array('sorszam' => '25.', 'szoveg' => 'Az osztályozó vizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 37 => array('sorszam' => '25.', 'szoveg' => 'Az javítóvizsgát engedéllyel a(z) %iskola% iskolában független vizsgabizottság előtt tette le.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 38 => array('sorszam' => '26.', 'szoveg' => 'A(z) %szakképesítés% szakképesítés évfolyamán folytatja tanulmányait.', + 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), + 39 => array('sorszam' => '27.', 'szoveg' => 'Tanulmányait %ok% okból megszakította, a tanulói jogviszonya %igDt%-ig szünetel.', + 'dokumentum' => 'beírási napló, törzslap'), + 40 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya kimaradással megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 41 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya %igazolatlan órák száma% óra igazolatlan mulasztás miatt megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 42 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya egészségügyi alkalmasság miatt megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 43 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya térítési díj fizetési hátralék miatt megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 44 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya tandíj fizetési hátralék miatt megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 45 => array('sorszam' => '28.', 'szoveg' => 'A tanuló jogviszonya %iskola% iskolába való átvétel miatt megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 46 => array('sorszam' => '29.', 'szoveg' => '%Fegyelmező intézkedés% fegyelmező intézkedésben részesült.', + 'dokumentum' => 'osztálynapló'), + 47 => array('sorszam' => '30.', 'szoveg' => '%Fegyelmi büntetés% fegyelmi büntetésben részesült. A büntetés végrehajtása %igDt%-ig felfüggesztve.', + 'dokumentum' => 'törzslap'), + 48 => array('sorszam' => '31.', 'szoveg' => 'A tanuló %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülőt felszólítottam.', + 'dokumentum' => 'osztálynapló'), // A "Tanköteles tanuló igazolatlan mulasztása esetén" szöveget magyarázatnak tekintettem + 49 => array('sorszam' => '31.', 'szoveg' => 'A tanuló ismételt %igazolatlan órák száma% óra igazolatlan mulasztása miatt a szülő ellen szabálysértési eljárást kezdeményeztem.', + 'dokumentum' => 'beírási napló, törzslap, osztálynapló'), // A "Tanköteles tanuló igazolatlan mulasztása esetén" szöveget magyarázatnak tekintettem + 50 => array('sorszam' => '32.', 'szoveg' => 'Tankötelezettség megszűnt.', 'dokumentum' => 'beírási napló'), + 51 => array('sorszam' => '33.', 'szoveg' => 'A %szó% szót %helyesbítés%-ra/re helyesbítettem.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 52 => array('sorszam' => '33.', 'szoveg' => 'A %szavak% szavakat %helyesbítés%-ra/re helyesbítettem.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 53 => array('sorszam' => '33.', 'szoveg' => 'A %osztályzat% osztályzatot %helyesbítés%-ra/re helyesbítettem.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 54 => array('sorszam' => '33.', 'szoveg' => 'A %osztályzatok% osztályzatokat %helyesbítés%-ra/re helyesbítettem.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 55 => array('sorszam' => '34.', 'szoveg' => 'A bizonyítvány %lap% lapját téves bejegyzés miatt érvénytelenítettem.', + 'dokumentum' => 'bizonyítvány'), + 56 => array('sorszam' => '35.', 'szoveg' => 'Ezt a póttörzslapot a(z) %ok% következtében elvesztett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', + 'dokumentum' => 'Pót. törzslap'), + 57 => array('sorszam' => '36.', 'szoveg' => 'Ezt a bizonyítványmásodlatot az elveszett (megsemmisült) eredeti helyett %adatforrás% adatai (adatok) alapján állítottam ki.', + 'dokumentum' => 'Pót. törzslap'), + 58 => array('sorszam' => '37.', 'szoveg' => 'A bizonyítványt %kérelmező% kérelmére a %bizonyítványszám% számú bizonyítvány alapján, téves bejegyzés miatt állítottam ki.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 59 => array('sorszam' => '38.', 'szoveg' => 'Pótbizonyítvány. Igazolom, hogy név %Név%, anyja neve %Anyja neve% a(z) %iskola% iskola %szak% szak (szakmai, speciális osztály, két tanítási nyelvű osztály, tagozat) %évfolyam% évfolyamát a(z) %tanév jele% tanévben eredményesen elvégezte.', + 'dokumentum' => 'Pót. bizonyítvány'), + 60 => array('sorszam' => '39.', 'szoveg' => 'Az iskola a tanulmányi eredmények bejegyzéséhez, a kiemelkedő tanulmányi eredmények elismeréséhez, a felvételi vizsga eredményeinek bejegyzéséhez %vizsga% vizsga eredményének befejezéséhez vagy egyéb, a záradékok között nem szereplő, a tanulóval kapcsolatos közlés dokumentálásához a záradékokat megfelelően alkalmazhatja, illetve megfelelően záradékot alakíthat ki.', + 'dokumentum' => ''), + 61 => array('sorszam' => '40.', 'szoveg' => 'Érettségi vizsgát tehet.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 62 => array('sorszam' => '41.', 'szoveg' => 'Gyakorlati képzésről mulasztását %tólDt%-tól %igDt%-ig pótolhatja.', + 'dokumentum' => 'törzslap, bizonyítvány, osztálynapló'), + 63 => array('sorszam' => '42.', 'szoveg' => 'Beírtam a %iskola% iskola első osztályába.', + 'dokumentum' => ''), + 64 => array('sorszam' => '43.', 'szoveg' => 'Ezt a naplót %tanítási napok száma% tanítási nappal lezártam.', + 'dokumentum' => 'osztálynapló'), + 65 => array('sorszam' => '43.', 'szoveg' => 'Ezt a naplót %tanítási órák száma% tanítási órával lezártam.', + 'dokumentum' => 'osztálynapló'), + 66 => array('sorszam' => '44.', 'szoveg' => 'Ezt az osztályozó naplót %tanulók száma% azaz %tanulók száma betűvel% osztályozott tanulóval lezártam.', + 'dokumentum' => 'osztálynapló'), + 67 => array('sorszam' => '45.', 'szoveg' => 'Ezt az osztályozó naplót %tanulók száma% azaz %tanulók száma betűvel% osztályozott tanulóval lezártam.', + 'dokumentum' => 'osztálynapló'), + 68 => array('sorszam' => '46.', 'szoveg' => 'Igazolom, hogy a tanuló a %tanév jele% tanévben %elvégzett órák száma% óra közösségi szolgálatot teljesített.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 69 => array('sorszam' => '47.', 'szoveg' => 'A tanuló teljesítette a rendes érettségi vizsga megkezdéséhez szükséges közösségi szolgálatot.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 70 => array('sorszam' => '48.', 'szoveg' => '%nemzetiség megnevezése% kiegészítő nemzetiségi tanulmányait a nyolcadik/tizenkettedik évfolyamon befejezte', + 'dokumentum' => 'törzslap, bizonyítvány'), + 71 => array('sorszam' => '49.', 'szoveg' => 'A 20 hónapos köznevelési HÍD II. program első évének tanulmányi követelményeit teljesítette', + 'dokumentum' => 'osztálynapló, törzslap'), + 100 => array('sorszam' => '1/A', 'szoveg' => 'Felvéve a(z) %iskola címe% %osztály% osztályába.', + 'dokumentum' => 'beírási napló, osztálynapló, törzslap, bizonyítvány'), + 101 => array('sorszam' => '6/B', 'szoveg' => '%miatt% miatt mentesítve a(z) %mi% értékelés(e) és a minősítés(e) alól.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 102 => array('sorszam' => '15/A', 'szoveg' => 'A nevelőtestület határozata: iskolai tanulmányait befejezte.', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 103 => array('sorszam' => '19/A', 'szoveg' => 'Az osztályozó vizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 104 => array('sorszam' => '19/B', 'szoveg' => 'A beszámoltatóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 105 => array('sorszam' => '19/C', 'szoveg' => 'A különbözetivizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%.', + 'dokumentum' => 'törzslap, bizonyítvány'), + 106 => array('sorszam' => '19/D', 'szoveg' => 'A javítóvizsgán a %tantárgy% tantárgy követelményeit nem teljesítette - %osztályzat%. Évfolyamot ismételni köteles.', + 'dokumentum' => 'törzslap, bizonyítvány'), // Ez nem kell, mert az eredeti 19-es épp erről az esetről szól - nem? + 107 => array('sorszam' => '20/A', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án beszámoltatóvizsgát tett.', + 'dokumentum' => 'osztálynapló, törzslap'), + 108 => array('sorszam' => '20/B', 'szoveg' => 'A(z) %tantárgy% tantárgyból %dátum%-án különbözetivizsgát tett.', + 'dokumentum' => 'osztálynapló, törzslap'), + 109 => array('sorszam' => '20/C', 'szoveg' => 'A(z) %tantárgy% tantárgyból a(z) %évfolyam% évfolyam anyagából %dátum% napon %osztályzat% eredménnyel osztályozó vizsgát tett.', + 'dokumentum' => 'osztálynapló, törzslap'), + 110 => array('sorszam' => '28/A', 'szoveg' => 'A tanuló jogviszonya haláleset miatt megszűnt, a létszámból törölve.', + 'dokumentum' => 'beírási napló, törzslap, bizonyítvány, osztálynapló'), + 111 => array('sorszam' => '39/A', 'szoveg' => '%Egyedi osztálynapló záradék%', + 'dokumentum' => 'osztálynapló'), + 112 => array('sorszam' => '39/B', 'szoveg' => '%Egyedi törzslap záradék%', + 'dokumentum' => 'törzslap'), + 113 => array('sorszam' => '39/C', 'szoveg' => '%Egyedi bizonyítvány záradék%', + 'dokumentum' => 'bizonyítvány'), + 114 => array('sorszam' => '39/D', 'szoveg' => 'A %iktatószám% alapján tanulmányait a %osztály% osztályban folytatja.', + 'dokumentum' => 'beírási napló, törzslap'), + 115 => array('sorszam' => '39/E', 'szoveg' => 'A(z) %tankorDiakFelmentesId% nyilvántartási számú felmentést %dt% napon hatályon kívül helyeztem. ', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 116 => array('sorszam' => '39/F', 'szoveg' => 'A(z) %zaradekId% nyilvántartási számú záradékban rögzített felmentést %dt% napon hatályon kívül helyeztem. ', + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 117 => array('sorszam' => '18/A', 'szoveg' => 'A(z) %évfolyam% évfolyam követelményeit nem teljesítette, az évfolyamot megismételheti.', // nem tanköteles diák esetén + 'dokumentum' => 'osztálynapló, törzslap, bizonyítvány'), + 118 => array('sorszam' => '9/A', 'szoveg' => 'Tanulmányait egyéni munkarendben folytatja.', + 'dokumentum' => 'osztálynapló, törzslap'), + 119 => array('sorszam' => '9/B', 'szoveg' => 'Tanulmányait a szülő kérésére (szakértői vélemény alapján) egyéni munkarend keretében folytatja.', + 'dokumentum' => 'osztálynapló, törzslap'), + + ); + + $ZaradekIndex = array( + 'konferencia' => array( + // továbbléphet + 'következő évfolyamba léphet' => 20, // %évfolyam betűvel% + 'tanulmányait befejezte, következő évfolyamon folytathatja' => 21, // %évfolyam% + 'tanulmányait befejezte' => 102, + 'érettségi vizsgát tehet' => 61, + 'szakképző évfolyamba léphet' => 38, // %szakképesítés% + // mulasztás - de vizsgázat + 'mulasztás miatt osztályozóvizsga' => 19, + ), + 'konferencia bukás' => array( + 'javítóvizsgát tehet' => 23, // %tantárgy% + 'előkészítőt végzett' => 4, // csak első évfolyamon!! + 'követelményeket nem teljesítette, évfolyamot ismétel' => 25, // %évfolyam% - tanköteles eset + 'követelményeket nem teljesítette, évfolyamot ismételhet' => 117, // %évfolyam% - nem tanköteles eset + ), + 'jogviszony megnyitás' => array( + 'felvétel' => 1, + 'felvétel osztályba' => 100, // %iskola címe%, %osztály% + 'átvétel' => 2, // %iskola címe% + 'áthelyezés' => 3, // %határozat száma%, %iskola címe% + ), + 'jogviszony változás' => array( + 'magántanuló' => 13, + 'egyéni munkarend' => 118, + 'felfüggesztés' => 39 // %ok%, %igDt% + ), + 'jogviszony lezárás' => array( + 'kimaradás' => 40, + 'igazolatlan órák' => 41, // %igazolatlan órák száma% + 'egészségügyi alkalmasság' => 42, + 'térítési díj hátralék' => 43, + 'tandíj hátralék' => 44, + 'átvétel' => 45, // %iskola% + 'haláleset' => 110, + 'tanulmányait folytathatja' => 21, // %évfolyam% + 'tanulmányait befejezte' => 102, + ), + 'vizsga halasztás' => array( + 'osztályozó vizsga' => 32, // %igDt% + 'beszámoltatóvizsga' => 33, // %igDt% + 'különbözetivizsga' => 34, // %igDt% + 'javítóvizsga' => 35, // %igDt% + ), + 'vizsga' => array( + 'osztályozó vizsga' => 109, // %tantárgy%, %évfolyam%, %dátum%, %osztályzat% + 'osztályozó vizsga bukás' => 103, // %tantárgy%, %osztályzat% + 'beszámoltatóvizsga' => 107, // %tantárgy% + 'beszámoltatóvizsga bukás' => 104, // %tantárgy%, %osztályzat% + 'különbözetivizsga' => 108, // %tantárgy% + 'különbözetivizsga bukás' => 105, // %tantárgy%, %osztályzat% + 'javítóvizsga' => 24, // %tárgy%, %osztályzat%, %évfolyam% + 'javítóvizsga bukás' => 27, // %tantárgy% + 'javítóvizsga nem teljesített' => 25, // %évfolyam% (az évfolyam követelményeit) + ), + 'felmentés' => array( + 'értékelés alól' => 9, // %tantárgy% + 'értékelés és minősítés alól' => 101, // %miatt%, %mi% + 'óra látogatása alól' => 17, // %tantárgy%, %ezen óráinka%, %tólDt%, %igDt% + 'óra látogatása alól osztályozóvizsgával' => 18, // %tantárgy%, %ezen óráinka%, %tólDt%, %igDt% + 'tárgy tanulása alól' => 14, // %tantárgyak neve% + 'törlés' => 115, // %tankorDiakFelmentesId% + ), + 'törzslap feljegyzés' => array( + 'egyedi törzslap záradék' => 112 + ) ); diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..cf39dcfb --- /dev/null +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/dokumentum/dokumentum.php @@ -0,0 +1,5 @@ +<?php + + define('__PAGETITLE','Dokumentumok, közzétételi listák'); + +?> diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php new file mode 100644 index 00000000..bc0786eb --- /dev/null +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/felveteli/szobeli.php @@ -0,0 +1,38 @@ +<?php + + define('__PAGETITLE','Felvételi - lekérdezés'); + define('_NEV_JELIGE','Név/Jelige'); + define('_OKTID','Oktatási azonosító'); + define('_OID',_OKTID); + define('_LEKERDEZES','Lekérdező'); + define('_LEKERDEZ','Lekérdez'); + + define('_ADATOK','Adatlap'); + define('_AN','Édesanyja neve'); + define('_CIM','Lakóhely'); + define('_ERTESITESI_CIM','Tartózkodási hely'); + define('_SZULETETT','Született'); + + define('_HIBAS_HIANYOS_ADAT','Hibás, nem pontos vagy hiányos adat!'); + define('_HIANYOS_SZOBELI_ADAT','<span class="icon-time"></span> A szóbeli beosztás és adategyeztetés folyamatban van, kérjük látogasson vissza egy későbbi időpontban...<br/><br/>Türelmét és megértését köszönjük!'); + + define('_BIZOTTSAG','Bizottság'); + define('_PLEASE_WAIT','Kérem várjon...'); + define('_BEHIVOTTAK','Behívottak'); + + define('_HIBAS','Hibás!'); + define('_NINCS_BEHIVVA','Nincs behívva'); + + define('_EREDMENY','Eredmények'); + define('_EVFOLYAM','évfolyam'); + + define('_MAGYAR','Magyar'); + define('_MATEK','Matematika'); + + define('_ATLAG','Bizonyítvány átlag'); + define('_IRASBELI','Írásbeli'); + + define('_PONT','pont'); + + define('_LEKERDEZES_DT','Lekérdezés ideje:'); +?> diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/diak.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/diak.php index c0e95f83..90f0d7df 100644 --- a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/diak.php +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/diak.php @@ -10,7 +10,7 @@ define('_MODOSITAS','Módosítás'); define('_FELFUGGESZTES_OK','jogviszony szüneteltetés oka'); define('_FELFUGGESZTES_IG_DT','jogviszony szüneteltetés (tervezett) vége'); - define('_JOGVISZONY_LEZARAS_ZARADEK','jogviszony lázárás záradéka'); + define('_JOGVISZONY_LEZARAS_ZARADEK','jogviszony lezárás záradéka'); define('_LEZARAS_IGAZOLATLAN_ORAK_SZAMA','igazolatlan órák száma'); define('_LEZARAS_ISKOLA','új iskola'); /* diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/osztaly.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/osztaly.php index ba29df82..6329029f 100644 --- a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/osztaly.php +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/osztaly.php @@ -1,6 +1,6 @@ <?php - define('__PAGETITLE','Osztályok adminisztálása'); + define('__PAGETITLE','Osztály'); define('__PAGEHELP','Új osztály felvételének vagy a kiválasztott osztály osztályfőnökének, tagjainak és telephelyének módosító oldala. Az osztálytagok képzéshez rendelésének előfeltétele, hogy az osztályhoz a "Képzések" menüpontban a választható képzések az osztályhoz legyenek rendelve.'); diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php index 149051c8..e3110414 100644 --- a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanar.php @@ -4,7 +4,6 @@ define('_FILESELECTTITLE','A tanárok adatainak frissítése'); - define('_TANAR_ALAPADATAI','Tanár adatai (alap)'); define('_TANAR_SZULETESI_ADATAI','Születési adatok'); define('_UJ_TANAR','Új tanár felvétele'); @@ -47,6 +46,8 @@ define('_TITULUS','Titulus'); define('_TITULUSROVID','Titulus röviden'); define('_EMAIL','Email'); + define('_ELERHETOSEG','Eléthetőség (publikus)'); + define('_KRETANEV','Kréta név'); define('_TOVABBKEPZES_FORDULO_DT','A továbbképzési ciklus vége'); define('_TOVABBKEPZES_FORDULO_DT_HELP','A továbbképzési ciklus végét jelző dátum. A dátum éve a hétéves ciklus mindenkori utolsó évét jelzi. Lásd még: továbbképzések'); diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php new file mode 100644 index 00000000..869a8484 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/intezmeny/tanarok.php @@ -0,0 +1,4 @@ +<?php + + define('__PAGETITLE','Tanári kar'); +?> diff --git a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/szulinap.php b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/szulinap.php index d770fd52..3140f521 100644 --- a/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/szulinap.php +++ b/mayor-orig/mayor-naplo/www/lang/hu_HU/module-naplo/szulinap.php @@ -1,5 +1,5 @@ <?php define('_HAPPYBIRTHDAY','Boldog Szülinapot Kívánunk! :)'); - + define('__PAGETITLE','Heti születésnaposok'); ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/admin/debug-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/admin/debug-pre.php index 1eed8cb9..d6862ba9 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/admin/debug-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/admin/debug-pre.php @@ -17,6 +17,8 @@ if (__NAPLOADMIN!==true) { ini_set('xdebug.var_display_max_children', '4096'); ini_set('xdebug.var_display_max_data', '4096'); + $ADAT['debug_result']['post_max_size'] = ini_get('post_max_size'); + $ADAT['debug_result']['config']['backend'] = $config['backend']; $ADAT['debug_result']['config']['MYSQLI_ENABLED'] = MYSQLI_ENABLED; $ADAT['debug_result']['config']['__PORTAL_CODE'] = __PORTAL_CODE; diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php new file mode 100644 index 00000000..3ff6eab7 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum-pre.php @@ -0,0 +1,49 @@ +<?php + +/* + dump(addDokumentum(array('dokumentumLeiras'=>'Éves Munkaterv','dokumentumUrl'=> +'http://szerver4.kanizsay.sulinet.hu/KDESZIG/munkaterv_20_21.pdf', +'dokumentumSorrend'=>2))); +*/ + + if (_RIGHTS_OK!==true) die(); + + if (__NAPLOADMIN===true) { + $_SESSION['MAYOR_RIGHTS_OK'] = true; + + if ($action=='addDokumentum') { + $_leiras = readVariable($_POST['dokumentumLeiras'],'string'); + $_rovidLeiras = readVariable($_POST['dokumentumRovidLeiras'],'string'); + $_url = readVariable($_POST['dokumentumUrl'],'url'); + $_megjegyzes = readVariable($_POST['dokumentumMegjegyzes'],'string'); + $_sorrend = readVariable($_POST['dokumentumSorrend'],'id'); + $_tipus = readVariable($_POST['dokumentumTipus'],'enum','tanev',array('general','tanev')); + $_policy = readVariable($_POST['dokumentumPolicy'],'enum','private',array('public','parent','private')); + $dokumentumId = addDokumentum( + array( + 'dokumentumLeiras' => $_leiras, + 'dokumentumRovidLeiras' => $_rovidLeiras, + 'dokumentumUrl' => $_url, + 'dokumentumMegjegyzes' => $_megjegyzes, + 'dokumentumSorrend'=> $_sorrend, + 'dokumentumTipus' => $_tipus, + 'dokumentumPolicy' => $_policy + ) + ); + } elseif ($action=='delModDokumentum') { + $_ids = readVariable($_POST['dokumentumId'],'id'); + for($i=0; $i<count($_ids); $i++) { + $DATA = array( + 'dokumentumId' => ($_ids[$i]), + 'dokumentumSorrend' => readVariable($_POST['sorrend_'.$_ids[$i]],'id',1) + ); + updateDokumentum($DATA); + } + $_delids = readVariable($_POST['delDokumentumId'],'id'); + delDokumentum($_delids); + } + } + $ADAT = getDokumentumok(); + $ADATASSOC = getDokumentumokAssoc(); + +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..89919bc1 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/dokumentum.php @@ -0,0 +1,20 @@ +<?php + +if (_RIGHTS_OK!==true) die(); + + +global $ADAT,$ADATASSOC; + +if (__NAPLOADMIN===true) { + + putDokumentumLista($ADATASSOC); + putDokumentumListaAdmin($ADAT, true); + putDokumentumAdmin($ADAT); + + echo '<iframe src="policy/private/naplo/dokumentum/tinyfilemanager.php" style="width:100%; height:800px; border: solid 1px #eee;"></iframe>'; +} else { + + putDokumentumLista($ADATASSOC); + +} +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php new file mode 100644 index 00000000..3e5a1772 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/dokumentum/tinyfilemanager.php @@ -0,0 +1,4021 @@ +<?php + +// $report_errors = true; +define('FM_EMBED', true); +define('FM_SELF_URL', $_SERVER['PHP_SELF']); +// ============================================ + +//Default Configuration +$CONFIG = '{"lang":"en","error_reporting":false,"show_hidden":false,"hide_Cols":false,"calc_folder":false}'; + +/** + * H3K | Tiny File Manager V2.4.4 + * CCP Programmers | ccpprogrammers@gmail.com + * https://tinyfilemanager.github.io + */ + +//TFM version +define('VERSION', '2.4.4'); + +//Application Title +define('APP_TITLE', 'Tiny File Manager'); + +// --- EDIT BELOW CONFIGURATION CAREFULLY --- + +// Auth with login/password +// set true/false to enable/disable it +// Is independent from IP white- and blacklisting +$use_auth = true; + +// Login user name and password +// Users: array('Username' => 'Password', 'Username2' => 'Password2', ...) +// Generate secure password hash - https://tinyfilemanager.github.io/docs/pwd.html +$auth_users = array( +); + +//set application theme +//options - 'light' and 'dark' +$theme = 'light'; + +// Readonly users +// e.g. array('users', 'guest', ...) +$readonly_users = array(); + +// Enable highlight.js (https://highlightjs.org/) on view's page +$use_highlightjs = true; + +// highlight.js style +// for dark theme use 'ir-black' +$highlightjs_style = 'vs'; + +// Enable ace.js (https://ace.c9.io/) on view's page +$edit_files = true; + +// Default timezone for date() and time() +// Doc - http://php.net/manual/en/timezones.php +$default_timezone = 'Europe/Budapest'; + +// Root path for file manager +// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder' +$root_path = $_SERVER['DOCUMENT_ROOT']; +$root_path = "/var/mayor/download/public/portal/upload/"; + +// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder' +// Will not working if $root_path will be outside of server document root +$root_url = ''; +$root_url = '/upload/'; + +// Server hostname. Can set manually if wrong +$http_host = $_SERVER['HTTP_HOST']; + +// user specific directories +// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...) +$directories_users = array(); + +// input encoding for iconv +$iconv_input_encoding = 'UTF-8'; + +// date() format for file modification date +// Doc - https://www.php.net/manual/en/function.date.php +$datetime_format = 'Y-m-d H:i:s'; + +// Allowed file extensions for create and rename files +// e.g. 'txt,html,css,js' +$allowed_file_extensions = 'jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx'; + +// Allowed file extensions for upload files +// e.g. 'gif,png,jpg,html,txt' +$allowed_upload_extensions = $allowed_file_extensions; + +// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root. +// full path, e.g http://example.com/favicon.png +// local path, e.g images/icons/favicon.png +$favicon_path = ''; + +// Files and folders to excluded from listing +// e.g. array('myfile.html', 'personal-folder', '*.php', ...) +$exclude_items = array(); +$exclude_items = array( + '*.phtml', + '*.php', + '*.css', + '*.js' +); + +// Online office Docs Viewer +// Availabe rules are 'google', 'microsoft' or false +// google => View documents using Google Docs Viewer +// microsoft => View documents using Microsoft Web Apps Viewer +// false => disable online doc viewer +$online_viewer = 'google'; + +// Sticky Nav bar +// true => enable sticky header +// false => disable sticky header +$sticky_navbar = true; + +// Maximum file upload size +// Increase the following values in php.ini to work properly +// memory_limit, upload_max_filesize, post_max_size +$max_upload_size_bytes = 20000; + +// Possible rules are 'OFF', 'AND' or 'OR' +// OFF => Don't check connection IP, defaults to OFF +// AND => Connection must be on the whitelist, and not on the blacklist +// OR => Connection must be on the whitelist, or not on the blacklist +$ip_ruleset = 'OFF'; + +// Should users be notified of their block? +$ip_silent = true; + +// IP-addresses, both ipv4 and ipv6 +$ip_whitelist = array( + '127.0.0.1', // local ipv4 + '::1' // local ipv6 +); + +// IP-addresses, both ipv4 and ipv6 +$ip_blacklist = array( + '0.0.0.0', // non-routable meta ipv4 + '::' // non-routable meta ipv6 +); + +// if User has the customized config file, try to use it to override the default config above +#$config_file = __DIR__.'/config.php'; +#if (is_readable($config_file)) { +# @include($config_file); +#} + +// --- EDIT BELOW CAREFULLY OR DO NOT EDIT AT ALL --- + +// max upload file size +define('MAX_UPLOAD_SIZE', $max_upload_size_bytes); + +define('FM_THEME', $theme); + +// private key and session name to store to the session +if ( !defined( 'FM_SESSION_ID')) { + define('FM_SESSION_ID', 'filemanager'); +} + +// Configuration +$cfg = new FM_Config(); + +// Default language +$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en'; + +// Show or hide files and folders that starts with a dot +$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true; + +// PHP error reporting - false = Turns off Errors, true = Turns on Errors +$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true; + +// Hide Permissions and Owner cols in file-listing +$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true; + +// Show directory size: true or speedup output: false +$calc_folder = isset($cfg->data['calc_folder']) ? $cfg->data['calc_folder'] : true; + +//available languages +$lang_list = array( + 'en' => 'English' +); + + +if ($report_errors == true) { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 1); +} else { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 0); +} + +// if fm included +if (defined('FM_EMBED')) { + $use_auth = false; + $sticky_navbar = false; + session_start(); if ($_SESSION['MAYOR_RIGHTS_OK']!==true) die(); // MaYoR +} else { + @set_time_limit(600); + + date_default_timezone_set($default_timezone); + + ini_set('default_charset', 'UTF-8'); + if (version_compare(PHP_VERSION, '5.6.0', '<') && function_exists('mb_internal_encoding')) { + mb_internal_encoding('UTF-8'); + } + if (function_exists('mb_regex_encoding')) { + mb_regex_encoding('UTF-8'); + } + + session_cache_limiter(''); + session_name(FM_SESSION_ID ); + function session_error_handling_function($code, $msg, $file, $line) { + // Permission denied for default session, try to create a new one + if ($code == 2) { + session_abort(); + session_id(session_create_id()); + @session_start(); + } + } + set_error_handler('session_error_handling_function'); + session_start(); + restore_error_handler(); +} + +if (empty($auth_users)) { + $use_auth = false; +} + +$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) + || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'; + +// update $root_url based on user specific directories +if (isset($_SESSION[FM_SESSION_ID]['logged']) && !empty($directories_users[$_SESSION[FM_SESSION_ID]['logged']])) { + $wd = fm_clean_path(dirname($_SERVER['PHP_SELF'])); + $root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[FM_SESSION_ID]['logged']]; +} +// clean $root_url +$root_url = fm_clean_path($root_url); + +// abs path for site +defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : '')); +defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']); + +// logout +if (isset($_GET['logout'])) { + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_redirect(FM_SELF_URL); +} + +// Validate connection IP +if($ip_ruleset != 'OFF'){ + $clientIp = $_SERVER['REMOTE_ADDR']; + + $proceed = false; + + $whitelisted = in_array($clientIp, $ip_whitelist); + $blacklisted = in_array($clientIp, $ip_blacklist); + + if($ip_ruleset == 'AND'){ + if($whitelisted == true && $blacklisted == false){ + $proceed = true; + } + } else + if($ip_ruleset == 'OR'){ + if($whitelisted == true || $blacklisted == false){ + $proceed = true; + } + } + + if($proceed == false){ + trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING); + + if($ip_silent == false){ + fm_set_msg('Access denied. IP restriction applicable', 'error'); + fm_show_header_login(); + fm_show_message(); + } + + exit(); + } +} + +// Auth +if ($use_auth) { + if (isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']])) { + // Logged + } elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'])) { + // Logging In + sleep(1); + if(function_exists('password_verify')) { + if (isset($auth_users[$_POST['fm_usr']]) && isset($_POST['fm_pwd']) && password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']])) { + $_SESSION[FM_SESSION_ID]['logged'] = $_POST['fm_usr']; + fm_set_msg(lng('You are logged in')); + fm_redirect(FM_SELF_URL . '?p='); + } else { + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_set_msg(lng('Login failed. Invalid username or password'), 'error'); + fm_redirect(FM_SELF_URL); + } + } else { + fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');; + } + } else { + // Form + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_show_header_login(); + ?> + <section class="h-100"> + <div class="container h-100"> + <div class="row justify-content-md-center h-100"> + <div class="card-wrapper"> + <div class="card fat <?php echo fm_get_theme(); ?>"> + <div class="card-body"> + <form class="form-signin" action="" method="post" autocomplete="off"> + <div class="form-group"> + <div class="brand"> + <svg version="1.0" xmlns="http://www.w3.org/2000/svg" M1008 width="100%" height="80px" viewBox="0 0 238.000000 140.000000" aria-label="H3K Tiny File Manager"> + <g transform="translate(0.000000,140.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none"> + <path d="M160 700 l0 -600 110 0 110 0 0 260 0 260 70 0 70 0 0 -260 0 -260 110 0 110 0 0 600 0 600 -110 0 -110 0 0 -260 0 -260 -70 0 -70 0 0 260 0 260 -110 0 -110 0 0 -600z"/> + <path fill="#003500" d="M1008 1227 l-108 -72 0 -117 0 -118 110 0 110 0 0 110 0 110 70 0 70 0 0 -180 0 -180 -125 0 c-69 0 -125 -3 -125 -6 0 -3 23 -39 52 -80 l52 -74 73 0 73 0 0 -185 0 -185 -70 0 -70 0 0 115 0 115 -110 0 -110 0 0 -190 0 -190 181 0 181 0 109 73 108 72 1 181 0 181 -69 48 -68 49 68 50 69 49 0 249 0 248 -182 -1 -183 0 -107 -72z"/> + <path d="M1640 700 l0 -600 110 0 110 0 0 208 0 208 35 34 35 34 35 -34 35 -34 0 -208 0 -208 110 0 110 0 0 212 0 213 -87 87 -88 88 88 88 87 87 0 213 0 212 -110 0 -110 0 0 -208 0 -208 -70 -69 -70 -69 0 277 0 277 -110 0 -110 0 0 -600z"/></g> + </svg> + </div> + <div class="text-center"> + <h1 class="card-title"><?php echo APP_TITLE; ?></h1> + </div> + </div> + <hr /> + <div class="form-group"> + <label for="fm_usr"><?php echo lng('Username'); ?></label> + <input type="text" class="form-control" id="fm_usr" name="fm_usr" required autofocus> + </div> + + <div class="form-group"> + <label for="fm_pwd"><?php echo lng('Password'); ?></label> + <input type="password" class="form-control" id="fm_pwd" name="fm_pwd" required> + </div> + + <div class="form-group"> + <?php fm_show_message(); ?> + </div> + + <div class="form-group"> + <button type="submit" class="btn btn-success btn-block mt-4" role="button"> + <?php echo lng('Login'); ?> + </button> + </div> + </form> + </div> + </div> + <div class="footer text-center"> + —— © + <a href="https://tinyfilemanager.github.io/" target="_blank" class="text-muted" data-version="<?php echo VERSION; ?>">CCP Programmers</a> —— + </div> + </div> + </div> + </div> + </section> + + <?php + fm_show_footer_login(); + exit; + } +} + +// update root path +if ($use_auth && isset($_SESSION[FM_SESSION_ID]['logged'])) { + $root_path = isset($directories_users[$_SESSION[FM_SESSION_ID]['logged']]) ? $directories_users[$_SESSION[FM_SESSION_ID]['logged']] : $root_path; +} + +// clean and check $root_path +$root_path = rtrim($root_path, '\\/'); +$root_path = str_replace('\\', '/', $root_path); +if (!@is_dir($root_path)) { + echo "<h1>Root path \"{$root_path}\" not found!</h1>"; + exit; +} + +defined('FM_SHOW_HIDDEN') || define('FM_SHOW_HIDDEN', $show_hidden_files); +defined('FM_ROOT_PATH') || define('FM_ROOT_PATH', $root_path); +defined('FM_LANG') || define('FM_LANG', $lang); +defined('FM_FILE_EXTENSION') || define('FM_FILE_EXTENSION', $allowed_file_extensions); +defined('FM_UPLOAD_EXTENSION') || define('FM_UPLOAD_EXTENSION', $allowed_upload_extensions); +defined('FM_EXCLUDE_ITEMS') || define('FM_EXCLUDE_ITEMS', $exclude_items); +defined('FM_DOC_VIEWER') || define('FM_DOC_VIEWER', $online_viewer); +define('FM_READONLY', $use_auth && !empty($readonly_users) && isset($_SESSION[FM_SESSION_ID]['logged']) && in_array($_SESSION[FM_SESSION_ID]['logged'], $readonly_users)); +define('FM_IS_WIN', DIRECTORY_SEPARATOR == '\\'); + +// always use ?p= +if (!isset($_GET['p']) && empty($_FILES)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get path +$p = isset($_GET['p']) ? $_GET['p'] : (isset($_POST['p']) ? $_POST['p'] : ''); + +// clean path +$p = fm_clean_path($p); + +// for ajax request - save +$input = file_get_contents('php://input'); +$_POST = (strpos($input, 'ajax') != FALSE && strpos($input, 'save') != FALSE) ? json_decode($input, true) : $_POST; + +// instead globals vars +define('FM_PATH', $p); +define('FM_USE_AUTH', $use_auth); +define('FM_EDIT_FILE', $edit_files); +defined('FM_ICONV_INPUT_ENC') || define('FM_ICONV_INPUT_ENC', $iconv_input_encoding); +defined('FM_USE_HIGHLIGHTJS') || define('FM_USE_HIGHLIGHTJS', $use_highlightjs); +defined('FM_HIGHLIGHTJS_STYLE') || define('FM_HIGHLIGHTJS_STYLE', $highlightjs_style); +defined('FM_DATETIME_FORMAT') || define('FM_DATETIME_FORMAT', $datetime_format); + +unset($p, $use_auth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style); + +/*************************** ACTIONS ***************************/ + +// AJAX Request +if (isset($_POST['ajax']) && !FM_READONLY) { + + // save + if (isset($_POST['type']) && $_POST['type'] == "save") { + // get current path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // check path + if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); + } + $file = $_GET['edit']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || !is_file($path . '/' . $file)) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + header('X-XSS-Protection:0'); + $file_path = $path . '/' . $file; + + $writedata = $_POST['content']; + $fd = fopen($file_path, "w"); + $write_results = @fwrite($fd, $writedata); + fclose($fd); + if ($write_results === false){ + header("HTTP/1.1 500 Internal Server Error"); + die("Could Not Write File! - Check Permissions / Ownership"); + } + die(true); + } + + //search : get list of files from the current folder + if(isset($_POST['type']) && $_POST['type']=="search") { + $dir = FM_ROOT_PATH; + $response = scan(fm_clean_path($_POST['path']), $_POST['content']); + echo json_encode($response); + exit(); + } + + // backup files + if (isset($_POST['type']) && $_POST['type'] == "backup" && !empty($_POST['file'])) { + $fileName = $_POST['file']; + $fullPath = FM_ROOT_PATH . '/'; + if (!empty($_POST['path'])) { + $relativeDirPath = fm_clean_path($_POST['path']); + $fullPath .= "{$relativeDirPath}/"; + } + $date = date("dMy-His"); + $newFileName = "{$fileName}-{$date}.bak"; + $fullyQualifiedFileName = $fullPath . $fileName; + try { + if (!file_exists($fullyQualifiedFileName)) { + throw new Exception("File {$fileName} not found"); + } + if (copy($fullyQualifiedFileName, $fullPath . $newFileName)) { + echo "Backup {$newFileName} created"; + } else { + throw new Exception("Could not copy file {$fileName}"); + } + } catch (Exception $e) { + echo $e->getMessage(); + } + } + + // Save Config + if (isset($_POST['type']) && $_POST['type'] == "settings") { + global $cfg, $lang, $report_errors, $show_hidden_files, $lang_list, $hide_Cols, $calc_folder; + $newLng = $_POST['js-language']; + fm_get_translations([]); + if (!array_key_exists($newLng, $lang_list)) { + $newLng = 'en'; + } + + $erp = isset($_POST['js-error-report']) && $_POST['js-error-report'] == "true" ? true : false; + $shf = isset($_POST['js-show-hidden']) && $_POST['js-show-hidden'] == "true" ? true : false; + $hco = isset($_POST['js-hide-cols']) && $_POST['js-hide-cols'] == "true" ? true : false; + $caf = isset($_POST['js-calc-folder']) && $_POST['js-calc-folder'] == "true" ? true : false; + + if ($cfg->data['lang'] != $newLng) { + $cfg->data['lang'] = $newLng; + $lang = $newLng; + } + if ($cfg->data['error_reporting'] != $erp) { + $cfg->data['error_reporting'] = $erp; + $report_errors = $erp; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['hide_Cols'] != $hco) { + $cfg->data['hide_Cols'] = $hco; + $hide_Cols = $hco; + } + if ($cfg->data['calc_folder'] != $caf) { + $cfg->data['calc_folder'] = $caf; + $calc_folder = $caf; + } + $cfg->save(); + echo true; + } + + // new password hash + if (isset($_POST['type']) && $_POST['type'] == "pwdhash") { + $res = isset($_POST['inputPassword2']) && !empty($_POST['inputPassword2']) ? password_hash($_POST['inputPassword2'], PASSWORD_DEFAULT) : ''; + echo $res; + } + + //upload using url + if(isset($_POST['type']) && $_POST['type'] == "upload" && !empty($_REQUEST["uploadurl"])) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $url = !empty($_REQUEST["uploadurl"]) && preg_match("|^http(s)?://.+$|", stripslashes($_REQUEST["uploadurl"])) ? stripslashes($_REQUEST["uploadurl"]) : null; + $use_curl = false; + $temp_file = tempnam(sys_get_temp_dir(), "upload-"); + $fileinfo = new stdClass(); + $fileinfo->name = trim(basename($url), ".\x00..\x20"); + + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $ext = strtolower(pathinfo($fileinfo->name, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + function event_callback ($message) { + global $callback; + echo json_encode($message); + } + + function get_file_path () { + global $path, $fileinfo, $temp_file; + return $path."/".basename($fileinfo->name); + } + + $err = false; + + if(!$isFileAllowed) { + $err = array("message" => "File extension is not allowed"); + event_callback(array("fail" => $err)); + exit(); + } + + if (!$url) { + $success = false; + } else if ($use_curl) { + @$fp = fopen($temp_file, "w"); + @$ch = curl_init($url); + curl_setopt($ch, CURLOPT_NOPROGRESS, false ); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($ch, CURLOPT_FILE, $fp); + @$success = curl_exec($ch); + $curl_info = curl_getinfo($ch); + if (!$success) { + $err = array("message" => curl_error($ch)); + } + @curl_close($ch); + fclose($fp); + $fileinfo->size = $curl_info["size_download"]; + $fileinfo->type = $curl_info["content_type"]; + } else { + $ctx = stream_context_create(); + @$success = copy($url, $temp_file, $ctx); + if (!$success) { + $err = error_get_last(); + } + } + + if ($success) { + $success = rename($temp_file, get_file_path()); + } + + if ($success) { + event_callback(array("done" => $fileinfo)); + } else { + unlink($temp_file); + if (!$err) { + $err = array("message" => "Invalid url parameter"); + } + event_callback(array("fail" => $err)); + } + } + + exit(); +} + +// Delete file / folder +if (isset($_GET['del']) && !FM_READONLY) { + $del = str_replace( '/', '', fm_clean_path( $_GET['del'] ) ); + if ($del != '' && $del != '..' && $del != '.') { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + $is_dir = is_dir($path . '/' . $del); + if (fm_rdelete($path . '/' . $del)) { + $msg = $is_dir ? 'Folder <b>%s</b> deleted' : 'File <b>%s</b> deleted'; + fm_set_msg(sprintf($msg, fm_enc($del))); + } else { + $msg = $is_dir ? 'Folder <b>%s</b> not deleted' : 'File <b>%s</b> not deleted'; + fm_set_msg(sprintf($msg, fm_enc($del)), 'error'); + } + } else { + fm_set_msg('Invalid file or folder name', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Create folder +if (isset($_GET['new']) && isset($_GET['type']) && !FM_READONLY) { + $type = $_GET['type']; + $new = str_replace( '/', '', fm_clean_path( strip_tags( $_GET['new'] ) ) ); + if (fm_isvalid_filename($new) && $new != '' && $new != '..' && $new != '.') { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($_GET['type'] == "file") { + if (!file_exists($path . '/' . $new)) { + if(fm_is_valid_ext($new)) { + @fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new); + fm_set_msg(sprintf(lng('File').' <b>%s</b> '.lng('Created'), fm_enc($new))); + } else { + fm_set_msg('File extension is not allowed', 'error'); + } + } else { + fm_set_msg(sprintf('File <b>%s</b> already exists', fm_enc($new)), 'alert'); + } + } else { + if (fm_mkdir($path . '/' . $new, false) === true) { + fm_set_msg(sprintf(lng('Folder').' <b>%s</b> '.lng('Created'), $new)); + } elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) { + fm_set_msg(sprintf('Folder <b>%s</b> already exists', fm_enc($new)), 'alert'); + } else { + fm_set_msg(sprintf('Folder <b>%s</b> not created', fm_enc($new)), 'error'); + } + } + } else { + fm_set_msg('Invalid characters in file or folder name', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Copy folder / file +if (isset($_GET['copy'], $_GET['finish']) && !FM_READONLY) { + // from + $copy = $_GET['copy']; + $copy = fm_clean_path($copy); + // empty path + if ($copy == '') { + fm_set_msg('Source path not defined', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + // abs path from + $from = FM_ROOT_PATH . '/' . $copy; + // abs path to + $dest = FM_ROOT_PATH; + if (FM_PATH != '') { + $dest .= '/' . FM_PATH; + } + $dest .= '/' . basename($from); + // move? + $move = isset($_GET['move']); + // copy/move/duplicate + if ($from != $dest) { + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + if ($move) { // Move and to != from so just perform move + $rename = fm_rename($from, $dest); + if ($rename) { + fm_set_msg(sprintf('Moved from <b>%s</b> to <b>%s</b>', fm_enc($copy), fm_enc($msg_from))); + } elseif ($rename === null) { + fm_set_msg('File or folder with this path already exists', 'alert'); + + } else { + fm_set_msg(sprintf('Error while moving from <b>%s</b> to <b>%s</b>', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } else { // Not move and to != from so copy with original name + if (fm_rcopy($from, $dest)) { + fm_set_msg(sprintf('Copied from <b>%s</b> to <b>%s</b>', fm_enc($copy), fm_enc($msg_from))); + } else { + fm_set_msg(sprintf('Error while copying from <b>%s</b> to <b>%s</b>', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } + } else { + if (!$move){ //Not move and to = from so duplicate + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + $fn_parts = pathinfo($from); + $extension_suffix = ''; + if(!is_dir($from)){ + $extension_suffix = '.'.$fn_parts['extension']; + } + //Create new name for duplicate + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-'.date('YmdHis').$extension_suffix; + $loop_count = 0; + $max_loop = 1000; + // Check if a file with the duplicate name already exists, if so, make new name (edge case...) + while(file_exists($fn_duplicate) & $loop_count < $max_loop){ + $fn_parts = pathinfo($fn_duplicate); + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-copy'.$extension_suffix; + $loop_count++; + } + if (fm_rcopy($from, $fn_duplicate, False)) { + fm_set_msg(sprintf('Copyied from <b>%s</b> to <b>%s</b>', fm_enc($copy), fm_enc($fn_duplicate))); + } else { + fm_set_msg(sprintf('Error while copying from <b>%s</b> to <b>%s</b>', fm_enc($copy), fm_enc($fn_duplicate)), 'error'); + } + } + else{ + fm_set_msg('Paths must be not equal', 'alert'); + } + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Mass copy files/ folders +if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish']) && !FM_READONLY) { + // from + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // to + $copy_to_path = FM_ROOT_PATH; + $copy_to = fm_clean_path($_POST['copy_to']); + if ($copy_to != '') { + $copy_to_path .= '/' . $copy_to; + } + if ($path == $copy_to_path) { + fm_set_msg('Paths must be not equal', 'alert'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + if (!is_dir($copy_to_path)) { + if (!fm_mkdir($copy_to_path, true)) { + fm_set_msg('Unable to create destination folder', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + } + // move? + $move = isset($_POST['move']); + // copy/move + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + // abs path from + $from = $path . '/' . $f; + // abs path to + $dest = $copy_to_path . '/' . $f; + // do + if ($move) { + $rename = fm_rename($from, $dest); + if ($rename === false) { + $errors++; + } + } else { + if (!fm_rcopy($from, $dest)) { + $errors++; + } + } + } + } + if ($errors == 0) { + $msg = $move ? 'Selected files and folders moved' : 'Selected files and folders copied'; + fm_set_msg($msg); + } else { + $msg = $move ? 'Error while moving items' : 'Error while copying items'; + fm_set_msg($msg, 'error'); + } + } else { + fm_set_msg('Nothing selected', 'alert'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Rename +if (isset($_GET['ren'], $_GET['to']) && !FM_READONLY) { + // old name + $old = $_GET['ren']; + $old = fm_clean_path($old); + $old = str_replace('/', '', $old); + // new name + $new = $_GET['to']; + $new = fm_clean_path(strip_tags($new)); + $new = str_replace('/', '', $new); + // path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // rename + if (fm_isvalid_filename($new) && $old != '' && $new != '') { + if (fm_rename($path . '/' . $old, $path . '/' . $new)) { + fm_set_msg(sprintf('Renamed from <b>%s</b> to <b>%s</b>', fm_enc($old), fm_enc($new))); + } else { + fm_set_msg(sprintf('Error while renaming from <b>%s</b> to <b>%s</b>', fm_enc($old), fm_enc($new)), 'error'); + } + } else { + fm_set_msg('Invalid characters in file name', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Download +if (isset($_GET['dl'])) { + $dl = $_GET['dl']; + $dl = fm_clean_path($dl); + $dl = str_replace('/', '', $dl); + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($dl != '' && is_file($path . '/' . $dl)) { + fm_download_file($path . '/' . $dl, $dl, 1024); + exit; + } else { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } +} + +// Upload +if (!empty($_FILES) && !FM_READONLY) { + $override_file_name = false; + $f = $_FILES; + $path = FM_ROOT_PATH; + $ds = DIRECTORY_SEPARATOR; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $uploads = 0; + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $response = array ( + 'status' => 'error', + 'info' => 'Oops! Try again' + ); + + $filename = $f['file']['name']; + $tmp_name = $f['file']['tmp_name']; + $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + $targetPath = $path . $ds; + if ( is_writable($targetPath) ) { + $fullPath = $path . '/' . $_REQUEST['fullpath']; + $folder = substr($fullPath, 0, strrpos($fullPath, "/")); + + if(file_exists ($fullPath) && !$override_file_name) { + $ext_1 = $ext ? '.'.$ext : ''; + $fullPath = str_replace($ext_1, '', $fullPath) .'_'. date('ymdHis'). $ext_1; + } + + if (!is_dir($folder)) { + $old = umask(0); + mkdir($folder, 0777, true); + umask($old); + } + + if (empty($f['file']['error']) && !empty($tmp_name) && $tmp_name != 'none' && $isFileAllowed) { + if (move_uploaded_file($tmp_name, $fullPath)) { + // Be sure that the file has been uploaded + if ( file_exists($fullPath) ) { + $response = array ( + 'status' => 'success', + 'info' => "file upload successful" + ); + } else { + $response = array ( + 'status' => 'error', + 'info' => 'Couldn\'t upload the requested file.' + ); + } + } else { + $response = array ( + 'status' => 'error', + 'info' => "Error while uploading files. Uploaded files $uploads", + ); + } + } + } else { + $response = array ( + 'status' => 'error', + 'info' => 'The specified folder for upload isn\'t writeable.' + ); + } + // Return the response + echo json_encode($response); + exit(); +} + +// Mass deleting +if (isset($_POST['group'], $_POST['delete']) && !FM_READONLY) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + $new_path = $path . '/' . $f; + if (!fm_rdelete($new_path)) { + $errors++; + } + } + } + if ($errors == 0) { + fm_set_msg('Selected files and folder deleted'); + } else { + fm_set_msg('Error while deleting items', 'error'); + } + } else { + fm_set_msg('Nothing selected', 'alert'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Pack files +if (isset($_POST['group']) && (isset($_POST['zip']) || isset($_POST['tar'])) && !FM_READONLY) { + $path = FM_ROOT_PATH; + $ext = 'zip'; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + //set pack type + $ext = isset($_POST['tar']) ? 'tar' : 'zip'; + + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg('Operations with archives are not available', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + $files = $_POST['file']; + if (!empty($files)) { + chdir($path); + + if (count($files) == 1) { + $one_file = reset($files); + $one_file = basename($one_file); + $zipname = $one_file . '_' . date('ymd_His') . '.'.$ext; + } else { + $zipname = 'archive_' . date('ymd_His') . '.'.$ext; + } + + if($ext == 'zip') { + $zipper = new FM_Zipper(); + $res = $zipper->create($zipname, $files); + } elseif ($ext == 'tar') { + $tar = new FM_Zipper_Tar(); + $res = $tar->create($zipname, $files); + } + + if ($res) { + fm_set_msg(sprintf('Archive <b>%s</b> created', fm_enc($zipname))); + } else { + fm_set_msg('Archive not created', 'error'); + } + } else { + fm_set_msg('Nothing selected', 'alert'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Unpack +if (isset($_GET['unzip']) && !FM_READONLY) { + $unzip = $_GET['unzip']; + $unzip = fm_clean_path($unzip); + $unzip = str_replace('/', '', $unzip); + $isValid = false; + + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + if ($unzip != '' && is_file($path . '/' . $unzip)) { + $zip_path = $path . '/' . $unzip; + $ext = pathinfo($zip_path, PATHINFO_EXTENSION); + $isValid = true; + } else { + fm_set_msg('File not found', 'error'); + } + + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg('Operations with archives are not available', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + if ($isValid) { + //to folder + $tofolder = ''; + if (isset($_GET['tofolder'])) { + $tofolder = pathinfo($zip_path, PATHINFO_FILENAME); + if (fm_mkdir($path . '/' . $tofolder, true)) { + $path .= '/' . $tofolder; + } + } + + if($ext == "zip") { + $zipper = new FM_Zipper(); + $res = $zipper->unzip($zip_path, $path); + } elseif ($ext == "tar") { + try { + $gzipper = new PharData($zip_path); + if (@$gzipper->extractTo($path,null, true)) { + $res = true; + } else { + $res = false; + } + } catch (Exception $e) { + //TODO:: need to handle the error + $res = true; + } + } + + if ($res) { + fm_set_msg('Archive unpacked'); + } else { + fm_set_msg('Archive not unpacked', 'error'); + } + + } else { + fm_set_msg('File not found', 'error'); + } + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +// Change Perms (not for Windows) +if (isset($_POST['chmod']) && !FM_READONLY && !FM_IS_WIN) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $file = $_POST['chmod']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || (!is_file($path . '/' . $file) && !is_dir($path . '/' . $file))) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + $mode = 0; + if (!empty($_POST['ur'])) { + $mode |= 0400; + } + if (!empty($_POST['uw'])) { + $mode |= 0200; + } + if (!empty($_POST['ux'])) { + $mode |= 0100; + } + if (!empty($_POST['gr'])) { + $mode |= 0040; + } + if (!empty($_POST['gw'])) { + $mode |= 0020; + } + if (!empty($_POST['gx'])) { + $mode |= 0010; + } + if (!empty($_POST['or'])) { + $mode |= 0004; + } + if (!empty($_POST['ow'])) { + $mode |= 0002; + } + if (!empty($_POST['ox'])) { + $mode |= 0001; + } + + if (@chmod($path . '/' . $file, $mode)) { + fm_set_msg('Permissions changed'); + } else { + fm_set_msg('Permissions not changed', 'error'); + } + + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); +} + +/*************************** /ACTIONS ***************************/ + +// get current path +$path = FM_ROOT_PATH; +if (FM_PATH != '') { + $path .= '/' . FM_PATH; +} + +// check path +if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get parent folder +$parent = fm_get_parent_path(FM_PATH); + +$objects = is_readable($path) ? scandir($path) : array(); +$folders = array(); +$files = array(); +$current_path = array_slice(explode("/",$path), -1)[0]; +if (is_array($objects) && fm_is_exclude_items($current_path)) { + foreach ($objects as $file) { + if ($file == '.' || $file == '..') { + continue; + } + if (!FM_SHOW_HIDDEN && substr($file, 0, 1) === '.') { + continue; + } + $new_path = $path . '/' . $file; + if (@is_file($new_path) && fm_is_exclude_items($file)) { + $files[] = $file; + } elseif (@is_dir($new_path) && $file != '.' && $file != '..' && fm_is_exclude_items($file)) { + $folders[] = $file; + } + } +} + +if (!empty($files)) { + natcasesort($files); +} +if (!empty($folders)) { + natcasesort($folders); +} + +// upload form +if (isset($_GET['upload']) && !FM_READONLY) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + //get the allowed file extensions + function getUploadExt() { + $extArr = explode(',', FM_UPLOAD_EXTENSION); + if(FM_UPLOAD_EXTENSION && $extArr) { + array_walk($extArr, function(&$x) {$x = ".$x";}); + return implode(',', $extArr); + } + return ''; + } + ?> + + <link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/min/dropzone.min.css" rel="stylesheet"> + <div class="path"> + + <div class="card mb-2 fm-upload-wrapper <?php echo fm_get_theme(); ?>"> + <div class="card-header"> + <ul class="nav nav-tabs card-header-tabs"> + <li class="nav-item"> + <a class="nav-link active" href="#fileUploader" data-target="#fileUploader"><i class="fa fa-arrow-circle-o-up"></i> <?php echo lng('UploadingFiles') ?></a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#urlUploader" class="js-url-upload" data-target="#urlUploader"><i class="fa fa-link"></i> Upload from URL</a> + </li> + </ul> + </div> + <div class="card-body"> + <p class="card-text"> + <a href="?p=<?php echo FM_PATH ?>" class="float-right"><i class="fa fa-chevron-circle-left go-back"></i> <?php echo lng('Back')?></a> + <?php echo lng('DestinationFolder') ?>: <?php echo fm_enc(fm_convert_win(FM_PATH)) ?> + </p> + + <form action="<?php echo htmlspecialchars(FM_SELF_URL) . '?p=' . fm_enc(FM_PATH) ?>" class="dropzone card-tabs-container" id="fileUploader" enctype="multipart/form-data"> + <input type="hidden" name="p" value="<?php echo fm_enc(FM_PATH) ?>"> + <input type="hidden" name="fullpath" id="fullpath" value="<?php echo fm_enc(FM_PATH) ?>"> + <div class="fallback"> + <input name="file" type="file" multiple/> + </div> + </form> + + <div class="upload-url-wrapper card-tabs-container hidden" id="urlUploader"> + <form id="js-form-url-upload" class="form-inline" onsubmit="return upload_from_url(this);" method="POST" action=""> + <input type="hidden" name="type" value="upload" aria-label="hidden" aria-hidden="true"> + <input type="url" placeholder="URL" name="uploadurl" required class="form-control" style="width: 80%"> + <button type="submit" class="btn btn-primary ml-3"><?php echo lng('Upload') ?></button> + <div class="lds-facebook"><div></div><div></div><div></div></div> + </form> + <div id="js-url-upload__list" class="col-9 mt-3"></div> + </div> + </div> + </div> + </div> + <script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/min/dropzone.min.js"></script> + <script> + Dropzone.options.fileUploader = { + timeout: 120000, + maxFilesize: <?php echo MAX_UPLOAD_SIZE; ?>, + acceptedFiles : "<?php echo getUploadExt() ?>", + init: function () { + this.on("sending", function (file, xhr, formData) { + let _path = (file.fullPath) ? file.fullPath : file.name; + document.getElementById("fullpath").value = _path; + xhr.ontimeout = (function() { + toast('Error: Server Timeout'); + }); + }).on("success", function (res) { + let _response = JSON.parse(res.xhr.response); + if(_response.status == "error") { + toast(_response.info); + } + }).on("error", function(file, response) { + toast(response); + }); + } + } + </script> + <?php + fm_show_footer(); + exit; +} + +// copy form POST +if (isset($_POST['copy']) && !FM_READONLY) { + $copy_files = isset($_POST['file']) ? $_POST['file'] : null; + if (!is_array($copy_files) || empty($copy_files)) { + fm_set_msg('Nothing selected', 'alert'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + ?> + <div class="path"> + <div class="card <?php echo fm_get_theme(); ?>"> + <div class="card-header"> + <h6><?php echo lng('Copying') ?></h6> + </div> + <div class="card-body"> + <form action="" method="post"> + <input type="hidden" name="p" value="<?php echo fm_enc(FM_PATH) ?>"> + <input type="hidden" name="finish" value="1"> + <?php + foreach ($copy_files as $cf) { + echo '<input type="hidden" name="file[]" value="' . fm_enc($cf) . '">' . PHP_EOL; + } + ?> + <p class="break-word"><?php echo lng('Files') ?>: <b><?php echo implode('</b>, <b>', $copy_files) ?></b></p> + <p class="break-word"><?php echo lng('SourceFolder') ?>: <?php echo fm_enc(fm_convert_win(FM_ROOT_PATH . '/' . FM_PATH)) ?><br> + <label for="inp_copy_to"><?php echo lng('DestinationFolder') ?>:</label> + <?php echo FM_ROOT_PATH ?>/<input type="text" name="copy_to" id="inp_copy_to" value="<?php echo fm_enc(FM_PATH) ?>"> + </p> + <p class="custom-checkbox custom-control"><input type="checkbox" name="move" value="1" id="js-move-files" class="custom-control-input"><label for="js-move-files" class="custom-control-label" style="vertical-align: sub"> <?php echo lng('Move') ?></label></p> + <p> + <button type="submit" class="btn btn-success"><i class="fa fa-check-circle"></i> <?php echo lng('Copy') ?></button> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>" class="btn btn-outline-primary"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></a></b> + </p> + </form> + </div> + </div> + </div> + <?php + fm_show_footer(); + exit; +} + +// copy form +if (isset($_GET['copy']) && !isset($_GET['finish']) && !FM_READONLY) { + $copy = $_GET['copy']; + $copy = fm_clean_path($copy); + if ($copy == '' || !file_exists(FM_ROOT_PATH . '/' . $copy)) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + ?> + <div class="path"> + <p><b>Copying</b></p> + <p class="break-word"> + Source path: <?php echo fm_enc(fm_convert_win(FM_ROOT_PATH . '/' . $copy)) ?><br> + Destination folder: <?php echo fm_enc(fm_convert_win(FM_ROOT_PATH . '/' . FM_PATH)) ?> + </p> + <p> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>&copy=<?php echo urlencode($copy) ?>&finish=1"><i class="fa fa-check-circle"></i> Copy</a></b> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>&copy=<?php echo urlencode($copy) ?>&finish=1&move=1"><i class="fa fa-check-circle"></i> Move</a></b> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>"><i class="fa fa-times-circle"></i> Cancel</a></b> + </p> + <p><i>Select folder</i></p> + <ul class="folders break-word"> + <?php + if ($parent !== false) { + ?> + <li><a href="?p=<?php echo urlencode($parent) ?>&copy=<?php echo urlencode($copy) ?>"><i class="fa fa-chevron-circle-left"></i> ..</a></li> + <?php + } + foreach ($folders as $f) { + ?> + <li> + <a href="?p=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>&copy=<?php echo urlencode($copy) ?>"><i class="fa fa-folder-o"></i> <?php echo fm_convert_win($f) ?></a></li> + <?php + } + ?> + </ul> + </div> + <?php + fm_show_footer(); + exit; +} + +if (isset($_GET['settings']) && !FM_READONLY) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + global $cfg, $lang, $lang_list; + ?> + + <div class="col-md-8 offset-md-2 pt-3"> + <div class="card mb-2 <?php echo fm_get_theme(); ?>"> + <h6 class="card-header"> + <i class="fa fa-cog"></i> <?php echo lng('Settings') ?> + <a href="?p=<?php echo FM_PATH ?>" class="float-right"><i class="fa fa-window-close"></i> <?php echo lng('Cancel')?></a> + </h6> + <div class="card-body"> + <form id="js-settings-form" action="" method="post" data-type="ajax" onsubmit="return save_settings(this)"> + <input type="hidden" name="type" value="settings" aria-label="hidden" aria-hidden="true"> + <div class="form-group row"> + <label for="js-language" class="col-sm-3 col-form-label"><?php echo lng('Language') ?></label> + <div class="col-sm-5"> + <select class="form-control" id="js-language" name="js-language"> + <?php + function getSelected($l) { + global $lang; + return ($lang == $l) ? 'selected' : ''; + } + foreach ($lang_list as $k => $v) { + echo "<option value='$k' ".getSelected($k).">$v</option>"; + } + ?> + </select> + </div> + </div> + <?php + //get ON/OFF and active class + function getChecked($conf, $val, $txt) { + if($conf== 1 && $val ==1) { + return $txt; + } else if($conf == '' && $val == '') { + return $txt; + } else { + return ''; + } + } + ?> + <div class="form-group row"> + <label for="js-err-rpt-1" class="col-sm-3 col-form-label"><?php echo lng('ErrorReporting') ?></label> + <div class="col-sm-9"> + <div class="btn-group btn-group-toggle" data-toggle="buttons"> + <label class="btn btn-secondary <?php echo getChecked($report_errors, 1, 'active') ?>"> + <input type="radio" name="js-error-report" id="js-err-rpt-1" autocomplete="off" value="true" <?php echo getChecked($report_errors, 1, 'checked') ?> > ON + </label> + <label class="btn btn-secondary <?php echo getChecked($report_errors, '', 'active') ?>"> + <input type="radio" name="js-error-report" id="js-err-rpt-0" autocomplete="off" value="false" <?php echo getChecked($report_errors, '', 'checked') ?> > OFF + </label> + </div> + </div> + </div> + + <div class="form-group row"> + <label for="js-hdn-1" class="col-sm-3 col-form-label"><?php echo lng('ShowHiddenFiles') ?></label> + <div class="col-sm-9"> + <div class="btn-group btn-group-toggle" data-toggle="buttons"> + <label class="btn btn-secondary <?php echo getChecked($show_hidden_files, 1, 'active') ?>"> + <input type="radio" name="js-show-hidden" id="js-hdn-1" autocomplete="off" value="true" <?php echo getChecked($show_hidden_files, 1, 'checked') ?> > ON + </label> + <label class="btn btn-secondary <?php echo getChecked($show_hidden_files, '', 'active') ?>"> + <input type="radio" name="js-show-hidden" id="js-hdn-0" autocomplete="off" value="false" <?php echo getChecked($show_hidden_files, '', 'checked') ?> > OFF + </label> + </div> + </div> + </div> + + <div class="form-group row"> + <label for="js-hid-1" class="col-sm-3 col-form-label"><?php echo lng('HideColumns') ?></label> + <div class="col-sm-9"> + <div class="btn-group btn-group-toggle" data-toggle="buttons"> + <label class="btn btn-secondary <?php echo getChecked($hide_Cols, 1, 'active') ?>"> + <input type="radio" name="js-hide-cols" id="js-hid-1" autocomplete="off" value="true" <?php echo getChecked($hide_Cols, 1, 'checked') ?> > ON + </label> + <label class="btn btn-secondary <?php echo getChecked($hide_Cols, '', 'active') ?>"> + <input type="radio" name="js-hide-cols" id="js-hid-0" autocomplete="off" value="false" <?php echo getChecked($hide_Cols, '', 'checked') ?> > OFF + </label> + </div> + </div> + </div> + + <div class="form-group row"> + <label for="js-dir-1" class="col-sm-3 col-form-label"><?php echo lng('CalculateFolderSize') ?></label> + <div class="col-sm-9"> + <div class="btn-group btn-group-toggle" data-toggle="buttons"> + <label class="btn btn-secondary <?php echo getChecked($calc_folder, 1, 'active') ?>"> + <input type="radio" name="js-calc-folder" id="js-dir-1" autocomplete="off" value="true" <?php echo getChecked($calc_folder, 1, 'checked') ?> > ON + </label> + <label class="btn btn-secondary <?php echo getChecked($calc_folder, '', 'active') ?>"> + <input type="radio" name="js-calc-folder" id="js-dir-0" autocomplete="off" value="false" <?php echo getChecked($calc_folder, '', 'checked') ?> > OFF + </label> + </div> + </div> + </div> + + <div class="form-group row"> + <div class="col-sm-10"> + <button type="submit" class="btn btn-success"> <i class="fa fa-check-circle"></i> <?php echo lng('Save'); ?></button> + </div> + </div> + + </form> + </div> + </div> + </div> + <?php + fm_show_footer(); + exit; +} + +if (isset($_GET['help'])) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + global $cfg, $lang; + ?> + + <div class="col-md-8 offset-md-2 pt-3"> + <div class="card mb-2 <?php echo fm_get_theme(); ?>"> + <h6 class="card-header"> + <i class="fa fa-exclamation-circle"></i> <?php echo lng('Help') ?> + <a href="?p=<?php echo FM_PATH ?>" class="float-right"><i class="fa fa-window-close"></i> <?php echo lng('Cancel')?></a> + </h6> + <div class="card-body"> + <div class="row"> + <div class="col-xs-12 col-sm-6"> + <p><h3><a href="https://github.com/prasathmani/tinyfilemanager" target="_blank" class="app-v-title"> Tiny File Manager <?php echo VERSION; ?></a></h3></p> + <p>Author: Prasath Mani</p> + <p>Mail Us: <a href="mailto:ccpprogrammers@gmail.com">ccpprogrammers[at]gmail.com</a> </p> + </div> + <div class="col-xs-12 col-sm-6"> + <div class="card"> + <ul class="list-group list-group-flush"> + <li class="list-group-item"><a href="https://github.com/prasathmani/tinyfilemanager/wiki" target="_blank"><i class="fa fa-question-circle"></i> <?php echo lng('Help Documents') ?> </a> </li> + <li class="list-group-item"><a href="https://github.com/prasathmani/tinyfilemanager/issues" target="_blank"><i class="fa fa-bug"></i> <?php echo lng('Report Issue') ?></a></li> + <li class="list-group-item"><a href="javascript:latest_release_info('<?php echo VERSION; ?>');"><i class="fa fa-link"> </i> <?php echo lng('Check Latest Version') ?></a></li> + <?php if(!FM_READONLY) { ?> + <li class="list-group-item"><a href="javascript:show_new_pwd();"><i class="fa fa-lock"></i> <?php echo lng('Generate new password hash') ?></a></li> + <?php } ?> + </ul> + </div> + </div> + </div> + <div class="row js-new-pwd hidden mt-2"> + <div class="col-12"> + <form class="form-inline" onsubmit="return new_password_hash(this)" method="POST" action=""> + <input type="hidden" name="type" value="pwdhash" aria-label="hidden" aria-hidden="true"> + <div class="form-group mb-2"> + <label for="staticEmail2"><?php echo lng('Generate new password hash') ?></label> + </div> + <div class="form-group mx-sm-3 mb-2"> + <label for="inputPassword2" class="sr-only"><?php echo lng('Password') ?></label> + <input type="text" class="form-control btn-sm" id="inputPassword2" name="inputPassword2" placeholder="Password" required> + </div> + <button type="submit" class="btn btn-success btn-sm mb-2"><?php echo lng('Generate') ?></button> + </form> + <textarea class="form-control" rows="2" readonly id="js-pwd-result"></textarea> + </div> + </div> + </div> + </div> + </div> + <?php + fm_show_footer(); + exit; +} + +// file viewer +if (isset($_GET['view'])) { + $file = $_GET['view']; + $quickView = (isset($_GET['quickView']) && $_GET['quickView'] == 1) ? true : false; + $file = fm_clean_path($file, false); + $file = str_replace('/', '', $file); + if ($file == '' || !is_file($path . '/' . $file) || in_array($file, $GLOBALS['exclude_items'])) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + if(!$quickView) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + } + + $file_url = FM_ROOT_URL . fm_convert_win((FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file); + $file_path = $path . '/' . $file; + + $ext = strtolower(pathinfo($file_path, PATHINFO_EXTENSION)); + $mime_type = fm_get_mime_type($file_path); + $filesize_raw = fm_get_size($file_path); + $filesize = fm_get_filesize($filesize_raw); + + $is_zip = false; + $is_gzip = false; + $is_image = false; + $is_audio = false; + $is_video = false; + $is_text = false; + $is_onlineViewer = false; + + $view_title = 'File'; + $filenames = false; // for zip + $content = ''; // for text + $online_viewer = strtolower(FM_DOC_VIEWER); + + if($online_viewer && $online_viewer !== 'false' && in_array($ext, fm_get_onlineViewer_exts())){ + $is_onlineViewer = true; + } + elseif ($ext == 'zip' || $ext == 'tar') { + $is_zip = true; + $view_title = 'Archive'; + $filenames = fm_get_zif_info($file_path, $ext); + } elseif (in_array($ext, fm_get_image_exts())) { + $is_image = true; + $view_title = 'Image'; + } elseif (in_array($ext, fm_get_audio_exts())) { + $is_audio = true; + $view_title = 'Audio'; + } elseif (in_array($ext, fm_get_video_exts())) { + $is_video = true; + $view_title = 'Video'; + } elseif (in_array($ext, fm_get_text_exts()) || substr($mime_type, 0, 4) == 'text' || in_array($mime_type, fm_get_text_mimes())) { + $is_text = true; + $content = file_get_contents($file_path); + } + + ?> + <div class="row"> + <div class="col-12"> + <?php if(!$quickView) { ?> + <p class="break-word"><b><?php echo $view_title ?> "<?php echo fm_enc(fm_convert_win($file)) ?>"</b></p> + <p class="break-word"> + Full path: <?php echo fm_enc(fm_convert_win($file_path)) ?><br> + File size: <?php echo ($filesize_raw <= 1000) ? "$filesize_raw bytes" : $filesize; ?><br> + MIME-type: <?php echo $mime_type ?><br> + <?php + // ZIP info + if (($is_zip || $is_gzip) && $filenames !== false) { + $total_files = 0; + $total_comp = 0; + $total_uncomp = 0; + foreach ($filenames as $fn) { + if (!$fn['folder']) { + $total_files++; + } + $total_comp += $fn['compressed_size']; + $total_uncomp += $fn['filesize']; + } + ?> + Files in archive: <?php echo $total_files ?><br> + Total size: <?php echo fm_get_filesize($total_uncomp) ?><br> + Size in archive: <?php echo fm_get_filesize($total_comp) ?><br> + Compression: <?php echo round(($total_comp / $total_uncomp) * 100) ?>%<br> + <?php + } + // Image info + if ($is_image) { + $image_size = getimagesize($file_path); + echo 'Image sizes: ' . (isset($image_size[0]) ? $image_size[0] : '0') . ' x ' . (isset($image_size[1]) ? $image_size[1] : '0') . '<br>'; + } + // Text info + if ($is_text) { + $is_utf8 = fm_is_utf8($content); + if (function_exists('iconv')) { + if (!$is_utf8) { + $content = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $content); + } + } + echo 'Charset: ' . ($is_utf8 ? 'utf-8' : '8 bit') . '<br>'; + } + ?> + </p> + <p> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>&dl=<?php echo urlencode($file) ?>"><i class="fa fa-cloud-download"></i> <?php echo lng('Download') ?></a></b> + <b><a href="<?php echo fm_enc($file_url) ?>" target="_blank"><i class="fa fa-external-link-square"></i> <?php echo lng('Open') ?></a></b> + + <?php + // ZIP actions + if (!FM_READONLY && ($is_zip || $is_gzip) && $filenames !== false) { + $zip_name = pathinfo($file_path, PATHINFO_FILENAME); + ?> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>&unzip=<?php echo urlencode($file) ?>"><i class="fa fa-check-circle"></i> <?php echo lng('UnZip') ?></a></b> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>&unzip=<?php echo urlencode($file) ?>&tofolder=1" title="UnZip to <?php echo fm_enc($zip_name) ?>"><i class="fa fa-check-circle"></i> + <?php echo lng('UnZipToFolder') ?></a></b> + <?php + } + if ($is_text && !FM_READONLY) { + ?> + <b><a href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>" class="edit-file"><i class="fa fa-pencil-square"></i> <?php echo lng('Edit') ?> + </a></b> + <b><a href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>&env=ace" + class="edit-file"><i class="fa fa-pencil-square-o"></i> <?php echo lng('AdvancedEditor') ?> + </a></b> + <?php } ?> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>"><i class="fa fa-chevron-circle-left go-back"></i> <?php echo lng('Back') ?></a></b> + </p> + <?php + } + if($is_onlineViewer) { + if($online_viewer == 'google') { + echo '<iframe src="https://docs.google.com/viewer?embedded=true&hl=en&url=' . fm_enc($file_url) . '" frameborder="no" style="width:100%;min-height:460px"></iframe>'; + } else if($online_viewer == 'microsoft') { + echo '<iframe src="https://view.officeapps.live.com/op/embed.aspx?src=' . fm_enc($file_url) . '" frameborder="no" style="width:100%;min-height:460px"></iframe>'; + } + } elseif ($is_zip) { + // ZIP content + if ($filenames !== false) { + echo '<code class="maxheight">'; + foreach ($filenames as $fn) { + if ($fn['folder']) { + echo '<b>' . fm_enc($fn['name']) . '</b><br>'; + } else { + echo $fn['name'] . ' (' . fm_get_filesize($fn['filesize']) . ')<br>'; + } + } + echo '</code>'; + } else { + echo '<p>Error while fetching archive info</p>'; + } + } elseif ($is_image) { + // Image content + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg'))) { + echo '<p><img src="' . fm_enc($file_url) . '" alt="" class="preview-img"></p>'; + } + } elseif ($is_audio) { + // Audio content + echo '<p><audio src="' . fm_enc($file_url) . '" controls preload="metadata"></audio></p>'; + } elseif ($is_video) { + // Video content + echo '<div class="preview-video"><video src="' . fm_enc($file_url) . '" width="640" height="360" controls preload="metadata"></video></div>'; + } elseif ($is_text) { + if (FM_USE_HIGHLIGHTJS) { + // highlight + $hljs_classes = array( + 'shtml' => 'xml', + 'htaccess' => 'apache', + 'phtml' => 'php', + 'lock' => 'json', + 'svg' => 'xml', + ); + $hljs_class = isset($hljs_classes[$ext]) ? 'lang-' . $hljs_classes[$ext] : 'lang-' . $ext; + if (empty($ext) || in_array(strtolower($file), fm_get_text_names()) || preg_match('#\.min\.(css|js)$#i', $file)) { + $hljs_class = 'nohighlight'; + } + $content = '<pre class="with-hljs"><code class="' . $hljs_class . '">' . fm_enc($content) . '</code></pre>'; + } elseif (in_array($ext, array('php', 'php4', 'php5', 'phtml', 'phps'))) { + // php highlight + $content = highlight_string($content, true); + } else { + $content = '<pre>' . fm_enc($content) . '</pre>'; + } + echo $content; + } + ?> + </div> + </div> + <?php + if(!$quickView) { + fm_show_footer(); + } + exit; +} + +// file editor +if (isset($_GET['edit'])) { + $file = $_GET['edit']; + $file = fm_clean_path($file, false); + $file = str_replace('/', '', $file); + if ($file == '' || !is_file($path . '/' . $file)) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + header('X-XSS-Protection:0'); + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + + $file_url = FM_ROOT_URL . fm_convert_win((FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file); + $file_path = $path . '/' . $file; + + // normal editer + $isNormalEditor = true; + if (isset($_GET['env'])) { + if ($_GET['env'] == "ace") { + $isNormalEditor = false; + } + } + + // Save File + if (isset($_POST['savedata'])) { + $writedata = $_POST['savedata']; + $fd = fopen($file_path, "w"); + @fwrite($fd, $writedata); + fclose($fd); + fm_set_msg('File Saved Successfully'); + } + + $ext = strtolower(pathinfo($file_path, PATHINFO_EXTENSION)); + $mime_type = fm_get_mime_type($file_path); + $filesize = filesize($file_path); + $is_text = false; + $content = ''; // for text + + if (in_array($ext, fm_get_text_exts()) || substr($mime_type, 0, 4) == 'text' || in_array($mime_type, fm_get_text_mimes())) { + $is_text = true; + $content = file_get_contents($file_path); + } + + ?> + <div class="path"> + <div class="row"> + <div class="col-xs-12 col-sm-5 col-lg-6 pt-1"> + <div class="btn-toolbar" role="toolbar"> + <?php if (!$isNormalEditor) { ?> + <div class="btn-group js-ace-toolbar"> + <button data-cmd="none" data-option="fullscreen" class="btn btn-sm btn-outline-secondary" id="js-ace-fullscreen" title="Fullscreen"><i class="fa fa-expand" title="Fullscreen"></i></button> + <button data-cmd="find" class="btn btn-sm btn-outline-secondary" id="js-ace-search" title="Search"><i class="fa fa-search" title="Search"></i></button> + <button data-cmd="undo" class="btn btn-sm btn-outline-secondary" id="js-ace-undo" title="Undo"><i class="fa fa-undo" title="Undo"></i></button> + <button data-cmd="redo" class="btn btn-sm btn-outline-secondary" id="js-ace-redo" title="Redo"><i class="fa fa-repeat" title="Redo"></i></button> + <button data-cmd="none" data-option="wrap" class="btn btn-sm btn-outline-secondary" id="js-ace-wordWrap" title="Word Wrap"><i class="fa fa-text-width" title="Word Wrap"></i></button> + <button data-cmd="none" data-option="help" class="btn btn-sm btn-outline-secondary" id="js-ace-goLine" title="Help"><i class="fa fa-question" title="Help"></i></button> + <select id="js-ace-mode" data-type="mode" title="Select Document Type" class="btn-outline-secondary border-left-0 d-none d-md-block"><option>-- Select Mode --</option></select> + <select id="js-ace-theme" data-type="theme" title="Select Theme" class="btn-outline-secondary border-left-0 d-none d-lg-block"><option>-- Select Theme --</option></select> + <select id="js-ace-fontSize" data-type="fontSize" title="Selct Font Size" class="btn-outline-secondary border-left-0 d-none d-lg-block"><option>-- Select Font Size --</option></select> + </div> + <?php } ?> + </div> + </div> + <div class="edit-file-actions col-xs-12 col-sm-7 col-lg-6 text-right pt-1"> + <a title="Back" class="btn btn-sm btn-outline-primary" href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&view=<?php echo urlencode($file) ?>"><i class="fa fa-reply-all"></i> <?php echo lng('Back') ?></a> + <a title="Backup" class="btn btn-sm btn-outline-primary" href="javascript:void(0);" onclick="backup('<?php echo urlencode(trim(FM_PATH)) ?>','<?php echo urlencode($file) ?>')"><i class="fa fa-database"></i> <?php echo lng('BackUp') ?></a> + <?php if ($is_text) { ?> + <?php if ($isNormalEditor) { ?> + <a title="Advanced" class="btn btn-sm btn-outline-primary" href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>&env=ace"><i class="fa fa-pencil-square-o"></i> <?php echo lng('AdvancedEditor') ?></a> + <button type="button" class="btn btn-sm btn-outline-primary name="Save" data-url="<?php echo fm_enc($file_url) ?>" onclick="edit_save(this,'nrl')"><i class="fa fa-floppy-o"></i> Save + </button> + <?php } else { ?> + <a title="Plain Editor" class="btn btn-sm btn-outline-primary" href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>"><i class="fa fa-text-height"></i> <?php echo lng('NormalEditor') ?></a> + <button type="button" class="btn btn-sm btn-outline-primary" name="Save" data-url="<?php echo fm_enc($file_url) ?>" onclick="edit_save(this,'ace')"><i class="fa fa-floppy-o"></i> <?php echo lng('Save') ?> + </button> + <?php } ?> + <?php } ?> + </div> + </div> + <?php + if ($is_text && $isNormalEditor) { + echo '<textarea class="mt-2" id="normal-editor" rows="33" cols="120" style="width: 99.5%;">' . htmlspecialchars($content) . '</textarea>'; + } elseif ($is_text) { + echo '<div id="editor" contenteditable="true">' . htmlspecialchars($content) . '</div>'; + } else { + fm_set_msg('FILE EXTENSION HAS NOT SUPPORTED', 'error'); + } + ?> + </div> + <?php + fm_show_footer(); + exit; +} + +// chmod (not for Windows) +if (isset($_GET['chmod']) && !FM_READONLY && !FM_IS_WIN) { + $file = $_GET['chmod']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || (!is_file($path . '/' . $file) && !is_dir($path . '/' . $file))) { + fm_set_msg('File not found', 'error'); + fm_redirect(FM_SELF_URL . '?p=' . urlencode(FM_PATH)); + } + + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + + $file_url = FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file; + $file_path = $path . '/' . $file; + + $mode = fileperms($path . '/' . $file); + + ?> + <div class="path"> + <div class="card mb-2 <?php echo fm_get_theme(); ?>"> + <h6 class="card-header"> + <?php echo lng('ChangePermissions') ?> + </h6> + <div class="card-body"> + <p class="card-text"> + Full path: <?php echo $file_path ?><br> + </p> + <form action="" method="post"> + <input type="hidden" name="p" value="<?php echo fm_enc(FM_PATH) ?>"> + <input type="hidden" name="chmod" value="<?php echo fm_enc($file) ?>"> + + <table class="table compact-table <?php echo fm_get_theme(); ?>"> + <tr> + <td></td> + <td><b><?php echo lng('Owner') ?></b></td> + <td><b><?php echo lng('Group') ?></b></td> + <td><b><?php echo lng('Other') ?></b></td> + </tr> + <tr> + <td style="text-align: right"><b><?php echo lng('Read') ?></b></td> + <td><label><input type="checkbox" name="ur" value="1"<?php echo ($mode & 00400) ? ' checked' : '' ?>></label></td> + <td><label><input type="checkbox" name="gr" value="1"<?php echo ($mode & 00040) ? ' checked' : '' ?>></label></td> + <td><label><input type="checkbox" name="or" value="1"<?php echo ($mode & 00004) ? ' checked' : '' ?>></label></td> + </tr> + <tr> + <td style="text-align: right"><b><?php echo lng('Write') ?></b></td> + <td><label><input type="checkbox" name="uw" value="1"<?php echo ($mode & 00200) ? ' checked' : '' ?>></label></td> + <td><label><input type="checkbox" name="gw" value="1"<?php echo ($mode & 00020) ? ' checked' : '' ?>></label></td> + <td><label><input type="checkbox" name="ow" value="1"<?php echo ($mode & 00002) ? ' checked' : '' ?>></label></td> + </tr> + <tr> + <td style="text-align: right"><b><?php echo lng('Execute') ?></b></td> + <td><label><input type="checkbox" name="ux" value="1"<?php echo ($mode & 00100) ? ' checked' : '' ?>></label></td> + <td><label><input type="checkbox" name="gx" value="1"<?php echo ($mode & 00010) ? ' checked' : '' ?>></label></td> + <td><label><input type="checkbox" name="ox" value="1"<?php echo ($mode & 00001) ? ' checked' : '' ?>></label></td> + </tr> + </table> + + <p> + <button type="submit" class="btn btn-success"><i class="fa fa-check-circle"></i> <?php echo lng('Change') ?></button> + <b><a href="?p=<?php echo urlencode(FM_PATH) ?>" class="btn btn-outline-primary"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></a></b> + </p> + </form> + </div> + </div> + </div> + <?php + fm_show_footer(); + exit; +} + +//--- FILEMANAGER MAIN +fm_show_header(); // HEADER +fm_show_nav_path(FM_PATH); // current path + +// messages +fm_show_message(); + +$num_files = count($files); +$num_folders = count($folders); +$all_files_size = 0; +$tableTheme = (FM_THEME == "dark") ? "text-white bg-dark table-dark" : "bg-white"; +?> +<form action="" method="post" class="pt-3"> + <input type="hidden" name="p" value="<?php echo fm_enc(FM_PATH) ?>"> + <input type="hidden" name="group" value="1"> + <div class="table-responsive"> + <table class="table table-bordered table-hover table-sm <?php echo $tableTheme; ?>" id="main-table"> + <thead class="thead-white"> + <tr> + <?php if (!FM_READONLY): ?> + <th style="width:3%" class="custom-checkbox-header"> + <div class="custom-control custom-checkbox"> + <input type="checkbox" class="custom-control-input" id="js-select-all-items" onclick="checkbox_toggle()"> + <label class="custom-control-label" for="js-select-all-items"></label> + </div> + </th><?php endif; ?> + <th><?php echo lng('Name') ?></th> + <th><?php echo lng('Size') ?></th> + <th><?php echo lng('Modified') ?></th> + <?php if (!FM_IS_WIN && !$hide_Cols): ?> + <th><?php echo lng('Perms') ?></th> + <th><?php echo lng('Owner') ?></th><?php endif; ?> + <th><?php echo lng('Actions') ?></th> + </tr> + </thead> + <?php + // link to parent folder + if ($parent !== false) { + ?> + <tr><?php if (!FM_READONLY): ?> + <td class="nosort"></td><?php endif; ?> + <td class="border-0"><a href="?p=<?php echo urlencode($parent) ?>"><i class="fa fa-chevron-circle-left go-back"></i> ..</a></td> + <td class="border-0"></td> + <td class="border-0"></td> + <td class="border-0"></td> + <?php if (!FM_IS_WIN && !$hide_Cols) { ?> + <td class="border-0"></td> + <td class="border-0"></td> + <?php } ?> + </tr> + <?php + } + $ii = 3399; + foreach ($folders as $f) { + $is_link = is_link($path . '/' . $f); + $img = $is_link ? 'icon-link_folder' : 'fa fa-folder-o'; + $modif_raw = filemtime($path . '/' . $f); + $modif = date(FM_DATETIME_FORMAT, $modif_raw); + if ($calc_folder) { + $filesize_raw = fm_get_directorysize($path . '/' . $f); + $filesize = fm_get_filesize($filesize_raw); + } + else { + $filesize_raw = ""; + $filesize = lng('Folder'); + } + $perms = substr(decoct(fileperms($path . '/' . $f)), -4); + if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) { + $owner = posix_getpwuid(fileowner($path . '/' . $f)); + $group = posix_getgrgid(filegroup($path . '/' . $f)); + } else { + $owner = array('name' => '?'); + $group = array('name' => '?'); + } + ?> + <tr> + <?php if (!FM_READONLY): ?> + <td class="custom-checkbox-td"> + <div class="custom-control custom-checkbox"> + <input type="checkbox" class="custom-control-input" id="<?php echo $ii ?>" name="file[]" value="<?php echo fm_enc($f) ?>"> + <label class="custom-control-label" for="<?php echo $ii ?>"></label> + </div> + </td><?php endif; ?> + <td> + <div class="filename"><a href="?p=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="<?php echo $img ?>"></i> <?php echo fm_convert_win(fm_enc($f)) ?> + </a><?php echo($is_link ? ' → <i>' . readlink($path . '/' . $f) . '</i>' : '') ?></div> + </td> + <td data-sort="a-<?php echo str_pad($filesize_raw, 18, "0", STR_PAD_LEFT);?>"> + <?php echo $filesize; ?> + </td> + <td data-sort="a-<?php echo $modif_raw;?>"><?php echo $modif ?></td> + <?php if (!FM_IS_WIN && !$hide_Cols): ?> + <td><?php if (!FM_READONLY): ?><a title="Change Permissions" href="?p=<?php echo urlencode(FM_PATH) ?>&chmod=<?php echo urlencode($f) ?>"><?php echo $perms ?></a><?php else: ?><?php echo $perms ?><?php endif; ?> + </td> + <td><?php echo $owner['name'] . ':' . $group['name'] ?></td> + <?php endif; ?> + <td class="inline-actions"><?php if (!FM_READONLY): ?> + <a title="<?php echo lng('Delete')?>" href="?p=<?php echo urlencode(FM_PATH) ?>&del=<?php echo urlencode($f) ?>" onclick="return confirm('<?php echo lng('Delete').' '.lng('Folder').'?'; ?>\n \n ( <?php echo urlencode($f) ?> )');"> <i class="fa fa-trash-o" aria-hidden="true"></i></a> + <a title="<?php echo lng('Rename')?>" href="#" onclick="rename('<?php echo fm_enc(FM_PATH) ?>', '<?php echo fm_enc(addslashes($f)) ?>');return false;"><i class="fa fa-pencil-square-o" aria-hidden="true"></i></a> + <a title="<?php echo lng('CopyTo')?>..." href="?p=&copy=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="fa fa-files-o" aria-hidden="true"></i></a> + <?php endif; ?> + <a title="<?php echo lng('DirectLink')?>" href="<?php echo fm_enc(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f . '/') ?>" target="_blank"><i class="fa fa-link" aria-hidden="true"></i></a> + </td> + </tr> + <?php + flush(); + $ii++; + } + $ik = 6070; + foreach ($files as $f) { + $is_link = is_link($path . '/' . $f); + $img = $is_link ? 'fa fa-file-text-o' : fm_get_file_icon_class($path . '/' . $f); + $modif_raw = filemtime($path . '/' . $f); + $modif = date(FM_DATETIME_FORMAT, $modif_raw); + $filesize_raw = fm_get_size($path . '/' . $f); + $filesize = fm_get_filesize($filesize_raw); + $filelink = '?p=' . urlencode(FM_PATH) . '&view=' . urlencode($f); + $all_files_size += $filesize_raw; + $perms = substr(decoct(fileperms($path . '/' . $f)), -4); + if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) { + $owner = posix_getpwuid(fileowner($path . '/' . $f)); + $group = posix_getgrgid(filegroup($path . '/' . $f)); + } else { + $owner = array('name' => '?'); + $group = array('name' => '?'); + } + ?> + <tr> + <?php if (!FM_READONLY): ?> + <td class="custom-checkbox-td"> + <div class="custom-control custom-checkbox"> + <input type="checkbox" class="custom-control-input" id="<?php echo $ik ?>" name="file[]" value="<?php echo fm_enc($f) ?>"> + <label class="custom-control-label" for="<?php echo $ik ?>"></label> + </div> + </td><?php endif; ?> + <td> + <div class="filename"> + <?php + if (in_array(strtolower(pathinfo($f, PATHINFO_EXTENSION)), array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg'))): ?> + <?php $imagePreview = fm_enc(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f); ?> + <a href="<?php echo $filelink ?>" data-preview-image="<?php echo $imagePreview ?>" title="<?php echo $f ?>"> + <?php else: ?> + <a href="<?php echo $filelink ?>" title="<?php echo $f ?>"> + <?php endif; ?> + <i class="<?php echo $img ?>"></i> <?php echo fm_convert_win($f) ?> + </a> + <?php echo($is_link ? ' → <i>' . readlink($path . '/' . $f) . '</i>' : '') ?> + </div> + </td> + <td data-sort=b-"<?php echo str_pad($filesize_raw, 18, "0", STR_PAD_LEFT); ?>"><span title="<?php printf('%s bytes', $filesize_raw) ?>"> + <?php echo $filesize; ?> + </span></td> + <td data-sort="b-<?php echo $modif_raw;?>"><?php echo $modif ?></td> + <?php if (!FM_IS_WIN && !$hide_Cols): ?> + <td><?php if (!FM_READONLY): ?><a title="<?php echo 'Change Permissions' ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&chmod=<?php echo urlencode($f) ?>"><?php echo $perms ?></a><?php else: ?><?php echo $perms ?><?php endif; ?> + </td> + <td><?php echo fm_enc($owner['name'] . ':' . $group['name']) ?></td> + <?php endif; ?> + <td class="inline-actions"> + <a title="<?php echo lng('Preview') ?>" href="<?php echo $filelink.'&quickView=1'; ?>" data-toggle="lightbox" data-gallery="tiny-gallery" data-title="<?php echo fm_convert_win($f) ?>" data-max-width="100%" data-width="100%"><i class="fa fa-eye"></i></a> + <?php if (!FM_READONLY): ?> + <a title="<?php echo lng('Delete') ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&del=<?php echo urlencode($f) ?>" onclick="return confirm('<?php echo lng('Delete').' '.lng('File').'?'; ?>\n \n ( <?php echo urlencode($f) ?> )');"> <i class="fa fa-trash-o"></i></a> + <a title="<?php echo lng('Rename') ?>" href="#" onclick="rename('<?php echo fm_enc(FM_PATH) ?>', '<?php echo fm_enc(addslashes($f)) ?>');return false;"><i class="fa fa-pencil-square-o"></i></a> + <a title="<?php echo lng('CopyTo') ?>..." + href="?p=<?php echo urlencode(FM_PATH) ?>&copy=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="fa fa-files-o"></i></a> + <?php endif; ?> + <a title="<?php echo lng('DirectLink') ?>" href="<?php echo fm_enc(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f) ?>" target="_blank"><i class="fa fa-link"></i></a> + <a title="<?php echo lng('Download') ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&dl=<?php echo urlencode($f) ?>"><i class="fa fa-download"></i></a> + </td> + </tr> + <?php + flush(); + $ik++; + } + + if (empty($folders) && empty($files)) { + ?> + <tfoot> + <tr><?php if (!FM_READONLY): ?> + <td></td><?php endif; ?> + <td colspan="<?php echo (!FM_IS_WIN && !$hide_Cols) ? '6' : '4' ?>"><em><?php echo 'Folder is empty' ?></em></td> + </tr> + </tfoot> + <?php + } else { + ?> + <tfoot> + <tr><?php if (!FM_READONLY): ?> + <td class="gray"></td><?php endif; ?> + <td class="gray" colspan="<?php echo (!FM_IS_WIN && !$hide_Cols) ? '6' : '4' ?>"> + <?php echo lng('FullSize').': <span class="badge badge-light">'.fm_get_filesize($all_files_size).'</span>' ?> + <?php echo lng('File').': <span class="badge badge-light">'.$num_files.'</span>' ?> + <?php echo lng('Folder').': <span class="badge badge-light">'.$num_folders.'</span>' ?> + <?php echo lng('PartitionSize').': <span class="badge badge-light">'.fm_get_filesize(@disk_free_space($path)) .'</span> '.lng('FreeOf').' <span class="badge badge-light">'.fm_get_filesize(@disk_total_space($path)).'</span>'; ?> + </td> + </tr> + </tfoot> + <?php + } + ?> + </table> + </div> + + <div class="row"> + <?php if (!FM_READONLY): ?> + <div class="col-xs-12 col-sm-9"> + <ul class="list-inline footer-action"> + <li class="list-inline-item"> <a href="#/select-all" class="btn btn-small btn-outline-primary btn-2" onclick="select_all();return false;"><i class="fa fa-check-square"></i> <?php echo lng('SelectAll') ?> </a></li> + <li class="list-inline-item"><a href="#/unselect-all" class="btn btn-small btn-outline-primary btn-2" onclick="unselect_all();return false;"><i class="fa fa-window-close"></i> <?php echo lng('UnSelectAll') ?> </a></li> + <li class="list-inline-item"><a href="#/invert-all" class="btn btn-small btn-outline-primary btn-2" onclick="invert_all();return false;"><i class="fa fa-th-list"></i> <?php echo lng('InvertSelection') ?> </a></li> + <li class="list-inline-item"><input type="submit" class="hidden" name="delete" id="a-delete" value="Delete" onclick="return confirm('Delete selected files and folders?')"> + <a href="javascript:document.getElementById('a-delete').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-trash"></i> <?php echo lng('Delete') ?> </a></li> + <li class="list-inline-item"><input type="submit" class="hidden" name="zip" id="a-zip" value="zip" onclick="return confirm('Create archive?')"> + <a href="javascript:document.getElementById('a-zip').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-file-archive-o"></i> <?php echo lng('Zip') ?> </a></li> + <li class="list-inline-item"><input type="submit" class="hidden" name="tar" id="a-tar" value="tar" onclick="return confirm('Create archive?')"> + <a href="javascript:document.getElementById('a-tar').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-file-archive-o"></i> <?php echo lng('Tar') ?> </a></li> + <li class="list-inline-item"><input type="submit" class="hidden" name="copy" id="a-copy" value="Copy"> + <a href="javascript:document.getElementById('a-copy').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-files-o"></i> <?php echo lng('Copy') ?> </a></li> + </ul> + </div> + <div class="col-3 d-none d-sm-block"><a href="https://tinyfilemanager.github.io" target="_blank" class="float-right text-muted">Tiny File Manager <?php echo VERSION; ?></a></div> + <?php else: ?> + <div class="col-12"><a href="https://tinyfilemanager.github.io" target="_blank" class="float-right text-muted">Tiny File Manager <?php echo VERSION; ?></a></div> + <?php endif; ?> + </div> + +</form> + +<?php +fm_show_footer(); + +//--- END + +// Functions + +/** + * Check if the filename is allowed. + * @param string $filename + * @return bool + */ +function fm_is_file_allowed($filename) +{ + // By default, no file is allowed + $allowed = false; + + if (FM_EXTENSION) { + $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); + + if (in_array($ext, explode(',', strtolower(FM_EXTENSION)))) { + $allowed = true; + } + } + + return $allowed; +} + +/** + * Delete file or folder (recursively) + * @param string $path + * @return bool + */ +function fm_rdelete($path) +{ + if (is_link($path)) { + return unlink($path); + } elseif (is_dir($path)) { + $objects = scandir($path); + $ok = true; + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (!fm_rdelete($path . '/' . $file)) { + $ok = false; + } + } + } + } + return ($ok) ? rmdir($path) : false; + } elseif (is_file($path)) { + return unlink($path); + } + return false; +} + +/** + * Recursive chmod + * @param string $path + * @param int $filemode + * @param int $dirmode + * @return bool + * @todo Will use in mass chmod + */ +function fm_rchmod($path, $filemode, $dirmode) +{ + if (is_dir($path)) { + if (!chmod($path, $dirmode)) { + return false; + } + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (!fm_rchmod($path . '/' . $file, $filemode, $dirmode)) { + return false; + } + } + } + } + return true; + } elseif (is_link($path)) { + return true; + } elseif (is_file($path)) { + return chmod($path, $filemode); + } + return false; +} + +/** + * Check the file extension which is allowed or not + * @param string $filename + * @return bool + */ +function fm_is_valid_ext($filename) +{ + $allowed = (FM_FILE_EXTENSION) ? explode(',', FM_FILE_EXTENSION) : false; + + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + return ($isFileAllowed) ? true : false; +} + +/** + * Safely rename + * @param string $old + * @param string $new + * @return bool|null + */ +function fm_rename($old, $new) +{ + $isFileAllowed = fm_is_valid_ext($new); + + if(!$isFileAllowed) return false; + + return (!file_exists($new) && file_exists($old)) ? rename($old, $new) : null; +} + +/** + * Copy file or folder (recursively). + * @param string $path + * @param string $dest + * @param bool $upd Update files + * @param bool $force Create folder with same names instead file + * @return bool + */ +function fm_rcopy($path, $dest, $upd = true, $force = true) +{ + if (is_dir($path)) { + if (!fm_mkdir($dest, $force)) { + return false; + } + $objects = scandir($path); + $ok = true; + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (!fm_rcopy($path . '/' . $file, $dest . '/' . $file)) { + $ok = false; + } + } + } + } + return $ok; + } elseif (is_file($path)) { + return fm_copy($path, $dest, $upd); + } + return false; +} + +/** + * Safely create folder + * @param string $dir + * @param bool $force + * @return bool + */ +function fm_mkdir($dir, $force) +{ + if (file_exists($dir)) { + if (is_dir($dir)) { + return $dir; + } elseif (!$force) { + return false; + } + unlink($dir); + } + return mkdir($dir, 0777, true); +} + +/** + * Safely copy file + * @param string $f1 + * @param string $f2 + * @param bool $upd Indicates if file should be updated with new content + * @return bool + */ +function fm_copy($f1, $f2, $upd) +{ + $time1 = filemtime($f1); + if (file_exists($f2)) { + $time2 = filemtime($f2); + if ($time2 >= $time1 && $upd) { + return false; + } + } + $ok = copy($f1, $f2); + if ($ok) { + touch($f2, $time1); + } + return $ok; +} + +/** + * Get mime type + * @param string $file_path + * @return mixed|string + */ +function fm_get_mime_type($file_path) +{ + if (function_exists('finfo_open')) { + $finfo = finfo_open(FILEINFO_MIME_TYPE); + $mime = finfo_file($finfo, $file_path); + finfo_close($finfo); + return $mime; + } elseif (function_exists('mime_content_type')) { + return mime_content_type($file_path); + } elseif (!stristr(ini_get('disable_functions'), 'shell_exec')) { + $file = escapeshellarg($file_path); + $mime = shell_exec('file -bi ' . $file); + return $mime; + } else { + return '--'; + } +} + +/** + * HTTP Redirect + * @param string $url + * @param int $code + */ +function fm_redirect($url, $code = 302) +{ + header('Location: ' . $url, true, $code); + exit; +} + +/** + * Path traversal prevention and clean the url + * It replaces (consecutive) occurrences of / and \\ with whatever is in DIRECTORY_SEPARATOR, and processes /. and /.. fine. + * @param $path + * @return string + */ +function get_absolute_path($path) { + $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path); + $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen'); + $absolutes = array(); + foreach ($parts as $part) { + if ('.' == $part) continue; + if ('..' == $part) { + array_pop($absolutes); + } else { + $absolutes[] = $part; + } + } + return implode(DIRECTORY_SEPARATOR, $absolutes); +} + +/** + * Clean path + * @param string $path + * @return string + */ +function fm_clean_path($path, $trim = true) +{ + $path = $trim ? trim($path) : $path; + $path = trim($path, '\\/'); + $path = str_replace(array('../', '..\\'), '', $path); + $path = get_absolute_path($path); + if ($path == '..') { + $path = ''; + } + return str_replace('\\', '/', $path); +} + +/** + * Get parent path + * @param string $path + * @return bool|string + */ +function fm_get_parent_path($path) +{ + $path = fm_clean_path($path); + if ($path != '') { + $array = explode('/', $path); + if (count($array) > 1) { + $array = array_slice($array, 0, -1); + return implode('/', $array); + } + return ''; + } + return false; +} + +/** + * Check file is in exclude list + * @param string $file + * @return bool + */ +function fm_is_exclude_items($file) { + $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); + if(!in_array($file, FM_EXCLUDE_ITEMS) && !in_array("*.$ext", FM_EXCLUDE_ITEMS)) { + return true; + } + return false; +} + +/** + * get language translations from json file + * @param int $tr + * @return array + */ +function fm_get_translations($tr) { + try { + $content = @file_get_contents('translation.json'); + if($content !== FALSE) { + $lng = json_decode($content, TRUE); + global $lang_list; + foreach ($lng["language"] as $key => $value) + { + $code = $value["code"]; + $lang_list[$code] = $value["name"]; + if ($tr) + $tr[$code] = $value["translation"]; + } + return $tr; + } + + } + catch (Exception $e) { + echo $e; + } +} + +/** + * @param $file + * Recover all file sizes larger than > 2GB. + * Works on php 32bits and 64bits and supports linux + * @return int|string + */ +function fm_get_size($file) +{ + static $iswin; + static $isdarwin; + if (!isset($iswin)) { + $iswin = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'); + } + if (!isset($isdarwin)) { + $isdarwin = (strtoupper(substr(PHP_OS, 0)) == "DARWIN"); + } + + static $exec_works; + if (!isset($exec_works)) { + $exec_works = (function_exists('exec') && !ini_get('safe_mode') && @exec('echo EXEC') == 'EXEC'); + } + + // try a shell command + if ($exec_works) { + $arg = escapeshellarg($file); + $cmd = ($iswin) ? "for %F in (\"$file\") do @echo %~zF" : ($isdarwin ? "stat -f%z $arg" : "stat -c%s $arg"); + @exec($cmd, $output); + if (is_array($output) && ctype_digit($size = trim(implode("\n", $output)))) { + return $size; + } + } + + // try the Windows COM interface + if ($iswin && class_exists("COM")) { + try { + $fsobj = new COM('Scripting.FileSystemObject'); + $f = $fsobj->GetFile( realpath($file) ); + $size = $f->Size; + } catch (Exception $e) { + $size = null; + } + if (ctype_digit($size)) { + return $size; + } + } + + // if all else fails + return filesize($file); +} + +/** + * Get nice filesize + * @param int $size + * @return string + */ +function fm_get_filesize($size) +{ + $size = (float) $size; + $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); + $power = $size > 0 ? floor(log($size, 1024)) : 0; + return sprintf('%s %s', round($size / pow(1024, $power), 2), $units[$power]); +} + +/** + * Get director total size + * @param string $directory + * @return int + */ +function fm_get_directorysize($directory) { + global $calc_folder; + if ($calc_folder==true) { // Slower output + $size = 0; $count= 0; $dirCount= 0; + foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file) + if ($file->isFile()) + { $size+=$file->getSize(); + $count++; + } + else if ($file->isDir()) { $dirCount++; } + // return [$size, $count, $dirCount]; + return $size; + } + else return 'Folder'; // Quick output +} + +/** + * Get info about zip archive + * @param string $path + * @return array|bool + */ +function fm_get_zif_info($path, $ext) { + if ($ext == 'zip' && function_exists('zip_open')) { + $arch = zip_open($path); + if ($arch) { + $filenames = array(); + while ($zip_entry = zip_read($arch)) { + $zip_name = zip_entry_name($zip_entry); + $zip_folder = substr($zip_name, -1) == '/'; + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => zip_entry_filesize($zip_entry), + 'compressed_size' => zip_entry_compressedsize($zip_entry), + 'folder' => $zip_folder + //'compression_method' => zip_entry_compressionmethod($zip_entry), + ); + } + zip_close($arch); + return $filenames; + } + } elseif($ext == 'tar' && class_exists('PharData')) { + $archive = new PharData($path); + $filenames = array(); + foreach(new RecursiveIteratorIterator($archive) as $file) { + $parent_info = $file->getPathInfo(); + $zip_name = str_replace("phar://".$path, '', $file->getPathName()); + $zip_name = substr($zip_name, ($pos = strpos($zip_name, '/')) !== false ? $pos + 1 : 0); + $zip_folder = $parent_info->getFileName(); + $zip_info = new SplFileInfo($file); + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => $zip_info->getSize(), + 'compressed_size' => $file->getCompressedSize(), + 'folder' => $zip_folder + ); + } + return $filenames; + } + return false; +} + +/** + * Encode html entities + * @param string $text + * @return string + */ +function fm_enc($text) +{ + return htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); +} + +/** + * Prevent XSS attacks + * @param string $text + * @return string + */ +function fm_isvalid_filename($text) { + return (strpbrk($text, '/?%*:|"<>') === FALSE) ? true : false; +} + +/** + * Save message in session + * @param string $msg + * @param string $status + */ +function fm_set_msg($msg, $status = 'ok') +{ + $_SESSION[FM_SESSION_ID]['message'] = $msg; + $_SESSION[FM_SESSION_ID]['status'] = $status; +} + +/** + * Check if string is in UTF-8 + * @param string $string + * @return int + */ +function fm_is_utf8($string) +{ + return preg_match('//u', $string); +} + +/** + * Convert file name to UTF-8 in Windows + * @param string $filename + * @return string + */ +function fm_convert_win($filename) +{ + if (FM_IS_WIN && function_exists('iconv')) { + $filename = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $filename); + } + return $filename; +} + +/** + * @param $obj + * @return array + */ +function fm_object_to_array($obj) +{ + if (!is_object($obj) && !is_array($obj)) { + return $obj; + } + if (is_object($obj)) { + $obj = get_object_vars($obj); + } + return array_map('fm_object_to_array', $obj); +} + +/** + * Get CSS classname for file + * @param string $path + * @return string + */ +function fm_get_file_icon_class($path) +{ + // get extension + $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); + + switch ($ext) { + case 'ico': + case 'gif': + case 'jpg': + case 'jpeg': + case 'jpc': + case 'jp2': + case 'jpx': + case 'xbm': + case 'wbmp': + case 'png': + case 'bmp': + case 'tif': + case 'tiff': + case 'svg': + $img = 'fa fa-picture-o'; + break; + case 'passwd': + case 'ftpquota': + case 'sql': + case 'js': + case 'json': + case 'sh': + case 'config': + case 'twig': + case 'tpl': + case 'md': + case 'gitignore': + case 'c': + case 'cpp': + case 'cs': + case 'py': + case 'map': + case 'lock': + case 'dtd': + $img = 'fa fa-file-code-o'; + break; + case 'txt': + case 'ini': + case 'conf': + case 'log': + case 'htaccess': + $img = 'fa fa-file-text-o'; + break; + case 'css': + case 'less': + case 'sass': + case 'scss': + $img = 'fa fa-css3'; + break; + case 'zip': + case 'rar': + case 'gz': + case 'tar': + case '7z': + $img = 'fa fa-file-archive-o'; + break; + case 'php': + case 'php4': + case 'php5': + case 'phps': + case 'phtml': + $img = 'fa fa-code'; + break; + case 'htm': + case 'html': + case 'shtml': + case 'xhtml': + $img = 'fa fa-html5'; + break; + case 'xml': + case 'xsl': + $img = 'fa fa-file-excel-o'; + break; + case 'wav': + case 'mp3': + case 'mp2': + case 'm4a': + case 'aac': + case 'ogg': + case 'oga': + case 'wma': + case 'mka': + case 'flac': + case 'ac3': + case 'tds': + $img = 'fa fa-music'; + break; + case 'm3u': + case 'm3u8': + case 'pls': + case 'cue': + $img = 'fa fa-headphones'; + break; + case 'avi': + case 'mpg': + case 'mpeg': + case 'mp4': + case 'm4v': + case 'flv': + case 'f4v': + case 'ogm': + case 'ogv': + case 'mov': + case 'mkv': + case '3gp': + case 'asf': + case 'wmv': + $img = 'fa fa-file-video-o'; + break; + case 'eml': + case 'msg': + $img = 'fa fa-envelope-o'; + break; + case 'xls': + case 'xlsx': + case 'ods': + $img = 'fa fa-file-excel-o'; + break; + case 'csv': + $img = 'fa fa-file-text-o'; + break; + case 'bak': + $img = 'fa fa-clipboard'; + break; + case 'doc': + case 'docx': + case 'odt': + $img = 'fa fa-file-word-o'; + break; + case 'ppt': + case 'pptx': + $img = 'fa fa-file-powerpoint-o'; + break; + case 'ttf': + case 'ttc': + case 'otf': + case 'woff': + case 'woff2': + case 'eot': + case 'fon': + $img = 'fa fa-font'; + break; + case 'pdf': + $img = 'fa fa-file-pdf-o'; + break; + case 'psd': + case 'ai': + case 'eps': + case 'fla': + case 'swf': + $img = 'fa fa-file-image-o'; + break; + case 'exe': + case 'msi': + $img = 'fa fa-file-o'; + break; + case 'bat': + $img = 'fa fa-terminal'; + break; + default: + $img = 'fa fa-info-circle'; + } + + return $img; +} + +/** + * Get image files extensions + * @return array + */ +function fm_get_image_exts() +{ + return array('ico', 'gif', 'jpg', 'jpeg', 'jpc', 'jp2', 'jpx', 'xbm', 'wbmp', 'png', 'bmp', 'tif', 'tiff', 'psd', 'svg'); +} + +/** + * Get video files extensions + * @return array + */ +function fm_get_video_exts() +{ + return array('avi', 'webm', 'wmv', 'mp4', 'm4v', 'ogm', 'ogv', 'mov', 'mkv'); +} + +/** + * Get audio files extensions + * @return array + */ +function fm_get_audio_exts() +{ + return array('wav', 'mp3', 'ogg', 'm4a'); +} + +/** + * Get text file extensions + * @return array + */ +function fm_get_text_exts() +{ + return array( + 'txt', 'css', 'ini', 'conf', 'log', 'htaccess', 'passwd', 'ftpquota', 'sql', 'js', 'json', 'sh', 'config', + 'php', 'php4', 'php5', 'phps', 'phtml', 'htm', 'html', 'shtml', 'xhtml', 'xml', 'xsl', 'm3u', 'm3u8', 'pls', 'cue', + 'eml', 'msg', 'csv', 'bat', 'twig', 'tpl', 'md', 'gitignore', 'less', 'sass', 'scss', 'c', 'cpp', 'cs', 'py', + 'map', 'lock', 'dtd', 'svg', 'scss', 'asp', 'aspx', 'asx', 'asmx', 'ashx', 'jsx', 'jsp', 'jspx', 'cfm', 'cgi' + ); +} + +/** + * Get mime types of text files + * @return array + */ +function fm_get_text_mimes() +{ + return array( + 'application/xml', + 'application/javascript', + 'application/x-javascript', + 'image/svg+xml', + 'message/rfc822', + ); +} + +/** + * Get file names of text files w/o extensions + * @return array + */ +function fm_get_text_names() +{ + return array( + 'license', + 'readme', + 'authors', + 'contributors', + 'changelog', + ); +} + +/** + * Get online docs viewer supported files extensions + * @return array + */ +function fm_get_onlineViewer_exts() +{ + return array('doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'ai', 'psd', 'dxf', 'xps', 'rar', 'odt', 'ods'); +} + +function fm_get_file_mimes($extension) +{ + $fileTypes['swf'] = 'application/x-shockwave-flash'; + $fileTypes['pdf'] = 'application/pdf'; + $fileTypes['exe'] = 'application/octet-stream'; + $fileTypes['zip'] = 'application/zip'; + $fileTypes['doc'] = 'application/msword'; + $fileTypes['xls'] = 'application/vnd.ms-excel'; + $fileTypes['ppt'] = 'application/vnd.ms-powerpoint'; + $fileTypes['gif'] = 'image/gif'; + $fileTypes['png'] = 'image/png'; + $fileTypes['jpeg'] = 'image/jpg'; + $fileTypes['jpg'] = 'image/jpg'; + $fileTypes['rar'] = 'application/rar'; + + $fileTypes['ra'] = 'audio/x-pn-realaudio'; + $fileTypes['ram'] = 'audio/x-pn-realaudio'; + $fileTypes['ogg'] = 'audio/x-pn-realaudio'; + + $fileTypes['wav'] = 'video/x-msvideo'; + $fileTypes['wmv'] = 'video/x-msvideo'; + $fileTypes['avi'] = 'video/x-msvideo'; + $fileTypes['asf'] = 'video/x-msvideo'; + $fileTypes['divx'] = 'video/x-msvideo'; + + $fileTypes['mp3'] = 'audio/mpeg'; + $fileTypes['mp4'] = 'audio/mpeg'; + $fileTypes['mpeg'] = 'video/mpeg'; + $fileTypes['mpg'] = 'video/mpeg'; + $fileTypes['mpe'] = 'video/mpeg'; + $fileTypes['mov'] = 'video/quicktime'; + $fileTypes['swf'] = 'video/quicktime'; + $fileTypes['3gp'] = 'video/quicktime'; + $fileTypes['m4a'] = 'video/quicktime'; + $fileTypes['aac'] = 'video/quicktime'; + $fileTypes['m3u'] = 'video/quicktime'; + + $fileTypes['php'] = ['application/x-php']; + $fileTypes['html'] = ['text/html']; + $fileTypes['txt'] = ['text/plain']; + return $fileTypes[$extension]; +} + +/** + * This function scans the files and folder recursively, and return matching files + * @param string $dir + * @param string $filter + * @return json + */ + function scan($dir, $filter = '') { + $path = FM_ROOT_PATH.'/'.$dir; + if($dir) { + $ite = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); + $rii = new RegexIterator($ite, "/(" . $filter . ")/i"); + + $files = array(); + foreach ($rii as $file) { + if (!$file->isDir()) { + $fileName = $file->getFilename(); + $location = str_replace(FM_ROOT_PATH, '', $file->getPath()); + $files[] = array( + "name" => $fileName, + "type" => "file", + "path" => $location, + ); + } + } + return $files; + } +} + +/* +Parameters: downloadFile(File Location, File Name, +max speed, is streaming +If streaming - videos will show as videos, images as images +instead of download prompt +https://stackoverflow.com/a/13821992/1164642 +*/ + +function fm_download_file($fileLocation, $fileName, $chunkSize = 1024) +{ + if (connection_status() != 0) + return (false); + $extension = pathinfo($fileName, PATHINFO_EXTENSION); + + $contentType = fm_get_file_mimes($extension); + header("Cache-Control: public"); + header("Content-Transfer-Encoding: binary\n"); + header('Content-Type: $contentType'); + + $contentDisposition = 'attachment'; + + + if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { + $fileName = preg_replace('/\./', '%2e', $fileName, substr_count($fileName, '.') - 1); + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } else { + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } + + header("Accept-Ranges: bytes"); + $range = 0; + $size = filesize($fileLocation); + + if (isset($_SERVER['HTTP_RANGE'])) { + list($a, $range) = explode("=", $_SERVER['HTTP_RANGE']); + str_replace($range, "-", $range); + $size2 = $size - 1; + $new_length = $size - $range; + header("HTTP/1.1 206 Partial Content"); + header("Content-Length: $new_length"); + header("Content-Range: bytes $range$size2/$size"); + } else { + $size2 = $size - 1; + header("Content-Range: bytes 0-$size2/$size"); + header("Content-Length: " . $size); + } + + if ($size == 0) { + die('Zero byte file! Aborting download'); + } + @ini_set('magic_quotes_runtime', 0); + $fp = fopen("$fileLocation", "rb"); + + fseek($fp, $range); + + while (!feof($fp) and (connection_status() == 0)) { + set_time_limit(0); + print(@fread($fp, 1024*$chunkSize)); + flush(); + ob_flush(); + // sleep(1); + } + fclose($fp); + + return ((connection_status() == 0) and !connection_aborted()); +} + +function fm_get_theme() { + $result = ''; + if(FM_THEME == "dark") { + $result = "text-white bg-dark"; + } + return $result; +} + +/** + * Class to work with zip files (using ZipArchive) + */ +class FM_Zipper +{ + private $zip; + + public function __construct() + { + $this->zip = new ZipArchive(); + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $res = $this->zip->open($filename, ZipArchive::CREATE); + if ($res !== true) { + return false; + } + if (is_array($files)) { + foreach ($files as $f) { + if (!$this->addFileOrDir($f)) { + $this->zip->close(); + return false; + } + } + $this->zip->close(); + return true; + } else { + if ($this->addFileOrDir($files)) { + $this->zip->close(); + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->zip->open($filename); + if ($res !== true) { + return false; + } + if ($this->zip->extractTo($path)) { + $this->zip->close(); + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + return $this->zip->addFile($filename); + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + if (!$this->zip->addEmptyDir($path)) { + return false; + } + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + if (!$this->zip->addFile($path . '/' . $file)) { + return false; + } + } + } + } + return true; + } + return false; + } +} + +/** + * Class to work with Tar files (using PharData) + */ +class FM_Zipper_Tar +{ + private $tar; + + public function __construct() + { + $this->tar = null; + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $this->tar = new PharData($filename); + if (is_array($files)) { + foreach ($files as $f) { + if (!$this->addFileOrDir($f)) { + return false; + } + } + return true; + } else { + if ($this->addFileOrDir($files)) { + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->tar->open($filename); + if ($res !== true) { + return false; + } + if ($this->tar->extractTo($path)) { + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + try { + $this->tar->addFile($filename); + return true; + } catch (Exception $e) { + return false; + } + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + try { + $this->tar->addFile($path . '/' . $file); + } catch (Exception $e) { + return false; + } + } + } + } + return true; + } + return false; + } +} + + + +/** + * Save Configuration + */ + class FM_Config +{ + var $data; + + function __construct() + { + + global $root_path, $root_url, $CONFIG; + $fm_url = $root_url.$_SERVER["PHP_SELF"]; + $this->data = array( + 'lang' => 'en', + 'error_reporting' => true, + 'show_hidden' => true + ); + $data = false; + if (strlen($CONFIG)) { + $data = fm_object_to_array(json_decode($CONFIG)); + } else { + $msg = 'Tiny File Manager<br>Error: Cannot load configuration'; + if (substr($fm_url, -1) == '/') { + $fm_url = rtrim($fm_url, '/'); + $msg .= '<br>'; + $msg .= '<br>Seems like you have a trailing slash on the URL.'; + $msg .= '<br>Try this link: <a href="' . $fm_url . '">' . $fm_url . '</a>'; + } + die($msg); + } + if (is_array($data) && count($data)) $this->data = $data; + else $this->save(); + } + + function save() + { + $fm_file = __FILE__; + $var_name = '$CONFIG'; + $var_value = var_export(json_encode($this->data), true); + $config_string = "<?php" . chr(13) . chr(10) . "//Default Configuration".chr(13) . chr(10)."$var_name = $var_value;" . chr(13) . chr(10); + if (is_writable($fm_file)) { + $lines = file($fm_file); + if ($fh = @fopen($fm_file, "w")) { + @fputs($fh, $config_string, strlen($config_string)); + for ($x = 3; $x < count($lines); $x++) { + @fputs($fh, $lines[$x], strlen($lines[$x])); + } + @fclose($fh); + } + } + } +} + + + +//--- templates functions + +/** + * Show nav block + * @param string $path + */ +function fm_show_nav_path($path) +{ + global $lang, $sticky_navbar; + $isStickyNavBar = $sticky_navbar ? 'fixed-top' : ''; + $getTheme = fm_get_theme(); + $getTheme .= " navbar-light"; + if(FM_THEME == "dark") { + $getTheme .= " navbar-dark"; + } else { + $getTheme .= " bg-white"; + } + ?> + <nav class="navbar navbar-expand-lg <?php echo $getTheme; ?> mb-4 main-nav <?php echo $isStickyNavBar ?>"> + <a class="navbar-brand" href=""> <?php echo lng('AppTitle') ?> </a> + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <div class="collapse navbar-collapse" id="navbarSupportedContent"> + + <?php + $path = fm_clean_path($path); + $root_url = "<a href='?p='><i class='fa fa-home' aria-hidden='true' title='" . FM_ROOT_PATH . "'></i></a>"; + $sep = '<i class="bread-crumb"> / </i>'; + if ($path != '') { + $exploded = explode('/', $path); + $count = count($exploded); + $array = array(); + $parent = ''; + for ($i = 0; $i < $count; $i++) { + $parent = trim($parent . '/' . $exploded[$i], '/'); + $parent_enc = urlencode($parent); + $array[] = "<a href='?p={$parent_enc}'>" . fm_enc(fm_convert_win($exploded[$i])) . "</a>"; + } + $root_url .= $sep . implode($sep, $array); + } + echo '<div class="col-xs-6 col-sm-5">' . $root_url . '</div>'; + ?> + + <div class="col-xs-6 col-sm-7 text-right"> + <ul class="navbar-nav mr-auto float-right <?php echo fm_get_theme(); ?>"> + <li class="nav-item mr-2"> + <div class="input-group input-group-sm mr-1" style="margin-top:4px;"> + <input type="text" class="form-control" placeholder="<?php echo lng('Search') ?>" aria-label="<?php echo lng('Search') ?>" aria-describedby="search-addon2" id="search-addon"> + <div class="input-group-append"> + <span class="input-group-text" id="search-addon2"><i class="fa fa-search"></i></span> + </div> + <div class="input-group-append btn-group"> + <span class="input-group-text dropdown-toggle" id="search-addon2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></span> + <div class="dropdown-menu dropdown-menu-right"> + <a class="dropdown-item" href="<?php echo $path2 = $path ? $path : '.'; ?>" id="js-search-modal" data-toggle="modal" data-target="#searchModal">Advanced Search</a> + </div> + </div> + </div> + </li> + <?php if (!FM_READONLY): ?> + <li class="nav-item"> + <a title="<?php echo lng('Upload') ?>" class="nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&upload"><i class="fa fa-cloud-upload" aria-hidden="true"></i> <?php echo lng('Upload') ?></a> + </li> + <li class="nav-item"> + <a title="<?php echo lng('NewItem') ?>" class="nav-link" href="#createNewItem" data-toggle="modal" data-target="#createNewItem"><i class="fa fa-plus-square"></i> <?php echo lng('NewItem') ?></a> + </li> + <?php endif; ?> + <?php if (FM_USE_AUTH): ?> + <li class="nav-item avatar dropdown"> + <a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink-5" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-user-circle"></i> <?php if(isset($_SESSION[FM_SESSION_ID]['logged'])) { echo $_SESSION[FM_SESSION_ID]['logged']; } ?></a> + <div class="dropdown-menu dropdown-menu-right <?php echo fm_get_theme(); ?>" aria-labelledby="navbarDropdownMenuLink-5"> + <?php if (!FM_READONLY): ?> + <a title="<?php echo lng('Settings') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&settings=1"><i class="fa fa-cog" aria-hidden="true"></i> <?php echo lng('Settings') ?></a> + <?php endif ?> + <a title="<?php echo lng('Help') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&help=2"><i class="fa fa-exclamation-circle" aria-hidden="true"></i> <?php echo lng('Help') ?></a> + <a title="<?php echo lng('Logout') ?>" class="dropdown-item nav-link" href="?logout=1"><i class="fa fa-sign-out" aria-hidden="true"></i> <?php echo lng('Logout') ?></a> + </div> + </li> + <?php else: ?> + <?php if (!FM_READONLY): ?> + <li class="nav-item"> + <a title="<?php echo lng('Settings') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&settings=1"><i class="fa fa-cog" aria-hidden="true"></i> <?php echo lng('Settings') ?></a> + </li> + <?php endif; ?> + <?php endif; ?> + </ul> + </div> + </div> + </nav> + <?php +} + +/** + * Show message from session + */ +function fm_show_message() +{ + if (isset($_SESSION[FM_SESSION_ID]['message'])) { + $class = isset($_SESSION[FM_SESSION_ID]['status']) ? $_SESSION[FM_SESSION_ID]['status'] : 'ok'; + echo '<p class="message ' . $class . '">' . $_SESSION[FM_SESSION_ID]['message'] . '</p>'; + unset($_SESSION[FM_SESSION_ID]['message']); + unset($_SESSION[FM_SESSION_ID]['status']); + } +} + +/** + * Show page header in Login Form + */ +function fm_show_header_login() +{ +$sprites_ver = '20160315'; +header("Content-Type: text/html; charset=utf-8"); +header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); +header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); +header("Pragma: no-cache"); + +global $lang, $root_url, $favicon_path; +?> +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content="Web based File Manager in PHP, Manage your files efficiently and easily with Tiny File Manager"> + <meta name="author" content="CCP Programmers"> + <meta name="robots" content="noindex, nofollow"> + <meta name="googlebot" content="noindex"> + <?php if($favicon_path) { echo '<link rel="icon" href="'.fm_enc($favicon_path).'" type="image/png">'; } ?> + <title><?php echo fm_enc(APP_TITLE) ?></title> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> + <style> + body.fm-login-page{ background-color:#f7f9fb;font-size:14px;background-color:#f7f9fb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 304 304' width='304' height='304'%3E%3Cpath fill='%23e2e9f1' fill-opacity='0.4' d='M44.1 224a5 5 0 1 1 0 2H0v-2h44.1zm160 48a5 5 0 1 1 0 2H82v-2h122.1zm57.8-46a5 5 0 1 1 0-2H304v2h-42.1zm0 16a5 5 0 1 1 0-2H304v2h-42.1zm6.2-114a5 5 0 1 1 0 2h-86.2a5 5 0 1 1 0-2h86.2zm-256-48a5 5 0 1 1 0 2H0v-2h12.1zm185.8 34a5 5 0 1 1 0-2h86.2a5 5 0 1 1 0 2h-86.2zM258 12.1a5 5 0 1 1-2 0V0h2v12.1zm-64 208a5 5 0 1 1-2 0v-54.2a5 5 0 1 1 2 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 1 1 2 0zm16 16V64h46v2h-48V37.9a5 5 0 1 1 2 0zm-128 96V208h16v12.1a5 5 0 1 1-2 0V210h-16v-76.1a5 5 0 1 1 2 0zm-5.9-21.9a5 5 0 1 1 0 2H114v48H85.9a5 5 0 1 1 0-2H112v-48h12.1zm-6.2 130a5 5 0 1 1 0-2H176v-74.1a5 5 0 1 1 2 0V242h-60.1zm-16-64a5 5 0 1 1 0-2H114v48h10.1a5 5 0 1 1 0 2H112v-48h-10.1zM66 284.1a5 5 0 1 1-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 1 1 0 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 1 1 0-2H274v44.1a5 5 0 1 1-2 0V146h-10.1zm-64 96a5 5 0 1 1 0-2H208v-80h16v-14h-42.1a5 5 0 1 1 0-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 1 1 0 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 1 1 0-2H96v-42.1a5 5 0 1 1 2 0zM53.9 34a5 5 0 1 1 0-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 1 1 0-2H80V64h32V37.9a5 5 0 1 1 2 0zM101.9 82a5 5 0 1 1 0-2H128V37.9a5 5 0 1 1 2 0V82h-28.1zm16-64a5 5 0 1 1 0-2H146v44.1a5 5 0 1 1-2 0V18h-26.1zm102.2 270a5 5 0 1 1 0 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 1 1 2 0zM53.9 18a5 5 0 1 1 0-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 1 1 0-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 0 1-9.8-2h2.07a3 3 0 1 0 5.66 0H178v34h-18V21.9a5 5 0 1 1 2 0V32h14V2h-58.1zm0 96a5 5 0 1 1 0-2H137l32-32h39V21.9a5 5 0 1 1 2 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 1 1-2 0v-76.51L175.59 80H224V21.9a5 5 0 1 1 2 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 1 1-2 0v-99.51L184.59 96H300.1a5 5 0 0 1 3.9-3.9v2.07a3 3 0 0 0 0 5.66v2.07a5 5 0 0 1-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 1 1-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 1 1 0 2H0v-65.41l48-48V53.9a5 5 0 1 1 2 0zm-16 16V89.41l-34 34v-2.82l32-32V69.9a5 5 0 1 1 2 0zM12.1 32a5 5 0 1 1 0 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 1 1 0-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 1 1 0-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 1 1 0-2H64v-22.59L40.59 194H21.9a5 5 0 1 1 0-2H41.41L66 216.59V242H53.9zm150.2 14a5 5 0 1 1 0 2H96v-56.6L56.6 162H37.9a5 5 0 1 1 0-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 1 1 0-2H80v-46.59L48.59 178H21.9a5 5 0 1 1 0-2H49.41L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 0 1 3.9 3.9H3.83A3 3 0 0 0 0 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 0 1 6 97a5 5 0 0 1-6 4.9v-2.07a3 3 0 1 0 0-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 0 0-5.66 0h-2.07a5 5 0 0 1 9.8 0zM5.9 0A5.02 5.02 0 0 1 0 5.9V3.83A3 3 0 0 0 3.83 0H5.9zm294.2 0h2.07A3 3 0 0 0 304 3.83V5.9a5 5 0 0 1-3.9-5.9zm3.9 300.1v2.07a3 3 0 0 0-1.83 1.83h-2.07a5 5 0 0 1 3.9-3.9zM97 100a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-48 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 96a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-144a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM49 36a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM33 68a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 240a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm80-176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm112 176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 180a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 84a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'%3E%3C/path%3E%3C/svg%3E");} + .fm-login-page .brand{ width:121px;overflow:hidden;margin:0 auto;position:relative;z-index:1} + .fm-login-page .brand img{ width:100%} + .fm-login-page .card-wrapper{ width:360px;margin-top:10%;margin-left:auto;margin-right:auto;} + .fm-login-page .card{ border-color:transparent;box-shadow:0 4px 8px rgba(0,0,0,.05)} + .fm-login-page .card-title{ margin-bottom:1.5rem;font-size:24px;font-weight:400;} + .fm-login-page .form-control{ border-width:2.3px} + .fm-login-page .form-group label{ width:100%} + .fm-login-page .btn.btn-block{ padding:12px 10px} + .fm-login-page .footer{ margin:40px 0;color:#888;text-align:center} + @media screen and (max-width:425px){ + .fm-login-page .card-wrapper{ width:90%;margin:0 auto;margin-top:10%;} + } + @media screen and (max-width:320px){ + .fm-login-page .card.fat{ padding:0} + .fm-login-page .card.fat .card-body{ padding:15px} + } + .message{ padding:4px 7px;border:1px solid #ddd;background-color:#fff} + .message.ok{ border-color:green;color:green} + .message.error{ border-color:red;color:red} + .message.alert{ border-color:orange;color:orange} + body.fm-login-page.theme-dark {background-color: #2f2a2a;} + .theme-dark svg g, .theme-dark svg path {fill: #ffffff; } + </style> +</head> +<body class="fm-login-page <?php echo (FM_THEME == "dark") ? 'theme-dark' : ''; ?>"> +<div id="wrapper" class="container-fluid"> + + <?php + } + + /** + * Show page footer in Login Form + */ + function fm_show_footer_login() + { + ?> +</div> +<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script> +<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script> +</body> +</html> +<?php +} + +/** + * Show Header after login + */ +function fm_show_header() +{ +$sprites_ver = '20160315'; +header("Content-Type: text/html; charset=utf-8"); +header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); +header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); +header("Pragma: no-cache"); + +global $lang, $root_url, $sticky_navbar, $favicon_path; +$isStickyNavBar = $sticky_navbar ? 'navbar-fixed' : 'navbar-normal'; +?> +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> + <meta name="description" content="Web based File Manager in PHP, Manage your files efficiently and easily with Tiny File Manager"> + <meta name="author" content="CCP Programmers"> + <meta name="robots" content="noindex, nofollow"> + <meta name="googlebot" content="noindex"> + <?php if($favicon_path) { echo '<link rel="icon" href="'.fm_enc($favicon_path).'" type="image/png">'; } ?> + <title><?php echo fm_enc(APP_TITLE) ?></title> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ekko-lightbox/5.3.0/ekko-lightbox.css" /> + <?php if (FM_USE_HIGHLIGHTJS): ?> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.6.0/styles/<?php echo FM_HIGHLIGHTJS_STYLE ?>.min.css"> + <?php endif; ?> + <style> + body { font-size:14px;color:#222;background:#F7F7F7; } + body.navbar-fixed { margin-top:55px; } + a:hover, a:visited, a:focus { text-decoration:none !important; } + * { -webkit-border-radius:0 !important;-moz-border-radius:0 !important;border-radius:0 !important; } + .filename, td, th { white-space:nowrap } + .navbar-brand { font-weight:bold; } + .nav-item.avatar a { cursor:pointer;text-transform:capitalize; } + .nav-item.avatar a > i { font-size:15px; } + .nav-item.avatar .dropdown-menu a { font-size:13px; } + #search-addon { font-size:12px;border-right-width:0; } + #search-addon2 { background:transparent;border-left:0; } + .bread-crumb { color:#cccccc;font-style:normal; } + #main-table .filename a { color:#222222; } + .table td, .table th { vertical-align:middle !important; } + .table .custom-checkbox-td .custom-control.custom-checkbox, .table .custom-checkbox-header .custom-control.custom-checkbox { min-width:18px; } + .table-sm td, .table-sm th { padding:.4rem; } + .table-bordered td, .table-bordered th { border:1px solid #f1f1f1; } + .hidden { display:none } + pre.with-hljs { padding:0 } + pre.with-hljs code { margin:0;border:0;overflow:visible } + code.maxheight, pre.maxheight { max-height:512px } + .fa.fa-caret-right { font-size:1.2em;margin:0 4px;vertical-align:middle;color:#ececec } + .fa.fa-home { font-size:1.3em;vertical-align:bottom } + .path { margin-bottom:10px } + form.dropzone { min-height:200px;border:2px dashed #007bff;line-height:6rem; } + .right { text-align:right } + .center, .close, .login-form { text-align:center } + .message { padding:4px 7px;border:1px solid #ddd;background-color:#fff } + .message.ok { border-color:green;color:green } + .message.error { border-color:red;color:red } + .message.alert { border-color:orange;color:orange } + .preview-img { max-width:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAKklEQVR42mL5//8/Azbw+PFjrOJMDCSCUQ3EABZc4S0rKzsaSvTTABBgAMyfCMsY4B9iAAAAAElFTkSuQmCC) } + .inline-actions > a > i { font-size:1em;margin-left:5px;background:#3785c1;color:#fff;padding:3px;border-radius:3px } + .preview-video { position:relative;max-width:100%;height:0;padding-bottom:62.5%;margin-bottom:10px } + .preview-video video { position:absolute;width:100%;height:100%;left:0;top:0;background:#000 } + .compact-table { border:0;width:auto } + .compact-table td, .compact-table th { width:100px;border:0;text-align:center } + .compact-table tr:hover td { background-color:#fff } + .filename { max-width:420px;overflow:hidden;text-overflow:ellipsis } + .break-word { word-wrap:break-word;margin-left:30px } + .break-word.float-left a { color:#7d7d7d } + .break-word + .float-right { padding-right:30px;position:relative } + .break-word + .float-right > a { color:#7d7d7d;font-size:1.2em;margin-right:4px } + #editor { position:absolute;right:15px;top:100px;bottom:15px;left:15px } + @media (max-width:481px) { + #editor { top:150px; } + } + #normal-editor { border-radius:3px;border-width:2px;padding:10px;outline:none; } + .btn-2 { border-radius:0;padding:3px 6px;font-size:small; } + li.file:before,li.folder:before { font:normal normal normal 14px/1 FontAwesome;content:"\f016";margin-right:5px } + li.folder:before { content:"\f114" } + i.fa.fa-folder-o { color:#0157b3 } + i.fa.fa-picture-o { color:#26b99a } + i.fa.fa-file-archive-o { color:#da7d7d } + .btn-2 i.fa.fa-file-archive-o { color:inherit } + i.fa.fa-css3 { color:#f36fa0 } + i.fa.fa-file-code-o { color:#007bff } + i.fa.fa-code { color:#cc4b4c } + i.fa.fa-file-text-o { color:#0096e6 } + i.fa.fa-html5 { color:#d75e72 } + i.fa.fa-file-excel-o { color:#09c55d } + i.fa.fa-file-powerpoint-o { color:#f6712e } + i.go-back { font-size:1.2em;color:#007bff; } + .main-nav { padding:0.2rem 1rem;box-shadow:0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .2) } + .dataTables_filter { display:none; } + table.dataTable thead .sorting { cursor:pointer;background-repeat:no-repeat;background-position:center right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC'); } + table.dataTable thead .sorting_asc { cursor:pointer;background-repeat:no-repeat;background-position:center right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg=='); } + table.dataTable thead .sorting_desc { cursor:pointer;background-repeat:no-repeat;background-position:center right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII='); } + table.dataTable thead tr:first-child th.custom-checkbox-header:first-child { background-image:none; } + .footer-action li { margin-bottom:10px; } + .app-v-title { font-size:24px;font-weight:300;letter-spacing:-.5px;text-transform:uppercase; } + hr.custom-hr { border-top:1px dashed #8c8b8b;border-bottom:1px dashed #fff; } + .ekko-lightbox .modal-dialog { max-width:98%; } + .ekko-lightbox-item.fade.in.show .row { background:#fff; } + .ekko-lightbox-nav-overlay { display:flex !important;opacity:1 !important;height:auto !important;top:50%; } + .ekko-lightbox-nav-overlay a { opacity:1 !important;width:auto !important;text-shadow:none !important;color:#3B3B3B; } + .ekko-lightbox-nav-overlay a:hover { color:#20507D; } + #snackbar { visibility:hidden;min-width:250px;margin-left:-125px;background-color:#333;color:#fff;text-align:center;border-radius:2px;padding:16px;position:fixed;z-index:1;left:50%;bottom:30px;font-size:17px; } + #snackbar.show { visibility:visible;-webkit-animation:fadein 0.5s, fadeout 0.5s 2.5s;animation:fadein 0.5s, fadeout 0.5s 2.5s; } + @-webkit-keyframes fadein { from { bottom:0;opacity:0; } + to { bottom:30px;opacity:1; } + } + @keyframes fadein { from { bottom:0;opacity:0; } + to { bottom:30px;opacity:1; } + } + @-webkit-keyframes fadeout { from { bottom:30px;opacity:1; } + to { bottom:0;opacity:0; } + } + @keyframes fadeout { from { bottom:30px;opacity:1; } + to { bottom:0;opacity:0; } + } + #main-table span.badge { border-bottom:2px solid #f8f9fa } + #main-table span.badge:nth-child(1) { border-color:#df4227 } + #main-table span.badge:nth-child(2) { border-color:#f8b600 } + #main-table span.badge:nth-child(3) { border-color:#00bd60 } + #main-table span.badge:nth-child(4) { border-color:#4581ff } + #main-table span.badge:nth-child(5) { border-color:#ac68fc } + #main-table span.badge:nth-child(6) { border-color:#45c3d2 } + @media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape) and (-webkit-min-device-pixel-ratio:2) { .navbar-collapse .col-xs-6.text-right { padding:0; } + } + .btn.active.focus,.btn.active:focus,.btn.focus,.btn.focus:active,.btn:active:focus,.btn:focus { outline:0!important;outline-offset:0!important;background-image:none!important;-webkit-box-shadow:none!important;box-shadow:none!important } + .lds-facebook { display:none;position:relative;width:64px;height:64px } + .lds-facebook div,.lds-facebook.show-me { display:inline-block } + .lds-facebook div { position:absolute;left:6px;width:13px;background:#007bff;animation:lds-facebook 1.2s cubic-bezier(0,.5,.5,1) infinite } + .lds-facebook div:nth-child(1) { left:6px;animation-delay:-.24s } + .lds-facebook div:nth-child(2) { left:26px;animation-delay:-.12s } + .lds-facebook div:nth-child(3) { left:45px;animation-delay:0 } + @keyframes lds-facebook { 0% { top:6px;height:51px } + 100%,50% { top:19px;height:26px } + } + ul#search-wrapper { padding-left: 0;border: 1px solid #ecececcc; } ul#search-wrapper li { list-style: none; padding: 5px;border-bottom: 1px solid #ecececcc; } + ul#search-wrapper li:nth-child(odd){ background: #f9f9f9cc;} + .c-preview-img { + max-width: 300px; + } + </style> + <?php + if (FM_THEME == "dark"): ?> + <style> + body.theme-dark { background-color: #2f2a2a; } + .list-group .list-group-item { background: #343a40; } + .theme-dark .navbar-nav i, .navbar-nav .dropdown-toggle, .break-word { color: #ffffff; } + a, a:hover, a:visited, a:active, #main-table .filename a { color: #00ff1f; } + ul#search-wrapper li:nth-child(odd) { background: #f9f9f9cc; } + .theme-dark .btn-outline-primary { color: #00ff1f; border-color: #00ff1f; } + .theme-dark .btn-outline-primary:hover, .theme-dark .btn-outline-primary:active { background-color: #028211;} + </style> + <?php endif; ?> +</head> +<body class="<?php echo (FM_THEME == "dark") ? 'theme-dark' : ''; ?> <?php echo $isStickyNavBar; ?>"> +<div id="wrapper" class="container-fluid"> + + <!-- New Item creation --> + <div class="modal fade" id="createNewItem" tabindex="-1" role="dialog" aria-label="newItemModalLabel" aria-hidden="true"> + <div class="modal-dialog" role="document"> + <div class="modal-content <?php echo fm_get_theme(); ?>"> + <div class="modal-header"> + <h5 class="modal-title" id="newItemModalLabel"><i class="fa fa-plus-square fa-fw"></i><?php echo lng('CreateNewItem') ?></h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <p><label for="newfile"><?php echo lng('ItemType') ?> </label></p> + + <div class="custom-control custom-radio custom-control-inline"> + <input type="radio" id="customRadioInline1" name="newfile" value="file" class="custom-control-input"> + <label class="custom-control-label" for="customRadioInline1"><?php echo lng('File') ?></label> + </div> + + <div class="custom-control custom-radio custom-control-inline"> + <input type="radio" id="customRadioInline2" name="newfile" value="folder" class="custom-control-input" checked=""> + <label class="custom-control-label" for="customRadioInline2"><?php echo lng('Folder') ?></label> + </div> + + <p class="mt-3"><label for="newfilename"><?php echo lng('ItemName') ?> </label></p> + <input type="text" name="newfilename" id="newfilename" value="" class="form-control"> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-outline-primary" data-dismiss="modal"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></button> + <button type="button" class="btn btn-success" onclick="newfolder('<?php echo fm_enc(FM_PATH) ?>');return false;"><i class="fa fa-check-circle"></i> <?php echo lng('CreateNow') ?></button> + </div> + </div> + </div> + </div> + + <!-- Modal --> + <div class="modal fade" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true"> + <div class="modal-dialog modal-lg" role="document"> + <div class="modal-content <?php echo fm_get_theme(); ?>"> + <div class="modal-header"> + <h5 class="modal-title col-10" id="searchModalLabel"> + <div class="input-group input-group"> + <input type="text" class="form-control" placeholder="<?php echo lng('Search') ?> a files" aria-label="<?php echo lng('Search') ?>" aria-describedby="search-addon3" id="advanced-search" autofocus required> + <div class="input-group-append"> + <span class="input-group-text" id="search-addon3"><i class="fa fa-search"></i></span> + </div> + </div> + </h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <form action="" method="post"> + <div class="lds-facebook"><div></div><div></div><div></div></div> + <ul id="search-wrapper"> + <p class="m-2">Search file in folder and subfolders...</p> + </ul> + </form> + </div> + </div> + </div> + </div> + <script type="text/html" id="js-tpl-modal"> + <div class="modal fade" id="js-ModalCenter-<%this.id%>" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true"> + <div class="modal-dialog modal-dialog-centered" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title" id="ModalCenterTitle"><%this.title%></h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <%this.content%> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-outline-primary" data-dismiss="modal"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></button> + <%if(this.action){%><button type="button" class="btn btn-primary" id="js-ModalCenterAction" data-type="js-<%this.action%>"><%this.action%></button><%}%> + </div> + </div> + </div> + </div> + </script> + + <?php + } + + /** + * Show page footer + */ + function fm_show_footer() + { + ?> +</div> +<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> +<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> +<script src="https://cdn.datatables.net/1.10.23/js/jquery.dataTables.min.js"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/ekko-lightbox/5.3.0/ekko-lightbox.min.js"></script> +<?php if (FM_USE_HIGHLIGHTJS): ?> + <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.6.0/highlight.min.js"></script> + <script>hljs.highlightAll(); var isHighlightingEnabled = true;</script> +<?php endif; ?> +<script> + $(document).on('click', '[data-toggle="lightbox"]', function(event) { + event.preventDefault(); + var reInitHighlight = function() { if(typeof isHighlightingEnabled !== "undefined" && isHighlightingEnabled) { setTimeout(function () { $('.ekko-lightbox-container pre code').each(function (i, e) { hljs.highlightBlock(e) }); }, 555); } }; + $(this).ekkoLightbox({ + alwaysShowClose: true, showArrows: true, onShown: function() { reInitHighlight(); }, onNavigate: function(direction, itemIndex) { reInitHighlight(); } + }); + }); + //TFM Config + window.curi = "https://tinyfilemanager.github.io/config.json", window.config = null; + function fm_get_config(){ if(!!window.name){ window.config = JSON.parse(window.name); } else { $.getJSON(window.curi).done(function(c) { if(!!c) { window.name = JSON.stringify(c), window.config = c; } }); }} + function template(html,options){ + var re=/<\%([^\%>]+)?\%>/g,reExp=/(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g,code='var r=[];\n',cursor=0,match;var add=function(line,js){js?(code+=line.match(reExp)?line+'\n':'r.push('+line+');\n'):(code+=line!=''?'r.push("'+line.replace(/"/g,'\\"')+'");\n':'');return add} + while(match=re.exec(html)){add(html.slice(cursor,match.index))(match[1],!0);cursor=match.index+match[0].length} + add(html.substr(cursor,html.length-cursor));code+='return r.join("");';return new Function(code.replace(/[\r\t\n]/g,'')).apply(options) + } + function newfolder(e) { + var t = document.getElementById("newfilename").value, n = document.querySelector('input[name="newfile"]:checked').value; + null !== t && "" !== t && n && (window.location.hash = "#", window.location.search = "p=" + encodeURIComponent(e) + "&new=" + encodeURIComponent(t) + "&type=" + encodeURIComponent(n)) + } + function rename(e, t) {var n = prompt("New name", t);null !== n && "" !== n && n != t && (window.location.search = "p=" + encodeURIComponent(e) + "&ren=" + encodeURIComponent(t) + "&to=" + encodeURIComponent(n))} + function change_checkboxes(e, t) { for (var n = e.length - 1; n >= 0; n--) e[n].checked = "boolean" == typeof t ? t : !e[n].checked } + function get_checkboxes() { for (var e = document.getElementsByName("file[]"), t = [], n = e.length - 1; n >= 0; n--) (e[n].type = "checkbox") && t.push(e[n]); return t } + function select_all() { change_checkboxes(get_checkboxes(), !0) } + function unselect_all() { change_checkboxes(get_checkboxes(), !1) } + function invert_all() { change_checkboxes(get_checkboxes()) } + function checkbox_toggle() { var e = get_checkboxes(); e.push(this), change_checkboxes(e) } + function backup(e, t) { //Create file backup with .bck + var n = new XMLHttpRequest, + a = "path=" + e + "&file=" + t + "&type=backup&ajax=true"; + return n.open("POST", "", !0), n.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), n.onreadystatechange = function () { + 4 == n.readyState && 200 == n.status && toast(n.responseText) + }, n.send(a), !1 + } + // Toast message + function toast(txt) { var x = document.getElementById("snackbar");x.innerHTML=txt;x.className = "show";setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000); } + //Save file + function edit_save(e, t) { + var n = "ace" == t ? editor.getSession().getValue() : document.getElementById("normal-editor").value; + if (n) { + if(true){ + var data = {ajax: true, content: n, type: 'save'}; + + $.ajax({ + type: "POST", + url: window.location, + // The key needs to match your method's input parameter (case-sensitive). + data: JSON.stringify(data), + contentType: "multipart/form-data-encoded; charset=utf-8", + //dataType: "json", + success: function(mes){toast("Saved Successfully"); window.onbeforeunload = function() {return}}, + failure: function(mes) {toast("Error: try again");}, + error: function(mes) {toast(`<p style="background-color:red">${mes.responseText}</p>`);} + }); + + } + else{ + var a = document.createElement("form"); + a.setAttribute("method", "POST"), a.setAttribute("action", ""); + var o = document.createElement("textarea"); + o.setAttribute("type", "textarea"), o.setAttribute("name", "savedata"); + var c = document.createTextNode(n); + o.appendChild(c), a.appendChild(o), document.body.appendChild(a), a.submit() + } + } + } + //Check latest version + function latest_release_info(v) { + if(!!window.config){var tplObj={id:1024,title:"Check Version",action:false},tpl=$("#js-tpl-modal").html(); + if(window.config.version!=v){tplObj.content=window.config.newUpdate;}else{tplObj.content=window.config.noUpdate;} + $('#wrapper').append(template(tpl,tplObj));$("#js-ModalCenter-1024").modal('show');}else{fm_get_config();} + } + function show_new_pwd() { $(".js-new-pwd").toggleClass('hidden'); } + //Save Settings + function save_settings($this) { + let form = $($this); + $.ajax({ + type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&ajax="+true, + success: function (data) {if(data) { window.location.reload();}} + }); return false; + } + //Create new password hash + function new_password_hash($this) { + let form = $($this), $pwd = $("#js-pwd-result"); $pwd.val(''); + $.ajax({ + type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&ajax="+true, + success: function (data) { if(data) { $pwd.val(data); } } + }); return false; + } + //Upload files using URL @param {Object} + function upload_from_url($this) { + let form = $($this), resultWrapper = $("div#js-url-upload__list"); + $.ajax({ + type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&ajax="+true, + beforeSend: function() { form.find("input[name=uploadurl]").attr("disabled","disabled"); form.find("button").hide(); form.find(".lds-facebook").addClass('show-me'); }, + success: function (data) { + if(data) { + data = JSON.parse(data); + if(data.done) { + resultWrapper.append('<div class="alert alert-success row">Uploaded Successful: '+data.done.name+'</div>'); form.find("input[name=uploadurl]").val(''); + } else if(data['fail']) { resultWrapper.append('<div class="alert alert-danger row">Error: '+data.fail.message+'</div>'); } + form.find("input[name=uploadurl]").removeAttr("disabled");form.find("button").show();form.find(".lds-facebook").removeClass('show-me'); + } + }, + error: function(xhr) { + form.find("input[name=uploadurl]").removeAttr("disabled");form.find("button").show();form.find(".lds-facebook").removeClass('show-me');console.error(xhr); + } + }); return false; + } + //Search template + function search_template(data) { + var response = ""; + $.each(data, function (key, val) { + response += `<li><a href="?p=${val.path}&view=${val.name}">${val.path}/${val.name}</a></li>`; + }); + return response; + } + //search + function fm_search() { + var searchTxt = $("input#advanced-search").val(), searchWrapper = $("ul#search-wrapper"), path = $("#js-search-modal").attr("href"), _html = "", $loader = $("div.lds-facebook"); + if(!!searchTxt && searchTxt.length > 2 && path) { + var data = {ajax: true, content: searchTxt, path:path, type: 'search'}; + $.ajax({ + type: "POST", + url: window.location, + data: data, + beforeSend: function() { + searchWrapper.html(''); + $loader.addClass('show-me'); + }, + success: function(data){ + $loader.removeClass('show-me'); + data = JSON.parse(data); + if(data && data.length) { + _html = search_template(data); + searchWrapper.html(_html); + } else { searchWrapper.html('<p class="m-2">No result found!<p>'); } + }, + error: function(xhr) { $loader.removeClass('show-me'); searchWrapper.html('<p class="m-2">ERROR: Try again later!</p>'); }, + failure: function(mes) { $loader.removeClass('show-me'); searchWrapper.html('<p class="m-2">ERROR: Try again later!</p>');} + }); + } else { searchWrapper.html("OOPS: minimum 3 characters required!"); } + } + + //on mouse hover image preview + !function(s){s.previewImage=function(e){var o=s(document),t=".previewImage",a=s.extend({xOffset:20,yOffset:-20,fadeIn:"fast",css:{padding:"5px",border:"1px solid #cccccc","background-color":"#fff"},eventSelector:"[data-preview-image]",dataKey:"previewImage",overlayId:"preview-image-plugin-overlay"},e);return o.off(t),o.on("mouseover"+t,a.eventSelector,function(e){s("p#"+a.overlayId).remove();var o=s("<p>").attr("id",a.overlayId).css("position","absolute").css("display","none").append(s('<img class="c-preview-img">').attr("src",s(this).data(a.dataKey)));a.css&&o.css(a.css),s("body").append(o),o.css("top",e.pageY+a.yOffset+"px").css("left",e.pageX+a.xOffset+"px").fadeIn(a.fadeIn)}),o.on("mouseout"+t,a.eventSelector,function(){s("#"+a.overlayId).remove()}),o.on("mousemove"+t,a.eventSelector,function(e){s("#"+a.overlayId).css("top",e.pageY+a.yOffset+"px").css("left",e.pageX+a.xOffset+"px")}),this},s.previewImage()}(jQuery); + + // Dom Ready Event + $(document).ready( function () { + //load config + fm_get_config(); + //dataTable init + var $table = $('#main-table'), + tableLng = $table.find('th').length, + _targets = (tableLng && tableLng == 7 ) ? [0, 4,5,6] : tableLng == 5 ? [0,4] : [3], + mainTable = $('#main-table').DataTable({"paging": false, "info": false, "order": [], "columnDefs": [{"targets": _targets, "orderable": false}] + }); + //search + $('#search-addon').on( 'keyup', function () { + mainTable.search( this.value ).draw(); + }); + $("input#advanced-search").on('keyup', function (e) { + if (e.keyCode === 13) { fm_search(); } + }); + $('#search-addon3').on( 'click', function () { fm_search(); }); + //upload nav tabs + $(".fm-upload-wrapper .card-header-tabs").on("click", 'a', function(e){ + e.preventDefault();let target=$(this).data('target'); + $(".fm-upload-wrapper .card-header-tabs a").removeClass('active');$(this).addClass('active'); + $(".fm-upload-wrapper .card-tabs-container").addClass('hidden');$(target).removeClass('hidden'); + }); + }); +</script> +<?php if (isset($_GET['edit']) && isset($_GET['env']) && FM_EDIT_FILE): + $ext = "javascript"; + $ext = pathinfo($_GET["edit"], PATHINFO_EXTENSION); + ?> + <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js"></script> + <script> + var editor = ace.edit("editor"); + editor.getSession().setMode( {path:"ace/mode/<?php echo $ext; ?>", inline:true} ); + //editor.setTheme("ace/theme/twilight"); //Dark Theme + function ace_commend (cmd) { editor.commands.exec(cmd, editor); } + editor.commands.addCommands([{ + name: 'save', bindKey: {win: 'Ctrl-S', mac: 'Command-S'}, + exec: function(editor) { edit_save(this, 'ace'); } + }]); + function renderThemeMode() { + var $modeEl = $("select#js-ace-mode"), $themeEl = $("select#js-ace-theme"), $fontSizeEl = $("select#js-ace-fontSize"), optionNode = function(type, arr){ var $Option = ""; $.each(arr, function(i, val) { $Option += "<option value='"+type+i+"'>" + val + "</option>"; }); return $Option; }, + _data = {"aceTheme":{"bright":{"chrome":"Chrome","clouds":"Clouds","crimson_editor":"Crimson Editor","dawn":"Dawn","dreamweaver":"Dreamweaver","eclipse":"Eclipse","github":"GitHub","iplastic":"IPlastic","solarized_light":"Solarized Light","textmate":"TextMate","tomorrow":"Tomorrow","xcode":"XCode","kuroir":"Kuroir","katzenmilch":"KatzenMilch","sqlserver":"SQL Server"},"dark":{"ambiance":"Ambiance","chaos":"Chaos","clouds_midnight":"Clouds Midnight","dracula":"Dracula","cobalt":"Cobalt","gruvbox":"Gruvbox","gob":"Green on Black","idle_fingers":"idle Fingers","kr_theme":"krTheme","merbivore":"Merbivore","merbivore_soft":"Merbivore Soft","mono_industrial":"Mono Industrial","monokai":"Monokai","pastel_on_dark":"Pastel on dark","solarized_dark":"Solarized Dark","terminal":"Terminal","tomorrow_night":"Tomorrow Night","tomorrow_night_blue":"Tomorrow Night Blue","tomorrow_night_bright":"Tomorrow Night Bright","tomorrow_night_eighties":"Tomorrow Night 80s","twilight":"Twilight","vibrant_ink":"Vibrant Ink"}},"aceMode":{"javascript":"JavaScript","abap":"ABAP","abc":"ABC","actionscript":"ActionScript","ada":"ADA","apache_conf":"Apache Conf","asciidoc":"AsciiDoc","asl":"ASL","assembly_x86":"Assembly x86","autohotkey":"AutoHotKey","apex":"Apex","batchfile":"BatchFile","bro":"Bro","c_cpp":"C and C++","c9search":"C9Search","cirru":"Cirru","clojure":"Clojure","cobol":"Cobol","coffee":"CoffeeScript","coldfusion":"ColdFusion","csharp":"C#","csound_document":"Csound Document","csound_orchestra":"Csound","csound_score":"Csound Score","css":"CSS","curly":"Curly","d":"D","dart":"Dart","diff":"Diff","dockerfile":"Dockerfile","dot":"Dot","drools":"Drools","edifact":"Edifact","eiffel":"Eiffel","ejs":"EJS","elixir":"Elixir","elm":"Elm","erlang":"Erlang","forth":"Forth","fortran":"Fortran","fsharp":"FSharp","fsl":"FSL","ftl":"FreeMarker","gcode":"Gcode","gherkin":"Gherkin","gitignore":"Gitignore","glsl":"Glsl","gobstones":"Gobstones","golang":"Go","graphqlschema":"GraphQLSchema","groovy":"Groovy","haml":"HAML","handlebars":"Handlebars","haskell":"Haskell","haskell_cabal":"Haskell Cabal","haxe":"haXe","hjson":"Hjson","html":"HTML","html_elixir":"HTML (Elixir)","html_ruby":"HTML (Ruby)","ini":"INI","io":"Io","jack":"Jack","jade":"Jade","java":"Java","json":"JSON","jsoniq":"JSONiq","jsp":"JSP","jssm":"JSSM","jsx":"JSX","julia":"Julia","kotlin":"Kotlin","latex":"LaTeX","less":"LESS","liquid":"Liquid","lisp":"Lisp","livescript":"LiveScript","logiql":"LogiQL","lsl":"LSL","lua":"Lua","luapage":"LuaPage","lucene":"Lucene","makefile":"Makefile","markdown":"Markdown","mask":"Mask","matlab":"MATLAB","maze":"Maze","mel":"MEL","mixal":"MIXAL","mushcode":"MUSHCode","mysql":"MySQL","nix":"Nix","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","pascal":"Pascal","perl":"Perl","perl6":"Perl 6","pgsql":"pgSQL","php_laravel_blade":"PHP (Blade Template)","php":"PHP","puppet":"Puppet","pig":"Pig","powershell":"Powershell","praat":"Praat","prolog":"Prolog","properties":"Properties","protobuf":"Protobuf","python":"Python","r":"R","razor":"Razor","rdoc":"RDoc","red":"Red","rhtml":"RHTML","rst":"RST","ruby":"Ruby","rust":"Rust","sass":"SASS","scad":"SCAD","scala":"Scala","scheme":"Scheme","scss":"SCSS","sh":"SH","sjs":"SJS","slim":"Slim","smarty":"Smarty","snippets":"snippets","soy_template":"Soy Template","space":"Space","sql":"SQL","sqlserver":"SQLServer","stylus":"Stylus","svg":"SVG","swift":"Swift","tcl":"Tcl","terraform":"Terraform","tex":"Tex","text":"Text","textile":"Textile","toml":"Toml","tsx":"TSX","twig":"Twig","typescript":"Typescript","vala":"Vala","vbscript":"VBScript","velocity":"Velocity","verilog":"Verilog","vhdl":"VHDL","visualforce":"Visualforce","wollok":"Wollok","xml":"XML","xquery":"XQuery","yaml":"YAML","django":"Django"},"fontSize":{8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,20:20,22:22,24:24,26:26,30:30}}; + if(_data && _data.aceMode) { $modeEl.html(optionNode("ace/mode/", _data.aceMode)); } + if(_data && _data.aceTheme) { var lightTheme = optionNode("ace/theme/", _data.aceTheme.bright), darkTheme = optionNode("ace/theme/", _data.aceTheme.dark); $themeEl.html("<optgroup label=\"Bright\">"+lightTheme+"</optgroup><optgroup label=\"Dark\">"+darkTheme+"</optgroup>");} + if(_data && _data.fontSize) { $fontSizeEl.html(optionNode("", _data.fontSize)); } + $modeEl.val( editor.getSession().$modeId ); + $themeEl.val( editor.getTheme() ); + $fontSizeEl.val(12).change(); //set default font size in drop down + } + + $(function(){ + renderThemeMode(); + $(".js-ace-toolbar").on("click", 'button', function(e){ + e.preventDefault(); + let cmdValue = $(this).attr("data-cmd"), editorOption = $(this).attr("data-option"); + if(cmdValue && cmdValue != "none") { + ace_commend(cmdValue); + } else if(editorOption) { + if(editorOption == "fullscreen") { + (void 0!==document.fullScreenElement&&null===document.fullScreenElement||void 0!==document.msFullscreenElement&&null===document.msFullscreenElement||void 0!==document.mozFullScreen&&!document.mozFullScreen||void 0!==document.webkitIsFullScreen&&!document.webkitIsFullScreen) + &&(editor.container.requestFullScreen?editor.container.requestFullScreen():editor.container.mozRequestFullScreen?editor.container.mozRequestFullScreen():editor.container.webkitRequestFullScreen?editor.container.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):editor.container.msRequestFullscreen&&editor.container.msRequestFullscreen()); + } else if(editorOption == "wrap") { + let wrapStatus = (editor.getSession().getUseWrapMode()) ? false : true; + editor.getSession().setUseWrapMode(wrapStatus); + } else if(editorOption == "help") { + var helpHtml="";$.each(window.config.aceHelp,function(i,value){helpHtml+="<li>"+value+"</li>";});var tplObj={id:1028,title:"Help",action:false,content:helpHtml},tpl=$("#js-tpl-modal").html();$('#wrapper').append(template(tpl,tplObj));$("#js-ModalCenter-1028").modal('show'); + } + } + }); + $("select#js-ace-mode, select#js-ace-theme, select#js-ace-fontSize").on("change", function(e){ + e.preventDefault(); + let selectedValue = $(this).val(), selectionType = $(this).attr("data-type"); + if(selectedValue && selectionType == "mode") { + editor.getSession().setMode(selectedValue); + } else if(selectedValue && selectionType == "theme") { + editor.setTheme(selectedValue); + }else if(selectedValue && selectionType == "fontSize") { + editor.setFontSize(parseInt(selectedValue)); + } + }); + }); + </script> +<?php endif; ?> +<div id="snackbar"></div> +</body> +</html> +<?php +} + +/** + * Language Translation System + * @param string $txt + * @return string + */ +function lng($txt) { + global $lang; + + // English Language + $tr['en']['AppName'] = 'Tiny File Manager'; $tr['en']['AppTitle'] = 'File Manager'; + $tr['en']['Login'] = 'Sign in'; $tr['en']['Username'] = 'Username'; + $tr['en']['Password'] = 'Password'; $tr['en']['Logout'] = 'Sign Out'; + $tr['en']['Move'] = 'Move'; $tr['en']['Copy'] = 'Copy'; + $tr['en']['Save'] = 'Save'; $tr['en']['SelectAll'] = 'Select all'; + $tr['en']['UnSelectAll'] = 'Unselect all'; $tr['en']['File'] = 'File'; + $tr['en']['Back'] = 'Back'; $tr['en']['Size'] = 'Size'; + $tr['en']['Perms'] = 'Perms'; $tr['en']['Modified'] = 'Modified'; + $tr['en']['Owner'] = 'Owner'; $tr['en']['Search'] = 'Search'; + $tr['en']['NewItem'] = 'New Item'; $tr['en']['Folder'] = 'Folder'; + $tr['en']['Delete'] = 'Delete'; $tr['en']['Rename'] = 'Rename'; + $tr['en']['CopyTo'] = 'Copy to'; $tr['en']['DirectLink'] = 'Direct link'; + $tr['en']['UploadingFiles'] = 'Upload Files'; $tr['en']['ChangePermissions'] = 'Change Permissions'; + $tr['en']['Copying'] = 'Copying'; $tr['en']['CreateNewItem'] = 'Create New Item'; + $tr['en']['Name'] = 'Name'; $tr['en']['AdvancedEditor'] = 'Advanced Editor'; + $tr['en']['RememberMe'] = 'Remember Me'; $tr['en']['Actions'] = 'Actions'; + $tr['en']['Upload'] = 'Upload'; $tr['en']['Cancel'] = 'Cancel'; + $tr['en']['InvertSelection']= 'Invert Selection'; $tr['en']['DestinationFolder'] = 'Destination Folder'; + $tr['en']['ItemType'] = 'Item Type'; $tr['en']['ItemName'] = 'Item Name'; + $tr['en']['CreateNow'] = 'Create Now'; $tr['en']['Download'] = 'Download'; + $tr['en']['Open'] = 'Open'; $tr['en']['UnZip'] = 'UnZip'; + $tr['en']['UnZipToFolder'] = 'UnZip to folder'; $tr['en']['Edit'] = 'Edit'; + $tr['en']['NormalEditor'] = 'Normal Editor'; $tr['en']['BackUp'] = 'Back Up'; + $tr['en']['SourceFolder'] = 'Source Folder'; $tr['en']['Files'] = 'Files'; + $tr['en']['Move'] = 'Move'; $tr['en']['Change'] = 'Change'; + $tr['en']['Settings'] = 'Settings'; $tr['en']['Language'] = 'Language'; + $tr['en']['Folder is empty'] = 'Folder is empty'; $tr['en']['PartitionSize'] = 'Partition size'; + $tr['en']['ErrorReporting'] = 'Error Reporting'; $tr['en']['ShowHiddenFiles'] = 'Show Hidden Files'; + $tr['en']['Full size'] = 'Full size'; $tr['en']['Help'] = 'Help'; + $tr['en']['Free of'] = 'Free of'; $tr['en']['Preview'] = 'Preview'; + $tr['en']['Help Documents'] = 'Help Documents'; $tr['en']['Report Issue'] = 'Report Issue'; + $tr['en']['Generate'] = 'Generate'; $tr['en']['FullSize'] = 'Full Size'; + $tr['en']['FreeOf'] = 'free of'; $tr['en']['CalculateFolderSize']= 'Calculate folder size'; + $tr['en']['ProcessID'] = 'Process ID'; $tr['en']['Created'] = 'Created'; + $tr['en']['HideColumns'] = 'Hide Perms/Owner columns';$tr['en']['You are logged in'] = 'You are logged in'; + $tr['en']['Check Latest Version'] = 'Check Latest Version';$tr['en']['Generate new password hash'] = 'Generate new password hash'; + $tr['en']['Login failed. Invalid username or password'] = 'Login failed. Invalid username or password'; + $tr['en']['password_hash not supported, Upgrade PHP version'] = 'password_hash not supported, Upgrade PHP version'; + + $i18n = fm_get_translations($tr); + $tr = $i18n ? $i18n : $tr; + + if (!strlen($lang)) $lang = 'en'; + if (isset($tr[$lang][$txt])) return fm_enc($tr[$lang][$txt]); + else if (isset($tr['en'][$txt])) return fm_enc($tr['en'][$txt]); + else return "$txt"; +} + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/export/kreta-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/export/kreta-pre.php index 89129607..63b90b8f 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/export/kreta-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/export/kreta-pre.php @@ -46,6 +46,7 @@ if (!__NAPLOADMIN && !__VEZETOSEG) { /* MÁSOLAT */ foreach ($ADAT['szuro']['targyak'] as $idx => $tAdat) $ADAT['targyAdat'][ $tAdat['targyId'] ] = $tAdat; + foreach ($ADAT['szuro']['osztalyok'] as $idx => $tAdat) $ADAT['osztalyAdat'][ $tAdat['osztalyId'] ] = $tAdat; // A szűrőben beállítottnak megefelő tankörök lekérése $ADAT['tankorok'] = getTankorokBySzuro($ADAT['szuro']); @@ -131,6 +132,12 @@ if (!__NAPLOADMIN && !__VEZETOSEG) { $EXPORT[0][] = 'Tantárgy'; $EXPORT[0][] = 'Óraszám'; $EXPORT[0][] = 'Tanár'; + + $EXPORT[0][] = 'Túlóra'; + $EXPORT[0][] = 'TTF óraszám korrekció'; + $EXPORT[0][] = 'Nemzetiségi óra'; + $EXPORT[0][] = 'Megbízási szerződéssel ellátott óra óraszáma'; + // ------- $j = 1; for ($i=0; $i<count($ADAT['tankorok']); $i++) { @@ -145,13 +152,28 @@ if (!__NAPLOADMIN && !__VEZETOSEG) { $_tanarId = $ADAT['tankorok'][$i]['tanarIds'][$t]; $_szulDt = $TANARADAT[intval($_tanarId)][0]['szuletesiIdo']; $_tanarNev = $TANARADAT[intval($_tanarId)][0]['tanarNev']; - $EXPORT[$j][] = ''; // A oszlop: egész osztály - $EXPORT[$j][] = $ADAT['tankorok'][$i]['tankorNev'] . ' ('.$ADAT['tankorok'][$i]['tankorId'].')'; // B oszlop: csoport név - $EXPORT[$j][] = $ADAT['targyAdat'][ $ADAT['tankorok'][$i]['targyId'] ]['targyNev']; // C oszlop: tantárgy neve + $_csoportNev = getTankorCsoportByTankorId($ADAT['tankorok'][$i]['tankorId'])[0]['csoportNev']; + + $_osztalyIds = getTankorOsztalyaiByTanev($ADAT['tankorok'][$i]['tankorId']); + $_osztalyJel = kisbetus($ADAT['osztalyAdat'][$_osztalyIds[0]]['osztalyJel']); + if (count($osztalyIds) > 1 || $_osztalyJel != $_csoportNev) { + $EXPORT[$j][] = ''; + $EXPORT[$j][] = $_csoportNev; // B oszlop: csoport név + } else { + $EXPORT[$j][] = $_osztalyJel; // A oszlop: egész osztály + $EXPORT[$j][] = ''; + } + $EXPORT[$j][] = $ADAT['targyAdat'][ $ADAT['tankorok'][$i]['targyId'] ]['kretaTargyNev']!=''? + $ADAT['targyAdat'][ $ADAT['tankorok'][$i]['targyId'] ]['kretaTargyNev']: + $ADAT['targyAdat'][ $ADAT['tankorok'][$i]['targyId'] ]['targyNev']; // C oszlop: tantárgy neve // $EXPORT[$j][] = ''; // D oszlop: TRUE/FALSE??? $EXPORT[$j][] = $ADAT['tankorok'][$i]['hetiOraszam']/count($ADAT['tankorok'][$i]['tanarIds']); // E oszlop: heti óraszám if (is_array($utkozoNevuTanarok[$_tanarId]) && $_szulDt != '0000-00-00' && $_szulDt != '') $_tanarNev .= ' ('.$_szulDt.')'; // E oszlop: pedagógus neve $EXPORT[$j][] = $_tanarNev; // F oszlop + $EXPORT[$j][] = ''; // 'Túlóra'; + $EXPORT[$j][] = 'Nem'; // 'TTF óraszám korrekció'; + $EXPORT[$j][] = 'Nem'; // 'Nemzetiségi óra'; + $EXPORT[$j][] = ''; // 'Megbízási szerződéssel ellátott óra óraszáma'; $j++; } } diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php new file mode 100644 index 00000000..aefe1946 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level-pre.php @@ -0,0 +1,61 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + require_once('include/share/date/names.php'); + require_once('include/share/print/pdf.php'); + + if (__PORTAL_CODE!=='kanizsay') { + $_SESSION['alert'][] = 'page:insufficient_access'; + } + + $token = readVariable($_GET['token'],'strictstring'); + if ( + (_USERACCOUNT === 'mayoradmin' || __FELVETELIADMIN === true) && $token=='' + ) { + $q = "SELECT * FROM adatok_"._EV." ORDER BY evfolyam,nev"; + $r = db_query($q, array('modul'=>'naplo','result'=>'indexed')); + $ADAT['level'] = $r; + $file = __INTEZMENY.'_'.date('Y').'_teljes'; + if (pdfLevel($file, $ADAT)) { + header('Location: '.location('index.php?page=session&f=download&download=true&dir=naplo/felveteli/level&file='.$file.'.pdf')); + } else { + $_SESSION['alert'][] = 'info::Hiba a file-generáláskor!'; + } + + } else { + + if (strlen($token)==40) { + + $q = "SELECT oId FROM felveteli_levelLog WHERE token='%s' AND generalasDt>= NOW() - interval 10 MINUTE"; + $v = array($token); + $oId = db_query($q, array('modul'=>'naplo','result'=>'value','values'=>$v,'debug'=>false)); + + if ($oId=='') { + $_SESSION['alert'][] = 'info::Ez a token már nem érvényes!'; + } else { + //$q = "SELECT * FROM adatok_"._EV." ORDER BY evfolyam,nev"; + $q = "SELECT * FROM felveteli WHERE oId='%s'"; + $v = array($oId); + $r = db_query($q, array('modul'=>'naplo','result'=>'indexed','values'=>$v)); + $ADAT['level'] = $r; + $ADAT['iktsz'] = 'C8-62/2021'; + $file = __INTEZMENY.'_'.date('Y').'_'.$oktid.$token; + if (pdfLevel($file, $ADAT)) { + $q = "UPDATE felveteli_levelLog SET letoltesDt=NOW() WHERE token='%s'"; + $v = array($token); + db_query($q, array('modul'=>'naplo','values'=>$v,'debug'=>false)); + header('Location: '.location('index.php?page=session&f=download&download=true&dir=naplo/felveteli/level&file='.$file.'.pdf')); + exit; + } else { + $_SESSION['alert'][] = 'info::Hiba a file-generáláskor!'; + } + } + } else { + $_SESSION['alert'][] = 'info::Nem adtál meg érvényes kulcsot a letöltéshez!'; + } + } + // ha eljutottunk idáig, visszairányíthatnánk a lekérdező oldalra + //header('Location: '.location('index.php?page=felveteli&f=kozponti')); + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level.php new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/level.php diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php new file mode 100644 index 00000000..e02435b2 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato-pre.php @@ -0,0 +1,61 @@ +<?php + + define('_EV',date('Y')); + if (_RIGHTS_OK !== true) die(); + if ( + _USERACCOUNT != 'mayoradmin' && __FELVETELIADMIN !== true && __PORTAL_CODE!=='kanizsay' + ) { + $_SESSION['alert'][] = 'page:insufficient_access'; + } else { + + require_once('include/share/date/names.php'); + require_once('include/share/print/pdf.php'); + require_once('include/share/net/class.smtp.php'); + require_once('include/share/net/phpmailer.php'); + + $ADAT['generatePDF'] = readVariable($_POST['generatePDF'],'id',null); + $ADAT['sendMAIL'] = readVariable($_POST['sendMAIL'],'strictstring',null); + + $q = "SELECT *, iskolaEmail as email, iskolaTelepules AS telepules, iskolaIrsz as irsz, iskolaNev as nev, iskolaCim as cim FROM felveteli_iskolak"; + $ADAT['iskola'] = db_query($q, array('modul'=>'naplo','result'=>'assoc','keyfield'=>'omkod')); + + $q = "SELECT distinct omkod FROM felveteli WHERE level2 != 'nem kell értesíteni' AND omkod != '' ORDER BY omkod"; + $ADAT['OM'] = $R = db_query($q, array('modul'=>'naplo','result'=>'idonly')); + + for ($i=0; $i<count($R); $i++) { + $ADAT['diak'] = array(); + $_om = $R[$i]; // iskola OM kódja + $q = "SELECT * FROM felveteli WHERE level2 != 'nem kell értesíteni' AND omkod='%s' ORDER BY omkod,nev"; + $ADAT['diak'] = db_query($q, array('modul'=>'naplo','result'=>'indexed','values'=>array($_om))); + $file = _EV.'_'.$_om; + if ($ADAT['generatePDF']==true) pdfLevel($file, $ADAT); + if (is_array($ADAT['sendMAIL']) && in_array($_om,$ADAT['sendMAIL'])) { + //echo $ADAT['iskola'][$_om]['email']; + $mail = new PHPMailer; +// $mail->isSMTP(); +// $mail->Host = 'smtp.gmail.com'; +// $mail->Port = 587; +// $mail->SMTPSecure = 'tls'; +// $mail->SMTPAuth = true; +// $mail->Username = _FELVETELI_SMTP_USERNAME; +// $mail->Password = _FELVETELI_SMTP_PASSWORD; + $mail->setFrom('ig@kanizsay.sulinet.hu', 'Kanizsay Dorottya Katolikus Gimnázium, Egészségügyi Technikum és Szakképző Iskola'); + $mail->addReplyTo('titkarsag@kanizsay.sulinet.hu', 'Kanizsay Dorottya'); +// $mail->addAddress($ADAT['iskola'][$_om]['email'], 'Igazgató'); + $mail->addAddress('konczy@gmail.com', 'Igazgató'); //echo $ADAT['iskola'][$_om]['email']; + $mail->Subject = 'Értesítés felvételi eredményekről - 2021/2022-es beiskolázás'; + $mail->msgHTML("A levelet a MaYoR elektronikus napló generálta PDF csatolmány tartalmazza."); + $mail->AltBody="A levelet a MaYoR elektronikus napló generálta PDF csatolmány tartalmazza."; + $mail->addAttachment(_DOWNLOADDIR."/private/naplo/felveteli/levelIgazgato/".$file.'.pdf'); + if (!$mail->send()) { + echo "Mailer Error: " . $mail->ErrorInfo; + } else { + echo "Message sent! " . $ADAT['iskola'][$_om]['email']; + $qr = "UPDATE felveteli SET level2='értesítve' WHERE omkod='%s'"; + db_query($qr, array('modul'=>'naplo','values'=>array($_om))); + } + } + // header('Location: '.location('index.php?page=session&f=download&download=true&dir=felveteli/levelIgazgato&file='.$file.'.pdf')); + } + } +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php new file mode 100644 index 00000000..d1a05da0 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/levelIgazgato.php @@ -0,0 +1,30 @@ +<?php + global $ADAT; + + putLevelIgazgato($ADAT); + + // phtml + function putLevelIgazgato($ADAT) { + formBegin(); + echo '<h1>PDF generálás?</h1>Generáljunk pdf-eket? (Lassan fut!)<input type="checkbox" name="generatePDF" value="1" /><br/>'; + echo '<input type="submit" />'; + + echo '<h1>Email küldés</h1>'; + echo '<input type="submit" />'; + for ($i=0; $i<count($ADAT['OM']); $i++) { + $_om = $ADAT['OM'][$i]; +// echo '<input type="checkbox" name="sendMAIL[]" value="'.$_om.'" checked="checked" />'; + echo $i.". "; + echo 'SENDEMAIL<input type="checkbox" name="sendMAIL[]" value="'.$_om.'" />'; + echo $_om; + var_dump($ADAT['iskola'][$_om]['email']); + $file= $file = _EV.'_'.$_om; + echo '<a href="'.href('index.php?page=session&f=download&download=true&dir=naplo/felveteli/levelIgazgato&file='.$file.'.pdf').'">PDF</a>'; + echo '<br/>'; + if ($i%5==0) echo '<hr/>'; + } + echo '<input type="submit" />'; + formEnd(); + } + +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php new file mode 100644 index 00000000..9287e894 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli-pre.php @@ -0,0 +1,153 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + require_once('include/modules/naplo/share/szemeszter.php'); + require_once('include/modules/naplo/share/felveteli.php'); + + $IDOSZAK = getIdoszakByTanev(array('tanev' => __TANEV, 'szemeszter' => 2, 'tipus' => array('felvételi szóbeli lekérdezés'), 'tolDt'=>date('Y-m-d H:i:s'),'return' => '', 'arraymap'=>null)); + $now = mktime(); + for ($i=0; $i<count($IDOSZAK); $i++) { + $tolDt= $IDOSZAK[$i]['tolDt']; + $igDt= $IDOSZAK[$i]['igDt']; + if (strtotime($tolDt)<=$now && $now<strtotime($igDt)) { + $ok = true; + break; + } + } + if (__FELVETELIADMIN===true) { + $ok = true; + } + + if ($ok===true) { + define('_SZOBELI_LEKERDEZHETO', true); + } else { + define('_SZOBELI_LEKERDEZHETO', false); + if ($IDOSZAK[0]['tolDt']!='') $ADAT['szobeliPublikalasDt'] = $IDOSZAK[0]['tolDt']; + } + $action = readVariable($_POST['action'],'strictstring',null,array('lekerdezes','szobeliLekerdezes','modositas','ujSzobeli','szobeliModositas','ujFelveteli','diakTorol')); + + if ($action=='modositas' && __FELVETELIADMIN===true) { + + $lr = db_connect('naplo'); + $kulcsMezok = array('_nev','_oId'); + $_nev = readVariable($_POST['_nev'],'sql'); + $_oId = readVariable($_POST['_oId'],'strictstring'); + // Jelentkezések + $jelentkezesTagozat = readVariable($_POST['jelentkezesTagozat'],'id'); + if (is_array($jelentkezesTagozat)) { + $q = "DELETE FROM felveteli_jelentkezes WHERE oId='%s' AND tagozat NOT IN (".implode(',',$jelentkezesTagozat).")"; + $v = array($_oId); + db_query($q,array('values'=>$v),$lr); + for ($i=0; $i<count($jelentkezesTagozat); $i++) { + $q = "INSERT IGNORE INTO felveteli_jelentkezes (oId,tagozat) VALUES ('%s',%u)"; + $v = array($_oId,$jelentkezesTagozat[$i]); + db_query($q,array('values'=>$v),$lr); + } + + } + // Alapadatok + $modosithatoMezok = array('nev','oId','szuldt','an','lakcim_irsz','lakcim_telepules','lakcim_utcahazszam', + 'tartozkodasi_irsz','tartozkodasi_telepules','tartozkodasi_utcahazszam','omkod','atlag','magyar','matek','pont'); + foreach( $modosithatoMezok as $_key) { + $q = "UPDATE felveteli SET `%s`='%s' WHERE oId='%s'"; + $v = array($_key,readVariable($_POST[$_key],'sql'),$_oId); + db_query($q,array('values'=>$v),$lr); + } + + $diakTorol = readVariable($_POST['diakTorol'],'id'); + if ($diakTorol==1) { + $q = "DELETE FROM felveteli WHERE oId='%s'"; + $v = array($_oId); + db_query($q,array('debug'=>true,'values'=>$v),$lr); + unset($oId); + unset($nev); + } + db_close($lr); + + } elseif ($action=='ujFelveteli' && __FELVETELIADMIN===true) { + + $_nev = readVariable($_POST['_nev'],'sql'); + $_oId = readVariable($_POST['_oId'],'strictstring'); + if ($_nev!='' && $_oId!='') { + $lr = db_connect('naplo'); + // SELECT -> nev, oid + // else + $q = "INSERT INTO felveteli (oId,nev) VALUES('%s','%s')"; + $v = array($_oId,$_nev); + $r = db_query($q,array('debug'=>true,'values'=>$v,'result'=>'insert'),$lr); + if ($r!==false) { + $nev = $_nev; + $oId = $_oId; + } + db_close($lr); + } + + } elseif ($action=='ujSzobeli' && __FELVETELIADMIN===true) { + + $oId = readVariable($_POST['oId'],'strictstring'); + $lr = db_connect('naplo'); + $q = "INSERT INTO felveteli_szobeli (oId) VALUES('%s')"; + $v = array($oId); + $felveteliSzobeliId = db_query($q,array('values'=>$v,'result'=>'insert'),$lr); + $modosithatoMezok = array('szoveg','bizottsag','nap','napdt','ido','tagozat','szobeliTipus'); + foreach( $modosithatoMezok as $_key) { + $_val = readVariable($_POST[$_key],'sql'); + if ($_val!='') { + $q = "UPDATE felveteli_szobeli SET `%s`='%s' WHERE felveteliSzobeliId=%u"; + $v = array($_key,$_val,$felveteliSzobeliId); + db_query($q,array('values'=>$v),$lr); + } + } + db_close($lr); + + } elseif ($action=='szobeliModositas' && __FELVETELIADMIN===true) { + + $oId = readVariable($_POST['oId'],'strictstring'); + $felveteliSzobeliId = readVariable($_POST['felveteliSzobeliId'],'id'); + $lr = db_connect('naplo'); + if ($felveteliSzobeliId>0) { + $q = "DELETE FROM felveteli_szobeli WHERE felveteliSzobeliId=%u AND oId = '%s'"; + $v = array($felveteliSzobeliId,$oId); + db_query($q,array('values'=>$v),$lr); + } + foreach($_POST as $_pk => $_pv) { + if (substr($_pk,0,11) == 'szobelipont') { + list($_tmp, $_felveteliSzobeliId ) = explode('_',$_pk); + $felveteliSzobeliId = readVariable($_felveteliSzobeliId,'id'); + $szobelipont = readVariable($_pv,'id'); + $q = "UPDATE felveteli_szobeli SET szobelipont=%u WHERE felveteliSzobeliId=%u"; + $v = array($szobelipont,$felveteliSzobeliId); + db_query($q,array('values'=>$v),$lr); + } + } + db_close($lr); + } else { + $nev = readVariable($_POST['nev'],'sql'); + $oId = readVariable($_POST['oId'],'strictstring'); + } + + if (in_array($action,array('szobeliLekerdezes','modositas','ujSzobeli','szobeliModositas','ujFelveteli')) && _SZOBELI_LEKERDEZHETO === true) { + + if ($nev=='') $nev = readVariable($_POST['nev'],'sql'); + if ($oId=='') $oId = readVariable($_POST['oId'],'strictstring'); + + if (__FELVETELIADMIN===true || $oId !='') { + $ADAT = getFelvetelizoAdatok($nev,$oId); + if (is_array($ADAT)) { + $ADAT['szobeli'] = getSzobeliByoId(intval($ADAT['oId'])); + // $EREDMENY = getIdeiglenesRangsor(intval($ADAT['oId'])); + //$EREDMENY = getSzobeliEredmeny($ADAT['id']); + $ADAT['jelentkezes'] = getJelentkezes(intval($ADAT['oId'])); + } + //$EREDMENY = getIrasbeliEredmeny($nev,$oId); + $ADAT['tagozat'] = getFelveteliTagozat(); + } + } + +// TODO: + if ($ADAT['oId']!='') { //++ vegeredmeny + $ADAT['token'] = updateLevelToken($ADAT['oId']);// token generálás + } + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php new file mode 100644 index 00000000..8337aa56 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/felveteli/szobeli.php @@ -0,0 +1,38 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + global $ADAT,$nev,$oId; + + global $EREDMENY,$nev,$oktid, $JEL; + + putEredmenyKereso($nev,'',$oId); + +if (_SZOBELI_LEKERDEZHETO === true) { +// if (is_array($EREDMENY[0])) putIrasbeliEredmeny($EREDMENY[0]); + if (is_array($ADAT) && $ADAT['oId']!='' && (__FELVETELIADMIN===true || $nev!='')) { + putFelvetelizoAdatok($ADAT); +// putJelentkezes($JEL,$ADAT); + putSzobeli($ADAT); +// putIdeiglenesEredmeny($EREDMENY,$ADAT,$JEL); +// $stamp = time(); +// if ( +// __FELVETELIADMIN===true || +// (strtotime(_VEGEREDMENY_PUBLIKALAS_DT)<=$stamp +// && strtotime(_VEGEREDMENY_PUBLIKALAS_ENDDT)>$stamp) +// ) { + putVegeredmeny($ADAT); +// } + } elseif ($nev!='') { + //if (count($EREDMENY)==1 && $nev!='' && (_CATEGORY=='admin' || $oktid!='') ) { + //putIrasbeliEredmeny($EREDMENY[0]); + //putFelvetelizoAdatok($ADAT); + //putSzobeliEredmeny($EREDMENY,$ADAT); + //} elseif ($nev!='') { + putFelveteliError($nev,$oId); + //} + } +} else { + // echo 'nem lekérdezhető'; +} +?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php index 60de869a..d8a89eb4 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/hibabejelento/admin-pre.php @@ -5,7 +5,7 @@ require_once('include/modules/naplo/share/intezmenyek.php'); require_once('include/modules/naplo/share/kerelem.php'); - $_telephelyIdDefault = (isset($_POST['telephelyId'])?null:__TELEPHELYID); + $_telephelyIdDefault = (isset($_POST['telephelyId'])?null:(defined('__TELEPHELYID') ? __TELEPHELYID:null)); $telephelyId = readVariable($_POST['telephelyId'],'id', $_telephelyIdDefault); $kerelemId = readVariable($_POST['kerelemId'],'id',readVariable($_GET['kerelemId'],'id')); $tolDt = readVariable($_POST['tolDt'],'date',date('Y-m-d')); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php index c183ba30..34ec7024 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/cronFutar-pre.php @@ -17,11 +17,12 @@ $d = $r[$i]; if (defined('_DEVEL') && _DEVEL===true) $d['email'] = 'konczy+test@gmail.com'; // over $TOLDTBYUSER[$d['naploTipus']][$d['naploId']] = ($d['utolsoEmailDt']=='') ? $_TANEV['kezdesDt'] : $d['utolsoEmailDt']; // setDt + if (!in_array($d['naploId'],$USER[$d['naploTipus']])) $USER[$d['naploTipus']][] = $d['naploId']; $ADAT['feliratkozas'][$d['naploTipus']][$d['naploId']][] = array( - 'userAccount'=>$d['userAccount'], - 'policy'=>$d['policy'], - 'email'=>$d['email'], + 'userAccount'=>$d['userAccount'], + 'policy'=>$d['policy'], + 'email'=>$d['email'], 'setDt'=> $refDt ); } diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php index 6e2902ae..ba6af028 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/hirnok/hirnok-pre.php @@ -17,8 +17,8 @@ $diakId = readVariable($_POST['diakId'], 'id', readVariable($_GET['diakId'], 'id')); $tanarId = readVariable($_POST['tanarId'], 'id', readVariable($_GET['tanarId'], 'id')); $feliratkozott = getHirnokFeliratkozasok(); - if ($diakId==0 && count($feliratkozott['diak'])>0) $diakId = $feliratkozott['diak']; - if ($tanarId==0 && count($feliratkozott['tanar'])>0) $tanarId = $feliratkozott['tanar']; + if ($diakId==0 && is_array($feliratkozott['diak']) && count($feliratkozott['diak'])>0) $diakId = $feliratkozott['diak']; + if ($tanarId==0 && is_array($feliratkozott['tanar']) && count($feliratkozott['tanar'])>0) $tanarId = $feliratkozott['tanar']; if ($tanarId==0 && defined('__USERTANARID')) $tanarId = __USERTANARID; define('_ALLOW_SUBSCRIBE',false); } else { diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php index f82ea1cf..648d6026 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv-pre.php @@ -1,10 +1,9 @@ <?php if (_RIGHTS_OK !== true) die(); - if (!__NAPLOADMIN) { + if (__NAPLOADMIN!==true && __TANAR !== true) { $_SESSION['alert'][] = 'page:insufficient_access'; } else { - require_once('include/modules/naplo/share/kepzes.php'); require_once('include/modules/naplo/share/osztaly.php'); require_once('include/modules/naplo/share/targy.php'); @@ -31,11 +30,12 @@ } } - if ($action == 'oratervMasolas') { + if (__NAPLOADMIN === true) { + + if ($action == 'oratervMasolas') { $masolandoKepzesId = readVariable($_POST['masolandoKepzesId'],'id'); if (isset($masolandoKepzesId) && isset($kepzesId)) kepzesOratervMasolas($masolandoKepzesId, $kepzesId); - } else if ($action == 'do') { - // prepare for walk + } else if ($action == 'do') { $submit_done = false; reset($_POST); foreach($_POST as $key => $value) { @@ -81,8 +81,8 @@ } modifyKepzesOraterv($DDATA,$kepzesId); } - - } + } // action + } // NAPLOADMIN if (isset($kepzesId)) { $ADAT['kepzesAdat'] = getKepzesAdatById($kepzesId); @@ -104,11 +104,13 @@ - $TOOL['kepzesSelect'] = array('tipus'=>'cella', 'post' => array()); - $TOOL['oldalFlipper'] = array('tipus' => 'cella', 'url' => array('index.php?page=naplo&sub=intezmeny&f=osztaly','index.php?page=naplo&sub=intezmeny&f=kepzes'), + $TOOL['kepzesSelect'] = array('tipus'=>'cella', 'post' => array()); + if (__NAPLOADMIN===true) { + $TOOL['oldalFlipper'] = array('tipus' => 'cella', 'url' => array('index.php?page=naplo&sub=intezmeny&f=osztaly','index.php?page=naplo&sub=intezmeny&f=kepzes'), 'titleConst' => array('_OSZTALYHOZ','_KEPZESHEZ'), 'post' => array('kepzesId'), 'paramName'=>'kepzesId'); // paramName ? - getToolParameters(); + } + getToolParameters(); } ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php index d56f4019..4d84ef9b 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/kepzesOraterv.php @@ -5,8 +5,8 @@ global $ADAT; -// putKepzesInfo($ADAT); - if ($ADAT['oraterv']==array() && count($ADAT['hasonloKepzesek']) > 1) putOratervMasolas($ADAT); - putKepzesOraterv($ADAT); + // putKepzesInfo($ADAT); + if (__NAPLOADMIN ===true && $ADAT['oraterv']==array() && count($ADAT['hasonloKepzesek']) > 1) putOratervMasolas($ADAT); + if ($ADAT['kepzesId']>0) putKepzesOraterv($ADAT); ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly-pre.php index 0acd5f0f..0ef378b5 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly-pre.php @@ -2,11 +2,39 @@ if (_RIGHTS_OK !== true) die(); -if (__NAPLOADMIN!==true) $_SESSION['alert'][]='page:insufficient_access'; + + require_once('include/modules/naplo/share/osztaly.php'); + require_once('include/modules/naplo/share/szemeszter.php'); + require_once('include/modules/naplo/share/intezmenyek.php'); + + $ADAT['tablo']['tanevek'] = getTanevek(true); + $ADAT['tablo']['telephely'] = getTelephelyek(); + $ADAT['tablo']['telephelyIds'] = array(); + foreach ($ADAT['tablo']['telephely'] as $i => $tAdat) $ADAT['tablo']['telephelyIds'][] = $tAdat['telephelyId']; + + $ADAT['tablo']['osztalyId'] = $osztalyId = $_POST['osztalyId'] = readVariable($_POST['osztalyId'], 'id', readVariable($_GET['osztalyId'],'id',null)); + $ADAT['tablo']['tanev'] = $tanev = readVariable($_POST['tanev'], 'numeric unsigned', __TANEV, $ADAT['tablo']['tanevek']); + + //$telephelyId = readVariable($_POST['telephelyId'], 'id'); + + if ($osztalyId!='') { + $ADAT['tablo']['osztalyAdat'] = getOsztalyAdat($osztalyId, $tanev); + $ADAT['tablo']['diakok'] = getDiakok(array('tanev' => $tanev,'osztalyId'=>$osztalyId)); + $ADAT['tablo']['diakIds'] = array_keys(reindex($ADAT['tablo']['diakok'],array('diakId'))); + $ADAT['tablo']['diakKepzes'] = getKepzesByDiakId($ADAT['tablo']['diakIds'], array('result' => 'assoc')); + } + + $TOOL['osztalySelect'] = array('tipus'=>'cella','paramName' => 'osztalyId', 'post'=>array('tanev','telephelyId','dt'), 'telephelyId' => $telephelyId); + + +// ------------------------------ + +if (__NAPLOADMIN!==true) { + +} else { // naploadmin require_once('include/share/date/names.php'); require_once('include/modules/naplo/share/file.php'); -require_once('include/modules/naplo/share/osztaly.php'); require_once('include/modules/naplo/share/osztalyModifier.php'); require_once('include/modules/naplo/share/intezmenyek.php'); require_once('include/modules/naplo/share/diak.php'); @@ -24,7 +52,7 @@ require_once('include/share/net/upload.php'); define('FILE_UPLOAD_DIR',_DOWNLOADDIR.'/private/naplo/upload/'); -if (defined('__INTEZMENY') and __INTEZMENY != '') { +if (defined('__INTEZMENY') && __INTEZMENY != '') { $ADAT['tanevek'] = getTanevek(true); $ADAT['tanarok'] = getTanarok(); $ADAT['kepzesek'] = getKepzesek(); @@ -350,7 +378,11 @@ $TOOL['datumSelect'] = array('tipus'=>'sor','paramName'=>'dt','tolDt'=>$TA['eloz $TOOL['oldalFlipper'] = array('tipus' => 'cella', 'url' => array('index.php?page=naplo&sub=intezmeny&f=kepzes'), 'titleConst' => array('_KEPZES'), 'post' => array(''), 'paramName'=>'kepzesId'); // paramName ? +} // naploadmin + getToolParameters(); + + ?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly.php index a1c51b8c..5c2061dc 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/osztaly.php @@ -1,7 +1,12 @@ <?php - if (_RIGHTS_OK !== true) die(); +if (_RIGHTS_OK !== true) die(); +if (__NAPLOADMIN!==true) { + global $ADAT; + putOsztalyGrid($ADAT['tablo']); + +} else { global $ADAT, $fileName, $ADATOK, $MEZO_LISTA, $attrList; if ($ADAT['updatedFromFile']===true) { @@ -10,10 +15,11 @@ } else { + putOsztalyGrid($ADAT['tablo']); + // Osztályhoz rendelés if (isset($ADAT['osztalyId']) && ($ADAT['osztalyAdat']["kezdoTanev"]<=$ADAT['tanev'] && $ADAT['osztalyAdat']["vegzoTanev"]>=$ADAT['tanev'])) { - putOsztalyAdatokForm($ADAT); if ($ADAT['osztalyJellegek'][ $ADAT['osztalyAdat']['osztalyJellegId'] ]['kovOsztalyJellegId'] != 0) { // NyEK évfolyam @@ -44,5 +50,5 @@ putUjOsztalyForm($ADAT); } } - +} // naploadmin ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/tankorTanarHozzarendeles-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/tankorTanarHozzarendeles-pre.php index 3b5f5133..e7f65b68 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/tankorTanarHozzarendeles-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/tankorTanarHozzarendeles-pre.php @@ -1,7 +1,7 @@ <?php if (_RIGHTS_OK !== true) die(); - if (!__NAPLOADMIN && !__VEZETOSEG) { $_SESSION['alert'] = 'page:insufficient_access'; } + if (!__NAPLOADMIN && !__VEZETOSEG && !__TANAR) { $_SESSION['alert'] = 'page:insufficient_access'; } else { require_once('include/modules/naplo/share/osztaly.php'); @@ -19,7 +19,7 @@ 'osztalyIds'=>readVariable($_POST['osztalyIds'],'id',array()), 'mkIds'=>readVariable($_POST['mkIds'],'id',array()), 'tanarNelkuliTankorok' => readVariable($_POST['tanarNelkuliTankorok'],'bool'), - 'tanarIds'=>readVariable($_POST['tanarIds'],'id',array()), + 'tanarIds'=>readVariable($_POST['tanarIds'],'id',(!__NAPLOADMIN&&!__VEZETOSEG)?array(__USERTANARID):array()), 'targyIds'=>readVariable($_POST['targyIds'],'id',array()), ); foreach ($ADAT['szuro']['targyak'] as $idx => $tAdat) $ADAT['targyAdat'][ $tAdat['targyId'] ] = $tAdat; @@ -36,29 +36,31 @@ foreach ($ADAT['tankorok'] as $tAdat) if (is_array($tAdat['tanarIds']) && count($tAdat['tanarIds'])>0) $ADAT['keszTankorDb']++; $ADAT['tankorStat'] = getTankorStat(); - if ($action == 'tankorTanarFelvesz') { + if (__NAPLOADMIN===true || __VEZETOSEG===true) { - $tankorId = readVariable($_POST['tankorId'],'id'); - $tanarId = readVariable($_POST['tanarId'],'id'); - $_JSON = array( + if ($action == 'tankorTanarFelvesz') { + + $tankorId = readVariable($_POST['tankorId'],'id'); + $tanarId = readVariable($_POST['tanarId'],'id'); + $_JSON = array( 'post' => $_POST, 'result' => tankorTanarModosit($tankorId, $tanarId, array('tanev'=>__TANEV)) - ); + ); - } elseif ($action == 'tankorTanarTorol') { + } elseif ($action == 'tankorTanarTorol') { - $_tankorId = readVariable($_POST['tankorId'],'id'); - $_tanarId = readVariable($_POST['tanarId'],'id'); - tankorTanarTorol($_tankorId,$_tanarId,array('tanev'=>$tanev)); + $_tankorId = readVariable($_POST['tankorId'],'id'); + $_tanarId = readVariable($_POST['tanarId'],'id'); + tankorTanarTorol($_tankorId,$_tanarId,array('tanev'=>$tanev)); - $_JSON = array( - 'post' => $_POST, - ); + $_JSON = array( + 'post' => $_POST, + ); + } } //dump($ADAT['tanarok']); - } ?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/terem-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/terem-pre.php index 3afa9ce2..3c8c6bda 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/terem-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/terem-pre.php @@ -19,6 +19,7 @@ $ADAT['teremIds'] = array_keys($ADAT['teremAdat']); $ADAT['teremTipusok'] = getSetField('naplo_intezmeny','terem','tipus'); $ADAT['teremId'] = readVariable($_POST['teremId'], 'id', readVariable($_GET['teremId'], 'id', null, $ADAT['teremIds']), $ADAT['teremIds']); + $ADAT['teremIdMod'] = readVariable($_POST['teremIdMod'], 'id', null); if ($action == 'teremAdatModositas' || $action=='ujTerem') { @@ -27,7 +28,8 @@ $D['ferohely'] = readVariable($_POST['ferohely'], 'numeric unsigned'); $D['tipus'] = readVariable($_POST['tipus'], 'enum', $ADAT['teremTipusok']); $D['telephelyId'] = readVariable($_POST['telephelyId'], 'id', readVariable($_GET['telephelyId'], 'id', null, $ADAT['telephelyIds']), $ADAT['telephelyIds']); -//echo '<pre>'; var_dump($ADAT['teremIds']); echo '</pre>'; + $D['teremId'] = $ADAT['teremId']; + $D['teremIdMod'] = $ADAT['teremIdMod']; teremAdatModositas($D,($action=='ujTerem')); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas-pre.php index fb04a3ca..954eebba 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas-pre.php @@ -8,6 +8,7 @@ require_once('include/modules/naplo/share/targy.php'); require_once('include/modules/naplo/share/osztaly.php'); require_once('include/modules/naplo/share/munkakozosseg.php'); + require_once('include/modules/naplo/share/kepesites.php'); $intezmeny = readVariable($_POST['intezmeny'], 'strictstring', defined('__INTEZMENY') ? __INTEZMENY : null ); if ($action == 'intezmenyValasztas') { @@ -40,13 +41,24 @@ } } } - $ADAT['tanarok'] = getTanarok(array('extraAttrs'=>'titulus,statusz,besorolas','telephelyId'=>__TELEPHELYID)); + $ADAT['tanarok'] = getTanarok(array('extraAttrs'=>'email,titulus,statusz,besorolas','telephelyId'=>__TELEPHELYID)); $ADAT['targyak'] = getTargyak(array('arraymap'=>array('targyId'))); + + + $ADAT['kepesitesek'] = getKepesitesek(); +// $ADAT['vegzettsegek'] = getEnumField('naplo_intezmeny', 'kepesites', 'vegzettseg'); +// $ADAT['fokozatok'] = getEnumField('naplo_intezmeny', 'kepesites', 'fokozat'); +// $ADAT['specializaciok'] = getEnumField('naplo_intezmeny', 'kepesites', 'specializacio'); + +//dump($ADAT['kepesitesek']); + $lr = db_connect('naplo_intezmeny'); for($i=0; $i<count($ADAT['tanarok']); $i++) { $_tanarId = $ADAT['tanarok'][$i]['tanarId']; $ADAT['tanarOsztaly'][$_tanarId] = getOsztalyIdsByTanarId($_tanarId, array('tanev'=>__TANEV,'csakId'=>true),$lr); $ADAT['tanarMunkakozosseg'][$_tanarId] = getVezetettMunkakozossegByTanarId($_tanarId,array('result'=>'assoc'),$lr); + $ADAT['tanarok'][$i]['kepesites'] = getTanarKepesites($_tanarId); +// $ADAT['tanarok'][$i]['kepesitesNev'] = $ADAT['kepesitesek']; } $ADAT['osztalyok'] = getOsztalyok(__TANEV,array('result'=>'assoc'),$lr); db_close($lr); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas.php index 3d15f4de..9725b1f9 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/intezmeny/valtas.php @@ -2,6 +2,12 @@ if (_RIGHTS_OK !== true) die(); global $ADAT; - putTanarLista($ADAT); + + if (__INTEZMENY=='kanizsay') { + $ADAT['kulsosview']=false; + putTanarLista_large($ADAT); + $ADAT['kulsosview']=true; + putTanarLista_large($ADAT); + } else putTanarLista($ADAT); ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php index c4ed7cb9..fa022019 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/helyettesites-pre.php @@ -21,7 +21,7 @@ if (isset($_POST['targyId']) && intval($_POST['targyId']) != 0) $targyId = intval($_POST['targyId']); if (isset($_POST['tankorId']) && intval($_POST['tankorId']) != 0) $tankorId = intval($_POST['tankorId']); if (isset($_POST['tankorId']) && intval($_POST['tankorId']) != 0) $tankorId = intval($_POST['tankorId']); - $telephelyId = readVariable($_POST['telephelyId'], id, null); + $telephelyId = readVariable($_POST['telephelyId'], 'id', null); //$tanev = $_POST['tanev']; //$action = $_POST['action']; diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php index 262ff572..90e30c8f 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend-pre.php @@ -210,7 +210,7 @@ } else { $TANKOROK = $ADAT['orarend']['tankorok']; } - if (count($TANKOROK)>0) $ADAT['tankorok'] = getTankorAdatByIds($TANKOROK); + if (is_array($TANKOROK) && count($TANKOROK)>0) $ADAT['tankorok'] = getTankorAdatByIds($TANKOROK); /* tankörlétszámok */ if (is_array($ADAT['tankorok'])) foreach ($ADAT['tankorok'] as $_tankorId =>$_T) { diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend.php index 761156cd..c883a0e7 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarend.php @@ -2,9 +2,11 @@ global $ADAT; - if ($ADAT['orarendvane']==0) - putNincsOrarend(); - if (is_array($ADAT)) - putOrarend($ADAT); + if ($skin!='ajax' && $ADAT['orarendvane']==0) { + putNincsOrarend(); + } + if (is_array($ADAT)) { + putOrarend($ADAT); + } ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendBetolto-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendBetolto-pre.php index df4db33a..98e19dfb 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendBetolto-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendBetolto-pre.php @@ -16,6 +16,7 @@ require_once('include/modules/naplo/share/tankor.php'); require_once('include/modules/naplo/share/targy.php'); // require_once('include/modules/naplo/share/diak.php'); + require_once('include/share/net/upload.php'); $ADAT['tanev'] = $tanev = readVariable($_POST['tanev'], 'numeric unsigned', __TANEV); if ($tanev == __TANEV) $TA = $_TANEV; @@ -37,6 +38,16 @@ // ----- action ----- // if ($action == 'fileBetoltes') { + if ($_FILES['upfile']['size'] > 0) { + try { + $FILEADAT = array('subdir'=>_DOWNLOADDIR.'/private/naplo/orarend/','filename'=>$_FILES['upfile']['name']); + mayorFileUpload($FILEADAT, false); + } catch (Exception $e) { + dump($e); + } +// $ADAT['fileName'] = $fileName = $_FILES['upfile']['tmp_name']; + $ADAT['fileName'] = $fileName = $FILEADAT['subdir'].$FILEADAT['filename']; + } if (isset($fileName) && isset($conv) && isset($tanev) && isset($tolDt) && isset($igDt) && isset($orarendiHet)) { if (file_exists($fileName)) { require_once("include/modules/naplo/orarend/convert-$conv.php"); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito-pre.php index e0fe07db..250197a0 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito-pre.php @@ -194,11 +194,11 @@ $ADAT['orarend'] = getOrarendByTanarId($tanarId,array('tolDt'=>$tolDt,'igDt'=>$igDt,'telephely'=>$telephely,'orarendiOraTankor'=>true)); $ADAT['toPrint'] = $ADAT['tanarok'][$tanarId]['tanarNev']; $ADAT['felvehetoTankorok'] = getTankorByTanarId($tanarId,$tanev, array('csakId'=>false,'tolDt'=>$refTolDt, 'igDt'=>$refIgDt)); - //======================== /* illesszük ide az Órarendi óra tankör összerendezés 4.6 */ $ADAT['orarendioraTankor'] = getOrarendByTanarId($tanarId,array('tolDt'=>$tolDt,'igDt'=>$igDt,'orarendiOraTankor'=>true)); //======================== + // $ADAT['orarendiOra'] = getLebegoOrarendiOra($tanarId,array('tolDt'=>$tolDt,'igDt'=>$igDt)); $TANKORIDK = getTankorByTanarId($tanarId, __TANEV, array('csakId' => true, 'tolDt' => $tolDt, 'igDt' => $igDt, 'result' => 'indexed', 'tanarral' => false)); $ADAT['haladasi'] = getOrak($TANKORIDK, array('tolDt'=>$tolDt,'igDt'=>$igDt, 'result'=>'likeOrarend', 'elmaradokNelkul'=>false)); $ADAT['vanHaladasi'] = checkHaladasi(array('tolDt'=>$refTolDt,'igDt'=>$refIgDt)); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito.php index 59ad88ac..4cffc162 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/orarend/orarendModosito.php @@ -10,5 +10,10 @@ && count($ADAT['felvehetoTankorok']) > 0 ) putOrarend($ADAT); + // if ($ADAT['orarendiOra']) putOrarendLebego($ADAT); + + if (count($ADAT['felvehetoTankorok']) === 0) { + echo 'Nincs felvehető tanköre a megadott tanárnak!'; + } ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php index 1ede4ff2..57ee210b 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/stat-pre.php @@ -229,10 +229,12 @@ } elseif ($atlag >= _JELES_ATLAG) { reset($jegyek); $found = false; - while (list($key, $jegyAdatok) = each($jegyek)) { - for ($i=0; $i<count($jegyAdatok); $i++) { + if (is_array($jegyek)) { + foreach($jegyek as $key => $jegyAdatok) { + for ($i=0; $i<count($jegyAdatok); $i++) { if ($jegyAdatok[$i]['jegyTipus'] == 'jegy' && $jegyAdatok[$i]['jegy'] < _JELES_LEGGYENGEBB_JEGY) $found = true; } + } } if ($found===false) { if ($zaraskorTag) $ADAT['stat']['jeles']++; diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/tankor-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/tankor-pre.php index 7e2480c9..d717302c 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/tankor-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/osztalyozo/tankor-pre.php @@ -54,8 +54,11 @@ if (!__NAPLOADMIN && !__VEZETOSEG && !__TANAR && !__DIAK && !__TITKARSAG) { if (isset($tankorId)) { // Az aktuális szemeszter kiválasztása if (__FOLYO_TANEV) { - foreach ($_TANEV['szemeszter'] as $szemeszter => $szemeszterAdat) - if (strtotime($szemeszterAdat['kezdesDt']) <= $time && $time <= strtotime($szemeszterAdat['zarasDt'])) break; + foreach ($_TANEV['szemeszter'] as $szemeszter => $szemeszterAdat) { + if (strtotime($szemeszterAdat['kezdesDt']) <= $time && $time <= strtotime($szemeszterAdat['zarasDt'])) { + break; + } + } if ($szemeszter !== false) { define('__FOLYO_SZEMESZTER', $szemeszter); $szemeszterKezdesDt = $szemeszeterAdat['kezdesDt']; @@ -212,7 +215,7 @@ if (!__NAPLOADMIN && !__VEZETOSEG && !__TANAR && !__DIAK && !__TITKARSAG) { && in_array(__USERTANARID, $Jegyek['tankörök'][$tankorId]['tanarIds']) && count($tanevIdoszak['zárás']) > 0 ) { - list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['zárás'])); + list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['zárás'])); // --TODO 8.0 define('__IDOSZAK_TOLDT',$_idoszakok[0]['tolDt']); // Nem lehet két szemeszterhez tartozó ugyanolyan típusú (pl. zárás) időszak egyidőben!!! define('__IDOSZAK_IGDT',$_idoszakok[0]['igDt']); define('__IDOSZAK_SZEMESZTER',$_szemeszter); @@ -221,7 +224,7 @@ if (!__NAPLOADMIN && !__VEZETOSEG && !__TANAR && !__DIAK && !__TITKARSAG) { && !is_null($tanevIdoszak['bizonyítvány írás']) && is_null($tanevIdoszak['zárás']) ) { - list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['bizonyítvány írás'])); + list($_szemeszter,$_idoszakok) = (each($tanevIdoszak['bizonyítvány írás'])); // --TODO 8.0 define('__IDOSZAK_TOLDT',$_idoszakok[0]['tolDt']); define('__IDOSZAK_IGDT',$_idoszakok[0]['igDt']); define('__IDOSZAK_SZEMESZTER',$_szemeszter); diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap-pre.php index 46164faf..8fecbb97 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap-pre.php @@ -2,14 +2,39 @@ if (_RIGHTS_OK !== true) die(); - if ($skin=='ajax') { +// if ($skin=='ajax') { require_once('include/modules/naplo/share/diak.php'); + require_once('include/modules/naplo/share/tanar.php'); require_once('include/modules/naplo/share/osztaly.php'); - $ADAT['ma'] = getDiakBySzulDt($dt); + $ADAT['ma'] = getDiakBySzulDt(date('Y-m-d')); + + $dt = readVariable($_POST['dt'],'date'); + if (is_null($dt)) { + $refDt = date('Y-m-d',strtotime('+1 days')); + $dt = date('Y-m-d',strtotime('last sunday',strtotime($refDt))); + } + for ($i=0; $i<=6; $i++) { + $_md = date('m-d',strtotime('+'.$i.' day',strtotime($dt))); + $ADAT['heti'][$i]['dt']= date('Y-m-d',strtotime('+'.$i.' day',strtotime($dt))); + $ADAT['heti'][$i]['diakok'] = getDiakBySzulDt($_md); + $ADAT['heti'][$i]['tanarok'] = getTanarBySzulDt($_md); + } $ADAT['osztaly'] = getOsztalyok(__TANEV,array('result'=>'assoc')); +// } - } + dump($ADAT['heti']); + + if ($skin!='ajax') { + global $_TANEV; + $TOOL['datumSelect'] = array( + 'tipus'=>'sor', 'post'=>array('tanarId', 'diakId', 'osztalyId', 'tankorId'), + 'paramName' => 'dt', 'hanyNaponta' => 7, + 'tolDt' => date('Y-m-d', strtotime('last sunday', strtotime($_TANEV['kezdesDt']))), + 'igDt' => date('Y-m-d', strtotime('last sunday', strtotime($_TANEV['zarasDt']))), + 'override' => true + ); + } ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap.php index 93606734..c8172121 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/szulinap.php @@ -2,13 +2,14 @@ if (_RIGHTS_OK !== true) die(); - global $ADAT; + global $ADAT,$aHetNapjai; -if ($skin=='ajax') { +//if ($skin=='ajax') { $szulinapos= false; - if (__NAPLOADMIN || __TANAR) { +// if (__NAPLOADMIN===true || __TANAR===true) { +/* echo '<ul>'; for ($i=0; $i<count($ADAT['ma']['diak']); $i++) { echo '<li>'; @@ -18,6 +19,46 @@ if ($skin=='ajax') { echo '</li>'; } echo '</ul>'; +*/ + if ($skin!='ajax') echo '<div style="margin-left:40px">'; + + echo '<style type="text/css"> + a.btn_szulinap {display:block;text-align:center; margin-top:4px; margin-bottom:2px; } + a.btn_szulinap button { font-size:x-small;} + div.szulinaposok_dt {text-align: left; padding-left:4px; color:#888;padding-top:4px; padding-bottom:2px;} + ul.szulinap li span.eletkor {display:none;} + ul.szulinap:hover li span.eletkor { display: inline-block; background-color: #ddd; border-radius:10%; padding: 0px 4px; margin-left: 2px; } +</style>'; + + for ($n=0; $n<=6; $n++) { + echo '<div class="szulinaposok_dt">'.(date('Y.m.d.',strtotime($ADAT['heti'][$n]['dt']))).' '.$aHetNapjai[(6+date('w',strtotime($ADAT['heti'][$n]['dt'])))%7].'</div>'; + echo '<ul class="szulinap" style="list-style-type: none;">'; + for ($i=0; $i<count($ADAT['heti'][$n]['diakok']['diak']); $i++) { + $_D = $ADAT['heti'][$n]['diakok']['diak'][$i]; + $_diakId= $_D['diakId']; + $_diakOsztalyId = $ADAT['heti'][$n]['diakok']['diakOsztaly'][$_diakId][0]; + echo '<li class="diakAdat diakNev" data-diakid="'.$_D['diakId'].'">'; + echo $ADAT['heti'][$n]['diakok']['diak'][$i]['viseltNevElotag'].' '; + echo $ADAT['heti'][$n]['diakok']['diak'][$i]['viseltCsaladinev'].' '; + echo $ADAT['heti'][$n]['diakok']['diak'][$i]['viseltUtonev']; + if ($ADAT['heti'][$n]['diakok']['diak'][$i]['diakEletkor']<=20) echo '<span class="eletkor">'.$ADAT['heti'][$n]['diakok']['diak'][$i]['diakEletkor'].'</span>'; + if ($ADAT['osztaly'][$_diakOsztalyId]['osztalyJel']!='') { + echo ' ('.($ADAT['osztaly'][$_diakOsztalyId]['osztalyJel']).')'; + } + echo '</li>'; + } + + for ($i=0; $i<count($ADAT['heti'][$n]['tanarok']); $i++) { + $_D = $ADAT['heti'][$n]['tanarok'][$i]; + $_tanarId= $_D['tanarId']; + if (is_array($_D)) { + echo '<li class="tanarAdat tanarNev" data-tanarid="'.$_tanarId.'">'; + echo $_D['tanarNev'].' (tanár)'; + echo '</li>'; + } + } + echo '</ul>'; + } if (is_array($ADAT['ma']['diakOsztaly'])) foreach($ADAT['ma']['diakOsztaly'] as $_diakId => $_osztalyId) { @@ -28,6 +69,14 @@ if ($skin=='ajax') { if ($szulinapos) echo _HAPPYBIRTHDAY; + if ($skin=='ajax') { + echo '<a href="'.href('index.php?page=naplo&f=szulinap').'" class="btn_szulinap">'; + echo '<button><span class="icon-th-list" style="font-size:8px; color:#888"></span> Születésnaposok</button>'; + echo '</a>'; + } + if ($skin!='ajax') echo '</div>'; + +/* if (is_array($O)) { echo '<ul>'; foreach($O as $osztalyId => $db) { @@ -38,7 +87,7 @@ if ($skin=='ajax') { } echo '</ul>'; } - -} +*/ +//} ?> diff --git a/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/targyBontas-pre.php b/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/targyBontas-pre.php index 2b9ad588..4d2893a9 100644 --- a/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/targyBontas-pre.php +++ b/mayor-orig/mayor-naplo/www/policy/private/naplo/tanev/targyBontas-pre.php @@ -18,7 +18,7 @@ if ($ADAT['targyBontasStatus']===false && $action=='targyBontasInit') { $ADAT['targyBontasStatus'] = initFromLastYear(); } -dump($ADAT); + // telephely - csak szűréshez kell $ADAT['telephelyId'] = $telephelyId = readVariable($_POST['telephelyId'], 'id'); // kötelező szűrési opció @@ -85,7 +85,6 @@ dump($ADAT); $ADAT['oraterv'] = kepzesOratervSorrend($evfolyamJel, $ADAT['osztalyIds'], $ADAT['kepzesIds']); // itt volt a targyAdat... felkerült az elejére $ADAT['osztalyTargyBontas'] = getKepzesTargyBontasByOsztalyIds($osztalyIds); -//dump($ADAT['osztalyTargyBontas']); } $ADAT['oratervenKivuliTankorok'] = getOratervenKivuliTankorIds(); diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php new file mode 100644 index 00000000..785e119a --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum-pre.php @@ -0,0 +1,5 @@ +<?php + + $ADAT = getDokumentumokAssoc(); + +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php new file mode 100644 index 00000000..031863f6 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/dokumentum/dokumentum.php @@ -0,0 +1,4 @@ +<?php + global $ADAT; + putDokumentumLista($ADAT); +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php new file mode 100644 index 00000000..f4fda5a4 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level-pre.php @@ -0,0 +1,48 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + require_once('include/share/date/names.php'); + require_once('include/share/print/pdf.php'); + + $token = readVariable($_GET['token'],'strictstring'); + if ( + (_USERACCOUNT === 'mayoradmin' || __FELVETELIADMIN === true) && $token=='' + ) { + + } else { + + if (strlen($token)==40) { + + $q = "SELECT oId FROM felveteli_levelLog WHERE token='%s' AND generalasDt>= NOW() - interval 10 MINUTE"; + $v = array($token); + $oId = db_query($q, array('modul'=>'naplo','result'=>'value','values'=>$v,'debug'=>false)); + + if ($oId=='') { + $_SESSION['alert'][] = 'info::Ez a token már nem érvényes!'; + } else { + //$q = "SELECT * FROM adatok_"._EV." ORDER BY evfolyam,nev"; + $q = "SELECT * FROM felveteli WHERE oId='%s'"; + $v = array($oId); + $r = db_query($q, array('modul'=>'naplo','result'=>'indexed','values'=>$v)); + $ADAT['level'] = $r; + $ADAT['iktsz'] = 'C8-62/2021'; + $file = __INTEZMENY.'_'.date('Y').'_'.$oktid.$token; + if (pdfLevel($file, $ADAT)) { + $q = "UPDATE felveteli_levelLog SET letoltesDt=NOW() WHERE token='%s'"; + $v = array($token); + db_query($q, array('modul'=>'naplo','values'=>$v,'debug'=>false)); + header('Location: '.location('index.php?page=session&f=download&download=true&dir=naplo/felveteli/level&file='.$file.'.pdf')); + exit; + } else { + $_SESSION['alert'][] = 'info::Hiba a file-generáláskor!'; + } + } + } else { + $_SESSION['alert'][] = 'info::Nem adtál meg érvényes kulcsot a letöltéshez!'; + } + } + // ha eljutottunk idáig, visszairányíthatnánk a lekérdező oldalra + //header('Location: '.location('index.php?page=felveteli&f=kozponti')); + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php new file mode 100644 index 00000000..15c5adc7 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/level.php @@ -0,0 +1,3 @@ +<?php + +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php new file mode 100644 index 00000000..ad1ae31c --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli-pre.php @@ -0,0 +1,46 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + require_once('include/modules/naplo/share/szemeszter.php'); + require_once('include/modules/naplo/share/felveteli.php'); + + if (__FELVETELIADMIN===true) { + die(); // ilyen nem lehet! + } + + $IDOSZAK = getIdoszakByTanev(array('tanev' => __TANEV, 'szemeszter' => 2, 'tipus' => array('felvételi szóbeli lekérdezés','felvételi ideiglenes rangsor lekérdezés','felvételi végeredmény lekérdezés'), 'tolDt'=>date('Y-m-d H:i:s'),'return' => '', 'arraymap'=>null)); + $now = mktime(); + for ($i=0; $i<count($IDOSZAK); $i++) { + $tolDt= $IDOSZAK[$i]['tolDt']; + $igDt= $IDOSZAK[$i]['igDt']; + if (strtotime($tolDt)<=$now && $now<strtotime($igDt)) { + $ok = true; + break; + } + } + if ($ok===true) { + define('_SZOBELI_LEKERDEZHETO', true); + } else { + define('_SZOBELI_LEKERDEZHETO', false); + if ($IDOSZAK[0]['tolDt']!='') $ADAT['szobeliPublikalasDt'] = $IDOSZAK[0]['tolDt']; + } + + $action = readVariable($_POST['action'],'strictstring',null,array('lekerdezes','szobeliLekerdezes')); + + if (in_array($action,array('szobeliLekerdezes')) && _SZOBELI_LEKERDEZHETO === true) { + $nev = readVariable($_POST['nev'],'sql'); + $oId = readVariable($_POST['oId'],'strictstring'); + if ($nev !='' || $oId !='') { + $ADAT = getFelvetelizoAdatok($nev,$oId); + if (is_array($ADAT)) { + $ADAT['szobeli'] = getSzobeliByoId(intval($ADAT['oId'])); + $ADAT['jelentkezes'] = getJelentkezes(intval($ADAT['oId'])); + if ($ADAT['oId']!='' && $ADAT['vegeredmeny']!='') { + $ADAT['token'] = updateLevelToken($ADAT['oId']);// token generálás + } + } + } + } + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php new file mode 100644 index 00000000..37af6ae5 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/felveteli/szobeli.php @@ -0,0 +1,33 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + global $ADAT,$nev,$oId; + + putEredmenyKereso($nev,'',$oId); + +if (_SZOBELI_LEKERDEZHETO === true) { + if (is_array($ADAT) && $nev!='' && $oId!='') { + putFelvetelizoAdatok($ADAT); +// putJelentkezes($JEL,$ADAT); + putSzobeli($ADAT); +// putIdeiglenesEredmeny($EREDMENY,$ADAT,$JEL); +// $stamp = time(); +// if ( +// __FELVETELIADMIN===true || +// (strtotime(_VEGEREDMENY_PUBLIKALAS_DT)<=$stamp +// && strtotime(_VEGEREDMENY_PUBLIKALAS_ENDDT)>$stamp) +// ) { +/////////////////////////////////////////////////// putVegeredmeny($ADAT); +// } + } elseif ($nev!='') { + //if (count($EREDMENY)==1 && $nev!='' && (_CATEGORY=='admin' || $oktid!='') ) { + //putIrasbeliEredmeny($EREDMENY[0]); + //putFelvetelizoAdatok($ADAT); + //putSzobeliEredmeny($EREDMENY,$ADAT); + //} elseif ($nev!='') { + putFelveteliError(); + //} + } +} +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php new file mode 100644 index 00000000..784f32f1 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok-pre.php @@ -0,0 +1,41 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + + require_once('include/modules/naplo/share/intezmenyek.php'); + require_once('include/modules/naplo/share/szemeszter.php'); + require_once('include/modules/naplo/share/tanar.php'); + require_once('include/modules/naplo/share/targy.php'); + require_once('include/modules/naplo/share/osztaly.php'); + require_once('include/modules/naplo/share/kepesites.php'); + require_once('include/modules/naplo/share/munkakozosseg.php'); + + if (defined('__INTEZMENY') and __INTEZMENY != '') { + $Tanevek = getTanevek(); + $Telephelyek = getTelephelyek(); + $telephelyIds = array(); + if (is_array($Telephelyek)) foreach ($Telephelyek as $index => $tAdat) $telephelyIds[] = $tAdat['telephelyId']; + $tanev = readVariable($_POST['tanev'], 'id', defined('__TANEV') ? __TANEV : null, $Tanevek); + $telephelyId = readVariable($_POST['telephelyId'], 'id', defined('__TELEPHELYID') ? __TELEPHELYID : null, $telephelyIds); + } + $ADAT['tanarok'] = getTanarok(array('extraAttrs'=>'titulus,statusz,besorolas,email,YEAR(beDt) AS belepesEve,IFNULL("",YEAR(kiDt)) AS kilepesEve, elerhetoseg')); + $ADAT['targyak'] = getTargyak(array('arraymap'=>array('targyId'))); + $lr = db_connect('naplo_intezmeny'); + + for($i=0; $i<count($ADAT['tanarok']); $i++) { + $_tanarId = $ADAT['tanarok'][$i]['tanarId']; + $ADAT['tanarOsztaly'][$_tanarId] = getOsztalyIdsByTanarId($_tanarId, array('tanev'=>__TANEV,'csakId'=>true),$lr); + $ADAT['tanarMunkakozosseg'][$_tanarId] = getVezetettMunkakozossegByTanarId($_tanarId,array('result'=>'assoc'),$lr); + $ADAT['tanarok'][$i]['kepesites'] = getTanarKepesites($_tanarId); +// $ADAT['tanarok'][$i]['kepesitesNev'] = $ADAT['kepesitesek']; + } + $ADAT['osztalyok'] = getOsztalyok(__TANEV,array('result'=>'assoc'),$lr); + db_close($lr); + +// $TOOL['intezmenySelect'] = array('tipus'=>'cella', 'action' => 'intezmenyValasztas', 'post' => array()); +// $TOOL['telephelySelect'] = array('tipus'=>'cella', 'action' => 'telephelyValasztas', 'post' => array()); +// $TOOL['tanevSelect'] = array('tipus'=>'cella', 'action' => 'tanevValasztas', 'post' => array()); + + getToolParameters(); + +?> diff --git a/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php new file mode 100644 index 00000000..97d9d6b0 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/policy/public/naplo/intezmeny/tanarok.php @@ -0,0 +1,12 @@ +<?php + + if (_RIGHTS_OK !== true) die(); + global $ADAT; + + $ADAT['kulsosview'] = false; + putTanarLista_large($ADAT); + + $ADAT['kulsosview'] = true; + putTanarLista_large($ADAT); + +?> diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css new file mode 100644 index 00000000..fd5c19b5 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/dokumentum/dokumentum.css @@ -0,0 +1,28 @@ + h1.dokumentumLista { text-align:center; } + span.dokumentumMegjegyzes { padding-left: 0.5em; font-size: x-small; } + table.dokumentumLista {margin-top: 2em; margin-bottom:4em; } + table.dokumentumLista thead tr th { background-color: #eee; padding: 10px 10px;} + table.dokumentumLista tbody tr th { background-color: #eee; padding: 10px 10px;} + table.dokumentumLista div.inline-block {display: inline-block; padding:4px 10px;} + table.dokumentumLista tr td a { color: #444; padding-left: 1em;} + table.dokumentumLista tr td:hover a { color: #111; } + table.dokumentumLista tr td a:hover { text-decoration: underline; color: cornflowerblue;} + + table.dokumentumLista tbody tr.private th { background-color: cornflowerblue; color:white; } + table.dokumentumLista tbody tr.private td span.icon-lock { color: cornflowerblue; margin-left: 1em; } + + + table.dokumentumLista tbody tr td span.material-icons { display: inline-block; font-size:12px;padding-right:2px; color: white; } + table.dokumentumLista tbody tr td:hover span.material-icons { display: inline-block; font-size:12px;padding-right:2px; color: #444; } + table.dokumentumLista tr td a:before { content: ""; padding-right:4px; color: #ddd;} + table.dokumentumLista tr td:hover a:before { content: ""; padding-right:4px; color: cornflowerblue;} + + table.dokumentumLista tr td { height:1.8em;} + table.dokumentumLista.admin { outline: solid 2px orange; border-radius:10px;} + table.dokumentumLista.admin tr td:hover div.dokumentumUrl_pl {display: inline-block;} + + table.dokumentumLista tr th span.tanev { + border-radius: 4px; padding:2px 4px; color:white; opacity:70%; +} + table.dokumentumLista tr th span.tanev0 {background-color: cornflowerblue} + table.dokumentumLista tr th span.tanev1 {background-color: orange} diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css new file mode 100644 index 00000000..aedb3e68 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/felveteli/szobeli.css @@ -0,0 +1,163 @@ +@media screen { + + table.lekerdezes { + width:320px; + margin-top:20px; + margin-bottom:20px; + background-color: #eeeee0; + color:; + font-size:13px; + } + table.lekerdezes tfoot input { } + table.lekerdezes thead th { + background-color: rgb(245, 223, 77); +#eeeee0; + padding-top:5px; + padding-bottom: 4px; + border-style: none none solid none; + border-width: 1px; + border-color: #aaaaa0; + } + table.lekerdezes tbody th { + padding-left: 10px; + padding-right: 10px; + text-align: right; + font-weight:normal; + } + table.lekerdezes tfoot th { + color: #888880; + } + + #felvierr { margin-left: auto; margin-right:auto; + margin-top:20px; margin-bottom: 50px; + width:300px; + background-color: #770000; + border: solid 1px red; + color: white; + padding:5px; + text-align: center; + } + + #felviinfo { margin-left: auto; margin-right:auto; + margin-top:20px; margin-bottom: 50px; + width:300px; + background-color: cornflowerblue; + border: solid 1px black; + color: white; + padding:5px; + text-align: center; + box-shadow: 2px 2px .1em #ddd; + } + + table.szobeli { + margin-top:10px; margin-bottom: 50px; + width:; + } + table.szobeli thead th { background-color: #eeeee0; + padding-top:5px; + padding-bottom: 4px; + border-style: none none solid none; + border-width: 2px; + border-color: #aaaaa0; + background-color: #9e0059; color:white; + } + table.szobeli tbody th { + padding-left: 10px; + padding-right: 10px; + text-align: left; + border-style: none none solid none; + border-width: 1px; + border-color: #aaaaa0; + + } + table.szobeli tbody td { + text-align: right; + margin-right:10px; + border-style: none none solid none; + border-width: 1px; + border-color: #aaaaa0; + } + table.szobeli tbody th.nincsbehivva { + border-style: none none none solid; + border-width:3px; + border-color:red; + } + table.szobeli tbody th.behivva { + border-style: none none none solid; + border-width:3px; + border-color: #33ff00; + } + + table.felveteliAdatok { + margin-top:10px; margin-bottom: 20px; + min-width:320px; + background-color: #f1faee; + font-size: 13px; +/* background-color:#556670;*/ + background-color: #eeeee0; + + } + table.felveteliAdatok thead th { background-color: #eeeee0; + padding-top:5px; + padding-bottom: 4px; + border-style: none none solid none; + border-width: 1px; + border-color: #aaa; + background-color: #a8dadc; + background-color: #ff0054; + color:white; + background-color: darkcyan; + } + table.felveteliAdatok tfoot th { + background-color: #457b9d; + font-size:10px; + color:white; + text-align:right; + font-weight:normal; + } + table.felveteliAdatok tbody th { + padding-left: 10px; + padding-right: 10px; + text-align: left; + font-weight: normal; + } + table.felveteliAdatok tbody td { + text-align: left; + margin-right:10px; + } + + table.vegeredmeny tr td { + height: 3em; + background-color: #223344; + text-align: center; + } + + + div#felviWait { + padding-top: 5px; + padding-bottom: 5px; + margin:10px auto; + width:300px; + border: solid 2px #667780; + display: none; + } + div#felviWait img { + vertical-align: baseline; + } + + div#tajekoztato { + border: solid 2px #ddd; + background: #eee; + color: black; + width: 600px; + margin: auto; + padding: 20px; + } + + + +} +@media print { + table.szobeli { /*display: none;*/ } + table.lekerdezes { display: none; } +}
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css index 21fb65e4..cbb0f593 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/kepzesOraterv.css @@ -60,10 +60,12 @@ width:70px; } +/* form.kepzesOraterv table td input:focus, form.kepzesOraterv table td select:focus { - background-color: rgb(140,160,180); color:white; } - + background-color: rgb(140,160,180); color:white; + } +*/ form.kepzesOraterv table td select option { font-size:smaller;} form.kepzesOraterv table td.lezart input { background-color: black } @@ -97,4 +99,4 @@ */ form#oratervMasolas { background-color: darkorange; width: 98%; margin: auto; text-align: center; padding-bottom: 5px; } - form#oratervMasolas h1 { border-bottom: 2px yellow solid; font-size: 14px; font-weight: bold; background-color: #a40; color: white; padding: 4px; }
\ No newline at end of file + form#oratervMasolas h1 { border-bottom: 2px yellow solid; font-size: 14px; font-weight: bold; background-color: #a40; color: white; padding: 4px; } diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css index 2f80f013..037dd2ee 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanar.css @@ -57,4 +57,4 @@ form.tanar input.ajaxRequestDone { color: white; background-color: rgb(0,130,0); } form.tanar select.ajaxRequestDone { color: white; background-color: rgb(0,130,0); } form.tanar input.ajaxRequestError { color: white; background-color: rgb(130,0,0); } - form.tanar select.ajaxRequestError { color: white; background-color: rgb(130,0,0); }
\ No newline at end of file + form.tanar select.ajaxRequestError { color: white; background-color: rgb(130,0,0); } diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css new file mode 100644 index 00000000..2d55e18a --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tanarok.css @@ -0,0 +1,10 @@ +table.tanarLista {max-width:90%} +table.tanarLista td { vertical-align:top; padding-bottom: 1.1em;} +table.tanarLista span.tanarNev { font-weight: 600; line-height:1.4em; font-size: 14px; color: black;} +table.tanarLista div.titulus { font-size: smaller; color:; /*font-style: italic;*/ font-weight:100;} +table.tanarLista div.besorolas { font-size: smaller; color:#ccc;} +table.tanarLista div.munkakozossegVezeto, +table.tanarLista div.kepesites, +table.tanarLista div.osztalyfonok {color:#aaa; font-size: smaller;} +table.tanarLista div.email, +table.tanarLista div.elerhetoseg { color: #888; font-size:smaller; padding-top:4px;} diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tankorTanarHozzarendeles.css b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tankorTanarHozzarendeles.css index a346f49c..684a4b0b 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tankorTanarHozzarendeles.css +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/css/intezmeny/tankorTanarHozzarendeles.css @@ -74,7 +74,7 @@ div.tanarTankor table tbody tr th.slctd { background-color: rgba(0,200,0,0.7); } div.tanarTankor table tbody tr td:hover input[type="checkbox"] { display:table-cell; } -pre { text-align: left; } + pre { text-align: left; } div.tankorTanar table#tt thead tr th.szurt { display: none; } div.tankorTanar table#tt thead tr td.szurt { display: none; } div.tankorTanar table#tt tbody tr td.szurt { display: none; } @@ -90,5 +90,5 @@ pre { text-align: left; } filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); } - + table#tt tr td.checked { background-color: lightgreen !important;} diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml index 0c5f7937..5f57ef58 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/base.phtml @@ -94,7 +94,7 @@ } elseif (isset($params['tipus']) && $params['tipus'] == 'sor') { $sorDb++; } } - if (__PAGE_PRESET===true) { + if (defined('__PAGE_RESET') && __PAGE_PRESET===true) { echo '<th>'; putToolFormStart('preSetSave', ''); diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml new file mode 100644 index 00000000..5fefacd2 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/dokumentum/dokumentum.phtml @@ -0,0 +1,159 @@ +<?php + + function putDokumentumAdmin($ADAT) { + formBegin(); + echo '<input type="hidden" name="action" value="addDokumentum">'; + + echo '<table align="center" class="dokumentumLista admin">'; + echo '<tr><th colspan="2">'; + echo 'Új dokumentum</th><td></tr>'; + echo '<tr>'; + echo '<th>Sorrend:</th>'; + echo '<td><input type="text" id="frm_dokumentumSorrend" name="dokumentumSorrend" value="'.(count($ADAT)+1).'" size="3" /></td>'; + echo '</tr>'; + echo '<tr>'; + echo '<th>Leírás:</th>'; + echo '<td><input type="text" id="frm_dokumentumLeiras" name="dokumentumLeiras" placeholder="Szervezeti és Működési Szabályzat" size="60" /></td>'; + echo '</tr>'; + echo '<tr>'; + echo '<th>Link szöveg:</th>'; + echo '<td><input type="text" id="frm_dokumentumRovidLeiras" name="dokumentumRovidLeiras" placeholder="SzMSz" size="60" /></td>'; + echo '</tr>'; + echo '<tr>'; + echo '<th>Url:</th>'; + echo '<td>'; + // echo $INTEZMENY['honlap']; + echo '<input type="text" id="frm_dokumentumUrl" name="dokumentumUrl" placeholder="https://kanizsay.edu.hu/doksi/meno_tanmenet.pdf" size="100" />'; + echo '<div class="dokumentumUrl_pl" style="display:none">pálda: https://mayor.edu.hu/dokumentumok/2021/meno_tanmenet.pdf</div>'; + echo '</td>'; + echo '</tr>'; + echo '<tr>'; + echo '<th>Megjegyzés a link mögött:</th>'; + echo '<td><input type="text" id="frm_dokumentumMegjegyzes" name="dokumentumMegjegyzes" placeholder="kiadás: 2021. május 8." size="10" /></td>'; + echo '</tr>'; + echo '<tr>'; + echo '<th>Láthatóság:</th>'; + echo '<td>'; + echo '<div class="inline-block">'; + echo '<input type="radio" name="dokumentumTipus" value="general" id="dokumentumTipus_general" /><label for="dokumentumTipus_general">általános/állandó</label>'; + echo '<input type="radio" name="dokumentumTipus" value="tanev" id="dokumentumTipus_tanev" checked="checked" /><label for="dokumentumTipus_tanev">tanév/éves</label>'; + echo '</div>'; + echo '<div class="inline-block">'; + echo '<input type="radio" name="dokumentumPolicy" value="public" id="dokumentumPolicy_public" checked="checked" /><label for="dokumentumPolicy_public">publikus</label>'; + echo '<input type="radio" name="dokumentumPolicy" value="private" id="dokumentumPolicy_private" /><label for="dokumentumPolicy_private">privát</label>'; + echo '</div>'; + echo '</td>'; + echo '</td>'; + echo '</td></tr>'; + echo '<tr><th colspan="2">'; + echo '<input type="submit">'; + echo '</td></tr>'; + echo '</table>'; + + formEnd(); + } + + + function putDokumentumListaAdmin($ADAT, $admin=false) { + + if ($admin===true) { + formBegin(); + echo '<input type="hidden" name="action" value="delModDokumentum">'; + } + echo '<h1 class="dokumentumLista">Adminisztráció</h1>'; + echo '<table class="dokumentumLista admin" align="center" cellspacing="1">'; + // echo '<thead><tr><th colspan="2">'.'</th></tr></thead>'; + if ($admin===true) { + echo '<tfoot><tr><th colspan="6" style="text-align:right">'; + echo '<input type="submit">'; + echo '</th></tr></thead>'; + } + echo '<tbody>'; + for ($i=0; $i<count($ADAT); $i++) { + $D = $ADAT[$i]; + echo '<tr>'; + echo '<th>'; + echo $D['dokumentumId']; + echo '<input type="hidden" name="dokumentumId[]" value="'.$D['dokumentumId'].'" />'; + echo '</th>'; + echo '<td>'; + echo $D['dokumentumDt']; + echo '</td>'; + echo '<th>'; + echo $D['dokumentumLeiras']; + echo '</th>'; + echo '<td>'; + echo '<a href="'.($D['dokumentumUrl']).'" target="_blank">'; + echo '<span class="material-icons" style="">'; + if (stristr($D['dokumentumUrl'],'.pdf')!==false) echo 'picture_as_pdf'; + elseif (stristr($D['dokumentumUrl'],'.htm')!==false) echo 'integration_instructions'; + else echo 'open_in_new'; + echo '</span>'; + + echo htmlspecialchars($D['dokumentumRovidLeiras']); + echo '</a>'; + if ($D['dokumentumMegjegyzes']!='') echo '<span class="dokumentumMegjegyzes">('.$D['dokumentumMegjegyzes'].')</span>'; + + + echo '</td>'; + if ($admin===true) { + echo '<th>'.$D['dokumentumTipus'].'</th>'; + echo '<th>'.$D['dokumentumPolicy'].'</th>'; + echo '<th><input type="text" name="sorrend_'.$D['dokumentumId'].'" value="'.$D['dokumentumSorrend'].'" size="3" style="text-align:center" />'.'</th>'; + echo '<td><input type="checkbox" name="delDokumentumId[]" value="'.$D['dokumentumId'].'" /></td>'; + } + echo '</tr>'; + } + echo '</tbody>'; + echo '</table>'; + if ($admin===true) { + formEnd(); + } + + } + + + function putDokumentumLista($ADAT, $admin=false) { + + global $policy; + $genOn = false; + echo '<h1 class="dokumentumLista">Dokumentumok</h1>'; + echo '<table class="dokumentumLista" align="center" cellspacing="1">'; + echo '<tbody>'; + if (is_array($ADAT)) foreach($ADAT as $tipus=>$DAT) + if (is_array($DAT)) foreach($DAT as $tanev=>$AT) { + if ($genOn==false || $tipus!='general') { + echo '<tr>'; + echo '<th colspan="2">'; + if ($tipus=='general') { + echo 'Általános dokumentumok'; + $genOn=true; + } else echo $tanev.'/'.($tanev+1); + echo '</th>'; + echo '</tr>'; + } + for ($i=0; $i<count($AT); $i++) { + $D = $AT[$i]; + if ($policy=='public' && $D['dokumentumPolicy']!='public') continue; + echo '<tr class="'.$D['dokumentumTipus'].' '.$D['dokumentumPolicy'].'">'; + echo '<th style="font-size:x-small; background-color:#fff; font-weight:normal; color: #888;"><span class="tanev tanev'.($D['dokumentumTanev']%2).'">'.$D['dokumentumTanev'].'/'.($D['dokumentumTanev']+1).'</span></th>'; + echo '<td>'; + echo '<a href="'.($D['dokumentumUrl']).'" target="_blank" title="'.htmlspecialchars($D['dokumentumRovidLeiras']).'">'; + if ($D['dokumentumLeiras']!='') echo htmlspecialchars($D['dokumentumLeiras']); + // if ($D['dokumentumRovidLeiras']!='') echo htmlspecialchars($D['dokumentumRovidLeiras']); + // echo '<span class="icon-download"></span> '; + echo '</a>'; + if ($D['dokumentumMegjegyzes']!='') echo '<span class="dokumentumMegjegyzes">('.$D['dokumentumMegjegyzes'].')</span>'; + if ($D['dokumentumPolicy']=='private') echo '<span class="icon-lock"></span>'; + echo '</td>'; + echo '</tr>'; + } + + } + echo '</tbody>'; + echo '</table>'; + + } + + +?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml new file mode 100644 index 00000000..38b00a89 --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/felveteli/szobeli.phtml @@ -0,0 +1,521 @@ +<?php + + + function putEredmenyKereso($nev,$diak,$oId) { + + global $ADAT; + if (_SZOBELI_LEKERDEZHETO==false) { + echo '<div align="center" style="margin:100px;border: solid 2px #aabbc0; background-color:darkcyan;color:white; padding:12px;"> + <span class="icon-info-sign"></span> + A lekérdezés ebben az időszakban nem aktív, kérjük látogasson vissza '; + if ($ADAT['szobeliPublikalasDt']!='') { + echo date('Y. M. d. H:i:s',strtotime($ADAT['szobeliPublikalasDt']));echo '-kor!'; + } else { + echo 'később!'; + } + echo '</div>'; + } + + if (_SZOBELI_LEKERDEZHETO===false) { + return; + $_DIS = 'disabled="disabled" readonly="readonly"'; + } + //echo '<form id="fform" name="fform" method="post" action="" onsubmit="xt=document.fform.gomb;xt.value=\''._PLEASE_WAIT.'\';xt.disabled=true">'."\n"; + echo formBegin(array('id'=>'fform', 'name'=>'fform')); + echo '<input type="hidden" name="action" id="action" value="szobeliLekerdezes" />'; + echo '<table align="center" class="lekerdezes">'; + echo '<thead><tr><th colspan="2">'; + echo _LEKERDEZES; + if (__FELVETELIADMIN===true) { + echo ' - ADMIN'; + } + echo '</th></tr></thead>'."\n"; + echo '<tfoot>'; + echo '<tr><th colspan="2">'; + echo '<input type="submit" id="gomb" value="'._LEKERDEZ.'" '.$_DIS.' />'; + echo '</th></tr>'; + echo '<tr><th colspan="2">'; + //echo _BEHIVOTTAK.': '.date('Y. M. d. H:i:s',strtotime(_BEHIVOTTAK_PUBLIKALAS_DT)); + echo '</th></tr>'; + echo '</tfoot>'."\n"; + echo '<tbody>'; + echo '<tr>'; + echo '<th><label for="nev">'._NEV_JELIGE.'</label></th>'."\n"; + echo '<td>'; + echo '<input type="text" name="nev" id="nev" value="'.$nev.'" '.$_DIS.' placeholder="Gipsz Jakab Samu" />'; + echo '</td>'."\n"; + echo '</tr><tr>'; + echo '<th><label for="oId">'._OID.'</label></th>'."\n"; + echo '<td>'; + echo '<input type="text" name="oId" size="11" id="oId" value="' . $oId .'" '.$_DIS.' placeholder="7xxxxxxxxxx" />'; + echo '</td>'."\n"; + echo '</tr>'; + echo '</tbody>'; + echo '</table>'; + formEnd(); + } + + function putFelvetelizoAdatok($DATA) { + + if (__FELVETELIADMIN===true) { + formBegin(); + echo '<input type="hidden" name="action" value="modositas" />'; + } + if (__FELVETELIADMIN===true) { + echo '<input type="hidden" name="_nev" value="'.$DATA['nev'].'" />'; + echo '<input type="hidden" name="_oId" value="'.$DATA['oId'].'" />'; + } + + echo '<table align="center" class="felveteliAdatok" cellspacing="1" cellpadding="1" >'; + echo '<thead><tr><th colspan="3">'._ADATOK.' – '.$DATA['oId'].'</th></tr></thead>'."\n"; + echo '<tfoot><tr><th colspan="3">'; + if (__FELVETELIADMIN===true) { + echo '<input type="submit"> '; + } + echo _LEKERDEZES_DT.' '.date('Y.m.d. H:i:s'); + echo '</th></tr></tfoot>'."\n"; + echo '<tbody>'; + + if (__FELVETELIADMIN===true) { + echo '<th colspan="2">'; + echo '<div style="background-color: #f06; color:white; ">'; + echo '<input type="checkbox" name="diakTorol" value="1" />'; + echo 'Felvételiző diák és minden adatának törlése '; + echo '<span class="icon-exclamation-sign"></span>'; + echo '</div>'; + echo '</th>'; + } + + + echo '<tr>'; + echo '<th>'._NEV.'</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="nev" value="'.$DATA['nev'].'" />'; + } else { + echo $DATA['nev']; + } + echo '</td>'."\n"; + echo '</tr>'; + + if (__FELVETELIADMIN===true) { + echo '<tr>'; + echo '<th>Oktatási Azonosító:</th>'."\n"; + echo '<td colspan="2">'; + echo '<input type="text" name="oId" value="'.$DATA['oId'].'" />'; + echo '</td>'."\n"; + echo '</tr>'; + } + echo '<tr>'; + echo '<th>'._SZULETETT.'</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="szuldt" value="'.$DATA['szuldt'].'" />'; + } else { + echo $DATA['szuldt']; + } + echo '</td>'."\n"; + echo '</tr>'; + + echo '<tr>'; + echo '<th>'._AN.'</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="an" value="'.$DATA['an'].'" />'; + } else { + echo $DATA['an']; + } + echo '</td>'."\n"; + echo '</tr>'; + // if ($DATA['lakcim_telepules']!='') { + echo '<tr>'; + echo '<th>'._CIM.'</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="lakcim_irsz" size="4" value="'.$DATA['lakcim_irsz'].'" />'; + echo '<input type="text" name="lakcim_telepules" size="10" value="'.$DATA['lakcim_telepules'].'" />'; + echo '<input type="text" name="lakcim_utcahazszam" value="'.$DATA['lakcim_utcahazszam'].'" />'; + } else { + echo $DATA['lakcim_irsz'].' '.$DATA['lakcim_telepules'].', '.$DATA['lakcim_utcahazszam']; + // echo $DATA['lakcim_utcahazszam']; + } + echo '</td>'."\n"; + echo '</tr>'; + // } + // if ($DATA['tartozkodasi_telepules']!='') { + echo '<tr>'; + echo '<th>'._ERTESITESI_CIM.'</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="tartozkodasi_irsz" size="4" value="'.$DATA['tartozkodasi_irsz'].'" />'; + echo '<input type="text" name="tartozkodasi_telepules" size="10" value="'.$DATA['tartozkodasi_telepules'].'" />'; + echo '<input type="text" name="tartozkodasi_utcahazszam" value="'.$DATA['tartozkodasi_utcahazszam'].'" />'; + } else { + echo $DATA['tartozkodasi_irsz'].' '.$DATA['tartozkodasi_telepules'].', '.$DATA['tartozkodasi_utcahazszam']; + //echo $DATA['tartozkodasi_utcahazszam']; + } + echo '</td>'."\n"; + echo '</tr>'; + // } + echo '<tr>'; + echo '<th>Iskola OM kódja:</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="omkod" value="'.$DATA['omkod'].'" />'; + } else { + echo $DATA['omkod']; + } + echo '</td>'."\n"; + + echo '</tr>'; + if (is_array($DATA['iskolaAdat']) && $DATA['iskolaAdat']['nev'] != '') { + echo '<tr>'; + echo '<th>Iskola adatai:</th>'."\n"; + echo '<td colspan="2">'.$DATA['iskolaAdat']['nev'].', '.$DATA['iskolaAdat']['telepules'].'</td>'."\n"; + echo '</tr>'; + } + + + echo '<tr>'; + echo '<th>'._ATLAG.'</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="atlag" value="'.$DATA['atlag'].'" />'; + } else { + if ($DATA['atlag']>0) echo $DATA['atlag']; else echo '-'; + } + echo '</td>'."\n"; + + echo '</tr>'; + echo '<tr>'; + echo '<th>'._IRASBELI.' eredmény (magyar):</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="magyar" size="4" value="'.$DATA['magyar'].'" />'; + } else { + if ($DATA['magyar']>0) { + echo $DATA['magyar']; + } + } + echo ' pont'; + echo '</td>'."\n"; + echo '</tr>'; + echo '<tr>'; + echo '<th>'._IRASBELI.' eredmény (matematika):</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="matek" size="4" value="'.$DATA['matek'].'" />'; + } else { + if ($DATA['matek']>0) { + echo $DATA['matek']; + } + } + echo ' pont'; + echo '</td>'."\n"; + echo '</tr>'; + echo '<tr>'; + echo '<th>Hozott pont:</th>'."\n"; + echo '<td colspan="2">'; + if (__FELVETELIADMIN===true) { + echo '<input type="text" name="pont" size="4" value="'.$DATA['pont'].'" />'; + } else { + if ($DATA['pont']==floor($DATA['pont'])) { + list($a,$b) = explode('.',$DATA['pont']); + echo $a; + } else { + echo $DATA['pont']; + } + } + echo ' pont'; + echo '</td>'."\n"; + echo '</tr>'; + + if ($DATA['pontsum']!='' && $DATA['pontsum']!=0) { + echo '<tr>'; + echo '<th>Eddig elért pontszám:</th>'."\n"; + echo '<td>'.($DATA['pontsum']).'</td>'."\n"; + echo '</tr>'; + } + if (is_array($DATA['jelentkezes']) && count($DATA['jelentkezes'])>=0) { + echo '<tr>'; + echo '<th>Jelentkezett:</th>'."\n"; + echo '<td>'; + if (__FELVETELIADMIN!==true) { + echo '<table cellspacing="1">'; + for ($t=0; $t<count($DATA['jelentkezes']); $t++) { + echo '<tr style="height:2em; line-height:1.4em;">'; + echo '<td>'; + echo $DATA['jelentkezes'][$t]['tagozatNev']; + echo ' ('.$DATA['jelentkezes'][$t]['tagozat'].')'; + echo '</td>'; + if ($DATA['jelentkezes'][$t]['ideiglenesRangsor']>0) { + echo '<td style="background-color: #9e0059; color:white; padding: 4px 10px;">'; + echo $DATA['jelentkezes'][$t]['ideiglenesRangsor'].'. hely'; + echo '</td>'; + } + echo '</tr>'; + } + echo '</table>'; + } else { + for ($t=0; $t<count($DATA['jelentkezes']); $t++) { + $JEL[$DATA['jelentkezes'][$t]['tagozat']] = true; + $JEL_IDEIG[$DATA['jelentkezes'][$t]['tagozat']] = $DATA['jelentkezes'][$t]['ideiglenesRangsor']; + } + echo '<table cellspacing="1">'; + for ($t=0; $t<count($DATA['tagozat']); $t++) { + $_tagozat = $DATA['tagozat'][$t]['tagozat']; + $_CHK = ($JEL[$_tagozat]===true) ? 'checked="checked"':''; + echo '<tr>'; + echo '<td>'; + echo '<label for="T_'.$_tagozat.'">'.$DATA['tagozat'][$t]['tagozatNev'].'</label>'; + echo '</td>'; + echo '<td>'; + echo '<input type="checkbox" id="T_'.$_tagozat.'" name="jelentkezesTagozat[]" value="'.$_tagozat.'" '.$_CHK.'/>'; + echo '</td>'; + if ($JEL_IDEIG[$_tagozat]>0) { + echo '<td style="background-color: #9e0059; color:white; padding: 4px 10px;">'; + echo $JEL_IDEIG[$_tagozat].'. hely'; + echo '</td>'; + } + echo '</tr>'; + } + echo '</table>'; + + } + echo '</td>'."\n"; + echo '</tr>'; + } + + if ($DATA['jelenleg']!='') { + echo '<tr>'; + echo '<th>Jelenleg:</th>'."\n"; + echo '<td>'.$DATA['jelenleg'].'</td>'."\n"; + echo '</tr>'; + } + if ($DATA['joslat']!='' && $DATA['vegeredmeny']=='') { + echo '<tr style="background-color: cornflowerblue; height: 4em; color:white;">'; + echo '<th>Jóslat:</th>'."\n"; + echo '<td colspan="1" style="text-align:center; font-style:italic">'.$DATA['joslat'].'</td>'."\n"; + echo '</tr>'; + } + + if ($DATA['vegeredmeny']!='') { + echo '<tr style="background-color:#448877; color:white; height: 4em;">'; + echo '<th>Végeredmény:</th>'."\n"; + echo '<td style="text-align:center">'.$DATA['vegeredmeny'].'</td>'."\n"; + echo '</tr>'; + } + + echo '</tbody>'; + echo '</table>'; + + if (__FELVETELIADMIN===true) { + formEnd(); + } + + + } + + function putSzobeli($ADAT) { + + $DATA = $ADAT['szobeli']; + if ($DATA==false) { + echo '<div align="center" id="felviinfo">'; + echo _HIANYOS_SZOBELI_ADAT; + echo '</div>'; + } elseif ($DATA == 'multi') { + echo '<div align="center" id="felvierr">'; + echo _MULTI_USER; + echo '</div>'; + } elseif (is_array($DATA)) { + + if (__FELVETELIADMIN===true) { + formBegin(); + echo '<input type="hidden" name="action" value="szobeliModositas" />'; + echo '<input type="hidden" name="nev" value="'.$ADAT['nev'].'" />'; + echo '<input type="hidden" name="oId" value="'.$ADAT['oId'].'" />'; + } + + echo '<table align="center" class="szobeli">'; + echo '<thead><tr><th colspan="4">Szóbeli időpontok</th></tr></thead>'."\n"; + echo '<tfoot><tr><td colspan="4" style="font-size:x-small; color:white;text-align:right;">'; + +/* + if (defined('SZOBELI_EREDMENY_PLACEHOLDER')===true) { + // echo SZOBELI_EREDMENY_PLACEHOLDER; + } +*/ + echo '</td></tr></tfoot>'."\n"; + echo '<tbody>'; + + if (!is_array($DATA) || count($DATA)==0) { + echo '<tr>'; + echo '<td colspan="2">'; + echo '</td></tr>'; + } + + for($i=0; $i<count($DATA); $i++) { + $D = $DATA[$i]; + if ($D['szobeliTipus'] == 'elutasítás') $_class='nincsbehivva'; + else $_class='behivva'; + echo '<tr>'; + echo '<th class="'.$_class.'">'.$D['tagozatNev'].'</th>'."\n"; + echo '<td>'; + //echo $D['pont'].' pont'; + //echo '<br />'.$D['rangsor'].'. hely'; + echo '</td>'; + echo '<td>'; + if ($D['szobeliTipus'] == 'szóbeli nélküli ajánlat') { + echo '<p style="text-align: justify; font-style:italic">'; + echo $D['szobeliNelkulAjanlat']; + echo '</p>'; + } elseif ($D['szobeliTipus'] == 'elutasítás') { + echo '<p style="text-align: justify; font-style:italic">'; + if ($D['szobeliElutasito']!='') echo $D['szobeliElutasito']; + else echo 'Sajnos nem hívjuk szóbelire.'; + echo '</p>'; + } else { + + echo $D['bizottsag'].'. bizottság '; + if ($D['szoveg']!='') echo ' ('.$D['szoveg'].')'; + echo '<br/>'; + echo $D['napdt'].' ('.$D['nap'].') '; + echo substr($D['ido'],0,-3); + + if ($D['szobeliMegjegyzes']!='') { + echo '<p style="border-top:dotted 1px #ffffff; margin:0px; width:100%; text-align: justify; font-style:italic; font-size:x-small">'.$D['szobeliMegjegyzes'].'</p>'; + } + + } + echo '</td>'."\n"; + if (__FELVETELIADMIN===true) { + echo '<td>'; + echo '<input type="text" placeholder="pontszám" name="szobelipont_'.$D['felveteliSzobeliId'].'" value="'.$D['szobelipont'].'" />'; + echo '</td>'; + echo '<td>'; + echo '<div style="background-color: #f06; color:white;">Törlés!: <input type="checkbox" name="felveteliSzobeliId" value="'.$D['felveteliSzobeliId'].'" /></div>'; + echo '<input type="submit"/>'; + echo '</td>'; + } else { + echo '<td>'; + if ($D['szobelipont']>0) { + echo $D['szobelipont'].' pont'; + } + echo '</td>'; + } + echo '</tr>'; + } + echo '</tbody>'; + echo '</table>'; + + if (__FELVETELIADMIN===true) { + formEnd(); + } + } else {} + + putUjSzobeli($ADAT); + + + } + + function putFelveteliError($nev, $oId) { + if (__FELVETELIADMIN===true) { + echo '<div align="center" id="felviplusz">'; + formBegin(); + echo 'Új felvételiző felvétele: '; + echo '<input type="hidden" name="action" value="ujFelveteli" />'; + echo '<input type="text" name="_nev" value="'.$nev.'" placeholder="Gipsz Rozi" />'; + echo '<input type="text" name="_oId" value="'.$oId.'" placeholder="7xxxxxxxxxx"/>'; + echo '<input type="submit" />'; + formEnd(); + echo '</div>'."\n"; + } + echo '<div align="center" id="felvierr">'; + echo _HIBAS_HIANYOS_ADAT; + echo '</div>'; + } + + function putUjSzobeli($ADAT) { + + if (__FELVETELIADMIN!==true) return; + + if (count($ADAT['jelentkezes'])==0) { + echo '<div align="center" class="felvierr">Szóbeli nem vehető fel, mert nincs jelentkezés rögzítve a felvételiző diákhoz!</div>'; + return true; + } + + formBegin(); + echo '<table align="center" class="szobeli">'; + echo '<thead><tr><th>Új szóbeli időpont felvétele</th></tr></thead>'; + echo '<tfoot><tr><th></th></tr></tfoot>'; + echo '<tr><td>'; + echo '<input type="hidden" name="action" value="ujSzobeli" />'; + + echo '<input type="hidden" name="oId" size="11" id="oId" value="' . $ADAT['oId'] .'" readonly="readonly" placeholder="7xxxxxxxxxx" />'; + echo '<input type="hidden" name="nev" size="20" id="nev" value="' . $ADAT['nev'] .'" readonly="readonly"/>'; + echo '<input type="text" name="bizottsag" id="bizottsag" value="" placeholder="bizottság" />'; + echo '<br/><input type="text" name="nap" id="nap" value="" placeholder="nap szövegesen" />'; + echo '<br/><input type="text" name="napdt" id="napdt" value="" placeholder="ÉÉÉÉ-HH-NN" class="datepicker" />'; + echo '<br/><input type="text" name="ido" id="ido" value="" placeholder="ÓÓ:PP:MM" />'; + echo '<br/><input type="text" name="szoveg" id="szoveg" value="" placeholder="szabad szöveg" />'; + + echo '<br/><select name="tagozat">'; + echo '<option value=""></option>'; + for ($i=0; $i<count($ADAT['jelentkezes']); $i++) { + echo '<option value="'.$ADAT['jelentkezes'][$i]['tagozat'].'">'.$ADAT['jelentkezes'][$i]['tagozatNev'].' ('.$ADAT['jelentkezes'][$i]['tagozat'].')</option>'; + } + echo '</select>'; + $szobeliTipus = array('szóbeli','szóbeli nélküli ajánlat','elutasítás'); + echo '<select name="szobeliTipus">'; + for ($i=0; $i<count($szobeliTipus); $i++) { + echo '<option value="'.$szobeliTipus[$i].'">'.$szobeliTipus[$i].'</option>'; + } + echo '</select>'; + echo '<input type="submit">'; + echo '</td></tr>'; + echo '</table>'; + formEnd(); + } + + + function putVegeredmeny($DATA) { + + echo '<style type="text/css" > + + table.vegeredmeny tr td { + height: 3em; + background-color: #223344; + color:white; + text-align: center; + font-size:14px; + } + table.vegeredmeny tr td a { color:white; } + + div#felviWait { + padding-top: 5px; + padding-bottom: 5px; + margin:10px auto; + width:300px; + border: solid 2px #667780; + display: none; + } + div#felviWait img { + vertical-align: baseline; + } +</style>'; + + echo '<table align="center" class="felveteliAdatok vegeredmeny">'; + echo '<thead><tr><th>'._EREDMENY.'</th></tr></thead>'."\n"; + echo '<tfoot><tr><th>'.date('Y.m.d. H:i:s').'</th></tr></thead>'."\n"; + echo '<tbody>'; + echo '<tr>'; + echo '<td>'.$DATA['vegeredmeny'].'</td>'."\n"; + echo '</tr>'; + echo '<tr><td id="download">'; + echo '<span class="icon-download-alt"></span> '; + echo '<a href="'.href('index.php?page=naplo&sub=felveteli&f=level&token='.$DATA['token']).'">Hivatalos értesítő letöltése</a> (.pdf)'; + echo '</td></tr>'; + echo '</tbody></table>'; + } + +?> diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/diak.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/diak.phtml index c217bd88..0f754633 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/diak.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/diak.phtml @@ -409,6 +409,7 @@ echo '<td>'."\n"; echo '<span class="icon-envelope"></span>'; echo '<input type="text" id="email" name="email" value="'.$diakAdat['email'].'" />'; + echo '<input type="text" id="emailMagan" name="emailMagan" value="'.$diakAdat['emailMagan'].'" />'; echo '</td>'."\n"; echo '</tr><tr>'; echo '<th>'; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml index fb10c6c4..485438a3 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/kepzesOraterv.phtml @@ -68,6 +68,7 @@ formBegin(array('name'=>'kepzesOraterv','class'=>'kepzesOraterv')); echo '<input type="hidden" name="kepzesId" value="'.$kepzesId.'" />'; echo '<input type="hidden" name="action" value="do" />'; + echo '<input type="hidden" name="isAdmin" id="isAdmin" value="'.intval(__NAPLOADMIN===true).'" data-isadmin="'.intval(__NAPLOADMIN===true).'" />'; echo '<table align="center" cellspacing="1">'; echo '<thead>'; @@ -117,6 +118,8 @@ } echo '<th> </th>'; echo '</tr>'; + + if (__NAPLOADMIN===true) { // EGY UJ: echo '<tr class="ures">'; echo '<th>'; @@ -141,6 +144,7 @@ echo '</th>'; echo '</tr>'; // -- idáig EGY UJ + } echo '</tfoot>'."\n"; @@ -211,9 +215,10 @@ echo '</td>'; } echo '<th>'; - echo '<input type="submit" value="'._OK.'" class="felvesz" />'; - echo '<input type="submit" name="torol_'._escape($tipus).'_'.$targyId.'" value="X" class="torol" />'; - + if (__NAPLOADMIN===true) { + echo '<input type="submit" value="'._OK.'" class="felvesz" />'; + echo '<input type="submit" name="torol_'._escape($tipus).'_'.$targyId.'" value="X" class="torol" />'; + } echo '</th>'; echo '</tr>'."\n"; // -- idáig TOMEG diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/osztaly.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/osztaly.phtml index 01a9b0d8..26fbea77 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/osztaly.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/osztaly.phtml @@ -462,5 +462,67 @@ function putOidEllenor($ADAT) { } +function putOsztalyGrid($ADAT) { + echo '<style type="text/css"> +div.osztalyGrid { + width:100%; + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: center; + align-items: auto; + align-content: start +} +div.osztalyGrid .item { + flex: 0 0 auto; + margin: 10px; + width: 160px; + background-color: #eee; + text-align:center; + padding:4px 4px; + border-radius:2px; +} + +h1.osztaly,h2.osztalyfonok,h3.kepzes { text-align:center; } +div.osztalyGrid span.diakNev {display: inline-block; width:100%; background-color:white; border-radius:2px;} + +div.osztalyGrid .item:hover { + background-color: #ddd; +} + +img.arckep {height:230px; margin-bottom: 2px; border: solid 1px #ccc;} +h2.osztalyfonok { font-size: 14px; } + +</style>'; + + echo '<h1 class="osztaly">'.$ADAT['osztalyAdat']['osztalyJel'].'</h1>'; + echo '<h2 class="osztalyfonok">'; + for ($i=0; $i<count($ADAT['osztalyAdat']['osztalyfonokok']); $i++) { + echo '<div class="item">'; + echo '<img src="'.getFaceURI($ADAT['osztalyAdat']['osztalyfonokok'][$i]['tanarId'],'tanar').'" class="arckep"><br/>'; + echo $ADAT['osztalyAdat']['osztalyfonokok'][$i]['tanarNev']; + echo '<br/><i>osztályfőnök</i>'; + echo '</div>'; + } + // echo $ADAT['osztalyAdat']['osztalyfonokNev']; + echo '</h2>'; + if (count($ADAT['osztalyAdat']['kepzes'])>0) { + echo '<h3 class="kepzes">'; + for ($i=0; $i<count($ADAT['osztalyAdat']['kepzes']); $i++) { + echo $ADAT['osztalyAdat']['kepzes'][$i]['kepzesNev']; + if ($i+1<count($ADAT['osztalyAdat']['kepzes'])) echo ', '; + } + echo '</h3>'; + } + echo '<div class="osztalyGrid">'; + for ($i=0; $i<count($ADAT['diakok']); $i++) { + $_D = $ADAT['diakok'][$i]; + echo '<div class="item diakNev" data-diakid="'.$_D['diakId'].'">'; // class="diakNev" -- jogosultságok! + echo '<img src="'.getFaceURI($_D['diakId'],'diak').'" class="arckep" style="min-height:200px; min-width:100%"><br/>'; + echo '<span class="diakNev">'.$_D['diakNev'].'</span>'; + echo '</div>'; + } + echo '</div>'; +} ?>
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml index 563f2bd6..3018e222 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanar.phtml @@ -115,6 +115,14 @@ echo '</tr>'; echo '<tr>'; echo '<th>'."\n"; + echo '<label for="elerhetoseg">'._ELERHETOSEG.'</label>'."\n"; + echo '</th>'."\n"; + echo '<td colspan="4">'."\n"; + echo '<input type="text" size="64" id="elerhetoseg" name="elerhetoseg" value="'.$ADAT['tanarAdat']['elerhetoseg'].'" />'; + echo '</td>'."\n"; + echo '</tr>'; + echo '<tr>'; + echo '<th>'."\n"; echo '<label for="">'._KRETANEV.'</label>'."\n"; echo '</th>'."\n"; echo '<td colspan="4">'."\n"; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml new file mode 100644 index 00000000..42c84c3f --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tanarok.phtml @@ -0,0 +1,192 @@ +<?php + +function putTanarLista($ADAT) { + + $cols=2; + + echo '<table class="tanarLista" align="center" cellpadding="1" cellspacing="1">'; + echo '<tr>'; + for($i=0; $i<count($ADAT['tanarok']); $i++) { + $T = $ADAT['tanarok'][$i]; + echo '<td style="text-align:center">'; + + if (($_img = getFaceURI($T['tanarId'],'tanar')) != '') { + echo '<img src="'.$_img.'" style="height:200px">'; + } else { + echo '<div class="arckepPlaceholder" style="display:flex; flex-direction: column">'; + echo '<div class="icon-adult" style="font-size:120px; color:#eee;"></div>'; + echo '</div>'; + } + + //putFace($T['tanarId'],'tanar',0); + echo '</td><td>'; + echo '<span class="tanarNev" data-tanarid="'.$T['tanarId'].'">'.$T['tanarNev'].'</span>'; + if ($T['titulus']!='') echo '<div class="titulus">'.$T['titulus'].'</div>'; + if ($T['statusz']=='külső óraadó') echo '<div class="titulus">'.$T['statusz'].'</div>'; + if ($T['besorolas']=='Gyakornok') echo '<div class="titulus">'.lcfirst($T['besorolas']).'</div>'; + elseif ($T['besorolas']=='Mesterpedagógus') echo '<div class="titulus">'.lcfirst($T['besorolas']).'</div>'; + elseif ($T['besorolas']=='Pedagógus I.') echo '<div class="titulus">'.lcfirst($T['besorolas']).'</div>'; + elseif ($T['besorolas']=='Pedagógus II.') echo '<div class="titulus">'.lcfirst($T['besorolas']).'</div>'; + else echo '<div class="titulus">'.lcfirst($T['besorolas']).'</div>'."\n"; + + $osztalyai = ($ADAT[$T['tanarId']]['osztalyfonok']); + for ($j=0; $j<count($osztalyai); $j++) { + $_osztalyId = $osztalyai[$j]; + if ($ADAT['osztalyok'][$_osztalyId]['leiras']!='') { + echo '<div class="osztalyfonok">osztályfőnök '.$ADAT['osztalyok'][$_osztalyId]['osztalyJel']; + echo ' ('.$ADAT['osztalyok'][$_osztalyId]['leiras'].')'; + echo '</div>'; + } + } + $munkakozossegei = ($ADAT[$T['tanarId']]['mkVez']); // vezetett + for ($j=0; $j<count($munkakozossegei); $j++) { + $_mkId = $munkakozossegei[$j]; + echo '<div class="munkakozossegVezeto">'; + echo $munkakozossegei[$j]['munkakozossegNev']. ' munkaközösség-vezető'; + echo '</div>'; + } + + $kepesitesei = $ADAT[$T['tanarId']]['kepesites']; + if (count($kepesitesei)>0) { + echo '<div class="kepesites">'; + for ($j=0; $j<count($kepesitesei); $j++) { + $_k = $kepesitesei[$j]; +// echo ' '.$ADAT['targyak'][$_targyId][0]['targyNev'].' '; + echo ''.$kepesitesei[$j]['kepesitesNev']; + if ($j+1<count($kepesitesei)) echo '<br/>'; + } + echo '</div>'; + } + + + $munkakozossegei = ($ADAT[$T['tanarId']]['munkakozosseg']); + if (count($munkakozossegei)>0) { + echo '<div class="munkakozossegVezeto">'; + // $_MKNEV = array(); + // for ($j=0; $j<count($munkakozossegei); $j++) { + // $_mkId = $munkakozossegei[$j]; + // $_MKNEV[] = $munkakozossegei[$j]['munkakozossegNev']; + // } + // echo implode(', ',$_MKNEV).' munkaközösségi tag'; + echo '</div>'; + } + + if ($T['elerhetoseg']!='') echo '<div class="elerhetoseg"><span class="icon-phone" style="padding-right:0.4em"></span>'.$T['elerhetoseg'].'</div>'; + if ($T['email']!='') echo '<div class="email"><span class="icon-envelope" style="padding-right:0.4em"></span>'.$T['email'].'</div>'; + + echo '</td>'; + if (($i+1) % $cols == 0 && $i!=count($ADAT['tanarok'])-1) echo '</tr><tr>'; + } + echo '</tr>'; + echo '</table>'; +} + + +function putTanarLista_large($ADAT) { + + echo '<style type="text/css"> + +div.tanarGrid { + width:100%; + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: center; + align-items: auto; + align-content: start +} +div.tanarGrid .item { + flex: 0 0 auto; + margin: 10px; + width: 300px; + background-color: #eee; + text-align:center; + padding:4px 4px; + border-radius:2px; +} +div.tanarGrid .item.kulsos { + background-color:#ddd; +} + +h1.osztaly,h2.osztalyfonok,h3.kepzes { text-align:center; } + +div.tanarGrid .item:hover { background-color: #ddd; } + +img.arckep {min-height:300px; height:300px; margin-bottom: 2px; border: solid 1px #ddd; filter: grayscale(100%); } +div.tanarGrid .item:hover img.arckep { filter: none; } + +div.arckepPlaceholder {min-height:300px; min-width:100%; height:300px; margin-bottom: 2px; border: solid 1px #fff;} +h2.osztalyfonok { font-size: 14px; } +div.titulus {padding-bottom:4px;} +div.besorolas { font-size:x-small; color: #aaa;} + + </style>'; + + echo '<div class="tanarGrid">'; + for($i=0; $i<count($ADAT['tanarok']); $i++) { + + $T = $ADAT['tanarok'][$i]; + + $_kulsos = ($T['statusz']=='külső óraadó'); + $_kulsosClassName = ($_kulsos) ? 'kulsos':''; + + if (isset($ADAT['kulsosview'])) { + if ($ADAT['kulsosview']===true && $T['statusz']!='külső óraadó') continue; + elseif ($ADAT['kulsosview']!==true && $T['statusz']=='külső óraadó') continue; + } + echo '<div class="item tanarNev '.$_kulsosClassName.'" data-tanarid="'.$T['tanarId'].'">'; + if (($_img = getFaceURI($T['tanarId'],'tanar')) != '') echo '<img src="'.$_img.'" class="arckep">'; + else { + echo '<div class="arckepPlaceholder" style="display:flex; flex-direction: column">'; + // echo '<div class="icon-adult" style="font-size:120px; color:#eee;"></div>'; + echo '</div>'; + } + + echo '<br/>'; + + echo '<div style="font-size: 14px; padding:6px 4px 2px 4px;">'.$T['tanarNev'].'</div>'; + + if ($T['titulus']!='') echo '<div class="titulus">'.$T['titulus'].'</div>'; + if ($T['statusz']=='külső óraadó') echo '<div class="titulus">'.$T['statusz'].'</div>'; + + $osztalyai = ($ADAT['tanarOsztaly'][$T['tanarId']]); + for ($j=0; $j<count($osztalyai); $j++) { + $_osztalyId = $osztalyai[$j]; + if ($ADAT['osztalyok'][$_osztalyId]['osztalyJel']!='') { + echo '<div class="osztalyfonok osztalyAdat" data-osztalyid="'.$_osztalyId.'" style="color:#aaa; font-size:smaller">osztályfőnök '.$ADAT['osztalyok'][$_osztalyId]['osztalyJel']; + if ($ADAT['osztalyok'][$_osztalyId]['leiras']!='') echo ' ('.$ADAT['osztalyok'][$_osztalyId]['leiras'].')'; + echo '</div>'; + } + } + + $munkakozossegei = ($ADAT['tanarMunkakozosseg'][$T['tanarId']]); // vezetett + for ($j=0; $j<count($munkakozossegei); $j++) { + $_mkId = $munkakozossegei[$j]; + echo '<div class="munkakozossegVezeto" style="color:#aaa; font-size:smaller">'; + //echo $munkakozossegei[$j]['munkakozossegNev']. ' munkaközösség-vezető'; + echo 'munkaközösség-vezető'; + echo '</div>'; + } + + if (count($T['kepesites'])>0) { + echo '<div class="" style="color:#aaa; font-size:smaller">'; + for ($j=0; $j<count($T['kepesites']); $j++) { + $_kepesites = $T['kepesites'][$j]; + echo ($_kepesites['kepesitesNev']); + echo '<br/>'; + } + echo '</div>'; + } + + echo '<div class="besorolas">'.kisbetus($T['besorolas']).'</div>'; + + if ($T['email']!='') echo '<div class="email" style="margin-top:0.4em; font-size:x-small; color:#888;"><span class="icon-envelope"></span> '.$T['email'].'</div>'; + + echo '</div>'; + + } + echo '</div>'; +} + + +?> diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tankorTanarHozzarendeles.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tankorTanarHozzarendeles.phtml index aa9747fc..fa705502 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tankorTanarHozzarendeles.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/tankorTanarHozzarendeles.phtml @@ -122,9 +122,11 @@ else { $class='tantan'; } $class .= ' col-'.$_tankorAdat['tankorId'].' row-'.$_tanarAdat['tanarId']; if (in_array($_tankorAdat['targyId'], $_tanarAdat['targyIds'])) { + $_CHK = in_array($_tanarAdat['tanarId'],$_tankorAdat['tanarIds']) ? ' checked="checked" ':''; + $_RO = (__NAPLOADMIN===true || __VEZETOSEG===true) ? '':' disabled="disabled" readonly="readonly" '; + $class .= in_array($_tanarAdat['tanarId'],$_tankorAdat['tanarIds']) ? ' checked ':''; echo '<td id="cell_'.$_tanarAdat['tanarId'].'_'.$_tankorAdat['tankorId'].'" class="'.$class.'">'; - $_CHK = in_array($_tanarAdat['tanarId'],$_tankorAdat['tanarIds']) ? 'checked="checked" ':''; - echo '<input type="checkbox" class="chkTT" name="tanarTankor[]" value="'.$_tanarAdat['tanarId'].'_'.$_tankorAdat['tankorId'].'" '.$_CHK.'/>'; + echo '<input type="checkbox" class="chkTT" name="tanarTankor[]" value="'.$_tanarAdat['tanarId'].'_'.$_tankorAdat['tankorId'].'" '.$_CHK.$_RO.'/>'; echo '</td>'; } else { echo '<td class="disable '. $class.'"></td>'; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/terem.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/terem.phtml index 68c826f9..470c57f8 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/terem.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/terem.phtml @@ -68,9 +68,13 @@ echo '<div style="background-color: #eeeeee; text-align:left;">'; - echo '<label for="teremId">'._TEREMID.'</label>'."\n"; - echo '<span id="teremId">'.$ADAT['teremId'].'</span><br />'; - + if ($ADAT['teremId']>0) { + // echo '<label for="teremId">'._TEREMID.'</label>'."\n"; + // echo '<span id="teremId">'.$ADAT['teremId'].'</span><br/>'; + echo '<label for="teremIdMod">'._TEREMID.' változtatás:</label>'."\n"; + echo $ADAT['teremId'].'→'; + echo '<input type="text" id="teremIdMod" name="teremIdMod" value='.$ADAT['teremId'].'><br />'; + } echo '<label for="leiras">'._LEIRAS.'</label>'."\n"; echo '<input type="text" size="64" name="leiras" id="leiras" value="'.$tAdat['leiras'].'" /><br />'."\n"; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/valtas.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/valtas.phtml index 6811b588..6ed78912 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/valtas.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/intezmeny/valtas.phtml @@ -1,5 +1,111 @@ <?php +function putTanarLista_large($ADAT) { + + echo '<style type="text/css"> + +div.tanarGrid { + width:100%; + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: center; + align-items: auto; + align-content: start +} +div.tanarGrid .item { + flex: 0 0 auto; + margin: 10px; + width: 300px; + background-color: #eee; + text-align:center; + padding:4px 4px; + border-radius:2px; +} + +h1.osztaly,h2.osztalyfonok,h3.kepzes { text-align:center; } + +div.tanarGrid .item:hover { + background-color: #ddd; +} + +img.arckep {min-height:300px; height:300px; margin-bottom: 2px; border: solid 1px #ddd;} +div.arckepPlaceholder {min-height:300px; min-width:100%; height:300px; margin-bottom: 2px; border: solid 1px #fff;} +h2.osztalyfonok { font-size: 14px; } +div.titulus {padding-bottom:4px;} +div.besorolas { font-size:x-small; color: #aaa;} + + </style>'; + + echo '<div class="tanarGrid">'; + for($i=0; $i<count($ADAT['tanarok']); $i++) { + $T = $ADAT['tanarok'][$i]; + + $_kulsos = ($T['statusz']=='külső óraadó'); + $_kulsosClassName = ($_kulsos) ? 'kulsos':''; + + if (isset($ADAT['kulsosview'])) { + if ($ADAT['kulsosview']===true && $T['statusz']!='külső óraadó') continue; + elseif ($ADAT['kulsosview']!==true && $T['statusz']=='külső óraadó') continue; + } + + echo '<div class="item tanarNev '.$_kulsosClassName.'" data-tanarid="'.$T['tanarId'].'">'; + + if (($_img = getFaceURI($T['tanarId'],'tanar')) != '') echo '<img src="'.$_img.'" class="arckep">'; + else { + echo '<div class="arckepPlaceholder" style="display:flex; flex-direction: column">'; + // echo '<div class="icon-adult" style="font-size:120px; color:#eee;"></div>'; + echo '</div>'; + } + + echo '<br/>'; + + echo '<div style="font-size: 14px; padding:6px 4px 2px 4px;">'.$T['tanarNev'].'</div>'; + + if ($T['titulus']!='') echo '<div class="titulus">'.$T['titulus'].'</div>'; + if ($T['statusz']=='külső óraadó') echo '<div class="titulus">'.$T['statusz'].'</div>'; + + $osztalyai = ($ADAT['tanarOsztaly'][$T['tanarId']]); + for ($j=0; $j<count($osztalyai); $j++) { + $_osztalyId = $osztalyai[$j]; + if ($ADAT['osztalyok'][$_osztalyId]['osztalyJel']!='') { + echo '<div class="osztalyfonok osztalyAdat" data-osztalyid="'.$_osztalyId.'" style="color:#aaa; font-size:smaller">osztályfőnök '.$ADAT['osztalyok'][$_osztalyId]['osztalyJel']; + if ($ADAT['osztalyok'][$_osztalyId]['leiras']!='') echo ' ('.$ADAT['osztalyok'][$_osztalyId]['leiras'].')'; + echo '</div>'; + } + } + + $munkakozossegei = ($ADAT['tanarMunkakozosseg'][$T['tanarId']]); // vezetett + for ($j=0; $j<count($munkakozossegei); $j++) { + $_mkId = $munkakozossegei[$j]; + echo '<div class="munkakozossegVezeto" style="color:#aaa; font-size:smaller">'; + echo $munkakozossegei[$j]['munkakozossegNev']. ' munkaközösség-vezető'; + echo '</div>'; + } + + if (count($T['kepesites'])>0) { + echo '<div class="" style="color:#aaa; font-size:smaller">'; + for ($j=0; $j<count($T['kepesites']); $j++) { + $_kepesites = $T['kepesites'][$j]; + echo ($_kepesites['kepesitesNev']); + echo '<br/>'; + } + echo '</div>'; + } + + echo '<div class="besorolas">'.kisbetus($T['besorolas']).'</div>'; + + // dump($T); + if ($T['email']!='') echo '<div class="email" style="margin-top:0.4em; font-size:x-small; color:#888;"><span class="icon-envelope"></span> '.$T['email'].'</div>'; + + echo '</div>'; + + } + echo '</div>'; +} + + + function putTanarLista($ADAT) { echo '<table class="tanarLista" align="center" cellpadding="1" cellspacing="1">'; @@ -48,55 +154,5 @@ function putTanarLista($ADAT) { echo '</table>'; } -/* -function putIntezmenyValaszto($Intezmenyek) { - - formBegin(); - - echo '<input type="hidden" name="action" value="intezmenyValasztas" />'."\n"; - - echo '<select name="intezmeny">'."\n"; - $SEL = array(__INTEZMENY => ' selected="selected"'); - - for ($i = 0; $i < count($Intezmenyek); $i++) { - - $rovidnev = $Intezmenyek[$i]['rovidNev']; - if ($Intezmenyek[$i]['alapertelmezett'] == 1) - echo '<option value="'.$rovidnev.'" class="default"'.$SEL[$rovidnev].'>'; - else - echo '<option value="'.$rovidnev.'"'.$SEL[$rovidnev].'>'; - - echo $Intezmenyek[$i]['nev'].' ('.$Intezmenyek[$i]['OMKod'].')'; - echo '</option>'."\n"; - - } - - echo '</select>'."\n"; - - echo '<input type="submit" value="'._OK.'" />'."\n"; - - formEnd(); - -} - -function putTanevValaszto($Tanevek) { - - formBegin(); - - echo '<input type="hidden" name="action" value="tanevValasztas" />'."\n"; - echo '<select name="tanev">'."\n"; - $SEL = array(__TANEV => ' selected="selected"'); - for ($i = 0; $i < count($Tanevek); $i++) { - echo '<option value="'.$Tanevek[$i].'"'.$SEL[$Tanevek[$i]].'>'; - echo $Tanevek[$i]; - echo '</option>'."\n"; - } - echo '</select>'."\n"; - - echo '<input type="submit" value="'._OK.'" />'."\n"; - - formEnd(); -} -*/ ?> diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml index 4f38a41c..9ccfc600 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarend.phtml @@ -99,7 +99,7 @@ if (!in_array($ADAT['orarend']['napok'][$nap]['csengetesiRendTipus'],array('normál',''))) $aznapErintettNap['megjegyzes'][] = $ADAT['orarend']['napok'][$nap]['csengetesiRendTipus'].' csengetés'; echo '<span class="napLeiras" title="'.$ADAT['orarend']['napok'][$nap]['dt'].'/'.$ADAT['orarend']['napok'][$nap]['het'].'">'; - echo (count($aznapErintettNap['megjegyzes'])==0) ? $aHetNapjai[($nap-1)] : implode('; ',array_unique($aznapErintettNap['megjegyzes'])); + echo (!is_array($aznapErintettNap['megjegyzes']) || count($aznapErintettNap['megjegyzes'])==0) ? $aHetNapjai[($nap-1)] : implode('; ',array_unique($aznapErintettNap['megjegyzes'])); echo '</span>'; if ($ADAT['orarend']['napok'][$nap]['dt']!='') { @@ -129,7 +129,7 @@ echo '</tr>'; echo '</thead>'."\n"; - if (__ALLOWSET===true) { + if (defined('__ALLOWSET') && __ALLOWSET===true) { $_footclass = ($ADAT['publikusOrarend']) ? 'publikus' : 'nempublikus'; echo '<tfoot class="'.$_footclass.'">'; echo '<tr><th colspan="'.($ADAT['hetiMaxNap']+1).'">'; @@ -158,7 +158,8 @@ $_ma_class = ($nap==date('w') && $ADAT['orarend']['napok'][$nap]['dt']==date('Y-m-d')) ? 'ma': ''; echo '<td class="jegyzetContainer" data-dt="'.$dt.'" data-napindex="'.$nap.'" class="'.$_ma_class.'">'; //dump($ADAT['dolgozat']['tervezett'][$dt]); - for ($d=0; $d<count($ADAT['dolgozat']['tervezett'][$dt]); $d++) { + if (is_array($ADAT['dolgozat']['tervezett'][$dt])) { + for ($d=0; $d<count($ADAT['dolgozat']['tervezett'][$dt]); $d++) { $_dolgozatId = $ADAT['dolgozat']['tervezett'][$dt][$d]; echo '<div class="dolgozat dolgozatAdat" data-dolgozatid="'.$_dolgozatId.'">'; for ($t=0; $t<count($ADAT['dolgozat'][$_dolgozatId]['tankor']); $t++) { @@ -168,8 +169,10 @@ echo '<br/>'.$ADAT['dolgozat'][$_dolgozatId]['dolgozatNev']; echo '</div>'; // if (count($ADAT['dolgozat']['tervezett'][$dt])>$d+1) echo '<hr/>'; + } } - for ($d=0; $d<count($ADAT['jegyzet']); $d++) { + if (is_array($ADAT['jegyzet'])) { + for ($d=0; $d<count($ADAT['jegyzet']); $d++) { if ($ADAT['jegyzet'][$d]['dt']==$dt) { $_JEGYZET = $ADAT['jegyzet'][$d]; $_jegyzetId = $_JEGYZET['jegyzetId']; @@ -186,6 +189,7 @@ } // erre még nincs felkészítve a jegyzet.get echo '</div>'; } + } } //for ($d=0; $d<count($ADAT['hazifeladat'][$dt]); $d++) { @@ -245,6 +249,7 @@ echo '<td class="csr '.$_eppTartClass.' '.$_ma_class.'" id="tdid_'.$het.'_'.$nap.'_'.$ora.'" data-napindex="'.$nap.'" data-oraindex="'.$ora.'">'; $het = 0; $ORARENDI = array(); + if (!is_array($T[$nap][$ora]['orak'])) $T[$nap][$ora]['orak'] = array(); for($i=0; $i<count($T[$nap][$ora]['orak']); $i++) { $_T = $T[$nap][$ora]['orak'][$i]; // itt a MAI naphoz viszonyítjuk, holott lehet hogy inkább a refDt-hez kéne. Megfontolandó. diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendBetolto.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendBetolto.phtml index d6f037b0..cadb9520 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendBetolto.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendBetolto.phtml @@ -2,8 +2,7 @@ function putFileValaszto($ADAT) { - formBegin(array('class'=>'file')); - + echo formBegin(array('class'=>'file','enctype'=>'multipart/form-data')); echo '<input type="hidden" name="action" value="fileBetoltes" />'."\n"; echo '<input type="hidden" name="tanev" value="'.$ADAT['tanev'].'" />'."\n"; echo '<input type="hidden" name="tolDt" value="'.$ADAT['tolDt'].'" />'."\n"; @@ -12,6 +11,11 @@ echo '<label for="fileName">'._FILENAME.'</label>'."\n"; echo '<input type="text" id="fileName" name="fileName" value="'.$ADAT['fileName'].'" /><br />'; + + echo '<br/>'; + echo '<input type="file" name="upfile" /> (maximum méret: '.human_filesize(file_upload_max_size()).')'; + echo '<br/>'; + echo '<input type="checkbox" checked="checked" name="lezaras" value="true" id="lezaras" /><label for="lezaras">'._LEZARAS.'</label><br />'; echo '<select name="conv">'."\n"; echo '<option value=""> - </option>'."\n"; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendModosito.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendModosito.phtml index 160c2be7..60095e83 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendModosito.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/orarend/orarendModosito.phtml @@ -12,6 +12,11 @@ $TANKOROK = $ADAT['felvehetoTankorok']; $BLOKKOK = $ADAT['felvehetoBlokkok']; + + if (!is_array($ADAT['felvehetoTankorok']) || count($ADAT['felvehetoTankorok'])==0) { + echo "nincs felvehető tankör!"; + } + if (is_array($ADAT['felvehetoTankorok']) && count($ADAT['felvehetoTankorok']) > 0) { $T = $ADAT['orarend']['assoc']; @@ -306,6 +311,10 @@ for ($oi=0; $oi<count($ADAT['orarendioraTankor']['orarendiOra'][$het][$nap][$ora function putOrarendPlain($ADAT) { } + function putOrarendLebego($ADAT) { + // dump($ADAT['orarendiOra']); + } + function _putPluszOra($het,$nap,$ora,$TANKOROK,$BLOKKOK, $tankorIdHelper = null) { diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/osztalyozo/dolgozat.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/osztalyozo/dolgozat.phtml index 5b26a9b9..744dce31 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/osztalyozo/dolgozat.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/osztalyozo/dolgozat.phtml @@ -87,7 +87,7 @@ echo '</table>'; echo '<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>'; - echo '<table align="center" style="width:90%; border: solid 1px #888;">'; + echo '<table align="center" style="width:90%; border: solid 1px white;">'; echo '<tr><th>'; echo '<div id="chart_div""></div>'; echo '</th></tr></table>'; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/share/face.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/share/face.phtml index 209652db..3d053a3b 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/share/face.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/share/face.phtml @@ -1,4 +1,25 @@ <?php + function getFaceURI($Id,$tipus) { + if (in_array($tipus,array('diak','diák'))) { + $subdir=__TANEV; + } elseif (in_array($tipus,array('tanar','tanár'))) { + $subdir=ekezettelen($tipus); + } else { + $subdir=''; + } + + if ($subdir!='') { + foreach (array('jpg') as $ext) { + $img = $Id.'.'.$ext; + if (file_exists(_DOWNLOADDIR.'/'._POLICY.'/naplo/face/'.$subdir.'/'.$img)) { + $file = 'index.php?policy='._POLICY.'&sessionID='._SESSIONID.'&page=session&f=download&download='.sha1($Id).'&dir=naplo/face/'.$subdir.'&file='.$img; + return $file; + } + } + } + return ''; + } + function putFace($Id,$tipus,$height='50',$return=true) { $ICON = array( @@ -46,7 +67,7 @@ if ($subdir!='') { foreach (array('jpg') as $ext) { $img = $Id.'.'.$ext; - if (@file_exists(_DOWNLOADDIR.'/'._POLICY.'/naplo/face/'.$subdir.'/'.$img)) { + if (file_exists(_DOWNLOADDIR.'/'._POLICY.'/naplo/face/'.$subdir.'/'.$img)) { $file = 'index.php?policy='._POLICY.'&sessionID='._SESSIONID.'&page=session&f=download&download='.sha1($Id).'&dir=naplo/face/'.$subdir.'&file='.$img; $s = '<div class="arckep--container '.$tipus.' '.$extraClass.'" '.$extraHtmlAttrs.' style="width: '.$height.'px;height: '.$height.'px;"><img src="'.$file.'" alt="'.$Id.'" '.$extraHtmlAttrs.' /></div>'; if ($return===true) { diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/targyBontas.phtml b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/targyBontas.phtml index 07f83e8a..f5bc8f47 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/targyBontas.phtml +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/html/tanev/targyBontas.phtml @@ -198,7 +198,7 @@ $stat['ko']++; echo '<ul>'; foreach ($ADAT['oratervenKivuliTankorok'] as $idx => $okAdat) { if ($idx<30) { - echo '<li>'; + echo '<li class="tankorAdat" data-tankorid="'.$okAdat['tankorId'].'">'; echo $okAdat['tankorNev'].' ('.$okAdat['tankorId'].') <span class="diff">['.(is_null($okAdat['diff'])?'-':$okAdat['diff']).']</span>'; echo '</li>'; } diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js new file mode 100644 index 00000000..c55e8bbb --- /dev/null +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/dokumentum/dokumentum.jquery.min.js @@ -0,0 +1,3 @@ + +$(function() { +} ); diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js index 6abc9f50..3632972e 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/intezmeny/kepzesOraterv.jquery.min.js @@ -1,14 +1,21 @@ $(function() { - - $('#targySel').change(function(event) { - - element = $(event.target); - kovetelmeny = element.find('option:selected').data('kovetelmeny'); - element.closest('th').nextAll('td').find('select option[value="'+kovetelmeny+'"]').prop('selected',true); - - }); + if ($('#isAdmin').data('isadmin') == 0) { + $('form.kepzesOraterv table tr.rogzitett .felev2').show(); + $('form.kepzesOraterv table thead .felev2').show(); + $('form.kepzesOraterv table tr.rogzitett span.oraszam').show(); + $('form.kepzesOraterv table tr.rogzitett span.kovetelmeny').slideDown('slow'); + $('form.kepzesOraterv table thead span.oraszam').show(); + $('form.kepzesOraterv table thead span.kovetelmeny').slideDown('slow'); + $('form.kepzesOraterv input').attr('readonly', true).prop('readonly', true); + } else { + $('#targySel').change(function(event) { + element = $(event.target); + kovetelmeny = element.find('option:selected').data('kovetelmeny'); + element.closest('th').nextAll('td').find('select option[value="'+kovetelmeny+'"]').prop('selected',true); + }); + } $('body').click(function(event) { element = $(event.target); if (element.closest('span#felevValtas').length == 1) { @@ -35,14 +42,15 @@ $(function() { $('form.kepzesOraterv table thead span.kovetelmeny').hide(); $('form.kepzesOraterv table thead span.oraszam').slideDown('slow'); } - } else if (element.closest('tr.rogzitett').length == 1) { + } else if ($('#isAdmin').data('isadmin') == 1 && element.closest('tr.rogzitett').length == 1) { element.closest('tr').find('td span').hide(); element.closest('tr').removeClass('rogzitett').addClass('szerkeszt'); element.closest('tr').find('td div').slideDown(); /* element.closest('tr').find('input').show(); element.closest('tr').find('select').show(); -*/ } +*/ + } }); });
\ No newline at end of file diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/naplo.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/naplo.jquery.min.js index ece36953..e779ccd4 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/naplo.jquery.min.js +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/naplo.jquery.min.js @@ -667,6 +667,9 @@ processJSONTanarAdat = function( adat ) { content += '<h3>Egyéb adatok</h3>'; content += '<ul>'; + if (adat['email']!='') content += '<li>Email: '+adat['email']+'</li>'; + if (adat['titulus']!=null) content += '<li>Titulus: '+adat['titulus']+'</li>'; + if (adat['oId']!='') content += '<li>Oktatási azonosító: '+adat['oId']+'</li>'; if (adat['beDt']!='') content += '<li>Munkaviszony: '+adat['beDt']+ (adat['kiDt']==null?'':' – '+adat['kiDt']) +'</li>'; if (adat['hetiMunkaora']!='') content += '<li>Heti munkaóra: '+adat['hetiMunkaora']+'</li>'; if (adat['hetiKotelezoOraszam']!='') content += '<li>Heti kötelező óraszám: '+adat['hetiKotelezoOraszam']+'</li>'; diff --git a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/osztalyozo/dolgozat.jquery.min.js b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/osztalyozo/dolgozat.jquery.min.js index 5ec0ede5..9d72dee6 100644 --- a/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/osztalyozo/dolgozat.jquery.min.js +++ b/mayor-orig/mayor-naplo/www/skin/classic/module-naplo/javascript/osztalyozo/dolgozat.jquery.min.js @@ -21,6 +21,7 @@ $(function() { }); var chart = new google.visualization.Calendar(document.getElementById('chart_div')); var options = { + height:400, title: "Dolgozatok (terhelés)", colorAxis: {colors:['cornflowerblue','#ff0000']}, calendar: { |