Featured Posts

jQuery Multi-Level AccordionjQuery Multi-Level Accordion Just another take on an accordion style navigation. For our requirements, the navigation was a template and needed to be n-levels deep to take into account any possible...

Readmore

jQuery Dynamic FormjQuery Dynamic Form Scenario: Building web forms can be tricky when a form calls for a variable number of fields. A real-world example might be a sports team with an n number of players. When...

Readmore

A PHP Pagination FunctionA PHP Pagination Function Here's a PHP function "getPaginationHtml()" that builds an item-pagination type HTML DIV based on parameters only, i.e. no database recordset needed. Note the user of a second...

Readmore

A PHP Calendar Class Based on Zend_DateA PHP Calendar Class Based on Zend_Date A recent project required an event calendar in both a mini and full sized format. The project was based on Zend Framework, a highly scalable and feature-rich PHP MVC framework....

Readmore

Analyzing the Impact of Web Page Textual Data Representation on the  Accuracy of Selected Supervised Learning ModelsAnalyzing the Impact of Web Page Textual Data Representation... We looked at the effectiveness of supervised learning models in solving the real-world problem of web page classification. We attempted to maximize the performance of...

Readmore

Arietis Software Innovations Rss

A PHP Calendar Class Based on Zend_Date

Posted on : 26-05-2009 | By : Derek | In : PHP, Posts, Zend

Tags: , , , , , , ,

14

A recent project required an event calendar in both a mini and full sized format. The project was based on Zend Framework, a highly scalable and feature-rich PHP MVC framework. The resulting Calendar class is admittedly quite basic, but I thought it might prove useful for other PHP/Zend coders who are trying to find a simple yet extensible Calendar solution for their own projects.

Localization

The benefit of using Zend_Date is that it relies on Zend_Locale for localization. To promote this, this custom Calendar class can be used to create a calendar in any language via the class constructor’s ‘locale’ parameter.

Features

  • It can output HTML in the form of a table with the month, days of the week, and days visible.
  • It can generate the calendar HTML header alone, or the calendar HTML table body alone.
  • It can also be used to generate previous and next month links in the case you wanted to allow users to select the month themselves.
  • There is control over the table css, select box css , and select box form name via the html methods parameters
  • The class can also be used to generate Calendar data that you can access via more standard (get and set) methods to support your own unique Calendaring needs, i.e. without relying on HTML output.

Demo

Here is a link to a demo to get you started.

Downloads

  1. Download the code here: CalendarClassPhp (336)
  2. Comment below and let me know if it met your needs!
VN:F [1.8.2_1042]
Rating: 4.2/5 (3 votes cast)
A PHP Calendar Class Based on Zend_Date4.253
Share and Enjoy:
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • MySpace
  • Slashdot
  • Technorati
  • Twitter

Comments (14)

Hi

I had seen this calender this is amazing….
But i wanna three calender on one page some like

January — February — March On one page with next and previous link

Among other things, this class allows you to generate the entire Calendar HTML (getCalendarHtml), the calendar HTML header alone (getCalendarHeaderHtml ) or the calendar HTML body alone (getCalendarBodyHtml).
The simplest way would be to create your own method that would use three calendar objects (returning just the calendar body), coupled with your own implementation of the calendar header (using the non-html generating class methods alone). Of course, this isn’t the most elegant solution, but it would work in theory.

Thank you very much :-)
You save me a lot of work.
I use it in my application with minimum of modifications.

hi this calander is good, but i see 32 days in a month?? please help

@Sandeep. I identified and fixed the extra day issue. Download the latest version.

Derek,

This is awesome. Thanks a lot for making it. First thing I added was a __toString overload ;)

public function __toString()
{
return $this->getCalendarHtml();
}

so you can do

@Ben. Good idea! Should have done that myself!

Hi Derek,
First of all thanks for the effort
Second, I’m new to ZF and I want to use the calender.
where should I place the Calendar class and the demo code within the ZF project folders, in order to make it work on my website?

Many Thanks,
Oran

@Oran. You can put the Calendar class anywhere you like! Just make sure its part of your include path. Typically, zend framework components are stored in the ‘/library/Zend’ folder, with the include path set to ‘library’.
ex: set_include_path(get_include_path() . PATH_SEPARATOR . ‘/path/to/Zend’);
I would suggest you put the Calendar class inside the ‘library’ folder as well, either on its own, or in another folder called ‘Custom’. If you go the first route, include it in your php files using require_once ‘Calendar.php’; . In the second example use, require_once ‘Custom/Calendar.php’;

Nice job. However, there are some notices poping up. I found the issues, here are they:

1 – line 176. “$html .= “, just remove the “.”, as the $html is being created now.

2 – You call $this->localeStr, but did not declare it. Just add “private $localeStr;” at the beginning of the class together with the other properties.

3 – Do not use “onclick” for a select form element. Use “onchange” instead, or it will submit before the user is able to choose the option.

That’s all for now. Good work.

@Jaime Neto Thanks for your suggestions. I’ll look into it. Feel free to pass along the fixes if you’ve implemented them.

this as a view helper for ZF == AWESOME!

@Christian. I agree! That would be the best place for it. I’ll let you know when I get a chance to do just that. Thanks.

Very useful! With ZF i put this as “services”:

class Service_Calendar

and config Bootstrap for the prefix “Service” on a folder into the project, without touch Zend Library.

Write a comment