Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
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