first commit

This commit is contained in:
2024-07-15 11:28:08 +02:00
commit f52d538ea5
21891 changed files with 6161164 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
import AdminMenuHandler from 'elementor-admin/admin-menu';
export default class LandingPagesHandler extends AdminMenuHandler {
getDefaultSettings() {
const pageName = 'e-landing-page',
adminMenuSelectors = {
// The escaping is done because jQuery requires it for selectors.
landingPagesTablePage: 'a[href=\"edit.php?post_type=' + pageName + '\"]',
landingPagesAddNewPage: 'a[href=\"edit.php?post_type=elementor_library&page=' + pageName + '\"]',
};
return {
selectors: {
addButton: '.page-title-action:first',
pagesMenuItemAndLink: '#menu-pages, #menu-pages > a',
landingPagesMenuItem: `${ adminMenuSelectors.landingPagesTablePage }, ${ adminMenuSelectors.landingPagesAddNewPage }`,
templatesMenuItem: '.menu-icon-elementor_library',
},
};
}
getDefaultElements() {
const selectors = this.getSettings( 'selectors' ),
elements = super.getDefaultElements();
elements.$landingPagesMenuItem = jQuery( selectors.landingPagesMenuItem );
elements.$templatesMenuItem = jQuery( selectors.templatesMenuItem );
elements.$pagesMenuItemAndLink = jQuery( selectors.pagesMenuItemAndLink );
return elements;
}
onInit() {
super.onInit();
const settings = this.getSettings(),
isLandingPagesTablePage = !! window.location.href.includes( settings.paths.landingPagesTablePage ),
isLandingPagesTrashPage = !! window.location.href.includes( settings.paths.landingPagesTrashPage ),
isLandingPagesCreateYourFirstPage = !! window.location.href.includes( settings.paths.landingPagesAddNewPage );
// If the current page is a Landing Pages Page (the Posts Table page, "Create Your First.." page, or a native
// WordPress dashboard page edit screen when using WordPress' Classic Editor).
if ( isLandingPagesTablePage || isLandingPagesTrashPage || isLandingPagesCreateYourFirstPage || settings.isLandingPageAdminEdit ) {
// Make sure the active admin top level menu item is 'Templates', and not 'Pages'.
this.highlightTopLevelMenuItem( this.elements.$templatesMenuItem, this.elements.$pagesMenuItemAndLink );
this.highlightSubMenuItem( this.elements.$landingPagesMenuItem );
// Overwrite the 'Add New' button at the top of the page to open in Elementor with the library module open.
jQuery( settings.selectors.addButton ).attr( 'href', elementorAdminConfig.urls.addNewLandingPageUrl );
}
}
}

View File

@@ -0,0 +1,29 @@
import LandingPagesHandler from './landing-pages';
export default class extends elementorModules.Module {
constructor() {
super();
elementorCommon.elements.$window.on( 'elementor/admin/init', () => {
this.runHandler();
} );
}
runHandler() {
const pageName = 'e-landing-page',
paths = {
landingPagesTablePage: 'edit.php?post_type=' + pageName,
landingPagesAddNewPage: 'edit.php?post_type=elementor_library&page=' + pageName,
landingPagesTrashPage: 'edit.php?post_status=trash&post_type=' + pageName,
},
args = {
path: elementorAdmin.config.landingPages?.landingPagesHasPages ? paths.landingPagesTablePage : paths.landingPagesAddNewPage,
isLandingPageAdminEdit: elementorAdmin.config.landingPages?.isLandingPageAdminEdit,
paths,
};
// This class modifies elements in the WordPress admin that are rendered "wrong" by the WordPress core
// and could not be modified in the backend.
new LandingPagesHandler( args );
}
}