Changeset 3296861
- Timestamp:
- 05/19/2025 10:13:35 PM (10 months ago)
- Location:
- eventon-lite
- Files:
-
- 299 added
- 14 edited
-
tags/2.4.5 (added)
-
tags/2.4.5/README_License.txt (added)
-
tags/2.4.5/assets (added)
-
tags/2.4.5/assets/css (added)
-
tags/2.4.5/assets/css/admin (added)
-
tags/2.4.5/assets/css/admin/activation.css (added)
-
tags/2.4.5/assets/css/admin/admin.css (added)
-
tags/2.4.5/assets/css/admin/event_post.css (added)
-
tags/2.4.5/assets/css/admin/vc.css (added)
-
tags/2.4.5/assets/css/admin/widgets.css (added)
-
tags/2.4.5/assets/css/admin/wp3.8.css (added)
-
tags/2.4.5/assets/css/admin/wp_admin.css (added)
-
tags/2.4.5/assets/css/admin/wp_admin_lite.css (added)
-
tags/2.4.5/assets/css/admin/wp_admin_rtl.css (added)
-
tags/2.4.5/assets/css/dynamic_styles.php (added)
-
tags/2.4.5/assets/css/eventon_dynamic_styles.css (added)
-
tags/2.4.5/assets/css/eventon_styles.css (added)
-
tags/2.4.5/assets/css/evo_event_styles.css (added)
-
tags/2.4.5/assets/css/lib (added)
-
tags/2.4.5/assets/css/lib/elements.css (added)
-
tags/2.4.5/assets/css/lib/ie.css (added)
-
tags/2.4.5/assets/css/lib/leaflet.css (added)
-
tags/2.4.5/assets/fonts (added)
-
tags/2.4.5/assets/fonts/all.css (added)
-
tags/2.4.5/assets/fonts/fa-brands-400.ttf (added)
-
tags/2.4.5/assets/fonts/fa-brands-400.woff2 (added)
-
tags/2.4.5/assets/fonts/fa-regular-400.ttf (added)
-
tags/2.4.5/assets/fonts/fa-regular-400.woff2 (added)
-
tags/2.4.5/assets/fonts/fa-solid-900.ttf (added)
-
tags/2.4.5/assets/fonts/fa-solid-900.woff2 (added)
-
tags/2.4.5/assets/fonts/fa_fonts.php (added)
-
tags/2.4.5/assets/images (added)
-
tags/2.4.5/assets/images/admin (added)
-
tags/2.4.5/assets/images/admin/cursor_mag.jpg (added)
-
tags/2.4.5/assets/images/backend_post (added)
-
tags/2.4.5/assets/images/backend_post/checkmark.png (added)
-
tags/2.4.5/assets/images/backend_post/checkmark_2.png (added)
-
tags/2.4.5/assets/images/evo-loader.gif (added)
-
tags/2.4.5/assets/images/placeholder.png (added)
-
tags/2.4.5/assets/images/select2-spinner.gif (added)
-
tags/2.4.5/assets/images/select2.png (added)
-
tags/2.4.5/assets/images/select2x2.png (added)
-
tags/2.4.5/assets/images/zoom.png (added)
-
tags/2.4.5/assets/js (added)
-
tags/2.4.5/assets/js/admin (added)
-
tags/2.4.5/assets/js/admin/event-post.js (added)
-
tags/2.4.5/assets/js/admin/quick-edit.js (added)
-
tags/2.4.5/assets/js/admin/shortcode.js (added)
-
tags/2.4.5/assets/js/admin/taxonomy.js (added)
-
tags/2.4.5/assets/js/admin/wp_admin.js (added)
-
tags/2.4.5/assets/js/eventon_functions.js (added)
-
tags/2.4.5/assets/js/eventon_script.js (added)
-
tags/2.4.5/assets/js/lib (added)
-
tags/2.4.5/assets/js/lib/elements.js (added)
-
tags/2.4.5/assets/js/lib/handlebars.js (added)
-
tags/2.4.5/assets/js/lib/jquery.easing.1.3.js (added)
-
tags/2.4.5/assets/js/lib/jquery.mobile-1.4.5.min.js (added)
-
tags/2.4.5/assets/js/lib/jquery.mobile.min.js (added)
-
tags/2.4.5/assets/js/lib/jquery.mousewheel.min.js (added)
-
tags/2.4.5/assets/js/lib/moment.min.js (added)
-
tags/2.4.5/assets/js/lib/moment_timezone_min.js (added)
-
tags/2.4.5/assets/js/lib/openai.js (added)
-
tags/2.4.5/assets/js/maps (added)
-
tags/2.4.5/assets/js/maps/eventon_gen_maps.js (added)
-
tags/2.4.5/assets/js/maps/eventon_gen_maps_none.js (added)
-
tags/2.4.5/assets/lib (added)
-
tags/2.4.5/assets/lib/blocks (added)
-
tags/2.4.5/assets/lib/blocks/evo_blocks.js (added)
-
tags/2.4.5/assets/lib/colorpicker (added)
-
tags/2.4.5/assets/lib/colorpicker/blank.gif (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker.js (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_background.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_hsb_b.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_hsb_h.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_hsb_s.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_overlay.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_rgb_b.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_rgb_g.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_rgb_r.png (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_select.gif (added)
-
tags/2.4.5/assets/lib/colorpicker/colorpicker_styles.css (added)
-
tags/2.4.5/assets/lib/colorpicker/slider.png (added)
-
tags/2.4.5/assets/lib/elementor (added)
-
tags/2.4.5/assets/lib/elementor/elementor.css (added)
-
tags/2.4.5/assets/lib/elementor/elementor.js (added)
-
tags/2.4.5/assets/lib/jqtimepicker (added)
-
tags/2.4.5/assets/lib/jqtimepicker/jquery.timepicker.css (added)
-
tags/2.4.5/assets/lib/jqtimepicker/jquery.timepicker.js (added)
-
tags/2.4.5/assets/lib/jquery-ui (added)
-
tags/2.4.5/assets/lib/jquery-ui/images (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-bg_glass_100_f8f8f8_1x400.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-bg_glass_35_dddddd_1x400.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-bg_glass_60_eeeeee_1x400.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-bg_inset-hard_75_999999_1x100.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-bg_inset-soft_50_c9c9c9_1x100.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-icons_3383bb_256x240.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-icons_454545_256x240.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-icons_70b2e1_256x240.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-icons_999999_256x240.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/images/ui-icons_fbc856_256x240.png (added)
-
tags/2.4.5/assets/lib/jquery-ui/jquery-ui.css (added)
-
tags/2.4.5/assets/lib/jquery-ui/jquery-ui.min.css (added)
-
tags/2.4.5/assets/lib/jquery-ui/theme.css (added)
-
tags/2.4.5/assets/lib/select2 (added)
-
tags/2.4.5/assets/lib/select2/select2.css (added)
-
tags/2.4.5/assets/lib/select2/select2.js (added)
-
tags/2.4.5/assets/lib/select2/select2.min.js (added)
-
tags/2.4.5/assets/lib/settings (added)
-
tags/2.4.5/assets/lib/settings/settings.css (added)
-
tags/2.4.5/assets/lib/settings/settings.js (added)
-
tags/2.4.5/assets/lib/shortcode_generator (added)
-
tags/2.4.5/assets/lib/shortcode_generator/shortcode_generator.css (added)
-
tags/2.4.5/assets/lib/shortcode_generator/shortcode_generator.js (added)
-
tags/2.4.5/assets/lib/trumbowyg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/blockquote.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/bold.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/close.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/create-link.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/del.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/em.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/fullscreen.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/h1.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/h2.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/h3.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/h4.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/h5.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/h6.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/horizontal-rule.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/insert-image.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/italic.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/justify-center.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/justify-full.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/justify-left.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/justify-right.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/link.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/ordered-list.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/p.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/redo.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/removeformat.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/strikethrough.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/strong.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/subscript.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/superscript.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/underline.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/undo.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/unlink.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/unordered-list.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/icons/view-html.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/sass (added)
-
tags/2.4.5/assets/lib/trumbowyg/sass/trumbowyg.scss (added)
-
tags/2.4.5/assets/lib/trumbowyg/trumbowyg.css (added)
-
tags/2.4.5/assets/lib/trumbowyg/trumbowyg.js (added)
-
tags/2.4.5/assets/lib/trumbowyg/trumbowyg.min.js (added)
-
tags/2.4.5/assets/lib/trumbowyg/ui (added)
-
tags/2.4.5/assets/lib/trumbowyg/ui/icons.svg (added)
-
tags/2.4.5/assets/lib/trumbowyg/ui/trumbowyg.css (added)
-
tags/2.4.5/assets/lib/trumbowyg/ui/trumbowyg.min.css (added)
-
tags/2.4.5/eventon.php (added)
-
tags/2.4.5/includes (added)
-
tags/2.4.5/includes/admin (added)
-
tags/2.4.5/includes/admin/class-admin-ajax.php (added)
-
tags/2.4.5/includes/admin/class-admin-taxonomies.php (added)
-
tags/2.4.5/includes/admin/class-admin-taxonomies_editor.php (added)
-
tags/2.4.5/includes/admin/class-evo-admin.php (added)
-
tags/2.4.5/includes/admin/class-evo-errors.php (added)
-
tags/2.4.5/includes/admin/class-forms.php (added)
-
tags/2.4.5/includes/admin/eventon-admin-content.php (added)
-
tags/2.4.5/includes/admin/eventon-admin-functions.php (added)
-
tags/2.4.5/includes/admin/post_types (added)
-
tags/2.4.5/includes/admin/post_types/ajde_events.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-attendance.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-cmf.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-color.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-health.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-learnmore.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-location.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-organizer.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-other-data.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-related.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-timedate.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-ui.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes-virtual.php (added)
-
tags/2.4.5/includes/admin/post_types/class-meta_boxes.php (added)
-
tags/2.4.5/includes/admin/post_types/duplicate_event.php (added)
-
tags/2.4.5/includes/admin/settings (added)
-
tags/2.4.5/includes/admin/settings/class-settings-appearance.php (added)
-
tags/2.4.5/includes/admin/settings/class-settings-content.php (added)
-
tags/2.4.5/includes/admin/settings/class-settings-designer.php (added)
-
tags/2.4.5/includes/admin/settings/class-settings-language.php (added)
-
tags/2.4.5/includes/admin/settings/class-settings-scripts.php (added)
-
tags/2.4.5/includes/admin/settings/class-settings-settings.php (added)
-
tags/2.4.5/includes/admin/settings/class-settings.php (added)
-
tags/2.4.5/includes/admin/settings/settings_advanced_tab.php (added)
-
tags/2.4.5/includes/admin/settings/settings_extend_tab.php (added)
-
tags/2.4.5/includes/admin/settings/settings_language_tab.php (added)
-
tags/2.4.5/includes/admin/settings/settings_styles_tab.php (added)
-
tags/2.4.5/includes/admin/settings/settings_support_tab.php (added)
-
tags/2.4.5/includes/admin/views (added)
-
tags/2.4.5/includes/admin/views/cmf_settings.php (added)
-
tags/2.4.5/includes/admin/views/html-bulk-edit-ajde_events.php (added)
-
tags/2.4.5/includes/admin/views/html-quickedit-ajde_events.php (added)
-
tags/2.4.5/includes/admin/views/taxonomy_settings.php (added)
-
tags/2.4.5/includes/admin/views/virtual_event_settings.php (added)
-
tags/2.4.5/includes/admin/welcome.php (added)
-
tags/2.4.5/includes/calendar (added)
-
tags/2.4.5/includes/calendar/class-calendar-body.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-event-structure.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-event-top.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-filtering.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-helper.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-now.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-schedule.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-shell.php (added)
-
tags/2.4.5/includes/calendar/class-calendar-time.php (added)
-
tags/2.4.5/includes/calendar/class-calendar_gen.php (added)
-
tags/2.4.5/includes/calendar/class-calendar_generator.php (added)
-
tags/2.4.5/includes/calendar/class-data-store.php (added)
-
tags/2.4.5/includes/calendar/class-shortcode-defaults.php (added)
-
tags/2.4.5/includes/calendar/views (added)
-
tags/2.4.5/includes/calendar/views/eventcard_virtual.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-addtocal.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-cmf.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-details.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-direction.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-ftimage.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-gmap.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-health.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-location.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-locimg.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-organizer.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-related.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-repeat.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-social.php (added)
-
tags/2.4.5/includes/calendar/views/html-eventcard-time.php (added)
-
tags/2.4.5/includes/class-deprecations.php (added)
-
tags/2.4.5/includes/class-environment.php (added)
-
tags/2.4.5/includes/class-event.php (added)
-
tags/2.4.5/includes/class-eventon.php (added)
-
tags/2.4.5/includes/class-evo-ajax.php (added)
-
tags/2.4.5/includes/class-evo-datetime.php (added)
-
tags/2.4.5/includes/class-evo-helper.php (added)
-
tags/2.4.5/includes/class-evo-install.php (added)
-
tags/2.4.5/includes/class-evo-post-types.php (added)
-
tags/2.4.5/includes/class-evo-shortcodes.php (added)
-
tags/2.4.5/includes/class-evo-template-loader.php (added)
-
tags/2.4.5/includes/class-evo-wp-widgets.php (added)
-
tags/2.4.5/includes/class-frontend.php (added)
-
tags/2.4.5/includes/class-rest-api.php (added)
-
tags/2.4.5/includes/class-search.php (added)
-
tags/2.4.5/includes/class-tax.php (added)
-
tags/2.4.5/includes/class-templates.php (added)
-
tags/2.4.5/includes/elements (added)
-
tags/2.4.5/includes/elements/class-elements-main.php (added)
-
tags/2.4.5/includes/elements/class-elements-svg.php (added)
-
tags/2.4.5/includes/elements/class-elements-trigs.php (added)
-
tags/2.4.5/includes/elements/class-lightboxes.php (added)
-
tags/2.4.5/includes/elements/class-shortcode-data.php (added)
-
tags/2.4.5/includes/elements/class-shortcode-fields.php (added)
-
tags/2.4.5/includes/elements/class-shortcode_generator.php (added)
-
tags/2.4.5/includes/eventon-core-functions.php (added)
-
tags/2.4.5/includes/evo-conditional-functions.php (added)
-
tags/2.4.5/includes/integration (added)
-
tags/2.4.5/includes/integration/blocks (added)
-
tags/2.4.5/includes/integration/blocks/class-evo-blocks.php (added)
-
tags/2.4.5/includes/integration/class-intergration-visualcomposer.php (added)
-
tags/2.4.5/includes/integration/elementor (added)
-
tags/2.4.5/includes/integration/elementor/class-elementor-init.php (added)
-
tags/2.4.5/includes/integration/elementor/elementor_widget.php (added)
-
tags/2.4.5/includes/integration/openai (added)
-
tags/2.4.5/includes/integration/openai/class-ai.php (added)
-
tags/2.4.5/includes/updates (added)
-
tags/2.4.5/index.php (added)
-
tags/2.4.5/lang (added)
-
tags/2.4.5/lang/eventon.pot (added)
-
tags/2.4.5/lang/strings.php (added)
-
tags/2.4.5/readme.txt (added)
-
tags/2.4.5/templates (added)
-
tags/2.4.5/templates/_evo-template-blocks.php (added)
-
tags/2.4.5/templates/_evo-template-control.php (added)
-
tags/2.4.5/templates/_evo-template-functions.php (added)
-
tags/2.4.5/templates/archive-ajde_events.php (added)
-
tags/2.4.5/templates/blocks (added)
-
tags/2.4.5/templates/blocks/single-ajde_events.html (added)
-
tags/2.4.5/templates/blocks/taxonomy-event_location.html (added)
-
tags/2.4.5/templates/blocks/taxonomy-event_organizer.html (added)
-
tags/2.4.5/templates/blocks/taxonomy-event_type.html (added)
-
tags/2.4.5/templates/content-single-event.php (added)
-
tags/2.4.5/templates/email (added)
-
tags/2.4.5/templates/email/email_footer.php (added)
-
tags/2.4.5/templates/email/email_header.php (added)
-
tags/2.4.5/templates/single-ajde_events.php (added)
-
tags/2.4.5/templates/taxonomy-event_location.php (added)
-
tags/2.4.5/templates/taxonomy-event_organizer.php (added)
-
tags/2.4.5/templates/taxonomy-event_type.php (added)
-
tags/2.4.5/themes (added)
-
tags/2.4.5/themes/dark.php (added)
-
tags/2.4.5/uninstall.php (added)
-
trunk/assets/css/admin/wp_admin.css (modified) (1 diff)
-
trunk/assets/js/admin/wp_admin.js (modified) (1 diff)
-
trunk/assets/lib/settings/settings.css (modified) (2 diffs)
-
trunk/eventon.php (modified) (1 diff)
-
trunk/includes/admin/class-admin-ajax.php (modified) (25 diffs)
-
trunk/includes/admin/class-admin-taxonomies_editor.php (modified) (8 diffs)
-
trunk/includes/admin/class-evo-admin.php (modified) (2 diffs)
-
trunk/includes/admin/settings/settings_support_tab.php (modified) (2 diffs)
-
trunk/includes/admin/views/virtual_event_settings.php (modified) (2 diffs)
-
trunk/includes/class-eventon.php (modified) (3 diffs)
-
trunk/includes/class-evo-ajax.php (modified) (12 diffs)
-
trunk/includes/class-evo-helper.php (modified) (2 diffs)
-
trunk/includes/integration/openai/class-ai.php (modified) (5 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
eventon-lite/trunk/assets/css/admin/wp_admin.css
r3288092 r3296861 260 260 -o-transition: all .2s ease; 261 261 transition: all .2s ease; 262 }263 .evo_loader{264 background: url(../../images/evo-loader.gif) center center no-repeat;265 min-height: 100px; min-width: 100px;266 opacity: 0.4267 262 } 268 263 -
eventon-lite/trunk/assets/js/admin/wp_admin.js
r3288092 r3296861 117 117 var D = { 118 118 'action': 'eventon_get_latlng', 119 'address': add 119 'address': add, 120 'nn': evo_admin_ajax_handle.postnonce, 120 121 }; 121 122 $.ajax({ -
eventon-lite/trunk/assets/lib/settings/settings.css
r3269686 r3296861 1 1 /** 2 2 * AJDE backender styles 3 * @version 2.4 3 * @version 2.4.5 4 4 */ 5 5 … … 94 94 font-size:11px; 95 95 font-family:georgia 96 } 97 .toplevel_page_eventon .notice.notice-warning{ 98 position: absolute; 99 z-index: 9; 100 margin-left: 300px; 101 margin-top: 10px; 96 102 } 97 103 -
eventon-lite/trunk/eventon.php
r3290104 r3296861 4 4 * Plugin URI: http://www.myeventon.com/lite 5 5 * Description: A beautifully crafted minimal calendar experience - Lite Version 6 * Version: 2.4. 46 * Version: 2.4.5 7 7 * Author: Ashan Jay 8 8 * Author URI: http://www.ashanjay.com -
eventon-lite/trunk/includes/admin/class-admin-ajax.php
r3290104 r3296861 2 2 /** 3 3 * Function ajax for backend 4 * @version 2.4. 34 * @version 2.4.5 5 5 */ 6 6 class EVO_admin_ajax{ 7 public $helper;8 7 public $post_data; 9 8 … … 23 22 24 23 'admin_get_environment' =>'admin_get_environment', 25 'admin_system_log' =>'admin_system_log',24 'admin_system_log' =>'admin_system_log', 26 25 'admin_system_log_flush' =>'admin_system_log_flush', 27 26 … … 42 41 $prepend = 'eventon_'; 43 42 add_action( 'wp_ajax_'. $prepend . $ajax_event, array( $this, $class ) ); 44 add_action( 'wp_ajax_nopriv_' . $prepend . $ajax_event, array( $this, $class) );43 add_action( 'wp_ajax_nopriv_' . $prepend . $ajax_event, array( $this, 'restrict_unauthenticated' ) ); 45 44 } 46 45 47 46 add_action('wp_ajax_eventon-feature-event', array($this, 'eventon_feature_event')); 48 49 $this->helper = EVO()->helper; 50 $this->post_data = $this->helper->sanitize_array( $_POST );47 add_action('wp_ajax_nopriv_eventon-feature-event', array($this, 'restrict_unauthenticated')); 48 49 $this->post_data = EVO()->helper->sanitize_array( $_POST ); 51 50 } 52 51 52 // Handle unauthenticated requests 53 public function restrict_unauthenticated() { 54 wp_send_json( array( 'status' => 'bad', 'msg' => __( 'Authentication required', 'eventon' )) ); 55 wp_die(); 56 } 57 53 58 // shortcode generator 54 function get_shortcode_generator(){ 59 public function get_shortcode_generator(){ 60 // Allow all roles, with nonce check, authorization check, read capability 61 EVO()->helper->validate_request( 'nn', 'eventon_admin_nonce', 'read', false, true ); 62 55 63 $sc = isset($this->post_data['sc']) ? stripslashes( $this->post_data['sc'] ): 'add_eventon'; 56 64 57 65 $content = EVO()->shortcode_gen->get_content(); 58 66 59 echo json_encode(array(67 wp_send_json(array( 60 68 'status'=>'good', 61 69 'content'=> $content, 62 'sc' => $sc,63 'type'=> isset($this->post_data['type']) ? $this->post_data['type']:'',64 'other_id'=> isset($this->post_data['other_id']) ? $this->post_data['other_id']:'',65 )); exit;70 'sc' => sanitize_text_field( $sc ), 71 'type' => isset( $this->post_data['type'] ) ? sanitize_text_field( $this->post_data['type'] ) : '', 72 'other_id' => isset( $this->post_data['other_id'] ) ? sanitize_text_field( $this->post_data['other_id'] ) : '', 73 ));wp_die(); 66 74 } 67 75 68 76 // generate custom repeat instance unix 69 77 public function generate_custom_repeat_unix(){ 78 // Allow all roles, with nonce check, authorization check 79 EVO()->helper->validate_request( 'nn', 'eventon_admin_nonce', false, false, true ); 70 80 71 81 $msg = ''; 72 73 // verify nonce74 if(empty( $_REQUEST['nn'] ) || !wp_verify_nonce( wp_unslash( $_REQUEST['nn'] ), 'eventon_admin_nonce')) {75 $output['msg'] = __('Security Check Failed!','eventon');76 wp_send_json($output); wp_die();77 }78 79 82 $PD = $this->post_data; 80 81 EVO_Debug($PD); 82 83 //EVO_Debug($PD); 83 84 84 85 // required data check 85 86 if( empty($PD['event_new_repeat_start_date_x']) || empty( $PD['event_new_repeat_end_date_x'])){ 86 $output['msg'] = __('Missing required data!','eventon'); 87 wp_send_json($output); wp_die(); 87 wp_send_json(['msg'=> __('Missing required data!','eventon')]); wp_die(); 88 88 } 89 89 … … 137 137 public function get_secondary_settings(){ 138 138 139 // validate if user has permission 140 if( !current_user_can('edit_eventons') ){ 141 wp_send_json(array( 142 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 143 )); wp_die(); 144 } 145 146 // nonce validation 147 if( empty($_POST['nn']) || !wp_verify_nonce( $_POST['nn'], 'eventon_admin_nonce' ) ){ 148 wp_send_json(array( 149 'status'=>'bad','msg'=> __('Nonce validation failed','eventon') 150 )); wp_die(); 151 } 152 153 $post_data = $this->helper->sanitize_array( $_POST); 139 // Validate request 140 EVO()->helper->validate_request(); 141 142 $post_data = EVO()->helper->sanitize_array( $_POST); 154 143 $settings_file_key = isset($post_data['setitngs_file_key']) ? $post_data['setitngs_file_key'] : ''; 155 144 $allowed_files = array( 156 145 'cmf_settings' => plugin_dir_path(__FILE__) . 'views/cmf_settings.php', 157 ); 158 146 ); 159 147 160 148 if (array_key_exists($settings_file_key, $allowed_files) && file_exists($allowed_files[$settings_file_key])) { … … 176 164 } 177 165 public function save_secondary_settings(){ 178 // validate if user has permission 179 if( !current_user_can('edit_eventons') ){ 180 wp_send_json(array( 181 'status'=>'bad','msg'=> __('You do not have proper permission to perform this action','eventon') 182 )); wp_die(); 183 } 184 185 // nonce validation 186 if( empty($_POST['evo_noncename']) || !wp_verify_nonce( $_POST['evo_noncename'], 'evo_save_secondary_settings' ) ){ 187 wp_send_json(array( 188 'status'=>'bad','msg'=> __('Nonce validation failed','eventon') 189 )); wp_die(); 190 } 191 192 $post_data = $this->helper->sanitize_array( $_POST); 166 167 // Validate request 168 EVO()->helper->validate_request('evo_noncename','evo_save_secondary_settings'); 169 170 171 $post_data = EVO()->helper->sanitize_array( $_POST); 193 172 194 173 // if html fields passed … … 210 189 // html content 211 190 if( $html_fields && in_array($key, $html_fields )){ 212 $val = $this->helper->sanitize_html( $_POST[ $key ] );191 $val = EVO()->helper->sanitize_html( $_POST[ $key ] ); 213 192 } 214 193 … … 224 203 public function config_virtual_event(){ 225 204 226 // validate if user has permission 227 if( !current_user_can('edit_eventons') ){ 228 wp_send_json(array( 229 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 230 )); 231 wp_die(); 232 } 233 234 $post_data = $this->helper->sanitize_array( $_POST); 205 // Validate request 206 EVO()->helper->validate_request(); 207 208 209 $post_data = EVO()->helper->sanitize_array( $_POST); 235 210 236 211 $EVENT = new EVO_Event( (int) $post_data['eid'] ); … … 246 221 } 247 222 public function select_virtual_moderator(){ 223 224 // Validate request 225 EVO()->helper->validate_request(); 248 226 249 227 ob_start(); 250 228 251 229 $eid = (int) $_POST['eid']; 252 253 $EVENT = new EVO_Event( $eid); 254 230 $EVENT = new EVO_Event( $eid); 255 231 $set_user_role = $EVENT->get_prop('_evo_user_role'); 256 232 $set_mod = $EVENT->get_prop('_mod'); … … 302 278 public function get_virtual_users_select_options($role_slug, $set_user_id=''){ 303 279 280 // Validate request 281 EVO()->helper->validate_request(); 282 304 283 $users = get_users( array( 305 284 'role' => $role_slug, … … 318 297 public function get_virtual_users(){ 319 298 320 // validate if user has permission 321 if( !current_user_can('edit_eventons') ){ 322 wp_send_json(array( 323 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 324 )); wp_die(); 325 } 299 // Validate request 300 EVO()->helper->validate_request(); 326 301 327 302 $user_role = sanitize_text_field( $_POST['_user_role']); … … 337 312 } 338 313 public function save_virtual_event_settings(){ 339 // validate if user has permission 340 if( !current_user_can('edit_eventons') ){ 341 wp_send_json(array( 342 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 343 )); wp_die(); 344 } 345 346 // nonce validation 347 if( empty( $_POST['evo_noncename'] ) || !wp_verify_nonce( wp_unslash( $_POST['evo_noncename'] ), 'evo_save_virtual_event_settings' ) ){ 348 wp_send_json(array( 349 'status'=>'bad','msg'=> __('Nonce validation failed','eventon') 350 )); wp_die(); 351 } 352 353 $post_data = $this->helper->sanitize_array( $_POST); 314 315 // Validate request 316 EVO()->helper->validate_request('evo_noncename','evo_save_virtual_event_settings'); 317 318 $post_data = EVO()->helper->sanitize_array( $_POST); 354 319 355 320 $EVENT = new EVO_Event( $post_data['event_id']); 356 321 357 322 foreach($post_data as $key=>$val){ 358 359 323 if( in_array($key, array( '_vir_url','_vir_after_content','_vir_pre_content','_vir_embed'))){ 360 324 $val = $post_data[$key]; … … 369 333 } 370 334 public function save_virtual_mod_settings(){ 371 // validate if user has permission 372 if( !current_user_can('edit_eventons') ){ 373 wp_send_json(array( 374 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 375 )); wp_die(); 376 } 377 378 // nonce validation 379 if( empty($_POST['evo_noncename']) || !wp_verify_nonce( wp_unslash ( $_POST['evo_noncename'] ), 'evo_save_virtual_mod_settings' ) ){ 380 wp_send_json(array( 381 'status'=>'bad','msg'=> __('Nonce validation failed','eventon') 382 )); wp_die(); 383 } 384 385 $post_data = $this->helper->sanitize_array( $_POST); 335 336 // Validate request 337 EVO()->helper->validate_request('evo_noncename','evo_save_virtual_mod_settings'); 338 339 340 $post_data = EVO()->helper->sanitize_array( $_POST); 386 341 387 342 $EVENT = new EVO_Event( (int)$post_data['eid']); … … 397 352 398 353 // Related Events @2.3 399 function rel_event_list(){ 400 401 // Check User Caps. 402 if ( ! current_user_can( 'edit_eventons' ) ) { 403 wp_send_json_error( 'missing_capabilities' ); wp_die(); 404 } 405 406 // verify nonce 407 if(empty( $_REQUEST['nn'] ) || !wp_verify_nonce( wp_unslash( $_REQUEST['nn'] ), 'eventon_admin_nonce')) { 408 wp_send_json_error('Security Check Failed!','eventon'); 409 wp_die(); 410 } 411 412 $post_data = $this->helper->sanitize_array( $_POST); 413 414 354 public function rel_event_list(){ 355 356 // Validate request 357 EVO()->helper->validate_request(); 358 359 $post_data = EVO()->helper->sanitize_array( $_POST); 415 360 $event_id = (int)$post_data['eventid']; 416 361 $EVs = json_decode( stripslashes($post_data['EVs']), true ); … … 508 453 // Get Location Cordinates 509 454 public function get_latlng(){ 455 456 // Validate request 457 EVO()->helper->validate_request('nn','eventon_admin_nonce', 'read', false ,true); 458 510 459 $gmap_api = EVO()->cal->get_prop('evo_gmap_api_key', 'evcal_1'); 511 460 … … 545 494 546 495 // export eventon settings 547 function export_settings(){ 548 // validate if user has permission 549 if( !current_user_can('edit_eventons') ){ 550 wp_die( __('User not loggedin','eventon')); 551 } 552 553 // verify nonce 554 if(empty( $_REQUEST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_REQUEST['nonce'] ), 'evo_export_settings')) { 555 wp_die( __('Security Check Failed','eventon')); 556 } 496 public function export_settings(){ 497 498 // Validate request 499 EVO()->helper->validate_request('nonce','evo_export_settings', 'edit_eventons', true ,true); 500 557 501 558 502 header('Content-type: text/plain'); … … 572 516 // import settings 573 517 public function get_import_settings(){ 518 // Validate request 519 EVO()->helper->validate_request('nn','eventon_admin_nonce', 'edit_eventons', true ,true); 520 574 521 $output = array('status'=>'bad','msg'=>''); 575 576 // verify nonce 577 if(empty( $_REQUEST['nn'] ) || !wp_verify_nonce( wp_unslash( $_REQUEST['nn'] ), 'eventon_admin_nonce')) { 578 $output['msg'] = __('Security Check Failed!','eventon'); 579 wp_send_json($output); wp_die(); 580 } 581 582 // check if admin and loggedin 583 if(!is_admin() && !is_user_logged_in()){ 584 $output['msg'] = __('User not loggedin!','eventon'); 585 wp_send_json($output); wp_die(); 586 } 587 588 // validate if user has permission 589 if( !current_user_can('edit_eventons') ){ 590 $output['msg'] = __('Required permission missing!','eventon'); 591 wp_send_json($output); wp_die(); 592 } 593 522 594 523 ob_start(); 595 524 … … 609 538 610 539 } 611 function import_settings(){ 612 $output = array('status'=>'bad','msg'=>''); 613 614 // verify nonce 615 if(empty( $_POST['nonce'] ) || !wp_verify_nonce($_POST['nonce'], 'eventon_admin_nonce')){ 616 $output['msg'] = __('Security Check Failed!','eventon'); 617 wp_send_json($output); 618 wp_die(); 619 } 620 621 // check if admin and loggedin 622 if(!is_admin() && !is_user_logged_in()){ 623 $output['msg'] = __('User not loggedin!','eventon'); 624 wp_send_json($output); wp_die(); 625 } 626 627 // admin permission 628 if( !current_user_can('edit_eventons')){ 629 $output['msg'] = __('Required permission missing','eventon'); 630 631 wp_send_json($output); wp_die(); 632 } 633 634 $post_data = $this->helper->sanitize_array( $_POST); 540 public function import_settings(){ 541 // Validate request 542 EVO()->helper->validate_request('nonce','eventon_admin_nonce', 'edit_eventons', true ,true); 543 544 $output = array('status'=>'bad','msg'=>''); 545 $post_data = EVO()->helper->sanitize_array( $_POST); 635 546 $JSON_data = isset( $post_data['jsondata'] ) ? $post_data['jsondata'] : false; 636 547 … … 652 563 653 564 wp_send_json($output); wp_die(); 654 655 565 } 656 566 657 567 // export events as CSV 658 // @update 4.3 659 function export_events(){ 660 661 // check if admin and loggedin 662 if( !current_user_can('edit_eventons') ){ 663 wp_die( __('User not loggedin','eventon')); 664 } 665 666 // verify nonce 667 if( empty( $_REQUEST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_REQUEST['nonce'] ), 'eventon_download_events')) { 668 wp_die('Security Check Failed!'); 669 } 568 public function export_events(){ 569 570 // Validate request 571 EVO()->helper->validate_request('nonce','eventon_download_events', 'edit_eventons', true ,true,'message'); 572 670 573 671 574 $run_process_content = false; … … 1024 927 1025 928 // loadin new language 1026 public function settings_load_new_lang(){ 1027 1028 } 929 public function settings_load_new_lang(){} 1029 930 1030 931 // save language settings 1031 932 public function settings_save(){ 1032 933 1033 // Check nonce and referer 1034 if (!check_admin_referer('eventon_settings_save_nonce', 'evoajax')) { 1035 EVO_Debug('Invalid nonce or referer in settings_save: ' . print_r($_POST, true)); 1036 wp_send_json_error(array('message' => 'Invalid nonce or referer')); 1037 wp_die(); 1038 } 1039 1040 // check if admin and loggedin 1041 if( !current_user_can('edit_eventons') ){ 1042 wp_send_json_error(array('message' => 'You do not have proper permission')); wp_die(); 1043 } 934 // Validate request 935 EVO()->helper->validate_request('evoajax','eventon_settings_save_nonce', 'edit_eventons', true ,true); 936 1044 937 1045 938 // Decode JSON data and validate it 1046 939 $form_data = json_decode(stripslashes($_POST['formData']), true); 1047 940 if (json_last_error() !== JSON_ERROR_NONE) { 1048 wp_send_json_error(array('message' => 'Invalid JSON data')); 1049 wp_die(); 941 wp_send_json_error(array('message' => 'Invalid JSON data'));wp_die(); 1050 942 } 1051 943 … … 1151 1043 1152 1044 // check isolatedly saved setting values and include them 1153 foreach( array('evo _ecl','evowhs') as $_iso_field){1045 foreach( array('evowhs') as $_iso_field){ 1154 1046 if( array_key_exists( $_iso_field, $saved_settings)){ 1155 1047 … … 1205 1097 1206 1098 1207 1208 1099 $return_content = array( 1209 1100 //'debug'=> $form_data, … … 1217 1108 1218 1109 // Feature an event from admin */ 1219 function eventon_feature_event() { 1220 1221 if ( ! is_admin() ) wp_die( __( 'Only available in admin side.', 'eventon' ) ); 1222 1223 if ( ! current_user_can('edit_eventons') ) wp_die( __( 'You do not have sufficient permissions to access this page.', 'eventon' ) ); 1224 1225 if ( ! check_admin_referer('eventon-feature-event')) wp_die( __( 'You have taken too long. Please go back and retry.', 'eventon' ) ); 1110 public function eventon_feature_event() { 1111 1112 // Validate request 1113 EVO()->helper->validate_request('_wpnonce','eventon-feature-event', 'edit_eventons', true ,true,'message'); 1114 1226 1115 1227 1116 $post_id = isset( $_GET['eventID'] ) && (int) $_GET['eventID'] ? (int) $_GET['eventID'] : ''; 1228 1229 1117 if (!$post_id) wp_die( __( 'Event id is missing!', 'eventon' ) ); 1230 1118 … … 1247 1135 } 1248 1136 // system log 1249 function admin_system_log(){ 1137 public function admin_system_log(){ 1138 // Validate request 1139 EVO()->helper->validate_request('nn','eventon_admin_nonce', 'edit_eventons', true ,true); 1140 1250 1141 1251 1142 $html = ''; … … 1277 1168 wp_die(); 1278 1169 } 1279 function admin_system_log_flush(){ 1170 public function admin_system_log_flush(){ 1171 // Validate request 1172 EVO()->helper->validate_request('nn','eventon_admin_nonce', 'edit_eventons', true ,true); 1173 1280 1174 EVO_Error()->_flush_all_logs(); 1281 1175 … … 1291 1185 1292 1186 // environment @u 4.5.5 1293 function admin_get_environment(){ 1294 1295 // check if admin and loggedin 1296 if( !current_user_can('edit_eventons') ){ 1297 wp_send_json_error( __('User does not have permission','eventon') ); 1298 wp_die(); 1299 } 1187 public function admin_get_environment(){ 1188 1189 // Validate request 1190 EVO()->helper->validate_request('nn','eventon_admin_nonce', 'edit_eventons', true ,true); 1191 1300 1192 1301 1193 $data = array(); $html = ''; global $wpdb; -
eventon-lite/trunk/includes/admin/class-admin-taxonomies_editor.php
r3220597 r3296861 2 2 /* 3 3 * EventON Taxonomy Editor 4 * @version 2.3 5 * @fullversion 4.7.4 4 * @version 2.4.5 6 5 */ 7 6 8 7 class EVO_Taxonomies_editor{ 9 8 10 public $helper; 11 12 function editor_ajax_calls(){ 9 public function editor_ajax_calls(){ 13 10 $ajax_events = array( 14 11 'get_event_tax_term_section'=>'get_event_tax_term_section', … … 20 17 $prepend = 'eventon_'; 21 18 add_action( 'wp_ajax_'. $prepend . $ajax_event, array( $this, $class ) ); 22 add_action( 'wp_ajax_nopriv_'. $prepend . $ajax_event, array( $this, $class ) ); 23 } 24 25 $this->helper = EVO()->helper; 19 add_action( 'wp_ajax_nopriv_'. $prepend . $ajax_event, array( $this, 'restrict_unauthenticated' ) ); 20 } 26 21 } 27 22 23 // Handle unauthenticated requests 24 public function restrict_unauthenticated() { 25 wp_send_json( array( 'status' => 'bad', 'msg' => __( 'Authentication required', 'eventon' )) ); 26 wp_die(); 27 } 28 28 29 // AJAX 29 function get_event_tax_term_section(){ 30 31 // validate if user has permission 32 if( !current_user_can('edit_eventons') ){ 33 wp_send_json(array( 34 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 35 )); 36 wp_die(); 37 } 38 39 $post_data = $this->helper->sanitize_array( $_POST); 30 public function get_event_tax_term_section(){ 31 32 // validate 33 EVO()->helper->validate_request( 'nn', 'eventon_admin_nonce', true, true, true ); 34 35 $post_data = EVO()->helper->sanitize_array( $_POST); 40 36 41 37 wp_send_json(array( … … 46 42 47 43 // tax term list to select from 48 function tax_select_term(){ 49 50 // validate if user has permission 51 if( !current_user_can('edit_eventons') ){ 52 wp_send_json(array( 53 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 54 )); wp_die(); 55 } 56 57 // nonce validation 58 if( empty($_POST['nn']) || !wp_verify_nonce( wp_unslash( $_POST['nn'] ), 'eventon_admin_nonce' )){ 59 wp_send_json(array( 60 'status'=>'bad','msg'=> __('Nonce validation failed','eventon') 61 )); wp_die(); 62 } 63 64 $post_data = $this->helper->sanitize_array( $_POST); 44 public function tax_select_term(){ 45 46 // validate 47 EVO()->helper->validate_request( 'nn', 'eventon_admin_nonce', true, true, true ); 48 49 $post_data = EVO()->helper->sanitize_array( $_POST); 65 50 $terms = get_terms( 66 51 array( … … 129 114 130 115 <p style='text-align:center; padding-top:10px;'> 131 <span class='evo_btn evo_submit_form' <?php echo $this->helper->array_to_html_data( $btn_data );?>><?php esc_html_e('Save Changes','eventon');?></span>116 <span class='evo_btn evo_submit_form' <?php echo EVO()->helper->array_to_html_data( $btn_data );?>><?php esc_html_e('Save Changes','eventon');?></span> 132 117 </p> 133 118 … … 146 131 147 132 // save changes 148 function event_tax_save_changes(){ 149 150 // validate if user has permission 151 if( !current_user_can('edit_eventons') ){ 152 wp_send_json(array( 153 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 154 )); 155 wp_die(); 156 } 157 158 // nonce validation 159 if( empty($_POST['evo_noncename']) || !wp_verify_nonce( wp_unslash( $_POST['evo_noncename'] ), 'evo_save_term_form' ) ){ 160 wp_send_json(array( 161 'status'=>'bad','msg'=> __('Nonce validation failed','eventon') 162 )); wp_die(); 163 } 164 165 166 $post_data = $this->helper->sanitize_array( $_POST); 133 public function event_tax_save_changes(){ 134 135 // validate 136 EVO()->helper->validate_request( 'evo_noncename', 'evo_save_term_form', true, true, true ); 137 138 139 $post_data = EVO()->helper->sanitize_array( $_POST); 167 140 $status = 'bad'; 168 141 $content = ''; … … 290 263 } 291 264 // remove a taxonomy term 292 function event_tax_remove(){ 293 294 // validate if user has permission 295 if( !current_user_can('edit_eventons') ){ 296 wp_send_json(array( 297 'status'=>'bad','msg'=> __('You do not have proper permission to access this','eventon') 298 )); wp_die(); 299 } 300 301 $post_data = $this->helper->sanitize_array( $_POST); 302 $status = 'bad'; 303 $content = ''; 304 305 if(!empty($post_data['term_id'])){ 306 $event_id = (int)$post_data['event_id']; 307 wp_remove_object_terms( $event_id, (int)$post_data['term_id'], $post_data['tax'] , false); 308 $status = 'good'; 309 $content = __('Changes successfully saved!','eventon'); 310 }else{ 311 $content = __('Term ID was not passed!','eventon'); 312 } 313 314 wp_send_json(array( 315 'tax'=> $post_data['tax'], 316 'status'=>$status, 317 'msg'=>$content, 318 'htmldata'=> $this->get_meta_box_content($post_data['tax'] , $post_data['event_id'] ) 319 )); wp_die(); 265 public function event_tax_remove(){ 266 267 // validate 268 EVO()->helper->validate_request( 'nn', 'eventon_admin_nonce', true, true, true ); 269 270 271 $post_data = EVO()->helper->sanitize_array( $_POST); 272 $status = 'bad'; 273 $content = ''; 274 275 if(!empty($post_data['term_id'])){ 276 $event_id = (int)$post_data['event_id']; 277 wp_remove_object_terms( $event_id, (int)$post_data['term_id'], $post_data['tax'] , false); 278 $status = 'good'; 279 $content = __('Changes successfully saved!','eventon'); 280 }else{ 281 $content = __('Term ID was not passed!','eventon'); 282 } 283 284 wp_send_json(array( 285 'tax'=> $post_data['tax'], 286 'status'=>$status, 287 'msg'=>$content, 288 'htmldata'=> $this->get_meta_box_content($post_data['tax'] , $post_data['event_id'] ) 289 )); wp_die(); 320 290 } 321 291 … … 379 349 <p class='evo_selected_tax_term evo_edittable_sel_val'> 380 350 <em><?php echo esc_attr( $term->name );?></em> 381 <i class='fa fa-pencil evolb_trigger' <?php echo $this->helper->array_to_html_data( $term_data );?> title='<?php echo esc_attr( $text_edit );?>' ></i>382 <i class='fa fa-times evo_trigger_ajax_run' <?php echo $this->helper->array_to_html_data( $term_data_del );?> title='<?php esc_html_e('Delete','eventon');?>'></i>351 <i class='fa fa-pencil evolb_trigger' <?php echo EVO()->helper->array_to_html_data( $term_data );?> title='<?php echo esc_attr( $text_edit );?>' ></i> 352 <i class='fa fa-times evo_trigger_ajax_run' <?php echo EVO()->helper->array_to_html_data( $term_data_del );?> title='<?php esc_html_e('Delete','eventon');?>'></i> 383 353 </p> 384 354 <?php … … 448 418 global $ajde; 449 419 450 $post_data = $this->helper->sanitize_array( $_POST);420 $post_data = EVO()->helper->sanitize_array( $_POST); 451 421 452 422 $is_new = (isset($post_data['type']) && $post_data['type']=='new')? true: false; -
eventon-lite/trunk/includes/admin/class-evo-admin.php
r3288092 r3296861 96 96 $this->metaboxes = new evo_event_metaboxes(); 97 97 98 // Includes for admin 99 if(defined('DOING_AJAX')){ include_once( 'class-admin-ajax.php' ); } 98 // Includes for admin AJAX 99 if ( ! $this->is_request('admin') || $this->is_request('ajax') ){ 100 include_once( 'class-admin-ajax.php' ); 101 } 100 102 101 103 // evneton settings only … … 131 133 add_action('evo_addon_version_change', array($this, 'update_addon_styles'), 10); 132 134 135 } 136 137 private function is_request( $type ) { 138 switch ( $type ) { 139 case 'admin': 140 return is_admin(); 141 case 'ajax': 142 return defined( 'DOING_AJAX' ); 143 case 'cron': 144 return defined( 'DOING_CRON' ); 145 case 'frontend': 146 return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ) && ! $this->is_rest_api_request(); 147 } 133 148 } 134 149 -
eventon-lite/trunk/includes/admin/settings/settings_support_tab.php
r3220597 r3296861 2 2 /** 3 3 * EventON Settings tab - Troubleshoot/support 4 * @version 2. 34 * @version 2.4.5 5 5 * 6 6 */ … … 63 63 </div>", 64 64 'footer'=>"<div class='evopad15 evotac evomarb20'><p style=''><i>" . __('NOTE: Please feel free to type in your question and search our documentation library for related answers','eventon') . "</i></p> 65 <a href='https://www.youtube.com/playlist?list=PLj0uAR9EylGrROSEOpT6WuL_ZkRgEIhLq' class='evomart10 evo_admin_btn btn_prime' target='_blank'><i class='fa fa- youtubeevomarr10'></i> " . __('EventON Video Tutorials','eventon') . "</a></div>",65 <a href='https://www.youtube.com/playlist?list=PLj0uAR9EylGrROSEOpT6WuL_ZkRgEIhLq' class='evomart10 evo_admin_btn btn_prime' target='_blank'><i class='fa fa-play evomarr10'></i> " . __('EventON Video Tutorials','eventon') . "</a></div>", 66 66 'styles'=>'background-color:var(--evo_color_second);', 67 67 ), -
eventon-lite/trunk/includes/admin/views/virtual_event_settings.php
r3121634 r3296861 2 2 /** 3 3 * Virtual Event Settings 4 * @version 2. 2.164 * @version 2.4.5 5 5 */ 6 6 … … 134 134 ?> 135 135 <label><?php esc_html_e('Select moderator for the virtual event','eventon')?></label> 136 <span class='evo_btn evolb_trigger' <?php echo $this->helper->array_to_html_data($btn_data);?> data-popc='print_lightbox' data-lb_cl_nm='sel_moderator' data-lb_sz='small' data-t='<?php esc_html_e('Select Moderator for Virtual Event','eventon');?>' data-eid='<?php echo esc_attr( $EVENT->ID );?>' style='margin-right: 10px'><?php $EVENT->get_prop('_mod') ? esc_html_e('Update Moderator','eventon') : esc_html_e('Select Moderator','eventon');?></span>136 <span class='evo_btn evolb_trigger' <?php echo EVO()->helper->array_to_html_data($btn_data);?> data-popc='print_lightbox' data-lb_cl_nm='sel_moderator' data-lb_sz='small' data-t='<?php esc_html_e('Select Moderator for Virtual Event','eventon');?>' data-eid='<?php echo esc_attr( $EVENT->ID );?>' style='margin-right: 10px'><?php $EVENT->get_prop('_mod') ? esc_html_e('Update Moderator','eventon') : esc_html_e('Select Moderator','eventon');?></span> 137 137 </p> 138 138 -
eventon-lite/trunk/includes/class-eventon.php
r3290104 r3296861 2 2 /** 3 3 * EventON Lite Setup 4 * @version 2.4. 44 * @version 2.4.5 5 5 * 6 6 */ … … 12 12 13 13 // defines 14 public $version = '2.4. 4';14 public $version = '2.4.5'; 15 15 16 16 public $template_url; … … 185 185 $this->evosv = new Evo_Cal_Schedule(); 186 186 187 new EVO_AJAX();188 189 190 187 $GLOBALS['evo_shortcode_box'] = $this->shortcode_gen; 191 //$this->helper = new evo_helper(); 192 193 // Classes/actions loaded for the frontend and for ajax requests 194 if ( ! is_admin() || defined('DOING_AJAX') ) { 195 196 } 197 if(is_admin()){ 188 189 190 if( $this->is_request('admin') ){ 198 191 if( class_exists('evo_admin')) $this->evo_admin = new evo_admin(); 199 192 if( class_exists('EVO_Taxonomies') ) $this->taxonomies = new EVO_Taxonomies(); -
eventon-lite/trunk/includes/class-evo-ajax.php
r3269686 r3296861 7 7 * @category Core 8 8 * @package EventON/Functions/AJAX 9 * @version 2.4 9 * @version 2.4.5 10 10 */ 11 11 … … 15 15 */ 16 16 17 public function __construct(){17 public static function init(){ 18 18 19 19 add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 ); 20 20 add_action( 'template_redirect', array( __CLASS__, 'do_evo_ajax' ), 0 ); 21 21 22 $this->ajax_events();22 self::ajax_events(); 23 23 } 24 24 … … 79 79 80 80 // AJAX events 81 public function ajax_events(){81 public static function ajax_events(){ 82 82 $ajax_events = array( 83 83 'init_load'=>'init_load', … … 93 93 foreach ( $ajax_events as $ajax_event => $class ) { 94 94 $prepend = ( in_array($ajax_event, array('evo_dynamic_css','the_post_ajax_hook_3','the_post_ajax_hook_2')) )? '': 'eventon_'; 95 add_action( 'wp_ajax_'. $prepend . $ajax_event, array( $this, $class ) );96 add_action( 'wp_ajax_nopriv_'. $prepend . $ajax_event, array( $this, $class) );95 add_action( 'wp_ajax_'. $prepend . $ajax_event, array( __CLASS__, $class ) ); 96 add_action( 'wp_ajax_nopriv_'. $prepend . $ajax_event, array( __CLASS__, 'restrict_unauthenticated' ) ); 97 97 98 98 // EVO AJAX can be used for frontend ajax requests. 99 add_action( 'evo_ajax_' . $prepend . $ajax_event, array( $this , $class ) ); 100 } 101 102 } 99 add_action( 'evo_ajax_' . $prepend . $ajax_event, array( __CLASS__ , $class ) ); 100 } 101 102 } 103 104 // Handle unauthenticated requests 105 public function restrict_unauthenticated() { 106 wp_send_json( array( 'status' => 'bad', 'msg' => __( 'Authentication required', 'eventon' )) ); 107 wp_die(); 108 } 103 109 104 110 // Initial load 105 function init_load($return = false){ 106 111 public static function init_load($return = false){ 112 113 // nonce verification 114 EVO()->helper->validate_request( 'nonce', 'eventon_nonce', false , false, false ); 115 107 116 $post_data = EVO()->helper->recursive_sanitize_array_fields( $_POST); 108 109 // nonce verification110 if(empty( $_POST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'eventon_nonce')) {111 wp_send_json_error( 'bad_nonce' );112 wp_die();113 }114 115 117 // init load calendar events 116 118 $CALS = array(); … … 166 168 167 169 // General ajax call - added 3.1 168 public function gen_trig_ajax(){ 169 170 // verify nonce 171 if(empty( $_POST['nn'] ) || !wp_verify_nonce( wp_unslash( $_POST['nn'] ), 'eventon_nonce')) { 172 wp_die( esc_html__( 'Action failed. Please refresh the page and retry.','eventon') ); 173 } 170 public static function gen_trig_ajax(){ 171 172 // nonce verification 173 EVO()->helper->validate_request( 'nn', 'eventon_nonce', false, false, false ); 174 174 175 175 $PP = EVO()->helper->recursive_sanitize_array_fields( $_POST ); … … 181 181 182 182 // Primary function to load event data u2.2.12 183 function main_ajax_call(){ 183 public static function main_ajax_call(){ 184 185 // nonce verification 186 EVO()->helper->validate_request( 'nonce', 'eventon_nonce', false, false, false ); 184 187 185 188 $postdata = EVO()->helper->sanitize_array( $_POST ); 186 187 // nonce verification188 if(empty( $_POST['nonce'] ) || !wp_verify_nonce(wp_unslash( $_POST['nonce'] ), 'eventon_nonce')) {189 wp_die( esc_html__( 'Action failed. Please refresh the page and retry.','eventon') );190 }191 192 189 $shortcode_args = $focused_month_num = $focused_year = ''; 193 190 $status = 'GOOD'; … … 287 284 288 285 // Now Calendar 289 public function refresh_now_cal(){ 290 291 // nonce verification 292 if(empty( $_POST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'eventon_nonce')) { 293 wp_send_json_error( 'bad_nonce' ); 294 wp_die(); 295 } 286 public static function refresh_now_cal(){ 287 288 // nonce verification 289 EVO()->helper->validate_request( 'nonce', 'eventon_nonce', false, false, false ); 290 296 291 297 292 $post_data = EVO()->helper->sanitize_array( $_POST ); … … 321 316 public function refresh_elm(){ 322 317 // nonce verification 323 if(empty( $_POST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'eventon_nonce')) { 324 wp_send_json_error( 'bad_nonce' ); 325 wp_die(); 326 } 318 EVO()->helper->validate_request( 'nonce', 'eventon_nonce', false, false, false ); 327 319 328 320 $post_data = EVO()->helper->recursive_sanitize_array_fields( $_POST ); 329 321 330 wp_send_json( $this->get_refresh_elm_data( $post_data ));322 wp_send_json( self::get_refresh_elm_data( $post_data )); 331 323 } 332 324 333 325 //get ajax refresh element's data array 334 private function get_refresh_elm_data($PP, $type ='ajax'){326 private static function get_refresh_elm_data($PP, $type ='ajax'){ 335 327 $response = array(); 336 328 … … 367 359 // Load single event content 368 360 // @2.2.8 369 function load_event_content(){ 370 371 // nonce verification 372 if(empty( $_POST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'eventon_nonce')) { 373 wp_send_json_error( 'bad_nonce' ); 374 wp_die(); 375 } 361 public static function load_event_content(){ 362 363 // nonce verification 364 EVO()->helper->validate_request( 'nonce', 'eventon_nonce', false, false, false ); 365 376 366 377 367 $post_data = EVO()->helper->recursive_sanitize_array_fields( $_POST ); … … 389 379 // load single eventcard content 390 380 // @2.2.8 391 public function load_single_eventcard_content(){ 392 393 // nonce verification 394 if(empty( $_POST['nn'] ) || !wp_verify_nonce( wp_unslash( $_POST['nn'] ), 'eventon_nonce')) { 395 wp_send_json_error( 'bad_nonce' ); 396 wp_die(); 397 } 381 public static function load_single_eventcard_content(){ 382 383 // nonce verification 384 EVO()->helper->validate_request( 'nn', 'eventon_nonce', false, false, false ); 398 385 399 386 … … 434 421 435 422 // Search results for ajax search of events from search box u2.2.12 436 function search_evo_events(){423 public static function search_evo_events(){ 437 424 438 425 // nonce verification 439 if(empty( $_POST['nonce'] ) || !wp_verify_nonce( wp_unslash( $_POST['nonce'] ), 'eventon_nonce')) { 440 wp_send_json_error( 'bad_nonce' ); 441 wp_die(); 442 } 426 EVO()->helper->validate_request( 'nonce', 'eventon_nonce', false, false, false ); 443 427 444 428 $post_data = EVO()->helper->recursive_sanitize_array_fields( $_POST ); 445 446 429 $searchfor = isset($post_data['search']) ? $post_data['search'] :''; 447 430 $shortcode = isset($post_data['shortcode']) ? $post_data['shortcode']: array(); … … 518 501 } 519 502 } 503 504 505 506 EVO_AJAX::init(); -
eventon-lite/trunk/includes/class-evo-helper.php
r3269686 r3296861 3 3 * Helper functions to be used by eventon or its addons 4 4 * front-end only 5 * @version 2.4 5 * @version 2.4.5 6 6 */ 7 7 … … 53 53 54 54 // sanitization 55 // @since 2.4.5 56 public function validate_request( 57 $nonce_field = 'nn', 58 $nonce_action = 'eventon_admin_nonce', 59 $capability = 'edit_eventons', 60 $require_admin = false, 61 $require_auth = true, 62 $output_type = 'json' , 63 $use_admin_referer = false 64 ) { 65 $error_msg = ''; 66 67 // Check if in admin context if required 68 if ( $require_admin && ! is_admin() ) { 69 $error_msg = __( 'Only available in admin side.', 'eventon' ); 70 } 71 // Check authentication if required 72 elseif ( $require_auth && ! is_user_logged_in() ) { 73 $error_msg = __( 'Authentication required', 'eventon' ); 74 } 75 // Verify user permissions if capability is specified 76 elseif ( $capability && ! current_user_can( $capability ) ) { 77 EVO_Debug( 'Unauthorized access attempt to ' . $nonce_action ); 78 $error_msg = __( 'You do not have proper permission', 'eventon' ); 79 } 80 // admin referer check 81 elseif ( $use_admin_referer ) { 82 if ( ! check_admin_referer( $nonce_action, $nonce_field ) ) { 83 $error_msg = __( 'Nonce or referrer validation failed', 'eventon' ); 84 } 85 } 86 // Verify nonce 87 elseif ( empty( $_REQUEST[$nonce_field] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST[$nonce_field] ), $nonce_action ) ) { 88 $error_msg = __( 'Nonce validation failed', 'eventon' ); 89 } 90 91 // Handle output based on $output_type 92 if ( $error_msg ) { 93 if ( $output_type === 'json' ) { 94 wp_send_json( array( 'status' => 'bad', 'msg' => $error_msg ) ); 95 } else { 96 wp_die( $error_msg ); 97 } 98 } 99 } 55 100 // @+ 4.0.3 56 101 public function sanitize_array($array){ -
eventon-lite/trunk/includes/integration/openai/class-ai.php
r3288092 r3296861 2 2 /** 3 3 * Open AI Integration 4 * @version 2.4. 34 * @version 2.4.5 5 5 */ 6 6 … … 22 22 foreach ( $ajax_events as $ajax_event => $class ) { 23 23 add_action( 'wp_ajax_'. $ajax_event, array( $this, $class ) ); 24 add_action( 'wp_ajax_nopriv_'. $ajax_event, array( $this, $class) );24 add_action( 'wp_ajax_nopriv_'. $ajax_event, array( $this, 'restrict_unauthenticated' ) ); 25 25 } 26 26 } 27 27 28 public function nopriv(){ 29 wp_send_json(['status'=>'nopriv','content'=> __('Login Needed')]);wp_die(); 30 } 28 // Handle unauthenticated requests 29 public function restrict_unauthenticated() { 30 wp_send_json( array( 'status' => 'bad', 'msg' => __( 'Authentication required', 'eventon' )) ); 31 wp_die(); 32 } 31 33 32 34 // ajax 33 35 public function enhance_content(){ 34 36 35 // verification 36 if (empty($_REQUEST['nn']) || !wp_verify_nonce($_REQUEST['nn'], 'eventon_admin_nonce')) { 37 wp_send_json_error(array( 'msg' => __('Nonce validation failed', 'eventon') )); 38 return; 39 } 40 41 if( !$this->is_ai_ready()){ 42 wp_send_json_error(array( 'msg' => __('AI configuration is not ready for use.', 'eventon') )); 43 return; 44 } 37 // validate 38 EVO()->helper->validate_request(); 39 40 if( !$this->is_ai_ready()){ 41 wp_send_json_error(array( 'msg' => __('AI configuration is not ready for use.', 'eventon') )); 42 return; 43 } 45 44 46 45 $help = new evo_helper(); … … 83 82 84 83 85 EVO_Debug( $prompt);84 //EVO_Debug( $prompt); 86 85 87 86 $response = $this->call_openai_api($prompt, 300, 3); // Max tokens and 3 completions … … 206 205 public function reset_usage(){ 207 206 208 // verification 209 if (empty($_REQUEST['nn']) || !wp_verify_nonce($_REQUEST['nn'], 'eventon_admin_nonce')) { 210 wp_send_json_error(array( 'msg' => __('Nonce validation failed', 'eventon') )); 211 return; 212 } 213 if (current_user_can('manage_options')) { 214 wp_send_json_error( array('msg'=> __('You do not have permission to reset this data','eventon')) ); return; 215 } 216 217 if (get_transient('evoai_reset_cooldown')) { 218 wp_send_json_error(array('msg' => __('Please wait before resetting again', 'eventon'))); 219 return; 220 } 221 set_transient('evoai_reset_cooldown', true, 60); // 60-second cooldown 207 // validate 208 EVO()->helper->validate_request(); 209 if (get_transient('evoai_reset_cooldown')) { 210 wp_send_json_error(array('msg' => __('Please wait before resetting again', 'eventon'))); 211 return; 212 } 213 set_transient('evoai_reset_cooldown', true, 60); // 60-second cooldown 222 214 223 215 $new_data = array( … … 238 230 239 231 public function get_privacy_notice(){ 240 //EVO_Debug( $_POST); 241 // verification 242 if (empty($_REQUEST['nn']) || !wp_verify_nonce($_REQUEST['nn'], 'eventon_admin_nonce')) { 243 wp_send_json_error(array( 'msg' => __('Nonce validation failed', 'eventon') )); 244 return; 245 } 246 232 // validate 233 EVO()->helper->validate_request(); 247 234 248 235 ob_start(); -
eventon-lite/trunk/readme.txt
r3290104 r3296861 6 6 Requires at least: 6.0 7 7 Tested up to: 6.8.1 8 Stable tag: 2.4. 48 Stable tag: 2.4.5 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 238 238 239 239 == Changelog == 240 = 2.4.5 (2025-5-19) = 241 FIXED: event card settings not saving 242 FIXED: Broken access control validations for admin functions 243 240 244 = 2.4.4 (2025-5-8) = 241 245 FIXED: language translations not saving or erasing values
Note: See TracChangeset
for help on using the changeset viewer.