This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | View Code Duplication | if (defined('FOR_XOOPS_LANG_CHECKER') || !defined('_APCAL_CNST_LOADED')) { |
|
0 ignored issues
–
show
|
|||
4 | define('_APCAL_CNST_LOADED', 1); |
||
5 | |||
6 | // the language file for jscalendar "DHTML Date/Time Selector" |
||
7 | define('_APCAL_JS_CALENDAR', 'calendar-en.js'); |
||
8 | |||
9 | // format for jscalendar. see common/jscalendar/doc/html/reference.html |
||
10 | define('_APCAL_JSFMT_YMDN', '%e %B %Y %A'); |
||
11 | |||
12 | // format for date() see http://jp.php.net/date |
||
13 | define('_APCAL_DTFMT_MINUTE', 'i'); |
||
14 | |||
15 | // definition of orders Y:year M:month W:week D:day N:dayname O:operand |
||
16 | define('_APCAL_FMT_MD', '%1$s %2$s'); |
||
17 | define('_APCAL_FMT_YMD', '%3$s %2$s %1$s'); |
||
18 | define('_APCAL_FMT_YMDN', '%4$s %2$s %3$s, %1$s'); |
||
19 | define('_APCAL_FMT_YMDO', '%4$s%3$s%2$s%1$s'); |
||
20 | define('_APCAL_FMT_YMW', '%3$s %2$s %1$s'); |
||
21 | define('_APCAL_FMT_YW', 'Week %2$s %1$s'); |
||
22 | define('_APCAL_FMT_DHI', '%1$s %2$s:%3$s'); |
||
23 | define('_APCAL_FMT_HI', '%1$s:%2$s'); |
||
24 | |||
25 | // formats for sprintf() |
||
26 | define('_APCAL_FMT_YEAR_MONTH', '%2$s %1$s'); |
||
27 | define('_APCAL_FMT_YEAR', 'YEAR %s'); |
||
28 | define('_APCAL_FMT_WEEKNO', 'WEEK %s'); |
||
29 | |||
30 | define('_APCAL_ICON_LIST', 'List View'); |
||
31 | define('_APCAL_ICON_DAILY', 'Daily View'); |
||
32 | define('_APCAL_ICON_WEEKLY', 'Weekly View'); |
||
33 | define('_APCAL_ICON_MONTHLY', 'Monthly View'); |
||
34 | define('_APCAL_ICON_YEARLY', 'Yearly View'); |
||
35 | |||
36 | define('_APCAL_MB_SHOWALLCAT', 'All Categories'); |
||
37 | |||
38 | define('_APCAL_MB_LINKTODAY', 'Today'); |
||
39 | define('_APCAL_MB_NOSUBJECT', '(No Subject)'); |
||
40 | |||
41 | define('_APCAL_MB_PREV_DATE', 'Yesterday'); |
||
42 | define('_APCAL_MB_NEXT_DATE', 'Tomorrow'); |
||
43 | define('_APCAL_MB_PREV_WEEK', 'Last Week'); |
||
44 | define('_APCAL_MB_NEXT_WEEK', 'Next Week'); |
||
45 | define('_APCAL_MB_PREV_MONTH', 'Last Month'); |
||
46 | define('_APCAL_MB_NEXT_MONTH', 'Next Month'); |
||
47 | define('_APCAL_MB_PREV_YEAR', 'Last Year'); |
||
48 | define('_APCAL_MB_NEXT_YEAR', 'Next Year'); |
||
49 | |||
50 | define('_APCAL_MB_NOEVENT', 'No Events'); |
||
51 | define('_APCAL_MB_ADDEVENT', 'Add an Event'); |
||
52 | define('_APCAL_MB_CONTINUING', '(continuing)'); |
||
53 | define('_APCAL_MB_RESTEVENT_PRE', ''); |
||
54 | define('_APCAL_MB_RESTEVENT_SUF', 'more item(s)'); |
||
55 | define('_APCAL_MB_TIMESEPARATOR', '--'); |
||
56 | |||
57 | define('_APCAL_MB_ALLDAY_EVENT', 'Allday Event'); |
||
58 | define('_APCAL_MB_LONG_EVENT', 'Show as Bar'); |
||
59 | define('_APCAL_MB_LONG_SPECIALDAY', 'Anniversary etc.'); |
||
60 | |||
61 | define('_APCAL_MB_PUBLIC', 'Public'); |
||
62 | define('_APCAL_MB_PRIVATE', 'Private'); |
||
63 | define('_APCAL_MB_PRIVATETARGET', ' among %s'); |
||
64 | |||
65 | define('_APCAL_MB_LINK_TO_RRULE1ST', 'Jump to the 1st Event '); |
||
66 | define('_APCAL_MB_RRULE1ST', 'This is the 1st Event'); |
||
67 | |||
68 | define('_APCAL_MB_EVENT_NOTREGISTER', 'Not Registered'); |
||
69 | define('_APCAL_MB_EVENT_ADMITTED', 'Admitted'); |
||
70 | define('_APCAL_MB_EVENT_NEEDADMIT', 'Waiting for Admission'); |
||
71 | |||
72 | define('_APCAL_MB_TITLE_EVENTINFO', 'Scheduler'); |
||
73 | define('_APCAL_MB_SUBTITLE_EVENTDETAIL', 'Detail View'); |
||
74 | define('_APCAL_MB_SUBTITLE_EVENTEDIT', 'Editing View'); |
||
75 | |||
76 | define('_APCAL_MB_HOUR_SUF', ':'); |
||
77 | define('_APCAL_MB_MINUTE_SUF', ''); |
||
78 | |||
79 | define('_APCAL_MB_ORDER_ASC', 'Ascending'); |
||
80 | define('_APCAL_MB_ORDER_DESC', 'Descending'); |
||
81 | define('_APCAL_MB_SORTBY', 'Sort by:'); |
||
82 | define('_APCAL_MB_CURSORTEDBY', 'Events currently sorted by:'); |
||
83 | |||
84 | define('_APCAL_MB_LABEL_CHECKEDITEMS', 'Checked events are:'); |
||
85 | define('_APCAL_MB_LABEL_OUTPUTICS', 'to be exported in iCalendar'); |
||
86 | |||
87 | define('_APCAL_MB_ICALSELECTPLATFORM', 'Select platform'); |
||
88 | |||
89 | define('_APCAL_TH_SUMMARY', 'Event title'); |
||
90 | define('_APCAL_TH_TIMEZONE', 'Time Zone'); |
||
91 | define('_APCAL_TH_STARTDATETIME', 'Beginning Date'); |
||
92 | define('_APCAL_TH_ENDDATETIME', 'Ending Date'); |
||
93 | define('_APCAL_TH_ALLDAYOPTIONS', 'Allday Options'); |
||
94 | define('_APCAL_TH_LOCATION', 'Location'); |
||
95 | define('_APCAL_TH_CONTACT', 'Contact'); |
||
96 | define('_APCAL_TH_CATEGORIES', 'Categories'); |
||
97 | define('_APCAL_TH_SUBMITTER', 'Submitter'); |
||
98 | define('_APCAL_TH_CLASS', 'Class'); |
||
99 | define('_APCAL_TH_DESCRIPTION', 'Description'); |
||
100 | define('_APCAL_TH_RRULE', 'Recur Rules'); |
||
101 | define('_APCAL_TH_ADMISSIONSTATUS', 'Status'); |
||
102 | define('_APCAL_TH_LASTMODIFIED', 'Last Modified'); |
||
103 | |||
104 | define('_APCAL_NTC_MONTHLYBYMONTHDAY', '(Input Number)'); |
||
105 | define('_APCAL_NTC_EXTRACTLIMIT', '** Only %s events are extracted if the max.'); |
||
106 | define('_APCAL_NTC_NUMBEROFNEEDADMIT', '(%s items need to be admitted)'); |
||
107 | |||
108 | define('_APCAL_OPT_PRIVATEMYSELF', 'myself only'); |
||
109 | define('_APCAL_OPT_PRIVATEGROUP', 'group %s'); |
||
110 | define('_APCAL_OPT_PRIVATEINVALID', '(invalid group)'); |
||
111 | |||
112 | define('_APCAL_MB_OP_AFTER', 'After'); |
||
113 | define('_APCAL_MB_OP_BEFORE', 'Before'); |
||
114 | define('_APCAL_MB_OP_ON', 'On'); |
||
115 | define('_APCAL_MB_OP_ALL', 'All'); |
||
116 | |||
117 | define('_APCAL_CNFM_SAVEAS_YN', 'Are you OK saving this as another record ?'); |
||
118 | define('_APCAL_CNFM_DELETE_YN', 'Are you OK deleting this record ?'); |
||
119 | |||
120 | define('_APCAL_ERR_INVALID_EVENT_ID', 'Error: EventID not found'); |
||
121 | define('_APCAL_ERR_NOPERM_TO_SHOW', "Error: You don't have a permission to view this"); |
||
122 | define('_APCAL_ERR_NOPERM_TO_OUTPUTICS', "Error: You don't have a permission to output iCalendar"); |
||
123 | define('_APCAL_ERR_LACKINDISPITEM', 'Item %s is blank.<br>Push the Back button of your browser!'); |
||
124 | |||
125 | define('_APCAL_BTN_JUMP', 'Jump'); |
||
126 | define('_APCAL_BTN_NEWINSERTED', 'New Insert'); |
||
127 | define('_APCAL_BTN_SUBMITCHANGES', ' Change it! '); |
||
128 | define('_APCAL_BTN_SAVEAS', 'Save as'); |
||
129 | define('_APCAL_BTN_DELETE', 'Remove it'); |
||
130 | define('_APCAL_BTN_DELETE_ONE', 'Remove just one'); |
||
131 | define('_APCAL_BTN_EDITEVENT', 'Edit it'); |
||
132 | define('_APCAL_BTN_RESET', 'Reset'); |
||
133 | define('_APCAL_BTN_OUTPUTICS_WIN', 'iCalendar(Win)'); |
||
134 | define('_APCAL_BTN_OUTPUTICS_MAC', 'iCalendar(Mac)'); |
||
135 | define('_APCAL_BTN_PRINT', 'Print'); |
||
136 | define('_APCAL_BTN_IMPORT', 'Import!'); |
||
137 | define('_APCAL_BTN_UPLOAD', 'Upload!'); |
||
138 | define('_APCAL_BTN_EXPORT', 'Export!'); |
||
139 | define('_APCAL_BTN_EXTRACT', 'Extract'); |
||
140 | define('_APCAL_BTN_ADMIT', 'Admit'); |
||
141 | define('_APCAL_BTN_MOVE', 'Move'); |
||
142 | define('_APCAL_BTN_COPY', 'Copy'); |
||
143 | |||
144 | define('_APCAL_RR_EVERYDAY', 'Everyday'); |
||
145 | define('_APCAL_RR_EVERYWEEK', 'Everyweek'); |
||
146 | define('_APCAL_RR_EVERYMONTH', 'Everymonth'); |
||
147 | define('_APCAL_RR_EVERYYEAR', 'Everyyear'); |
||
148 | define('_APCAL_RR_FREQDAILY', 'Daily'); |
||
149 | define('_APCAL_RR_FREQWEEKLY', 'Weekly'); |
||
150 | define('_APCAL_RR_FREQMONTHLY', 'Monthly'); |
||
151 | define('_APCAL_RR_FREQYEARLY', 'Yearly'); |
||
152 | define('_APCAL_RR_FREQDAILY_PRE', 'Every'); |
||
153 | define('_APCAL_RR_FREQWEEKLY_PRE', 'Every'); |
||
154 | define('_APCAL_RR_FREQMONTHLY_PRE', 'Every'); |
||
155 | define('_APCAL_RR_FREQYEARLY_PRE', 'Every'); |
||
156 | define('_APCAL_RR_FREQDAILY_SUF', 'day(s)'); |
||
157 | define('_APCAL_RR_FREQWEEKLY_SUF', 'week(s)'); |
||
158 | define('_APCAL_RR_FREQMONTHLY_SUF', 'Month(s)'); |
||
159 | define('_APCAL_RR_FREQYEARLY_SUF', 'Year(s)'); |
||
160 | define('_APCAL_RR_PERDAY', 'every %s days'); |
||
161 | define('_APCAL_RR_PERWEEK', 'every %s weeks'); |
||
162 | define('_APCAL_RR_PERMONTH', 'every %s months'); |
||
163 | define('_APCAL_RR_PERYEAR', 'every %s years'); |
||
164 | define('_APCAL_RR_COUNT', '<br>%s times'); |
||
165 | define('_APCAL_RR_UNTIL', '<br>until %s'); |
||
166 | define('_APCAL_RR_R_NORRULE', 'Recur No'); |
||
167 | define('_APCAL_RR_R_YESRRULE', 'Recur Yes'); |
||
168 | define('_APCAL_RR_OR', 'or'); |
||
169 | define('_APCAL_RR_S_NOTSELECTED', '-not selected-'); |
||
170 | define('_APCAL_RR_S_SAMEASBDATE', 'Same as beginning date'); |
||
171 | define('_APCAL_RR_R_NOCOUNTUNTIL', 'No ending conditions'); |
||
172 | define('_APCAL_RR_R_USECOUNT_PRE', 'repeats'); |
||
173 | define('_APCAL_RR_R_USECOUNT_SUF', 'times'); |
||
174 | define('_APCAL_RR_R_USEUNTIL', 'until'); |
||
175 | |||
176 | // Added by goffy for online registration handling |
||
177 | define('_APCAL_RO_CANCEL', 'Action canceled'); |
||
178 | define('_APCAL_RO_RADIO_YES', 'Yes'); |
||
179 | define('_APCAL_RO_RADIO_NO', 'No'); |
||
180 | |||
181 | define('_APCAL_RO_ONLINE_POSS', 'For these events online registration is possible. '); |
||
182 | define('_APCAL_RO_ONLINE_POSS_2', 'For this event online registration is possible. '); |
||
183 | define('_APCAL_RO_ONLY_MEMBERS', 'Online registration is only possible for registered users. '); |
||
184 | define('_APCAL_RO_ONLINE_NO', 'Online registration is not activated for this event'); |
||
185 | define('_APCAL_RO_ONLINE_YES', 'Online registration is activated for this event'); |
||
186 | define('_APCAL_RO_ONLINE_ACTIVATE', 'Activate online registration for this event'); |
||
187 | define('_APCAL_RO_ONLINE_DEACTIVATE', 'Do not use online registration for this event'); |
||
188 | define('_APCAL_RO_ONLINE', 'Registrations'); |
||
189 | define('_APCAL_RO_BTN_ADD', 'register'); |
||
190 | define('_APCAL_RO_BTN_ADDMORE', 'Edit or add further registrations'); |
||
191 | define('_APCAL_RO_BTN_REMOVE', 'de-register'); |
||
192 | define('_APCAL_RO_ENABLE_ONLINE', 'Online registration'); |
||
193 | define('_APCAL_RO_NOMEMBERS', 'There are no registrations for this event'); |
||
194 | define('_APCAL_RO_BTN_LISTMEMBERS', 'List of participants'); |
||
195 | define('_APCAL_RO_SUCCESS_ADD', 'The registration for this event was successful'); |
||
196 | define('_APCAL_RO_SUCCESS_REMOVE', 'The de-registration for this event was successful'); |
||
197 | define('_APCAL_RO_UNAME', 'Registrating person'); |
||
198 | define('_APCAL_RO_FIRSTNAME', 'first name'); |
||
199 | define('_APCAL_RO_LASTNAME', 'last name'); |
||
200 | define('_APCAL_RO_EMAIL', 'E-mail-address'); |
||
201 | // extra infos have moved to preferences |
||
202 | // define('_APCAL_RO_EXTRAINFO1', 'Telephone'); //use it as you want; if you keep it blank, it will be invisible; if you change later, it has no effect on the data himself |
||
203 | // define('_APCAL_RO_EXTRAINFO2', 'Remarks'); //use it as you want, if you keep it blank, it will be invisible |
||
204 | // define('_APCAL_RO_EXTRAINFO3', ''); //use it as you want, if you keep it blank, it will be invisible |
||
205 | // define('_APCAL_RO_EXTRAINFO4', ''); //use it as you want, if you keep it blank, it will be invisible |
||
206 | // define('_APCAL_RO_EXTRAINFO5', ''); //use it as you want, if you keep it blank, it will be invisible |
||
207 | |||
208 | define('_APCAL_RO_BTN_CONF_ADD', 'Confirm registration'); |
||
209 | define('_APCAL_RO_BTN_CONF_ADD_MORE', 'Confirm registration and register more people'); |
||
210 | define('_APCAL_RO_BTN_CONF_REMOVE', 'Confirm de-registration'); |
||
211 | define('_APCAL_RO_BTN_CANCEL', 'Cancel'); |
||
212 | define('_APCAL_RO_EVENT', 'Event'); |
||
213 | define('_APCAL_RO_TITLE1', 'Registration for an event'); |
||
214 | define('_APCAL_RO_OBLIGATORY', 'This fields are obligatory!'); |
||
215 | |||
216 | define('_APCAL_RO_ERROR_REMOVE', 'Unexepted error when deleting registration'); |
||
217 | define('_APCAL_RO_ERROR_ADD', 'Unexepted error when creating registration'); |
||
218 | define('_APCAL_RO_BTN_BACK', 'Go back'); |
||
219 | define('_APCAL_RO_BACK', 'You will be redirected to last page'); |
||
220 | define('_APCAL_RO_ONLINE2', 'Online registrations'); |
||
221 | define('_APCAL_RO_ACTION', 'Action'); |
||
222 | |||
223 | define('_APCAL_RO_TITLE2', 'Activate online registration for this event'); |
||
224 | define('_APCAL_RO_BTN_RO_EDIT', 'Edit online registration'); |
||
225 | define('_APCAL_RO_BTN_RO_DEACTIVATE', 'Delete online registration'); |
||
226 | define('_APCAL_RO_BTN_RO_ACTIVATE', 'Activate'); |
||
227 | define('_APCAL_RO_QUANTITY', 'Maximum number of participants<br>(0 means: no limit)'); |
||
228 | define('_APCAL_RO_QUANTITY2', 'Maximum number of participants'); |
||
229 | define('_APCAL_RO_DATELIMIT', 'Deadline for online registration'); |
||
230 | define('_APCAL_RO_EMAIL_NOTIFY', 'E-mail-address, which should be notified in case of (de-)registrations (keep blank, if you want no notifications)'); |
||
231 | define('_APCAL_RO_BTN_CONF_ACTIVATE', 'Confirm'); |
||
232 | define('_APCAL_RO_ERROR_RO_ACTIVATE', 'Unexpected error while activating online registration'); |
||
233 | define('_APCAL_RO_SUCCESS_RO_ACTIVATE', 'Activating/editing online registration was successful'); |
||
234 | define('_APCAL_RO_ERROR_RO_DEACTIVATE', 'Unexpected error while deactivating online registration'); |
||
235 | define('_APCAL_RO_SUCCESS_RO_DEACTIVATE', 'Deactivating online registration was successful'); |
||
236 | define('_APCAL_RO_ERROR_FULL', 'Sorry, but there are no more places available for this event'); |
||
237 | define('_APCAL_RO_ERROR_TIMEOUT', 'Sorry, but you have exceeded the deadline of this event'); |
||
238 | define('_APCAL_RO_ERROR_OBLIGATORY', 'Please fill in obligatory field \"%f\"'); |
||
239 | define('_APCAL_RO_BTN_CONF_SAVE', 'Save'); |
||
240 | define('_APCAL_RO_BTN_CONF_EDIT', 'Save changes'); |
||
241 | |||
242 | define('_APCAL_RO_MAIL_SUBJ_ADD', 'Info registration'); |
||
243 | define('_APCAL_RO_MAIL_SUBJ_REMOVE', 'Info de-registration'); |
||
244 | define('_APCAL_RO_MAIL_SUBJ_TEXT', 'Information about the event'); |
||
245 | define('_APCAL_RO_DATE', 'Date'); |
||
246 | define('_APCAL_RO_LOCATION', 'Location'); |
||
247 | define('_APCAL_RO_LINK', 'Link to event'); |
||
248 | define('_APCAL_RO_TITLE3', 'List of existing registrations'); |
||
249 | define('_APCAL_RO_TITLE4', 'Send an email to all participant, which have entered an email-address'); |
||
250 | define('_APCAL_RO_MAIL_SENDER', 'Sender'); |
||
251 | define('_APCAL_RO_MAIL_SUBJ', 'Subject'); |
||
252 | define('_APCAL_RO_MAIL_BODY1', 'Mailtext'); |
||
253 | define('_APCAL_RO_MAIL_BODY2', 'The expressions in curly brackets will be replaced (z.B. {NAME} will be replace by first name and last name)'); |
||
254 | define('_APCAL_RO_BTN_SEND', 'Send'); |
||
255 | define('_APCAL_RO_MAILSENT', ' message(s) sent'); |
||
256 | |||
257 | define('_APCAL_RO_TITLE5', 'Change registrations'); |
||
258 | define('_APCAL_RO_BTN_EDIT', 'Edit'); |
||
259 | define('_APCAL_RO_SUCCESS_EDIT', 'Change of registration data successful'); |
||
260 | define('_APCAL_RO_ERROR_EDIT', 'Unexpected error while changing registration'); |
||
261 | define('_APCAL_RO_SEND_CONF1', 'E-Mail confirmation'); |
||
262 | define('_APCAL_RO_SEND_CONF2', 'send to'); |
||
263 | define('_APCAL_RO_SEND_CONF3', 'Send E-Mail-confirmation: '); |
||
264 | |||
265 | define('_APCAL_RO_REDIRECT', 'You will be redirected to activation of online registration'); |
||
266 | define('_APCAL_RO_SUCCESS_NEW_EVENT', 'Event successfully created'); |
||
267 | define('_APCAL_RO_SUCCESS_DELETE_EVENT', 'Event successfully deleted'); |
||
268 | define('_APCAL_RO_SUCCESS_UPDATE_EVENT', 'Event successfully changed'); |
||
269 | define('_APCAL_RO_SUCCESS_COPY_EVENT', 'Event successfully copied'); |
||
270 | |||
271 | define('_APCAL_RO_MISSING_ITEM','Error when saving online registration: Please edit %s '); |
||
272 | |||
273 | //version 2.23 |
||
274 | define('_APCAL_RO_NO_RIGHT','You do not have permissions for online registration. '); |
||
275 | define('_APCAL_RO_GUEST','Guest'); |
||
276 | define('_APCAL_RO_AVAILABLE','Availability'); |
||
277 | define('_APCAL_RO_LIST_ACT','Put registered person on waiting list if number of max person is reached'); |
||
278 | define('_APCAL_RO_STATUS_ACT','Each participation must be confirmed'); |
||
279 | define('_APCAL_RO_STATUS','State'); |
||
280 | define('_APCAL_RO_STATUS_PENDING','Participation is still not confirmed'); |
||
281 | define('_APCAL_RO_STATUS_OK','Participation is confirmed'); |
||
282 | define('_APCAL_RO_STATUS_LIST','Online registration was put on waiting list'); |
||
283 | define('_APCAL_RO_ERROR_STATUS_CONF','Error at confirmation of participation'); |
||
284 | define('_APCAL_RO_STATUS_SUCCESS_CHANGE_PENDING',"State have been change to 'not confirmed'"); |
||
285 | define('_APCAL_RO_STATUS_SUCCESS_CHANGE_OK',"State have been change to 'confirmed'"); |
||
286 | define('_APCAL_RO_MAIL_SUBJ_STATUS','Info state change'); |
||
287 | define('_APCAL_RO_MAIL_RECEPIENT','Recipient'); |
||
288 | define('_APCAL_RO_PUT_ON_WAITINGLIST','For this event are no more places available! Your registration have been put on a waiting list! If your participation will be confirmed late you will get an email notification.'); |
||
289 | define('_APCAL_RO_PUT_ON_WAITINGLIST2','The registration have been put on a waiting list and must be confirmed manually!'); |
||
290 | define('_APCAL_RO_PRINT_LIST','Print list of participants'); |
||
291 | define('_APCAL_RO_DATAPRIVACY', 'Data protection'); |
||
292 | define('_APCAL_RO_DATAPRIVACY_DETAIL', 'The data of the participants will only be stored for the duration of the event and not forwarded to third person.<br /> |
||
293 | During the event pictures will be taken and maybe used for internal purposes (e.g. showing on our website). If you are not agreeing that you have to contact the organizer.<br /> |
||
294 | With your registration you agree with this procedure.'); |
||
295 | define('_APCAL_RO_DOWNLOAD','Download'); |
||
296 | |||
297 | } |
||
298 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.