Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HebEngEventCal

PHP calendar of events with Hebrew and Gregorian dates

This project is a php class that functions as a plugin, displaying a combined Hebrew/Gregorian date calendar with links to events pulled from a database or RSS feed. Currently only MySql databases are supported, with RSS support planned in the near future.

Two unique features of this plugin are that 1.) included in the class is an option to display the table layout and caption in Hebrew or English, configurable for best match to the website it's being displayed on, and 2.) the calendar doesn't display by month, but starts from today and shows a set number of days in the future, ideal for an 'upcoming events' calendar.

Implementation

  1. Install the class wherever you deem convenient in your file structure, by cloning the repo and copying it to your server. The repo contains only two files: hebEngCal.php, which contains the class, and the calendar.css file, which has default style definitions for the calendar.

  2. Include the 'hebEngCal.php' on the web page you want to use the calendar on, like this: `include "hebEngCal.php";

  3. Instantiate the class and configure the database login info and additional details for the class to function properly, as explained below:

The class contains the following properties:

	string tableName // name of table in database where data is stored for upcoming events string dateField // field in said table that contains the event date
string dateFormat // format of date in dateField, according to PHP DateTime formatting(http://www.php.net/manual/en/datetime.createfromformat.php). If the date format includes a timestamp, the timestamp needs be truncated in order for the events to show up in the calendar
string linkURL // URL of the page the links lead to, with room for the event identifier: 'http://mysite.com/events.php?id='. Not necessary if linkIDField contains full URL for event page
int days // Number of days the calendar should display, starting from the present date. Default value is 60
boolean eventText // Determines whether or not to display event title text in the calendar dates (TRUE for large, full page calendar, FALSE for compact calendar in the sidebar). Default value is FALSE
string eventTextField	// Field in the table where event titles are stored. Not necessary if eventText = FALSE
boolean hebTitles // Determines what language calendar caption will display in, and what direction the days will follow. Default value is TRUE (Hebrew, rtl)
string linkIdField // Field in the table that contains a unique identifier, or unique URL, for each event
Array dbArray // Array containing database login details, in the following order: host, database name, user name, password

All the properties can be set individually, or in the constructor. The constructor looks like this:

public function __construct($tableName="",$dateField="",$linkIdField="",$dateFormat="",$linkURL="",$dbArray=Array(),$days=60, $hebTitles=TRUE,$eventText=FALSE,$eventTextField="",$method="RSS")

Methods

The class contains only two methods, setDbParams(Array $dbArray), used to pass the database login parameters if they weren't set in with the constructor. The second method is the printCal() method. It takes no parameters, and should be called only after all the properties have been set.

In addition to the PHP, the CSS file includes selectors for all the various components of the calendar, as well as default style definitions. The default is for a small, text-less Hebrew (rtl) calendar.

Code Example

<?php
$myCal = new HeEnEventCal();
$myCal->tableName="events";
$myCal->hebTitles=FALSE;
$myCal->eventText=TRUE;
$myCal->eventTextField="Title";
$myCal->dateField="Date";
$myCal->linkURL="http://mysite.com/eventcalendar.php?id=";
$myCal->linkIdField="eventID";
$myCal->dateFormat='d-M-Y';
$dbArray = array("localhost","myDB","myuser","mypass");
$myCal->setDbParams($dbArray);
$myCal->printCal();
?>

Live Demo

A live demo is available here

Known Issues

In order for the events to be visible when the calendar is small and doesn't display event text, it is necessary to add client-side code to color the background of the calendar dates a different color if they contain an event. To that end, this line of jQuery is sufficient:

$("td").has("a.cal_link").css("background-color","#E090F0"); // of course, you can change the color to whatever you like

This can also be used for a larger calendar, making the event dates more immediately visible.

There is currently no MySql/SQL error handling implemented, but it is planned for the near future.

About

PHP calendar of events with Hebrew and Gregorian dates

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages