Compare commits

..

2 commits

Author SHA1 Message Date
575aff68b0 some cleanup
All checks were successful
PHP Code Checker / Run PHP Code Checker (push) Successful in 40s
Unit Testing / Run phpunit tests (push) Successful in 3m53s
2024-09-21 11:17:11 +02:00
f77f4bc017 add forgejo actions for phpunit and phpcs
All checks were successful
PHP Code Checker / Run PHP Code Checker (push) Successful in 42s
Unit Testing / Run phpunit tests (push) Successful in 3m55s
2024-09-21 11:00:33 +02:00
21 changed files with 270 additions and 241 deletions

View file

@ -1,6 +0,0 @@
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- run: echo All Good

41
.forgejo/workflows/phpcs.yml Executable file
View file

@ -0,0 +1,41 @@
name: PHP Code Checker
on:
push:
branches:
- main
pull_request:
jobs:
phpcs:
runs-on: ubuntu-latest
services:
mysql:
image: mariadb
env:
MYSQL_ROOT_PASSWORD: root
strategy:
matrix:
php-versions: ['8.1']
name: Run PHP Code Checker
env:
extensions: mysql
key: cache-v1
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Setup PHP
uses: https://github.com/shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
tools: composer, cs2pr
env:
runner: self-hosted
- name: Install Composer dependencies for PHP
uses: ramsey/composer-install@v3
- name: Detect coding standard violations
run: ./vendor/bin/phpcs

View file

@ -4,20 +4,22 @@ on:
branches: branches:
- main - main
pull_request: pull_request:
env:
WP_TESTS_DIR: /workspace/wordpress-test-lib
WP_CORE_DIR: /workspace/wordpress
jobs: jobs:
phpunit: phpunit:
runs-on: ubuntu-latest runs-on: ubuntu-latest
services: services:
mysql: mysql:
image: 'mariadb:10.7' image: mariadb
env: env:
MYSQL_ROOT_PASSWORD: root MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
strategy: strategy:
matrix: matrix:
php-versions: ['8.1'] php-versions: ['8.1']
wp-version: [latest]
name: Run phpunit tests name: Run phpunit tests
env: env:
extensions: mysql extensions: mysql
@ -26,30 +28,25 @@ jobs:
- name: Checkout - name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4 uses: https://code.forgejo.org/actions/checkout@v4
- name: Cache composer dependencies
id: cache-primes
uses: actions/cache@v4
with:
path: /root/.cache/composer
key: cache-1
- name: Setup PHP - name: Setup PHP
uses: https://github.com/shivammathur/setup-php@v2 uses: https://github.com/shivammathur/setup-php@v2
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
coverage: none coverage: none
tools: composer, phpunit-polyfills tools: composer, phpunit-polyfills
env:
runner: self-hosted
- name: Install Composer dependencies for PHP - name: Install Composer dependencies for PHP
uses: "ramsey/composer-install@v1" uses: ramsey/composer-install@v3
- name: Install mysqladmin - name: Install mysqladmin
run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client
- name: Setup Test Environment - name: Setup Test Environment
run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 6.6
- name: Unit Testing - name: Unit Testing
run: ./vendor/bin/phpunit run: cd /workspace/Event-Federation/wordpress-activitypub-event-extensions/ && phpunit
env: env:
PHP_VERSION: ${{ matrix.php-versions }} PHP_VERSION: ${{ matrix.php-versions }}

View file

@ -1,114 +0,0 @@
workflows:
version: 2
main:
jobs:
- php56-build
- php70-build
- php71-build
- php72-build
- php73-build
- php74-build
version: 2
job-references:
mysql_image: &mysql_image
circleci/mysql:5.6
setup_environment: &setup_environment
name: "Setup Environment Variables"
command: |
echo "export PATH=$HOME/.composer/vendor/bin:$PATH" >> $BASH_ENV
source /home/circleci/.bashrc
install_dependencies: &install_dependencies
name: "Install Dependencies"
command: |
sudo apt-get update && sudo apt-get install subversion
sudo -E docker-php-ext-install mysqli
sudo sh -c "printf '\ndeb http://ftp.us.debian.org/debian sid main\n' >> /etc/apt/sources.list"
sudo apt-get update && sudo apt-get install mysql-client-5.7
php_job: &php_job
environment:
- WP_TESTS_DIR: "/tmp/wordpress-tests-lib"
- WP_CORE_DIR: "/tmp/wordpress/"
steps:
- checkout
- run: *setup_environment
- run: *install_dependencies
- run:
name: "Run Tests"
command: |
composer global require "phpunit/phpunit=5.7.*"
composer global require wp-coding-standards/wpcs
phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs
phpcs
rm -rf $WP_TESTS_DIR $WP_CORE_DIR
bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest
phpunit
WP_MULTISITE=1 phpunit
jobs:
php56-build:
<<: *php_job
docker:
- image: circleci/php:5.6
- image: *mysql_image
steps:
- checkout
- run: *setup_environment
- run: *install_dependencies
- run:
name: "Run Tests"
command: |
composer global require "phpunit/phpunit=5.7.*"
composer global require wp-coding-standards/wpcs
phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs
phpcs
SKIP_DB_CREATE=false
rm -rf $WP_TESTS_DIR $WP_CORE_DIR
bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 5.5 $SKIP_DB_CREATE
phpunit
WP_MULTISITE=1 phpunit
SKIP_DB_CREATE=true
rm -rf $WP_TESTS_DIR $WP_CORE_DIR
bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest $SKIP_DB_CREATE
phpunit
WP_MULTISITE=1 phpunit
SKIP_DB_CREATE=true
rm -rf $WP_TESTS_DIR $WP_CORE_DIR
bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 trunk $SKIP_DB_CREATE
phpunit
WP_MULTISITE=1 phpunit
SKIP_DB_CREATE=true
php70-build:
<<: *php_job
docker:
- image: circleci/php:7.0
- image: *mysql_image
php71-build:
<<: *php_job
docker:
- image: circleci/php:7.1
- image: *mysql_image
php72-build:
<<: *php_job
docker:
- image: circleci/php:7.2
- image: *mysql_image
php73-build:
<<: *php_job
docker:
- image: circleci/php:7.3
- image: *mysql_image
php74-build:
<<: *php_job
docker:
- image: circleci/php:7.4
- image: *mysql_image

157
.phpcs.xml Normal file
View file

@ -0,0 +1,157 @@
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Example Project" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/PHPCSStandards/PHP_CodeSniffer/master/phpcs.xsd">
<description>A custom set of rules to check for a WPized WordPress project</description>
<!--
#############################################################################
COMMAND LINE ARGUMENTS
https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Annotated-Ruleset
#############################################################################
-->
<file>.</file>
<!-- Exclude WP Core folders and files from being checked. -->
<exclude-pattern>/docroot/wp-admin/*</exclude-pattern>
<exclude-pattern>/docroot/wp-includes/*</exclude-pattern>
<exclude-pattern>/docroot/wp-*.php</exclude-pattern>
<exclude-pattern>/docroot/index.php</exclude-pattern>
<exclude-pattern>/docroot/xmlrpc.php</exclude-pattern>
<exclude-pattern>/docroot/wp-content/plugins/*</exclude-pattern>
<!-- Exclude the Composer Vendor directory. -->
<exclude-pattern>/vendor/*</exclude-pattern>
<!-- Exclude the Node Modules directory. -->
<exclude-pattern>/node_modules/*</exclude-pattern>
<!-- Exclude minified Javascript files. -->
<exclude-pattern>*.min.js</exclude-pattern>
<!-- Strip the filepaths down to the relevant bit. -->
<arg name="basepath" value="."/>
<!-- Check up to 8 files simultaneously. -->
<arg name="parallel" value="8"/>
<!--
#############################################################################
SET UP THE RULESETS
#############################################################################
-->
<!-- Include the WordPress-Extra standard. -->
<rule ref="WordPress-Extra">
<!--
We may want a middle ground though. The best way to do this is add the
entire ruleset, then rule by rule, remove ones that don't suit a project.
We can do this by running `phpcs` with the '-s' flag, which allows us to
see the names of the sniffs reporting errors.
Once we know the sniff names, we can opt to exclude sniffs which don't
suit our project like so.
The below two examples just show how you can exclude rules/error codes.
They are not intended as advice about which sniffs to exclude.
-->
<!--
<exclude name="WordPress.WhiteSpace.ControlStructureSpacing"/>
<exclude name="Modernize.FunctionCalls.Dirname.Nested"/>
-->
</rule>
<!-- Let's also check that everything is properly documented. -->
<rule ref="WordPress-Docs"/>
<!-- Add in some extra rules from other standards. -->
<rule ref="Generic.Commenting.Todo"/>
<!-- Check for PHP cross-version compatibility. -->
<!--
To enable this, the PHPCompatibilityWP standard needs
to be installed.
See the readme for installation instructions:
https://github.com/PHPCompatibility/PHPCompatibilityWP
For more information, also see:
https://github.com/PHPCompatibility/PHPCompatibility
-->
<!--
<config name="testVersion" value="5.6-"/>
<rule ref="PHPCompatibilityWP">
<include-pattern>*\.php</include-pattern>
</rule>
-->
<!--
#############################################################################
SNIFF SPECIFIC CONFIGURATION
#############################################################################
-->
<!--
To get the optimal benefits of using WordPressCS, we should add a couple of
custom properties.
Adjust the values of these properties to fit our needs.
For information on additional custom properties available, check out
the wiki:
https://github.com/WordPress/WordPress-Coding-Standards/wiki/Customizable-sniff-properties
-->
<config name="minimum_wp_version" value="6.6"/>
<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array">
<element value="activitypub-event-extensions"/>
<element value="activitypub"/>
</property>
</properties>
</rule>
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties>
<property name="prefixes" type="array">
<element value="ACTIVITYPUB_EVENT_EXTENSIONS"/>
</property>
</properties>
</rule>
<!--
#############################################################################
SELECTIVE EXCLUSIONS
Exclude specific files for specific sniffs and/or exclude sub-groups in sniffs.
#############################################################################
-->
<!--
Sometimes, you may want to exclude a certain directory, like your tests,
for select sniffs.
The below examples demonstrate how to do this.
In the example, the `GlobalVariablesOverride` rule is excluded for test files
as it is sometimes necessary to overwrite WP globals in test situations (just
don't forget to restore them after the test!).
Along the same lines, PHPUnit is getting stricter about using PSR-4 file names,
so excluding test files from the `WordPress.Files.Filename` sniff can be a
legitimate exclusion.
For more information on ruleset configuration options, check out the PHPCS wiki:
https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Annotated-Ruleset
-->
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<exclude-pattern>tests/*.php</exclude-pattern>
<exclude-pattern>templates/*.php</exclude-pattern>
</rule>
<rule ref="WordPress.WP.GlobalVariablesOverride">
<exclude-pattern>tests/*.php</exclude-pattern>
</rule>
<rule ref="WordPress.Files.FileName">
<exclude-pattern>tests/*.php</exclude-pattern>
</rule>
</ruleset>

View file

@ -1,47 +0,0 @@
<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards based custom ruleset for your plugin">
<description>Generally-applicable sniffs for WordPress plugins.</description>
<!-- What to scan -->
<file>.</file>
<exclude-pattern>/vendor/</exclude-pattern>
<exclude-pattern>/node_modules/</exclude-pattern>
<!-- How to scan -->
<!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage -->
<!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
<arg value="sp"/> <!-- Show sniff and progress -->
<arg name="basepath" value="./"/><!-- Strip the file paths down to the relevant bit -->
<arg name="colors"/>
<arg name="extensions" value="php"/>
<arg name="parallel" value="8"/><!-- Enables parallel processing when available for faster results. -->
<!-- Rules: Check PHP version compatibility -->
<!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
<config name="testVersion" value="5.6-"/>
<!-- https://github.com/PHPCompatibility/PHPCompatibilityWP -->
<rule ref="PHPCompatibilityWP"/>
<!-- Rules: WordPress Coding Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties -->
<config name="minimum_supported_wp_version" value="4.6"/>
<rule ref="WordPress"/>
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties>
<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
<property name="prefixes" type="array" value="my-plugin"/>
</properties>
</rule>
<rule ref="WordPress.WP.I18n">
<properties>
<!-- Value: replace the text domain used. -->
<property name="text_domain" type="array" value="my-plugin"/>
</properties>
</rule>
<rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
<properties>
<property name="blank_line_check" value="true"/>
</properties>
</rule>
</ruleset>

View file

@ -1,27 +0,0 @@
when:
- event: push
branch: woodpecker
steps:
- name: build
image: php:8.3
environment:
WP_TESTS_PHPUNIT_POLYFILLS_PATH: vendor/yoast/phpunit-polyfills
commands:
- apt -y update
- apt -y install libonig-dev libicu-dev zlib1g zlib1g-dev libpng-dev libzip-dev bzip2 libbz2-dev subversion unzip
- docker-php-ext-install mbstring mysqli pdo_mysql intl gd zip bz2
- docker-php-ext-enable mbstring mysqli pdo_mysql intl gd zip bz2
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer require --dev yoast/phpunit-polyfills:"^3.0"
- composer require --dev phpunit/phpunit ^11
- composer install
- bash bin/install-wp-tests.sh wordpress_tests root mysql mysql latest true
- ./vendor/bin/phpunit --configuration phpunit.xml.dist
services:
- name: mysql
image: mysql
environment:
MYSQL_DATABASE: wordpress_tests
MYSQL_ROOT_PASSWORD: mysql

27
Dockerfile Normal file
View file

@ -0,0 +1,27 @@
FROM php:8.1.29-alpine
RUN mkdir /app
WORKDIR /app
# Install Git, NPM & needed libraries
RUN apk update \
&& apk add bash git nodejs npm gettext subversion mysql mysql-client zip \
&& rm -f /var/cache/apk/*
RUN docker-php-ext-install mysqli
# Install Composer
RUN EXPECTED_CHECKSUM=$(curl -s https://composer.github.io/installer.sig) \
&& curl https://getcomposer.org/installer -o composer-setup.php \
&& ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \
&& if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then >&2 echo 'ERROR: Invalid installer checksum'; rm composer-setup.php; exit 1; fi \
&& php composer-setup.php --quiet \
&& php -r "unlink('composer-setup.php');" \
&& mv composer.phar /usr/local/bin/composer
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
chmod +x wp-cli.phar && \
mv wp-cli.phar /usr/local/bin/wp
RUN chmod +x -R ./

View file

@ -35,27 +35,23 @@ Activitypub_Event_Extensions\Autoloader::register();
// Initialize the plugin. // Initialize the plugin.
Activitypub_Event_Extensions\Setup::get_instance(); Activitypub_Event_Extensions\Setup::get_instance();
// For local development purposes: TODO. Remove everything after here. // BeforeFirstRelease: Remove everything after this after here.
/** /**
* Add a filter for http_request_host_is_external * Add a filter for http_request_host_is_external
* *
* TODO: Remove this for release. * BeforeFirstRelease: Remove this for release.
*
* @todo This filter is temporary code needed to do local testing.
*/ */
add_filter( 'http_request_host_is_external', 'custom_http_request_host_is_external', 10, 3 ); add_filter( 'http_request_host_is_external', 'activitypub_event_extensions_custom_http_request_host_is_external', 10, 3 );
/** /**
* Add a filter for http_request_host_is_external * Add a filter for http_request_host_is_external
* *
* TODO: Remove this for release. * BeforeFirstRelease: Remove this for release.
* *
* @param bool $is_external Whether the request is external. * @param bool $is_external Whether the request is external.
*
* @todo This filter is temporary code needed to do local testing.
*/ */
function custom_http_request_host_is_external( $is_external ) { function activitypub_event_extensions_custom_http_request_host_is_external( $is_external ) {
$is_external = true; $is_external = true;
return $is_external; return $is_external;
@ -64,15 +60,13 @@ function custom_http_request_host_is_external( $is_external ) {
/** /**
* Don't verify ssl certs for testing. * Don't verify ssl certs for testing.
* *
* TODO: Remove this for release. * BeforeFirstRelease: Remove this for release.
*
* @todo This filter is temporary code needed to do local testing.
*/ */
add_filter( 'https_ssl_verify', 'dont_verify_local_dev_https', 10, 3 ); add_filter( 'https_ssl_verify', 'activitypub_event_extensions_dont_verify_local_dev_https', 10, 3 );
/** /**
* TODO: remove it. * BeforeFirstRelease: remove it.
*/ */
function dont_verify_local_dev_https() { function activitypub_event_extensions_dont_verify_local_dev_https() {
return false; return false;
} }

3
bin/install-wp-tests.sh Executable file → Normal file
View file

@ -54,6 +54,7 @@ fi
set -ex set -ex
install_wp() { install_wp() {
rm -rf $WP_CORE_DIR
if [ -d $WP_CORE_DIR ]; then if [ -d $WP_CORE_DIR ]; then
return; return;
@ -177,7 +178,7 @@ install_db() {
} }
install_wp_plugins() { install_wp_plugins() {
download https://downloads.wordpress.org/plugin/activitypub.3.2.5.zip $TMPDIR/activitypub.zip download https://downloads.wordpress.org/plugin/activitypub.3.2.5.zip $TMPDIR/activitypub.zip
unzip $TMPDIR/activitypub.zip -d $WP_CORE_DIR/wp-content/plugins/ unzip $TMPDIR/activitypub.zip -d $WP_CORE_DIR/wp-content/plugins/
} }

View file

@ -6,7 +6,11 @@
* @license AGPL-3.0-or-later * @license AGPL-3.0-or-later
*/ */
namespace Activitypub_Event_Extensions\Activitypub\Transformer;
use Activitypub_Event_Extensions\Activitypub\Transformer\Event as Event_Transformer; use Activitypub_Event_Extensions\Activitypub\Transformer\Event as Event_Transformer;
use DateTime;
use DateTimeZone;
use EM_Event; use EM_Event;
use Activitypub\Activity\Extended_Object\Event; use Activitypub\Activity\Extended_Object\Event;
use Activitypub\Activity\Extended_Object\Place; use Activitypub\Activity\Extended_Object\Place;
@ -151,7 +155,7 @@ final class Events_Manager extends Event_Transformer {
/** /**
* Return the remaining attendee capacity * Return the remaining attendee capacity
* *
* @todo decide whether to include pending bookings or not! * @return int
*/ */
public function get_remaining_attendee_capacity() { public function get_remaining_attendee_capacity() {
$em_bookings = $this->em_event->get_bookings()->get_bookings(); $em_bookings = $this->em_event->get_bookings()->get_bookings();
@ -164,7 +168,7 @@ final class Events_Manager extends Event_Transformer {
* *
* @return int * @return int
*/ */
public function get_participant_count() { public function get_participant_count(): int {
$em_bookings = $this->em_event->get_bookings()->get_bookings(); $em_bookings = $this->em_event->get_bookings()->get_bookings();
return count( $em_bookings->bookings ); return count( $em_bookings->bookings );
} }

View file

@ -6,6 +6,8 @@
* @license AGPL-3.0-or-later * @license AGPL-3.0-or-later
*/ */
namespace Activitypub_Event_Extensions\Activitypub\Transformer;
use Activitypub_Event_Extensions\Activitypub\Transformer\Event; use Activitypub_Event_Extensions\Activitypub\Transformer\Event;
use Activitypub\Model\Blog; use Activitypub\Model\Blog;
use Activitypub\Activity\Extended_Object\Event as Event_Object; use Activitypub\Activity\Extended_Object\Event as Event_Object;

View file

@ -51,8 +51,6 @@ final class The_Events_Calendar extends Event {
* @return string|null tribe category if it exists * @return string|null tribe category if it exists
*/ */
public function get_tribe_category() { public function get_tribe_category() {
// TODO: make it possible that one event can have multiple categories?
// Using cat_slugs isn't the best way to do this, don't know if it's a good idea.
$categories = tribe_get_event_cat_slugs( $this->wp_object->ID ); $categories = tribe_get_event_cat_slugs( $this->wp_object->ID );
if ( count( $categories ) === 0 ) { if ( count( $categories ) === 0 ) {
@ -133,12 +131,10 @@ final class The_Events_Calendar extends Event {
protected function get_content() { protected function get_content() {
$content = parent::get_content(); $content = parent::get_content();
// TODO: remove link at the end of the content. // /BeforeFirstRelease:
// * remove link at the end of the content.
// TODO: add organizer // * add organizer.
// $this->tribe_event->organizers[0]. // * do add Cancelled reason in the content.s
// TODO: do add Cancelled reason in the content (maybe at the end).
return $content; return $content;
} }

View file

@ -37,7 +37,7 @@ class Settings_Page {
public static function admin_menu(): void { public static function admin_menu(): void {
\add_options_page( \add_options_page(
'Activitypub Event Extension', 'Activitypub Event Extension',
__( 'ActivityPub Events', 'activitypub_event_extensions' ), __( 'ActivityPub Events', 'activitypub-event-extensions' ),
'manage_options', 'manage_options',
self::SETTINGS_SLUG, self::SETTINGS_SLUG,
array( self::STATIC, 'settings_page' ) array( self::STATIC, 'settings_page' )

View file

@ -60,7 +60,7 @@ class Setup {
*/ */
protected function __construct() { protected function __construct() {
$this->activitypub_plugin_is_active = is_plugin_active( 'activitypub/activitypub.php' ); $this->activitypub_plugin_is_active = is_plugin_active( 'activitypub/activitypub.php' );
// TODO: decide whether we want to do anything at all when ActivityPub plugin is note active. // BeforeFirstRelease: decide whether we want to do anything at all when ActivityPub plugin is note active.
// if ( ! $this->activitypub_plugin_is_active ) { // if ( ! $this->activitypub_plugin_is_active ) {
// deactivate_plugins( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_FILE ); // deactivate_plugins( ACTIVITYPUB_EVENT_EXTENSIONS_PLUGIN_FILE );
// return; // return;

View file

@ -46,8 +46,12 @@ final class The_Events_Calendar extends Event_plugin {
* @return string The settings page url. * @return string The settings page url.
*/ */
public static function get_settings_page(): string { public static function get_settings_page(): string {
// TODO: Tribe\Events\Admin\Settings::settings_page_id. if ( class_exists( '\Tribe\Events\Admin\Settings' ) ) {
return 'edit.php?post_type=tribe_events&page=tec-events-settings'; $page = \Tribe\Events\Admin\Settings::$settings_page_id;
} else {
$page = 'tec-events-settings';
}
return sprintf( 'edit.php?post_type=tribe_events&page=%s', $page );
} }
/** /**

View file

@ -76,7 +76,7 @@ $current_category_mapping = \get_option( 'activitypub_event_extensions_ev
<div class="box"> <div class="box">
<h2> <?php esc_html_e( 'Default ActivityPub Event Category', 'activitypub-event-extensions' ); ?> </h2> <h2> <?php esc_html_e( 'Default ActivityPub Event Category', 'activitypub-event-extensions' ); ?> </h2>
<p> <?php esc_html_e( 'To help visitors find events more easily, the community created a set of basic event categories. Please select the category that best matches the majority of the events you organize.' ); ?> </p> <p> <?php esc_html_e( 'To help visitors find events more easily, the community created a set of basic event categories. Please select the category that best matches the majority of the events you organize.', 'activitypub-event-extensions' ); ?> </p>
<table class="form-table"> <table class="form-table">
<tr> <tr>
<th scope="row"> <?php esc_html_e( 'Default Category', 'activitypub-event-extensions' ); ?> </th> <th scope="row"> <?php esc_html_e( 'Default Category', 'activitypub-event-extensions' ); ?> </th>
@ -96,7 +96,7 @@ $current_category_mapping = \get_option( 'activitypub_event_extensions_ev
<?php if ( ! empty( $event_terms ) ) : ?> <?php if ( ! empty( $event_terms ) ) : ?>
<div class="box"> <div class="box">
<h2> <?php esc_html_e( 'Advanced Event Category Settings', 'activitypub-event-extensions' ); ?> </h2> <h2> <?php esc_html_e( 'Advanced Event Category Settings', 'activitypub-event-extensions' ); ?> </h2>
<p> <?php esc_html_e( 'Take more control by adjusting how your event categories are mapped to the basic category set used in ActivityPub. This option lets you override the default selection above, ensuring more accurate categorization and better visibility for your events.' ); ?> </p> <p> <?php esc_html_e( 'Take more control by adjusting how your event categories are mapped to the basic category set used in ActivityPub. This option lets you override the default selection above, ensuring more accurate categorization and better visibility for your events.', 'activitypub-event-extensions' ); ?> </p>
<table class="form-table"> <table class="form-table">
<?php foreach ( $event_terms as $event_term ) { ?> <?php foreach ( $event_terms as $event_term ) { ?>
<tr> <tr>

View file

@ -29,7 +29,7 @@ require_once "{$_tests_dir}/includes/functions.php";
* Manually load the plugin being tested. * Manually load the plugin being tested.
*/ */
function _manually_load_plugin() { function _manually_load_plugin() {
require dirname( dirname( __FILE__ ) ) . '/activitypub-event-extensions.php'; require dirname( __DIR__ ) . '/activitypub-event-extensions.php';
} }
tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' ); tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );

0
tests/test-class-sample.php Executable file → Normal file
View file