Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ Makefile export-ignore
/.github export-ignore
.phpcs.xml export-ignore
simplify-mpdf.sh export-ignore
/tests export-ignore
/tests/** export-ignore
2 changes: 1 addition & 1 deletion .github/workflows/pull-requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
unzip "${BUILD_DIR}/${ZIP_FILENAME}" -d "./bread"

- name: Run plugin check
uses: wordpress/plugin-check-action@v1.0.6
uses: wordpress/plugin-check-action@v1
with:
build-dir: "./bread"
exclude-directories: 'vendor'
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM wordpress:6.2.2-php8.2-apache
FROM wordpress:6.9.0-php8.2-apache

RUN apt-get update && \
apt-get install -y --no-install-recommends ssl-cert && \
Expand Down
10 changes: 9 additions & 1 deletion admin/class-bmltenabled-admin.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

if (! defined('ABSPATH')) {
exit;
}
/**
* Creates the main item in the admin menu, where both bread and crouton admins can live.
*
Expand Down Expand Up @@ -39,6 +41,9 @@ function admin_menu_link()
if (!current_user_can($cap)) {
$cap = 'manage_bread';
}
// The prefix "BmltEnabled" is correct: it is unique enough to avoid conflicts and the filter is shared
// with other plugins from this author
// phpcs:ignore
$icon = apply_filters("BmltEnabled_IconSVG", 'dashicons-location-alt');
add_menu_page(
'Meeting Lists',
Expand All @@ -49,6 +54,9 @@ function admin_menu_link()
$icon,
null
);
// The prefix "BmltEnabled" is correct: it is unique enough to avoid conflicts and the filter is shared
// with other plugins from this author
// phpcs:ignore
do_action('BmltEnabled_Submenu', $this->slug);
}
}
76 changes: 50 additions & 26 deletions admin/class-bread-admin.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

if (! defined('ABSPATH')) {
exit;
}
/**
* The admin-specific functionality of the plugin.
*
Expand All @@ -14,6 +16,7 @@
* @subpackage Bread/admin
* @author bmlt-enabled <help@bmlt.app>
*/
include_once plugin_dir_path(__FILE__) . 'partials/_meeting_list_setup.php';
class Bread_Admin
{

Expand Down Expand Up @@ -66,13 +69,14 @@ public function enqueue_styles($hook)
if (!str_ends_with($hook, $this->hook)) {
return;
}
wp_enqueue_style("jquery-ui", plugin_dir_url(__FILE__) . "css/jquery-ui.min.css", false, "1.2", 'all');
wp_enqueue_style("spectrum", plugin_dir_url(__FILE__) . "css/spectrum.min.css", false, "1.2", 'all');
wp_enqueue_style("tooltipster", plugin_dir_url(__FILE__) . "css/tooltipster.bundle.min.css", false, "1.2", 'all');
wp_enqueue_style("tooltipster-noir", plugin_dir_url(__FILE__) . "css/tooltipster-sideTip-noir.min.css", false, "1.2", 'all');
wp_enqueue_style("admin", plugin_dir_url(__FILE__) . "css/admin.css", false, "1.2", 'all');
wp_enqueue_style("chosen", plugin_dir_url(__FILE__) . "css/chosen.min.css", false, "1.2", 'all');
wp_enqueue_style("smartWizard-dots", plugin_dir_url(__FILE__) . "css/smart_wizard_dots.css", false, "6.0.6", 'all');
wp_enqueue_style("jquery-ui", plugin_dir_url(__FILE__) . "css/jquery-ui.min.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("spectrum", plugin_dir_url(__FILE__) . "css/spectrum.min.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("tooltipster", plugin_dir_url(__FILE__) . "css/tooltipster.bundle.min.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("tooltipster-noir", plugin_dir_url(__FILE__) . "css/tooltipster-sideTip-noir.min.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("admin", plugin_dir_url(__FILE__) . "css/admin.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("bread-fonts", plugin_dir_url(__FILE__) . "css/admin-fonts.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("select2", plugin_dir_url(__FILE__) . "css/select2.min.css", false, BREAD_VERSION, 'all');
wp_enqueue_style("smartWizard-dots", plugin_dir_url(__FILE__) . "css/smart_wizard_dots.css", false, BREAD_VERSION, 'all');
}

/**
Expand All @@ -89,13 +93,13 @@ public function enqueue_scripts($hook)
wp_enqueue_script('jquery-ui-tabs');
wp_enqueue_script('jquery-ui-accordion');
wp_enqueue_script('jquery-ui-dialog');
wp_enqueue_script("bmlt_meeting_list", plugin_dir_url(__FILE__) . "js/bmlt_meeting_list.js", array('jquery'), "2.8.0", true);
wp_enqueue_script("bmlt_meeting_list", plugin_dir_url(__FILE__) . "js/bmlt_meeting_list.js", array('jquery'), BREAD_VERSION, true);
wp_enqueue_script("tooltipster", plugin_dir_url(__FILE__) . "js/tooltipster.bundle.min.js", array('jquery'), "1.2", true);
wp_enqueue_script("spectrum", plugin_dir_url(__FILE__) . "js/spectrum.min.js", array('jquery'), "1.2", true);
wp_enqueue_script("chosen", plugin_dir_url(__FILE__) . "js/chosen.jquery.min.js", array('jquery'), "1.2", true);
wp_enqueue_script("select2", plugin_dir_url(__FILE__) . "js/select2.min.js", array('jquery'), "1.2", true);
wp_enqueue_script("fetch-jsonp", plugin_dir_url(__FILE__) . "js/fetch-jsonp.js", array('jquery'), "1.30", true);
wp_enqueue_script("smartWizard", plugin_dir_url(__FILE__) . "js/jquery.smartWizard.js", array('jquery'), "6.0.6", true);
wp_enqueue_script("breadWizard", plugin_dir_url(__FILE__) . "js/bread-wizard.js", array('smartWizard'), "2.8.0", true);
wp_enqueue_script("breadWizard", plugin_dir_url(__FILE__) . "js/bread-wizard.js", array('smartWizard'), BREAD_VERSION, true);
/**
* Make some JSON from PHP available in JS.
*/
Expand Down Expand Up @@ -204,10 +208,22 @@ function tiny_tweaks($initArray)
$initArray['fontsize_formats'] = "5pt 6pt 7pt 8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 19pt 20pt 22pt 24pt 26pt 28pt 30pt 32pt 34pt 36pt 38pt";
$initArray['theme_advanced_blockformats'] = 'h2,h3,h4,p';
$initArray['wordpress_adv_hidden'] = false;
$initArray['font_formats'] = 'Arial (Default)=arial;';
$initArray['font_formats'] = 'Arial (Sans-Serif)=arial;';
$initArray['font_formats'] .= 'Times (Sans-Serif)=times;';
$initArray['font_formats'] .= 'Courier (Monospace)=courier;';
$initArray['content_style'] = 'body { font-family: Arial; }';
$initArray['font_formats'] .= 'DejaVu (Sans-Serif)=DejaVuSansCondensed;';
$dir = plugin_dir_url(__FILE__);
$font = $this->bread->getOption('base_font');
if ($font == 'dejavusanscondensed') {
$initArray['content_style'] = "@import url('$dir/css/fonts.css'); body { font-family: DejaVuSansCondensed; }";
} elseif ($font == 'times') {
$initArray['content_style'] = "@import url('$dir/css/fonts.css'); body { font-family: Times; }";
} elseif ($font == 'courier') {
$initArray['content_style'] = "@import url('$dir/css/fonts.css'); body { font-family: Courier; }";
} else {
$initArray['content_style'] = "@import url('$dir/css/fonts.css'); body { font-family: Arial; }";
}
//$initArray['content_style'] = "body { font-family: Arial; }";
}
}
return $initArray;
Expand Down Expand Up @@ -248,9 +264,6 @@ function pwsix_process_settings_export()
if (!isset($_POST['pwsix_export_nonce']) || ! wp_verify_nonce($_POST['pwsix_export_nonce'], 'pwsix_export_nonce')) {
return;
}
if (! current_user_can('manage_bread')) { // TODO: Is this necessary? Why not let the user make a copy
return;
}
$this->download_settings_inner();
}
function download_settings()
Expand Down Expand Up @@ -317,13 +330,13 @@ function exportLogFile($file)
}
function current_user_can_modify()
{
if (! current_user_can('manage_bread')) {
return false;
}
$user = wp_get_current_user();
if (in_array('administrator', $user->roles)) {
return true;
}
if (! current_user_can('manage_bread')) {
return false;
}
$authors_safe = $this->bread->getOption('authors');
if (!is_array($authors_safe) || empty($authors_safe)) {
return true;
Expand All @@ -335,10 +348,17 @@ function current_user_can_modify()
}
function current_user_can_create()
{
if (! current_user_can('manage_bread')) {
return false;
$user = wp_get_current_user();
if (in_array('administrator', $user->roles)) {
return true;
}
if (current_user_can('manage_options')) {
return true;
}
return true;
if (current_user_can('manage_bread')) {
return true;
}
return false;
}
/**
* Process a settings import from a json file
Expand All @@ -348,7 +368,7 @@ function pwsix_process_settings_import()
if (empty($_REQUEST['pwsix_import_nonce']) || !wp_verify_nonce($_REQUEST['pwsix_import_nonce'], 'pwsix_import_nonce')) {
return;
}
if (! current_user_can('manage_bread')) {
if (! $this->current_user_can_modify()) {
return;
}
$this->bread->getConfigurationForSettingId($this->bread->getRequestedSetting());
Expand Down Expand Up @@ -376,7 +396,7 @@ function pwsix_process_settings_import()
update_option($this->bread->getOptionsName(), $this->bread->getOptions());
setcookie('current-meeting-list', $this->bread->getRequestedSetting(), time() + 10);
setcookie('bread_import_file', $import_file, time() + 10);
wp_safe_redirect(admin_url('?page=class-bread-admin.php'));
wp_safe_redirect(admin_url('?page=bmlt-enabled-bread'));
}
function my_theme_add_editor_styles()
{
Expand Down Expand Up @@ -430,14 +450,18 @@ function get($url, $cookies = array())
*/
function admin_submenu_link($parent_slug)
{
activate_bread();
Bread_activate();
$this->bmltEnabled_admin->createMenu();

$cap = 'manage_options';
if (!current_user_can($cap)) {
$cap = 'manage_bread';
}
$this->hook = add_submenu_page(
$parent_slug,
'Printable Meeting Lists',
'Printable Meeting Lists',
'manage_bread',
$cap,
'bmlt-enabled-bread',
array(&$this, 'admin_options_page'),
2
Expand Down
24 changes: 24 additions & 0 deletions admin/css/admin-fonts.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@font-face {
font-family:'DejaVuSansCondensed';
src:url(../../vendor/mpdf/mpdf/ttfonts/DejaVuSansCondensed.ttf) format('truetype');
font-display: block;
}
@font-face {
font-family:'DejaVuSansCondensed';
src:url(../../vendor/mpdf/mpdf/ttfonts/DejaVuSansCondensed-Bold.ttf) format('truetype');
font-display: block;
font-weight: bold;
}
@font-face {
font-family:'DejaVuSansCondensed';
src:url(../../vendor/mpdf/mpdf/ttfonts/DejaVuSansCondensed-BoldOblique.ttf) format('truetype');
font-display: block;
font-weight: bold;
font-style: italic;
}
@font-face {
font-family:'DejaVuSansCondensed';
src:url(../../vendor/mpdf/mpdf/ttfonts/DejaVuSansCondensed-Oblique.ttf) format('truetype');
font-display: block;
font-style: italic;
}
Loading