Changeset 2913641
- Timestamp:
- 05/17/2023 12:01:28 PM (3 years ago)
- Location:
- genealogical-tree
- Files:
-
- 355 added
- 11 edited
-
tags/2.2.0.7 (added)
-
tags/2.2.0.7/LICENSE.txt (added)
-
tags/2.2.0.7/README.txt (added)
-
tags/2.2.0.7/admin (added)
-
tags/2.2.0.7/admin/class-genealogical-tree-admin.php (added)
-
tags/2.2.0.7/admin/css (added)
-
tags/2.2.0.7/admin/css/genealogical-tree-admin.css (added)
-
tags/2.2.0.7/admin/css/select2.min.css (added)
-
tags/2.2.0.7/admin/genealogical-tree-handel-collaboration.php (added)
-
tags/2.2.0.7/admin/img (added)
-
tags/2.2.0.7/admin/img/add.png (added)
-
tags/2.2.0.7/admin/img/dash (added)
-
tags/2.2.0.7/admin/img/dash/1.png (added)
-
tags/2.2.0.7/admin/img/dash/2.png (added)
-
tags/2.2.0.7/admin/img/dash/3.png (added)
-
tags/2.2.0.7/admin/img/dash/4.png (added)
-
tags/2.2.0.7/admin/img/dash/5.png (added)
-
tags/2.2.0.7/admin/img/dash/6.png (added)
-
tags/2.2.0.7/admin/img/dash/7.png (added)
-
tags/2.2.0.7/admin/img/dash/birth.png (added)
-
tags/2.2.0.7/admin/img/dash/contact.png (added)
-
tags/2.2.0.7/admin/img/dash/death.png (added)
-
tags/2.2.0.7/admin/img/dash/events.png (added)
-
tags/2.2.0.7/admin/img/dash/families.png (added)
-
tags/2.2.0.7/admin/img/dash/family-group.svg (added)
-
tags/2.2.0.7/admin/img/dash/family.png (added)
-
tags/2.2.0.7/admin/img/dash/gallery.png (added)
-
tags/2.2.0.7/admin/img/dash/groups.png (added)
-
tags/2.2.0.7/admin/img/dash/image.png (added)
-
tags/2.2.0.7/admin/img/dash/member.png (added)
-
tags/2.2.0.7/admin/img/dash/members.png (added)
-
tags/2.2.0.7/admin/img/dash/parents.png (added)
-
tags/2.2.0.7/admin/img/dash/pop.png (added)
-
tags/2.2.0.7/admin/img/dash/spouse.png (added)
-
tags/2.2.0.7/admin/img/dash/tree.png (added)
-
tags/2.2.0.7/admin/img/delete.png (added)
-
tags/2.2.0.7/admin/img/menu-icon.png (added)
-
tags/2.2.0.7/admin/inc (added)
-
tags/2.2.0.7/admin/inc/class-genealogical-tree-admin-family-group.php (added)
-
tags/2.2.0.7/admin/index.php (added)
-
tags/2.2.0.7/admin/js (added)
-
tags/2.2.0.7/admin/js/genealogical-tree-admin.js (added)
-
tags/2.2.0.7/admin/js/select2.min.js (added)
-
tags/2.2.0.7/admin/partials (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-admin-dashboard.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-admin-settings.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-meta-member-additional-field.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-meta-member-contact.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-meta-member-info.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-meta-member-notes.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-meta-tree-google-fonts.php (added)
-
tags/2.2.0.7/admin/partials/genealogical-tree-meta-tree-settings.php (added)
-
tags/2.2.0.7/freemius (added)
-
tags/2.2.0.7/freemius/LICENSE.txt (added)
-
tags/2.2.0.7/freemius/assets (added)
-
tags/2.2.0.7/freemius/assets/css (added)
-
tags/2.2.0.7/freemius/assets/css/admin (added)
-
tags/2.2.0.7/freemius/assets/css/admin/account.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/add-ons.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/affiliation.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/checkout.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/clone-resolution.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/common.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/connect.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/debug.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/dialog-boxes.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/gdpr-optin-notice.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/index.php (added)
-
tags/2.2.0.7/freemius/assets/css/admin/optout.css (added)
-
tags/2.2.0.7/freemius/assets/css/admin/plugins.css (added)
-
tags/2.2.0.7/freemius/assets/css/customizer.css (added)
-
tags/2.2.0.7/freemius/assets/css/index.php (added)
-
tags/2.2.0.7/freemius/assets/img (added)
-
tags/2.2.0.7/freemius/assets/img/index.php (added)
-
tags/2.2.0.7/freemius/assets/img/plugin-icon.png (added)
-
tags/2.2.0.7/freemius/assets/img/theme-icon.png (added)
-
tags/2.2.0.7/freemius/assets/index.php (added)
-
tags/2.2.0.7/freemius/assets/js (added)
-
tags/2.2.0.7/freemius/assets/js/index.php (added)
-
tags/2.2.0.7/freemius/assets/js/nojquery.ba-postmessage.js (added)
-
tags/2.2.0.7/freemius/assets/js/nojquery.ba-postmessage.min.js (added)
-
tags/2.2.0.7/freemius/assets/js/postmessage.js (added)
-
tags/2.2.0.7/freemius/config.php (added)
-
tags/2.2.0.7/freemius/includes (added)
-
tags/2.2.0.7/freemius/includes/class-freemius-abstract.php (added)
-
tags/2.2.0.7/freemius/includes/class-freemius.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-admin-notices.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-api.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-lock.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-logger.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-options.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-plugin-updater.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-security.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-storage.php (added)
-
tags/2.2.0.7/freemius/includes/class-fs-user-lock.php (added)
-
tags/2.2.0.7/freemius/includes/customizer (added)
-
tags/2.2.0.7/freemius/includes/customizer/class-fs-customizer-support-section.php (added)
-
tags/2.2.0.7/freemius/includes/customizer/class-fs-customizer-upsell-control.php (added)
-
tags/2.2.0.7/freemius/includes/customizer/index.php (added)
-
tags/2.2.0.7/freemius/includes/debug (added)
-
tags/2.2.0.7/freemius/includes/debug/class-fs-debug-bar-panel.php (added)
-
tags/2.2.0.7/freemius/includes/debug/debug-bar-start.php (added)
-
tags/2.2.0.7/freemius/includes/debug/index.php (added)
-
tags/2.2.0.7/freemius/includes/entities (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-affiliate-terms.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-affiliate.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-billing.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-entity.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-payment.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-plugin-info.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-plugin-license.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-plugin-plan.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-plugin-tag.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-plugin.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-pricing.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-scope-entity.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-site.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-subscription.php (added)
-
tags/2.2.0.7/freemius/includes/entities/class-fs-user.php (added)
-
tags/2.2.0.7/freemius/includes/entities/index.php (added)
-
tags/2.2.0.7/freemius/includes/fs-core-functions.php (added)
-
tags/2.2.0.7/freemius/includes/fs-essential-functions.php (added)
-
tags/2.2.0.7/freemius/includes/fs-plugin-info-dialog.php (added)
-
tags/2.2.0.7/freemius/includes/index.php (added)
-
tags/2.2.0.7/freemius/includes/l10n.php (added)
-
tags/2.2.0.7/freemius/includes/managers (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-admin-menu-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-admin-notice-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-cache-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-clone-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-gdpr-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-key-value-storage.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-license-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-option-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-permission-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-plan-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/class-fs-plugin-manager.php (added)
-
tags/2.2.0.7/freemius/includes/managers/index.php (added)
-
tags/2.2.0.7/freemius/includes/sdk (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions/EmptyArgumentException.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions/Exception.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions/InvalidArgumentException.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions/OAuthException.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/Exceptions/index.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/FreemiusBase.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/FreemiusWordPress.php (added)
-
tags/2.2.0.7/freemius/includes/sdk/LICENSE.txt (added)
-
tags/2.2.0.7/freemius/includes/sdk/index.php (added)
-
tags/2.2.0.7/freemius/includes/supplements (added)
-
tags/2.2.0.7/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php (added)
-
tags/2.2.0.7/freemius/includes/supplements/fs-essential-functions-2.2.1.php (added)
-
tags/2.2.0.7/freemius/includes/supplements/fs-migration-2.5.1.php (added)
-
tags/2.2.0.7/freemius/includes/supplements/index.php (added)
-
tags/2.2.0.7/freemius/index.php (added)
-
tags/2.2.0.7/freemius/languages (added)
-
tags/2.2.0.7/freemius/languages/freemius-cs_CZ.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-da_DK.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-de_DE.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-en.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-es_ES.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-fr_FR.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-he_IL.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-hu_HU.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-it_IT.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-ja.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-nl_NL.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-ru_RU.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-ta.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius-zh_CN.mo (added)
-
tags/2.2.0.7/freemius/languages/freemius.pot (added)
-
tags/2.2.0.7/freemius/languages/index.php (added)
-
tags/2.2.0.7/freemius/require.php (added)
-
tags/2.2.0.7/freemius/start.php (added)
-
tags/2.2.0.7/freemius/templates (added)
-
tags/2.2.0.7/freemius/templates/account (added)
-
tags/2.2.0.7/freemius/templates/account.php (added)
-
tags/2.2.0.7/freemius/templates/account/billing.php (added)
-
tags/2.2.0.7/freemius/templates/account/index.php (added)
-
tags/2.2.0.7/freemius/templates/account/partials (added)
-
tags/2.2.0.7/freemius/templates/account/partials/activate-license-button.php (added)
-
tags/2.2.0.7/freemius/templates/account/partials/addon.php (added)
-
tags/2.2.0.7/freemius/templates/account/partials/deactivate-license-button.php (added)
-
tags/2.2.0.7/freemius/templates/account/partials/disconnect-button.php (added)
-
tags/2.2.0.7/freemius/templates/account/partials/index.php (added)
-
tags/2.2.0.7/freemius/templates/account/partials/site.php (added)
-
tags/2.2.0.7/freemius/templates/account/payments.php (added)
-
tags/2.2.0.7/freemius/templates/add-ons.php (added)
-
tags/2.2.0.7/freemius/templates/add-trial-to-pricing.php (added)
-
tags/2.2.0.7/freemius/templates/admin-notice.php (added)
-
tags/2.2.0.7/freemius/templates/ajax-loader.php (added)
-
tags/2.2.0.7/freemius/templates/api-connectivity-message-js.php (added)
-
tags/2.2.0.7/freemius/templates/auto-installation.php (added)
-
tags/2.2.0.7/freemius/templates/checkout.php (added)
-
tags/2.2.0.7/freemius/templates/clone-resolution-js.php (added)
-
tags/2.2.0.7/freemius/templates/connect (added)
-
tags/2.2.0.7/freemius/templates/connect.php (added)
-
tags/2.2.0.7/freemius/templates/connect/index.php (added)
-
tags/2.2.0.7/freemius/templates/connect/permission.php (added)
-
tags/2.2.0.7/freemius/templates/connect/permissions-group.php (added)
-
tags/2.2.0.7/freemius/templates/contact.php (added)
-
tags/2.2.0.7/freemius/templates/debug (added)
-
tags/2.2.0.7/freemius/templates/debug.php (added)
-
tags/2.2.0.7/freemius/templates/debug/api-calls.php (added)
-
tags/2.2.0.7/freemius/templates/debug/index.php (added)
-
tags/2.2.0.7/freemius/templates/debug/logger.php (added)
-
tags/2.2.0.7/freemius/templates/debug/plugins-themes-sync.php (added)
-
tags/2.2.0.7/freemius/templates/debug/scheduled-crons.php (added)
-
tags/2.2.0.7/freemius/templates/email.php (added)
-
tags/2.2.0.7/freemius/templates/forms (added)
-
tags/2.2.0.7/freemius/templates/forms/affiliation.php (added)
-
tags/2.2.0.7/freemius/templates/forms/data-debug-mode.php (added)
-
tags/2.2.0.7/freemius/templates/forms/deactivation (added)
-
tags/2.2.0.7/freemius/templates/forms/deactivation/contact.php (added)
-
tags/2.2.0.7/freemius/templates/forms/deactivation/form.php (added)
-
tags/2.2.0.7/freemius/templates/forms/deactivation/index.php (added)
-
tags/2.2.0.7/freemius/templates/forms/deactivation/retry-skip.php (added)
-
tags/2.2.0.7/freemius/templates/forms/email-address-update.php (added)
-
tags/2.2.0.7/freemius/templates/forms/index.php (added)
-
tags/2.2.0.7/freemius/templates/forms/license-activation.php (added)
-
tags/2.2.0.7/freemius/templates/forms/optout.php (added)
-
tags/2.2.0.7/freemius/templates/forms/premium-versions-upgrade-handler.php (added)
-
tags/2.2.0.7/freemius/templates/forms/premium-versions-upgrade-metadata.php (added)
-
tags/2.2.0.7/freemius/templates/forms/resend-key.php (added)
-
tags/2.2.0.7/freemius/templates/forms/subscription-cancellation.php (added)
-
tags/2.2.0.7/freemius/templates/forms/trial-start.php (added)
-
tags/2.2.0.7/freemius/templates/forms/user-change.php (added)
-
tags/2.2.0.7/freemius/templates/gdpr-optin-js.php (added)
-
tags/2.2.0.7/freemius/templates/index.php (added)
-
tags/2.2.0.7/freemius/templates/js (added)
-
tags/2.2.0.7/freemius/templates/js/index.php (added)
-
tags/2.2.0.7/freemius/templates/js/jquery.content-change.php (added)
-
tags/2.2.0.7/freemius/templates/js/open-license-activation.php (added)
-
tags/2.2.0.7/freemius/templates/js/permissions.php (added)
-
tags/2.2.0.7/freemius/templates/js/style-premium-theme.php (added)
-
tags/2.2.0.7/freemius/templates/partials (added)
-
tags/2.2.0.7/freemius/templates/partials/index.php (added)
-
tags/2.2.0.7/freemius/templates/partials/network-activation.php (added)
-
tags/2.2.0.7/freemius/templates/plugin-icon.php (added)
-
tags/2.2.0.7/freemius/templates/plugin-info (added)
-
tags/2.2.0.7/freemius/templates/plugin-info/description.php (added)
-
tags/2.2.0.7/freemius/templates/plugin-info/features.php (added)
-
tags/2.2.0.7/freemius/templates/plugin-info/index.php (added)
-
tags/2.2.0.7/freemius/templates/plugin-info/screenshots.php (added)
-
tags/2.2.0.7/freemius/templates/powered-by.php (added)
-
tags/2.2.0.7/freemius/templates/pricing.php (added)
-
tags/2.2.0.7/freemius/templates/secure-https-header.php (added)
-
tags/2.2.0.7/freemius/templates/sticky-admin-notice-js.php (added)
-
tags/2.2.0.7/freemius/templates/tabs-capture-js.php (added)
-
tags/2.2.0.7/freemius/templates/tabs.php (added)
-
tags/2.2.0.7/genealogical-tree.php (added)
-
tags/2.2.0.7/includes (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-activator.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-collaboration.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-deactivator.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-helper.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-i18n.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-loader.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree-upgrade.php (added)
-
tags/2.2.0.7/includes/class-genealogical-tree.php (added)
-
tags/2.2.0.7/includes/index.php (added)
-
tags/2.2.0.7/index.php (added)
-
tags/2.2.0.7/languages (added)
-
tags/2.2.0.7/languages/genealogical-tree-ar.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-ar.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-bn_BD.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-bn_BD.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-de_DE.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-de_DE.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-es_ES.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-es_ES.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-fa_IR.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-fa_IR.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-fr_FR.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-fr_FR.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-it_IT.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-it_IT.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-nl_NL.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-nl_NL.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-pt_BR.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-pt_BR.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-ru_RU.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-ru_RU.po (added)
-
tags/2.2.0.7/languages/genealogical-tree-tr_TR.mo (added)
-
tags/2.2.0.7/languages/genealogical-tree-tr_TR.po (added)
-
tags/2.2.0.7/languages/genealogical-tree.pot (added)
-
tags/2.2.0.7/public (added)
-
tags/2.2.0.7/public/Traits (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-ind-style-unknown.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-ind-style.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-single-member-info.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-style-1.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-style-2.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-style-3.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-style-4.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-style-5.php (added)
-
tags/2.2.0.7/public/Traits/traits-genealogical-tree-style-alter.php (added)
-
tags/2.2.0.7/public/class-genealogical-tree-public.php (added)
-
tags/2.2.0.7/public/css (added)
-
tags/2.2.0.7/public/css/genealogical-tree-public.min.css (added)
-
tags/2.2.0.7/public/img (added)
-
tags/2.2.0.7/public/img/ava-.jpg (added)
-
tags/2.2.0.7/public/img/ava-F.jpg (added)
-
tags/2.2.0.7/public/img/ava-M.jpg (added)
-
tags/2.2.0.7/public/img/ava-U.jpg (added)
-
tags/2.2.0.7/public/img/ava-undefined.jpg (added)
-
tags/2.2.0.7/public/img/compress-arrows-alt.svg (added)
-
tags/2.2.0.7/public/img/expand-arrows-alt.svg (added)
-
tags/2.2.0.7/public/img/family-tree.svg (added)
-
tags/2.2.0.7/public/img/female.png (added)
-
tags/2.2.0.7/public/img/male.png (added)
-
tags/2.2.0.7/public/img/network-wired.png (added)
-
tags/2.2.0.7/public/img/user.png (added)
-
tags/2.2.0.7/public/index.php (added)
-
tags/2.2.0.7/public/js (added)
-
tags/2.2.0.7/public/js/genealogical-tree-public.min.js (added)
-
tags/2.2.0.7/public/js/panzoom.min.js (added)
-
tags/2.2.0.7/public/partials (added)
-
tags/2.2.0.7/public/partials/genealogical-tree-meta-tree-google-fonts.php (added)
-
tags/2.2.0.7/public/partials/genealogical-tree-settings.php (added)
-
tags/2.2.0.7/vendor (added)
-
tags/2.2.0.7/vendor/autoload.php (added)
-
tags/2.2.0.7/vendor/composer (added)
-
tags/2.2.0.7/vendor/composer/ClassLoader.php (added)
-
tags/2.2.0.7/vendor/composer/InstalledVersions.php (added)
-
tags/2.2.0.7/vendor/composer/LICENSE (added)
-
tags/2.2.0.7/vendor/composer/autoload_classmap.php (added)
-
tags/2.2.0.7/vendor/composer/autoload_namespaces.php (added)
-
tags/2.2.0.7/vendor/composer/autoload_psr4.php (added)
-
tags/2.2.0.7/vendor/composer/autoload_real.php (added)
-
tags/2.2.0.7/vendor/composer/autoload_static.php (added)
-
tags/2.2.0.7/vendor/composer/installed.json (added)
-
tags/2.2.0.7/vendor/composer/installed.php (added)
-
tags/2.2.0.7/vendor/composer/platform_check.php (added)
-
tags/2.2.0.7/vendor/zqelab (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/.gitignore (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/LICENSE (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/LICENSE.txt (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/README.md (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/composer.json (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/plugin.php (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/readme.txt (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/class.wp-term-meta.php (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/css (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/css/zqe-from-field-dependency.css (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/css/zqe-term-meta.css (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/imgs (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/imgs/placeholder.png (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/js (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/js/zqe-from-field-dependency.js (added)
-
tags/2.2.0.7/vendor/zqelab/wp-term-meta/src/js/zqe-term-meta.js (added)
-
trunk/README.txt (modified) (1 diff)
-
trunk/admin/class-genealogical-tree-admin.php (modified) (10 diffs)
-
trunk/admin/js/genealogical-tree-admin.js (modified) (1 diff)
-
trunk/admin/partials/genealogical-tree-meta-member-info.php (modified) (4 diffs)
-
trunk/freemius/templates/api-connectivity-message-js.php (added)
-
trunk/genealogical-tree.php (modified) (2 diffs)
-
trunk/includes/class-genealogical-tree-upgrade.php (modified) (1 diff)
-
trunk/includes/class-genealogical-tree.php (modified) (1 diff)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (3 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
genealogical-tree/trunk/README.txt
r2891385 r2913641 4 4 Requires at least: 4.4 5 5 Tested up to: 6.2 6 Stable tag: 2.2.0. 76 Stable tag: 2.2.0.8 7 7 License: GPLv2 8 8 -
genealogical-tree/trunk/admin/class-genealogical-tree-admin.php
r2891385 r2913641 425 425 public function render_meta_box_member_info( $post ) 426 426 { 427 $name = ( get_post_meta( $post->ID, 'full_name', true ) ? get_post_meta( $post->ID, 'full_name', true ) : '' );428 $givn = ( get_post_meta( $post->ID, 'givn', true ) ? get_post_meta( $post->ID, 'givn', true ) : '' );429 $surn = ( get_post_meta( $post->ID, 'surn', true ) ? get_post_meta( $post->ID, 'surn', true ) : '' );430 $names = ( get_post_meta( $post->ID, 'names' ) ? get_post_meta( $post->ID, 'names' ) : array( array(431 'name' => $name,432 'npfx' => '',433 'givn' => $givn,434 'nick' => '',435 'spfx' => '',436 'surn' => $surn,437 'nsfx' => '',438 ) ) );439 $sex = get_post_meta( $post->ID, 'sex', true );440 $event = ( get_post_meta( $post->ID, 'even' ) ? get_post_meta( $post->ID, 'even' ) : array() );441 $birt = array();442 $deat = array();443 $fams = ( get_post_meta( $post->ID, 'fams' ) ? get_post_meta( $post->ID, 'fams' ) : array( array(444 'fams' => '',445 ) ) );446 $famc = ( get_post_meta( $post->ID, 'famc' ) ? get_post_meta( $post->ID, 'famc' ) : array( array(447 'famc' => '',448 'pedi' => '',449 ) ) );450 $slgc = ( get_post_meta( $post->ID, 'slgc' ) ? get_post_meta( $post->ID, 'slgc' ) : array( array(451 'famc' => '',452 'date' => '',453 'plac' => '',454 ) ) );455 foreach ( $names as $key => &$name ) {456 if ( $name && !is_array( $name ) ) {457 $name = array(458 'name' => $name,459 'npfx' => '',460 'givn' => '',461 'nick' => '',462 'spfx' => '',463 'surn' => '',464 'nsfx' => '',465 );466 }467 }468 foreach ( $names as $key => $value ) {469 if ( !isset( $value['name'] ) ) {470 unset( $names[$key] );471 }472 }473 foreach ( $event as $key => $value ) {474 $event[$key]['tag'] = strtoupper( $value['tag'] );475 }476 foreach ( $event as $key => $value ) {477 478 if ( 'BIRT' === (string) $value['tag'] ) {479 $birt[] = $value;480 unset( $event[$key] );481 }482 483 484 if ( 'DEAT' === (string) $value['tag'] ) {485 $deat[] = $value;486 unset( $event[$key] );487 }488 489 }490 if ( empty($birt) ) {491 $birt = array( array(492 'tag' => 'BIRT',493 'even' => '',494 'type' => 'BIRT',495 'date' => '',496 'plac' => '',497 ) );498 }499 if ( empty($deat) ) {500 $deat = array( array(501 'tag' => 'DEAT',502 'even' => '',503 'type' => 'DEAT',504 'date' => '',505 'plac' => '',506 ) );507 }508 if ( empty($event) ) {509 $event[0] = array(510 'tag' => '',511 'even' => '',512 'type' => '',513 'date' => '',514 'plac' => '',515 );516 }517 // Fix fams.518 $is_duplicate_fams = array();519 foreach ( $fams as $key => $value ) {520 if ( !is_array( $value ) ) {521 unset( $fams[$key] );522 }523 524 if ( is_array( $value ) ) {525 if ( in_array( $value['fams'], $is_duplicate_fams, true ) ) {526 unset( $fams[$key] );527 }528 array_push( $is_duplicate_fams, $value['fams'] );529 }530 531 }532 foreach ( $fams as $key => $fam ) {533 if ( isset( $fam['fams'] ) && $fam['fams'] && is_array( $fam['fams'] ) ) {534 $fam['fams'] = $fam['fams']['fams'];535 }536 $husb = (int) get_post_meta( $fam['fams'], 'husb', true );537 $wife = (int) get_post_meta( $fam['fams'], 'wife', true );538 $fams[$key]['spouse'] = ( $husb === (int) $post->ID ? $wife : $husb );539 $fams[$key]['chil'] = ( get_post_meta( $fam['fams'], 'chil' ) ? get_post_meta( $fam['fams'], 'chil' ) : array() );540 $fams[$key]['event'] = ( get_post_meta( $fam['fams'], 'even' ) ? get_post_meta( $fam['fams'], 'even' ) : array( array(541 'tag' => '',542 'even' => '',543 'type' => '',544 'date' => '',545 'plac' => '',546 ) ) );547 }548 // Fix famc.549 $is_duplicate_famc = array();550 foreach ( $famc as $key => $value ) {551 if ( !is_array( $value ) ) {552 unset( $famc[$key] );553 }554 555 if ( is_array( $value ) ) {556 if ( in_array( $value['famc'], $is_duplicate_famc, true ) ) {557 unset( $famc[$key] );558 }559 array_push( $is_duplicate_famc, $value['famc'] );560 }561 562 }563 foreach ( $famc as $key => $fam ) {564 if ( isset( $fam['famc'] ) && $fam['famc'] && is_array( $fam['famc'] ) ) {565 $fam['famc'] = $fam['famc']['famc'];566 }567 $famc[$key]['husb'] = get_post_meta( $fam['famc'], 'husb', true );568 $famc[$key]['wife'] = get_post_meta( $fam['famc'], 'wife', true );569 $famc[$key]['chil'] = ( get_post_meta( $fam['famc'], 'chil' ) ? get_post_meta( $fam['famc'], 'chil' ) : array() );570 foreach ( $slgc as $key_slgc => $value ) {571 572 if ( (int) $fam['famc'] === (int) $value['famc'] ) {573 $famc[$key]['slgc'] = current( $slgc );574 } else {575 $famc[$key]['slgc'] = array(576 'famc' => '',577 'date' => '',578 'plac' => '',579 );580 }581 582 }583 }584 427 require_once plugin_dir_path( __FILE__ ) . 'partials/genealogical-tree-meta-member-info.php'; 585 428 } … … 908 751 909 752 if ( $wife || $husb ) { 910 $family_id = $this->find_or_create_family( $wife, $husb, array( $post_id ) ); 753 $chills = array( array( 754 'id' => $post_id, 755 'pedi' => $parent['pedi'], 756 ) ); 757 $family_id = $this->find_or_create_family( $wife, $husb, $chills ); 911 758 array_push( $famc_new_array, $family_id ); 912 759 $famc = ( get_post_meta( $post_id, 'famc' ) ? get_post_meta( $post_id, 'famc' ) : array() ); … … 931 778 array_push( $indis, $husb ); 932 779 } 780 $this->repear_family( $family_id ); 933 781 } 934 782 … … 947 795 foreach ( $spouses as $key => $spouse ) { 948 796 $order = ( isset( $spouse['order'] ) ? $spouse['order'] : 0 ); 949 $chil = ( isset( $spouse['chil'] ) ? array_filter( array_unique( $spouse['chil'] ) ): array() );797 $chil = ( isset( $spouse['chil'] ) ? $spouse['chil'] : array() ); 950 798 951 799 if ( $spouse['id'] || !empty($chil) ) { … … 975 823 array_push( $indis, $husb ); 976 824 } 825 $this->repear_family( $family_id ); 977 826 } 978 827 … … 1006 855 add_post_meta( $post_id, 'slgc', $slgc_new ); 1007 856 } 1008 857 858 $this->repear_member( array( $post_id ) ); 1009 859 } 1010 860 … … 1200 1050 switch ( $column ) { 1201 1051 case 'shortcode': 1202 echo sprintf( '<input type="text" readonly value="[tree id=%1$s]">', esc_attr( $post_id) ) ;1052 echo sprintf( '<input style="max-width:%2$s" type="text" readonly value="[tree id=%1$s]">', esc_attr( $post_id ), esc_attr( '100%' ) ) ; 1203 1053 break; 1204 1054 } … … 1463 1313 1464 1314 if ( is_array( $chil ) && !empty($chil) ) { 1465 foreach ( $chil as $key => $ch ) { 1466 // Manage family. 1467 /* Checking if the child is already in the family of parents. If not, it adds the child to the family. */ 1468 $current_chil = ( get_post_meta( $family_id, 'chil' ) ? get_post_meta( $family_id, 'chil' ) : array() ); 1469 if ( !in_array( (string) $ch, $current_chil, true ) ) { 1470 add_post_meta( $family_id, 'chil', $ch ); 1471 } 1472 /* Get parent families. */ 1473 $famc = ( get_post_meta( $ch, 'famc' ) ? get_post_meta( $ch, 'famc' ) : array() ); 1474 /* Prepare for checking. */ 1475 foreach ( $famc as $value ) { 1476 if ( isset( $value['famc'] ) && $value['famc'] ) { 1477 $famc[] = (int) $value['famc']; 1315 foreach ( $chil as $ch ) { 1316 1317 if ( is_array( $ch ) ) { 1318 // Manage family. 1319 /* Checking if the child is already in the family of parents. If not, it adds the child to the family. */ 1320 $current_chil = ( get_post_meta( $family_id, 'chil' ) ? get_post_meta( $family_id, 'chil' ) : array() ); 1321 if ( !in_array( (string) $ch['id'], $current_chil, true ) ) { 1322 add_post_meta( $family_id, 'chil', $ch['id'] ); 1478 1323 } 1479 } 1480 /* 1481 Checking to see if the family_ID is in the array of parents families. If it is not, it adds it to the 1482 families. 1483 */ 1484 if ( !in_array( (int) $family_id, $famc, true ) ) { 1485 add_post_meta( $ch, 'famc', array( 1486 'famc' => $family_id, 1487 'pedi' => '', 1488 ) ); 1489 } 1324 /* Get parent families. */ 1325 $famc = ( get_post_meta( $ch['id'], 'famc' ) ? get_post_meta( $ch['id'], 'famc' ) : array() ); 1326 /* Prepare for checking. */ 1327 foreach ( $famc as $value ) { 1328 if ( isset( $value['famc'] ) && $value['famc'] ) { 1329 $famc[] = (int) $value['famc']; 1330 } 1331 } 1332 /* 1333 Checking to see if the family_ID is in the array of parents families. If it is not, it adds it to the 1334 families. 1335 */ 1336 if ( !in_array( (int) $family_id, $famc, true ) ) { 1337 add_post_meta( $ch['id'], 'famc', array( 1338 'famc' => $family_id, 1339 'pedi' => ( $ch['pedi'] ? $ch['pedi'] : '' ), 1340 ) ); 1341 } 1342 } 1343 1490 1344 } 1491 1345 } … … 2409 2263 if ( isset( $family['chil'] ) && $family['chil'] && !empty($family['chil']) && is_array( $family['chil'] ) ) { 2410 2264 foreach ( $family['chil'] as $key => $chi ) { 2411 $chil[] = $person_map[$chi ];2265 $chil[] = $person_map[$chi['id']]; 2412 2266 } 2413 2267 } … … 2560 2414 update_option( 'genealogical_tree_last_imported_group', $family_group_id ); 2561 2415 } 2416 2417 /** 2418 * It deletes a family if it has no husband, wife, or children 2419 * 2420 * @param family_id The ID of the family you want to check. 2421 */ 2422 public function repear_family( $family_id ) 2423 { 2424 $chil = ( get_post_meta( $family_id, 'chil' ) ? get_post_meta( $family_id, 'chil' ) : array() ); 2425 $wife = get_post_meta( $family_id, 'wife', true ); 2426 $husb = get_post_meta( $family_id, 'husb', true ); 2427 $error = array(); 2428 foreach ( $chil as $key => $ch ) { 2429 2430 if ( is_array( $ch ) || !is_numeric( $ch ) ) { 2431 $error[] = $ch; 2432 unset( $chil[$key] ); 2433 } 2434 2435 } 2436 $chil = array_unique( $chil ); 2437 2438 if ( !empty($error) ) { 2439 delete_post_meta( $family_id, 'chil' ); 2440 foreach ( $chil as $key => $ch ) { 2441 add_post_meta( $family_id, 'chil', $ch ); 2442 } 2443 } 2444 2445 if ( $wife && !$husb && !$chil || $husb && !$wife && !$chil || $chil && !$husb && !$wife || !$wife && !$husb && !$chil ) { 2446 wp_delete_post( $family_id ); 2447 } 2448 $member_ids = array(); 2449 $member_ids[] = $wife; 2450 $member_ids[] = $husb; 2451 foreach ( $chil as $key => $ch ) { 2452 $member_ids[] = $ch; 2453 } 2454 $this->repear_member( $member_ids ); 2455 } 2456 2457 /** 2458 * It removes any family relationships that are not associated with a valid family post 2459 * 2460 * @param array $member_ids An array of member IDs to be repaired. 2461 */ 2462 public function repear_member( $member_ids ) 2463 { 2464 foreach ( $member_ids as $key => $member ) { 2465 $famc = ( get_post_meta( $member, 'famc' ) ? get_post_meta( $member, 'famc' ) : array() ); 2466 $error = array(); 2467 foreach ( $famc as $key => $fam ) { 2468 2469 if ( !get_post( $fam['famc'] ) ) { 2470 $error[] = $fam; 2471 unset( $famc[$key] ); 2472 } 2473 2474 } 2475 2476 if ( !empty($error) ) { 2477 delete_post_meta( $member, 'famc' ); 2478 foreach ( $famc as $key => $fam ) { 2479 # code... 2480 add_post_meta( $member, 'famc', $fam ); 2481 } 2482 } 2483 2484 $fams = ( get_post_meta( $member, 'fams' ) ? get_post_meta( $member, 'fams' ) : array() ); 2485 $error = array(); 2486 foreach ( $fams as $key => $fam ) { 2487 2488 if ( !get_post( $fam['fams'] ) ) { 2489 $error[] = $fam; 2490 unset( $fams[$key] ); 2491 } 2492 2493 } 2494 2495 if ( !empty($error) ) { 2496 delete_post_meta( $member, 'fams' ); 2497 foreach ( $fams as $key => $fam ) { 2498 add_post_meta( $member, 'fams', $fam ); 2499 } 2500 } 2501 2502 } 2503 } 2504 2505 /** 2506 * The function `tree_family_and_root_columns()` is a filter that adds two columns to the array of 2507 * columns that are displayed in the admin table 2508 * 2509 * the above hook will add columns only for default 'post' post type, for CPT: 2510 * manage_{POST TYPE NAME}_posts_columns 2511 * 2512 * @param array $column_array This is the array of columns that are currently being displayed. 2513 * 2514 * @return array The array of columns. 2515 */ 2516 public function tree_family_and_root_columns( $column_array ) 2517 { 2518 $column_array['family'] = 'Family'; 2519 $column_array['root'] = 'Root'; 2520 // the above code will add columns at the end of the array 2521 // if you want columns to be added in another order, use array_slice() 2522 return $column_array; 2523 } 2524 2525 /** 2526 * It adds two columns to the admin page for the custom post type, and populates them with the values 2527 * of the custom fields 'family' and 'root' 2528 * 2529 * @param string $column_name the name of the column you want to populate 2530 * @param int $post_id The ID of the post being displayed 2531 */ 2532 public function tree_populate_family_and_root_columns( $column_name, $post_id ) 2533 { 2534 $tree = get_post_meta( $post_id, 'tree', true ); 2535 $tree = ( $tree ? $tree : array() ); 2536 $family = ( isset( $tree['family'] ) && $tree['family'] ? $tree['family'] : '' ); 2537 $root = ( isset( $tree['root'] ) && $tree['root'] ? $tree['root'] : '' ); 2538 // if you have to populate more that one columns, use switch() 2539 switch ( $column_name ) { 2540 case 'family': 2541 $title = ( $family ? ' - ' . get_term( $family )->name : '' ); 2542 echo '<span>' . $family . '</span>' . $family . $title ; 2543 break; 2544 case 'root': 2545 $title = ( $root ? ' - ' . get_the_title( $root ) : '' ); 2546 echo '<span>' . $root . '</span>' . $title ; 2547 break; 2548 } 2549 } 2550 2551 /** 2552 * It adds a dropdown to the quick edit screen for the custom post type 2553 * 2554 * @param string $column_name The name of the column. 2555 * @param string $post_type The post type slug. 2556 */ 2557 public function tree_quick_edit_fields( $column_name, $post_type ) 2558 { 2559 switch ( $column_name ) { 2560 case 'family': 2561 ?> 2562 <fieldset class="inline-edit-col-left"> 2563 2564 <div class="inline-edit-col"> 2565 <label> 2566 <span class="title">Select Family</span> 2567 <select id="family" name="family"> 2568 <option value=""> 2569 <?php 2570 esc_html_e( 'Select Family', 'genealogical-tree' ); 2571 ?> 2572 </option> 2573 <?php 2574 $terms = $this->get_gt_family(); 2575 foreach ( $terms as $key => $fg_term ) { 2576 ?> 2577 <option value="<?php 2578 echo esc_attr( $fg_term->term_id ) ; 2579 ?>"> 2580 <?php 2581 echo esc_html( $fg_term->term_id ) ; 2582 ?> - <?php 2583 echo esc_html( $fg_term->name ) ; 2584 ?> 2585 </option> 2586 <?php 2587 } 2588 ?> 2589 </select> 2590 </label> 2591 </div> 2592 2593 <?php 2594 break; 2595 case 'root': 2596 ?> 2597 <div class="inline-edit-col"> 2598 <label> 2599 <span class="title">Select Root</span> 2600 <select id="root" name="root"> 2601 <option value=""> 2602 <?php 2603 esc_html_e( 'Select Root', 'genealogical-tree' ); 2604 ?> 2605 </option> 2606 <?php 2607 $members = $this->get_gt_member(); 2608 foreach ( $members as $key => $member ) { 2609 $term_list = wp_get_post_terms( $member->ID, 'gt-family-group', array( 2610 'fields' => 'ids', 2611 ) ); 2612 $term_list = implode( ',', $term_list ); 2613 ?> 2614 <option data-famly="<?php 2615 echo esc_attr( $term_list ) ; 2616 ?>" value="<?php 2617 echo esc_attr( $member->ID ) ; 2618 ?>"> 2619 <?php 2620 echo esc_html( $member->ID ) ; 2621 ?> - <?php 2622 echo esc_html( $member->post_title ) ; 2623 ?> 2624 </option> 2625 <?php 2626 } 2627 ?> 2628 </select> 2629 </label> 2630 </div> 2631 2632 </fieldset> 2633 <?php 2634 break; 2635 } 2636 } 2637 2638 /** 2639 * If the nonce is valid, update the family and root post meta 2640 * 2641 * @param $post_id $post_id The ID of the post being edited. 2642 * 2643 * @return mixed the value of the variable . 2644 */ 2645 public function tree_quick_edit_save( $post_id ) 2646 { 2647 // Check inlint edit nonce. 2648 if ( !isset( $_POST['_inline_edit'] ) || isset( $_POST['_inline_edit'] ) && !wp_verify_nonce( $_POST['_inline_edit'], 'inlineeditnonce' ) ) { 2649 return; 2650 } 2651 $tree = get_post_meta( $post_id, 'tree', true ); 2652 $tree = ( $tree ? $tree : array() ); 2653 $family = ( !empty($_POST['family']) ? sanitize_text_field( $_POST['family'] ) : '' ); 2654 $root = ( !empty($_POST['root']) ? sanitize_text_field( $_POST['root'] ) : '' ); 2655 $tree['family'] = $family; 2656 $tree['root'] = $root; 2657 update_post_meta( $post_id, 'tree', $tree ); 2658 } 2659 2660 /** 2661 * It returns an array of all the terms in the taxonomy 'gt-family-group' that are associated with the 2662 * current user 2663 * 2664 * @return array An array of terms. 2665 */ 2666 public function get_gt_family() 2667 { 2668 $meta_query = array( array( 2669 'key' => 'created_by', 2670 'value' => get_current_user_id(), 2671 'compare' => '=', 2672 ) ); 2673 if ( current_user_can( 'gt_manager' ) || current_user_can( 'editor' ) || current_user_can( 'administrator' ) ) { 2674 $meta_query = array(); 2675 } 2676 $terms = get_terms( array( 2677 'taxonomy' => 'gt-family-group', 2678 'hide_empty' => false, 2679 'meta_query' => $meta_query, 2680 ) ); 2681 if ( is_wp_error( $terms ) ) { 2682 $terms = array(); 2683 } 2684 return $terms; 2685 } 2686 2687 /** 2688 * It gets all the posts of type `gt-member` that the current user is the author of, and then gets all 2689 * the posts of type `gt-member` that the current user is allowed to use, and then merges the two 2690 * arrays and sorts them by ID 2691 * 2692 * @return array An array of member posts. 2693 */ 2694 public function get_gt_member() 2695 { 2696 $args = array( 2697 'post_type' => 'gt-member', 2698 'posts_per_page' => -1, 2699 'fields' => 'ids, post_title', 2700 'author' => get_current_user_id(), 2701 'order_by' => 'ID', 2702 ); 2703 if ( current_user_can( 'gt_manager' ) || current_user_can( 'editor' ) || current_user_can( 'administrator' ) ) { 2704 unset( $args['author'] ); 2705 } 2706 $members = get_posts( $args ); 2707 $args = array( 2708 'numberposts' => -1, 2709 'post_type' => 'gt-member', 2710 'fields' => 'ids, post_title', 2711 'order_by' => 'ID', 2712 'meta_query' => array( array( 2713 'key' => 'can_use', 2714 'value' => get_current_user_id(), 2715 'compare' => 'IN', 2716 ) ), 2717 ); 2718 $members = array_merge( $members, get_posts( $args ) ); 2719 usort( $members, array( $this, 'sort_member_posts' ) ); 2720 return $members; 2721 } 2562 2722 2563 2723 } -
genealogical-tree/trunk/admin/js/genealogical-tree-admin.js
r2862583 r2913641 189 189 }); 190 190 }); 191 jQuery( function( $ ){ 192 if (typeof inlineEditPost !== 'undefined') { 193 const wp_inline_edit_function = inlineEditPost.edit; 194 inlineEditPost.edit = function( post_id ) { 195 wp_inline_edit_function.apply( this, arguments ); 196 if ( typeof( post_id ) == 'object' ) { 197 post_id = parseInt( this.getId( post_id ) ); 198 } 199 const edit_row = $( '#edit-' + post_id ) 200 const post_row = $( '#post-' + post_id ) 201 const family = $( '.column-family', post_row ).find('span').text() 202 const root = $( '.column-root', post_row ).find('span').text() 203 204 $( 'select[name="family"]', edit_row ).val( family ); 205 $( 'select[name="root"]', edit_row ).val( root ); 206 } 207 } 208 }) 209 191 210 })(jQuery); -
genealogical-tree/trunk/admin/partials/genealogical-tree-meta-member-info.php
r2862583 r2913641 12 12 * @subpackage Genealogical_Tree/admin/partials 13 13 */ 14 ?> 15 16 <?php 17 if ( gt_fs()->is_not_paying() && !gt_fs()->is_trial() ) { 18 ?> 19 <style type="text/css"> 20 .gta-table .repetead-field .clone, 21 .gta-table .repetead-field .delete { 22 display: none; 23 } 24 </style> 25 <?php 14 $name = ( get_post_meta( $post->ID, 'full_name', true ) ? get_post_meta( $post->ID, 'full_name', true ) : '' ); 15 $givn = ( get_post_meta( $post->ID, 'givn', true ) ? get_post_meta( $post->ID, 'givn', true ) : '' ); 16 $surn = ( get_post_meta( $post->ID, 'surn', true ) ? get_post_meta( $post->ID, 'surn', true ) : '' ); 17 $names = ( get_post_meta( $post->ID, 'names' ) ? get_post_meta( $post->ID, 'names' ) : array( array( 18 'name' => $name, 19 'npfx' => '', 20 'givn' => $givn, 21 'nick' => '', 22 'spfx' => '', 23 'surn' => $surn, 24 'nsfx' => '', 25 ) ) ); 26 $sex = get_post_meta( $post->ID, 'sex', true ); 27 $event = ( get_post_meta( $post->ID, 'even' ) ? get_post_meta( $post->ID, 'even' ) : array() ); 28 $birt = array(); 29 $deat = array(); 30 $fams = ( get_post_meta( $post->ID, 'fams' ) ? get_post_meta( $post->ID, 'fams' ) : array( array( 31 'fams' => '', 32 ) ) ); 33 $famc = ( get_post_meta( $post->ID, 'famc' ) ? get_post_meta( $post->ID, 'famc' ) : array( array( 34 'famc' => '', 35 'pedi' => '', 36 ) ) ); 37 $slgc = ( get_post_meta( $post->ID, 'slgc' ) ? get_post_meta( $post->ID, 'slgc' ) : array( array( 38 'famc' => '', 39 'date' => '', 40 'plac' => '', 41 ) ) ); 42 foreach ( $names as $key => &$name ) { 43 if ( $name && !is_array( $name ) ) { 44 $name = array( 45 'name' => $name, 46 'npfx' => '', 47 'givn' => '', 48 'nick' => '', 49 'spfx' => '', 50 'surn' => '', 51 'nsfx' => '', 52 ); 53 } 54 } 55 foreach ( $names as $key => $value ) { 56 if ( !isset( $value['name'] ) ) { 57 unset( $names[$key] ); 58 } 59 } 60 foreach ( $event as $key => $value ) { 61 $event[$key]['tag'] = strtoupper( $value['tag'] ); 62 } 63 foreach ( $event as $key => $value ) { 64 65 if ( 'BIRT' === (string) $value['tag'] ) { 66 $birt[] = $value; 67 unset( $event[$key] ); 68 } 69 70 71 if ( 'DEAT' === (string) $value['tag'] ) { 72 $deat[] = $value; 73 unset( $event[$key] ); 74 } 75 76 } 77 if ( empty($birt) ) { 78 $birt = array( array( 79 'tag' => 'BIRT', 80 'even' => '', 81 'type' => 'BIRT', 82 'date' => '', 83 'plac' => '', 84 ) ); 85 } 86 if ( empty($deat) ) { 87 $deat = array( array( 88 'tag' => 'DEAT', 89 'even' => '', 90 'type' => 'DEAT', 91 'date' => '', 92 'plac' => '', 93 ) ); 94 } 95 if ( empty($event) ) { 96 $event[0] = array( 97 'tag' => '', 98 'even' => '', 99 'type' => '', 100 'date' => '', 101 'plac' => '', 102 ); 103 } 104 // Fix fams. 105 $is_duplicate_fams = array(); 106 foreach ( $fams as $key => $value ) { 107 if ( !is_array( $value ) ) { 108 unset( $fams[$key] ); 109 } 110 111 if ( is_array( $value ) ) { 112 if ( in_array( $value['fams'], $is_duplicate_fams, true ) ) { 113 unset( $fams[$key] ); 114 } 115 array_push( $is_duplicate_fams, $value['fams'] ); 116 } 117 118 } 119 foreach ( $fams as $key => $fam ) { 120 if ( isset( $fam['fams'] ) && $fam['fams'] && is_array( $fam['fams'] ) ) { 121 $fam['fams'] = $fam['fams']['fams']; 122 } 123 $husb = (int) get_post_meta( $fam['fams'], 'husb', true ); 124 $wife = (int) get_post_meta( $fam['fams'], 'wife', true ); 125 $fams[$key]['spouse'] = ( $husb === (int) $post->ID ? $wife : $husb ); 126 $fams[$key]['chil'] = ( get_post_meta( $fam['fams'], 'chil' ) ? get_post_meta( $fam['fams'], 'chil' ) : array() ); 127 $fams[$key]['event'] = ( get_post_meta( $fam['fams'], 'even' ) ? get_post_meta( $fam['fams'], 'even' ) : array( array( 128 'tag' => '', 129 'even' => '', 130 'type' => '', 131 'date' => '', 132 'plac' => '', 133 ) ) ); 134 } 135 // Fix famc. 136 $is_duplicate_famc = array(); 137 foreach ( $famc as $key => $value ) { 138 if ( !is_array( $value ) ) { 139 unset( $famc[$key] ); 140 } 141 142 if ( is_array( $value ) ) { 143 if ( in_array( $value['famc'], $is_duplicate_famc, true ) ) { 144 unset( $famc[$key] ); 145 } 146 array_push( $is_duplicate_famc, $value['famc'] ); 147 } 148 149 } 150 foreach ( $famc as $key => $fam ) { 151 if ( isset( $fam['famc'] ) && $fam['famc'] && is_array( $fam['famc'] ) ) { 152 $fam['famc'] = $fam['famc']['famc']; 153 } 154 $famc[$key]['husb'] = get_post_meta( $fam['famc'], 'husb', true ); 155 $famc[$key]['wife'] = get_post_meta( $fam['famc'], 'wife', true ); 156 $famc[$key]['chil'] = ( get_post_meta( $fam['famc'], 'chil' ) ? get_post_meta( $fam['famc'], 'chil' ) : array() ); 157 foreach ( $slgc as $key_slgc => $value ) { 158 159 if ( (int) $fam['famc'] === (int) $value['famc'] ) { 160 $famc[$key]['slgc'] = current( $slgc ); 161 } else { 162 $famc[$key]['slgc'] = array( 163 'famc' => '', 164 'date' => '', 165 'plac' => '', 166 ); 167 } 168 169 } 26 170 } 27 171 $ref_id = ( get_post_meta( get_the_ID(), 'ref_id', true ) ? get_post_meta( get_the_ID(), 'ref_id', true ) : 'I' . get_the_ID() ); … … 33 177 $unknowns = $useable_members['unknowns']; 34 178 ?> 179 180 <?php 181 if ( gt_fs()->is_not_paying() && !gt_fs()->is_trial() ) { 182 ?> 183 <style type="text/css"> 184 .gta-table .repetead-field .clone, 185 .gta-table .repetead-field .delete { 186 display: none; 187 } 188 </style> 189 <?php 190 } 191 ?> 192 35 193 <div class="gta-container"> 36 194 <?php … … 940 1098 <?php 941 1099 foreach ( $fam['chil'] as $key => $chil ) { 1100 $famc = ( get_post_meta( $chil, 'famc' ) ? get_post_meta( $chil, 'famc' ) : array() ); 1101 $famc_key = array_search( $fam['fams'], array_column( $famc, 'famc' ) ); 1102 $pedi = ( isset( $famc[$famc_key]['pedi'] ) ? $famc[$famc_key]['pedi'] : '' ); 942 1103 943 1104 if ( $chil ) { … … 945 1106 <input type="hidden" readonly name="gt[family][spouses][<?php 946 1107 echo esc_attr( $y ) ; 947 ?>][chil][]" value="<?php 1108 ?>][chil][<?php 1109 echo esc_attr( $key ) ; 1110 ?>][id]" value="<?php 948 1111 echo esc_attr( $chil ) ; 1112 ?>"> 1113 <input type="hidden" readonly name="gt[family][spouses][<?php 1114 echo esc_attr( $y ) ; 1115 ?>][chil][<?php 1116 echo esc_attr( $key ) ; 1117 ?>][pedi]" value="<?php 1118 echo esc_attr( $pedi ) ; 949 1119 ?>"> 950 1120 <?php -
genealogical-tree/trunk/genealogical-tree.php
r2900493 r2913641 17 17 * Plugin URI: https://wordpress.org/plugins/genealogical-tree 18 18 * Description: Genealogical Tree is a ultimate solution for creating and displaying family trees, family history on WordPress. 19 * Version: 2.2.0. 719 * Version: 2.2.0.8 20 20 * Author: ak devs 21 21 * Author URI: https://github.com/akdevsfr … … 93 93 * Rename this for your plugin and update it as you release new versions. 94 94 */ 95 define( 'GENEALOGICAL_TREE_VERSION', '2.2.0. 7' );95 define( 'GENEALOGICAL_TREE_VERSION', '2.2.0.8' ); 96 96 define( 'GENEALOGICAL_TREE_DIR_URL', plugin_dir_url( __FILE__ ) ); 97 97 define( 'GENEALOGICAL_TREE_DIR_PATH', plugin_dir_path( __FILE__ ) ); -
genealogical-tree/trunk/includes/class-genealogical-tree-upgrade.php
r2829508 r2913641 94 94 $wife = get_post_meta( $value->ID, 'wife', true ); 95 95 $husb = get_post_meta( $value->ID, 'husb', true ); 96 $this->find_or_create_family( $wife, $husb, array( $value->ID ) ); 96 97 $chills = array( array( 'id'=> $value->ID, 'pedi' => '' )); 98 99 $this->find_or_create_family( $wife, $husb, $chills); 97 100 } 98 101 -
genealogical-tree/trunk/includes/class-genealogical-tree.php
r2891385 r2913641 231 231 $this->loader->add_action( 'admin_post_process_export_post', $plugin_admin, 'process_export_post' ); 232 232 $this->loader->add_action( 'admin_post_process_import_post', $plugin_admin, 'process_import_post' ); 233 // Columns and Quick Edit Fields. 234 $this->loader->add_filter( 'manage_gt-tree_posts_columns', $plugin_admin, 'tree_family_and_root_columns' ); 235 $this->loader->add_action( 236 'manage_posts_custom_column', 237 $plugin_admin, 238 'tree_populate_family_and_root_columns', 239 10, 240 2 241 ); 242 $this->loader->add_action( 243 'quick_edit_custom_box', 244 $plugin_admin, 245 'tree_quick_edit_fields', 246 10, 247 2 248 ); 249 $this->loader->add_action( 'save_post', $plugin_admin, 'tree_quick_edit_save' ); 233 250 $plugin_upgrade = new \Zqe\Genealogical_Tree_Upgrade(); 234 251 // ver_upgrade. -
genealogical-tree/trunk/vendor/autoload.php
r2891385 r2913641 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit 7e3ffb6b663a47b34f2137ae95307ad4::getLoader();7 return ComposerAutoloaderInitc17db3592498abf459462c6906985b7e::getLoader(); -
genealogical-tree/trunk/vendor/composer/autoload_real.php
r2891385 r2913641 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 7e3ffb6b663a47b34f2137ae95307ad45 class ComposerAutoloaderInitc17db3592498abf459462c6906985b7e 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 7e3ffb6b663a47b34f2137ae95307ad4', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitc17db3592498abf459462c6906985b7e', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 7e3ffb6b663a47b34f2137ae95307ad4', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitc17db3592498abf459462c6906985b7e', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit 7e3ffb6b663a47b34f2137ae95307ad4::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInitc17db3592498abf459462c6906985b7e::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; -
genealogical-tree/trunk/vendor/composer/autoload_static.php
r2891385 r2913641 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 7e3ffb6b663a47b34f2137ae95307ad47 class ComposerStaticInitc17db3592498abf459462c6906985b7e 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 249 249 { 250 250 return \Closure::bind(function () use ($loader) { 251 $loader->prefixLengthsPsr4 = ComposerStaticInit 7e3ffb6b663a47b34f2137ae95307ad4::$prefixLengthsPsr4;252 $loader->prefixDirsPsr4 = ComposerStaticInit 7e3ffb6b663a47b34f2137ae95307ad4::$prefixDirsPsr4;253 $loader->classMap = ComposerStaticInit 7e3ffb6b663a47b34f2137ae95307ad4::$classMap;251 $loader->prefixLengthsPsr4 = ComposerStaticInitc17db3592498abf459462c6906985b7e::$prefixLengthsPsr4; 252 $loader->prefixDirsPsr4 = ComposerStaticInitc17db3592498abf459462c6906985b7e::$prefixDirsPsr4; 253 $loader->classMap = ComposerStaticInitc17db3592498abf459462c6906985b7e::$classMap; 254 254 255 255 }, null, ClassLoader::class); -
genealogical-tree/trunk/vendor/composer/installed.php
r2891385 r2913641 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' a9f719ad1c8d4465233c6dd6ddcfbf64aa17da1d',8 'reference' => '136a99b2645936db29ee04a69e442ae322b9a798', 9 9 'name' => 'akdevsfr/genealogical-tree', 10 10 'dev' => false, … … 17 17 'install_path' => __DIR__ . '/../../', 18 18 'aliases' => array(), 19 'reference' => ' a9f719ad1c8d4465233c6dd6ddcfbf64aa17da1d',19 'reference' => '136a99b2645936db29ee04a69e442ae322b9a798', 20 20 'dev_requirement' => false, 21 21 ),
Note: See TracChangeset
for help on using the changeset viewer.