1+ <?php
2+ #region VeranstaltungenBereinigen
3+ class VeranstaltungenBereinigen
4+ {
5+ private static $ initialized =false ;
6+ public static $ name = 'cleanCourses ' ;
7+ public static $ installed = false ;
8+ public static $ page = 4 ;
9+ public static $ rank = 250 ;
10+ public static $ enabledShow = true ;
11+
12+ public static $ onEvents = array ('collectCleanCourses ' =>array ('procedure ' =>'collectCleanCourses ' ,'name ' =>'collectCleanCourses ' ,'event ' =>array ('actionCollectCleanCourses ' )),'cleanCourses ' =>array ('procedure ' =>'cleanCourses ' ,'name ' =>'cleanCourses ' ,'event ' =>array ('actionCleanCourses ' )));
13+
14+ public static function getDefaults ()
15+ {
16+ }
17+
18+ public static function init ($ console , &$ data , &$ fail , &$ errno , &$ error )
19+ {
20+ self ::$ initialized = true ;
21+ }
22+
23+ public static function show ($ console , $ result , $ data )
24+ {
25+ $ executedEvents = array ();
26+ foreach ($ result as $ key => $ value ){
27+ $ executedEvents [] = $ key ;
28+ }
29+
30+ $ text ='' ;
31+ $ text .= Design::erstelleBeschreibung ($ console ,Language::Get ('cleanCourses ' ,'description ' ));
32+
33+ if (!$ console ){
34+ $ text .= Design::erstelleZeile ($ console , Language::Get ('cleanCourses ' ,'getAmount ' ), 'e ' , '' , 'v ' , Design::erstelleSubmitButton (self ::$ onEvents ['collectCleanCourses ' ]['event ' ][0 ],Language::Get ('cleanCourses ' ,'collectAmount ' )), 'h ' );
35+ }
36+
37+ if (isset ($ result [self ::$ onEvents ['collectCleanCourses ' ]['name ' ]]) && $ result [self ::$ onEvents ['collectCleanCourses ' ]['name ' ]]!=null ){
38+ $ result = $ result [self ::$ onEvents ['collectCleanCourses ' ]['name ' ]];
39+ } else
40+ $ result = array ('content ' =>null ,'fail ' =>false ,'errno ' =>null ,'error ' =>null );
41+
42+ $ fail = $ result ['fail ' ];
43+ $ error = $ result ['error ' ];
44+ $ errno = $ result ['errno ' ];
45+ $ content = $ result ['content ' ];
46+
47+ if (self ::$ installed ){
48+ if (!$ console && isset ($ data ['C ' ]['c_details ' ]) && $ data ['C ' ]['c_details ' ] === 'details ' ){
49+ if (isset ($ content )){
50+ foreach ($ content as $ component => $ dat ){
51+ $ text .= "<tr><td class='e' rowspan='1'> {$ component }</td><td class='v'><div align ='center'> {$ dat ['amount ' ]}</align></td></tr> " ;
52+ }
53+ }
54+ } else {
55+ $ count =0 ;
56+ if (isset ($ content )){
57+ foreach ($ content as $ component => $ dat ){
58+ $ count +=$ dat ['amount ' ];
59+ }
60+ }
61+
62+ $ text .= Design::erstelleZeile ($ console , Language::Get ('cleanCourses ' ,'dirtyRows ' ), 'e ' , $ count , 'v_c ' );
63+ }
64+
65+ if (!$ console && in_array (self ::$ onEvents ['collectCleanCourses ' ]['name ' ],$ executedEvents )){
66+ $ text .= Design::erstelleZeile ($ console , Language::Get ('cleanCourses ' ,'cleanCourses ' ), 'e ' , '' , 'v ' , Design::erstelleSubmitButton (self ::$ onEvents ['cleanCourses ' ]['event ' ][0 ],Language::Get ('cleanCourses ' ,'clean ' )), 'h ' );
67+ } elseif (!$ console && in_array (self ::$ onEvents ['cleanCourses ' ]['name ' ],$ executedEvents )){
68+ $ text .= Design::erstelleInstallationszeile ($ console , $ fail , $ errno , $ error );
69+ }
70+ }
71+
72+ echo Design::erstelleBlock ($ console , Language::Get ('cleanCourses ' ,'title ' ), $ text );
73+ return null ;
74+ }
75+
76+ public static function collectCleanCourses ($ data , &$ fail , &$ errno , &$ error )
77+ {
78+ $ res = array ();
79+
80+ if (!$ fail ){
81+ $ cleanLinks = Einstellungen::getLinks ('getCleanAmount ' );
82+
83+ // alle Veranstaltungen abrufen
84+ $ multiRequestHandle = new Request_MultiRequest ();
85+ $ handler = Request_CreateRequest::createGet ($ data ['PL ' ]['url ' ].'/DB/DBCourse/course ' ,array (),'' );
86+ $ multiRequestHandle ->addRequest ($ handler );
87+ $ result = $ multiRequestHandle ->run ();
88+ if (isset ($ result [0 ]['content ' ]) && isset ($ result [0 ]['status ' ]) && $ result [0 ]['status ' ] === 200 ){
89+ // /course ausloesen
90+ $ courses = Course::decodeCourse ($ result [0 ]['content ' ]);
91+ if (!is_array ($ courses )) $ courses = array ($ courses );
92+
93+ $ offset = count ($ courses )-50 ; // nur die letzten 50 Veranstaltungen werden bereinigt
94+ $ offset = ($ offset <0 ?0 :$ offset );
95+ $ courses = array_slice ($ courses ,$ offset );
96+
97+ foreach ($ courses as $ course ){
98+
99+ $ multiRequestHandle = new Request_MultiRequest ();
100+ for ($ i =0 ;$ i <count ($ cleanLinks );$ i ++){
101+ // inits all components
102+ $ handler = Request_CreateRequest::createGet ($ cleanLinks [$ i ]->getAddress (). '/clean/clean/course/ ' .$ course ->getId (),array (), '' );
103+ $ multiRequestHandle ->addRequest ($ handler );
104+ }
105+ $ answer = $ multiRequestHandle ->run ();
106+
107+ //$res[$course->getId()] = array();
108+ foreach ($ answer as $ result ){
109+ if (isset ($ result ['content ' ]) && isset ($ result ['status ' ]) && $ result ['status ' ] === 200 ){
110+ $ tables = json_decode ($ result ['content ' ],true );
111+ foreach ($ tables as $ table ){
112+ if (!isset ($ res [$ table ['component ' ]])){
113+ $ res [$ table ['component ' ]] = array ('amount ' =>0 ,'dirtyTables ' =>0 ,'cleanTables ' =>0 );
114+ }
115+
116+ if (isset ($ table ['amount ' ])){
117+ if ($ table ['amount ' ] == 0 ){
118+ $ res [$ table ['component ' ]]['cleanTables ' ]++;
119+ } else {
120+ $ res [$ table ['component ' ]]['amount ' ]+=$ table ['amount ' ];
121+ $ res [$ table ['component ' ]]['dirtyTables ' ]++;
122+ }
123+ } else {
124+ $ res [$ table ['component ' ]]['cleanTables ' ]++;
125+ }
126+
127+ }
128+ }
129+ }
130+ }
131+
132+ } else {
133+ $ fail = true ;
134+ $ error = "GET /DB/DBCourse/course " .Language::Get ('courses ' ,'operationFailed ' );
135+ if (isset ($ result [0 ]['status ' ])){
136+ $ errno = $ result [0 ]['status ' ];
137+ }
138+ }
139+ }
140+
141+ return $ res ;
142+ }
143+
144+ public static function cleanCourses ($ data , &$ fail , &$ errno , &$ error )
145+ {
146+ $ res = array ();
147+
148+ if (!$ fail ){
149+ $ cleanLinks = Einstellungen::getLinks ('deleteClean ' );
150+
151+ // alle Veranstaltungen abrufen
152+ $ multiRequestHandle = new Request_MultiRequest ();
153+ $ handler = Request_CreateRequest::createGet ($ data ['PL ' ]['url ' ].'/DB/DBCourse/course ' ,array (),'' );
154+ $ multiRequestHandle ->addRequest ($ handler );
155+ $ result = $ multiRequestHandle ->run ();
156+ if (isset ($ result [0 ]['content ' ]) && isset ($ result [0 ]['status ' ]) && $ result [0 ]['status ' ] === 200 ){
157+ // /course ausloesen
158+ $ courses = Course::decodeCourse ($ result [0 ]['content ' ]);
159+ if (!is_array ($ courses )) $ courses = array ($ courses );
160+
161+ $ offset = count ($ courses )-50 ; // nur die letzten 50 Veranstaltungen werden bereinigt
162+ $ offset = ($ offset <0 ?0 :$ offset );
163+ $ courses = array_slice ($ courses ,$ offset );
164+
165+ foreach ($ courses as $ course ){
166+
167+ $ multiRequestHandle = new Request_MultiRequest ();
168+ $ answer =array ();
169+ for ($ i =0 ;$ i <count ($ cleanLinks );$ i ++){
170+ // inits all components
171+ $ handler = Request_CreateRequest::createDelete ($ cleanLinks [$ i ]->getAddress (). '/clean/clean/course/ ' .$ course ->getId (),array (), '' );
172+ $ multiRequestHandle ->addRequest ($ handler );
173+ }
174+ $ answer = $ multiRequestHandle ->run ();
175+ }
176+ $ res ['status ' ] = 201 ;
177+
178+ } else {
179+ $ fail = true ;
180+ $ error = "GET /DB/DBCourse/course " .Language::Get ('courses ' ,'operationFailed ' );
181+ if (isset ($ result [0 ]['status ' ])){
182+ $ errno = $ result [0 ]['status ' ];
183+ }
184+ }
185+ }
186+
187+ return $ res ;
188+ }
189+ }
190+ #endregion VeranstaltungenBereinigen
0 commit comments