public function getCalendarStructure()
 {
     $end_date = clone $this->config->getStartDate();
     $end_date->add($this->config->getInterval());
     $period = new \DatePeriod($this->config->getStartDate(), new \DateInterval('P1D'), $end_date);
     $cal = array();
     foreach ($period as $date) {
         $year = $date->format('Y');
         $month = $date->format('n');
         $day = $date->format('j');
         $quarter = (int) ceil($month / 3);
         $week = $date->format('W');
         $week_day = $date->format('w');
         if (!array_key_exists($year, $cal)) {
             $cal[$year] = array('type' => 'year', 'value' => $year, 'data' => $this->setDataInElement($date, 'year_callback'), 'elements' => array());
         }
         if (!array_key_exists($quarter, $cal[$year]['elements'])) {
             $cal[$year]['elements'][$quarter] = array('type' => 'quarter', 'value' => $quarter, 'data' => $this->setDataInElement($date, 'quarter_callback'), 'elements' => array());
         }
         if (!array_key_exists($month, $cal[$year]['elements'][$quarter]['elements'])) {
             $cal[$year]['elements'][$quarter]['elements'][$month] = array('type' => 'month', 'value' => $month, 'data' => $this->setDataInElement($date, 'month_callback'), 'elements' => array());
         }
         if (!array_key_exists($week, $cal[$year]['elements'][$quarter]['elements'][$month]['elements'])) {
             $cal[$year]['elements'][$quarter]['elements'][$month]['elements'][$week] = array('type' => 'week', 'value' => $week, 'data' => $this->setDataInElement($date, 'week_callback'), 'elements' => array());
         }
         if (!array_key_exists($day, $cal[$year]['elements'][$quarter]['elements'][$month]['elements'][$week]['elements'])) {
             $cal[$year]['elements'][$quarter]['elements'][$month]['elements'][$week]['elements'][$day] = array('type' => 'day', 'value' => $day, 'data' => $this->setDataInElement($date, 'day_callback'), 'weekday' => $week_day);
         }
     }
     $cal = $this->config->getFormatter()->setFormat($cal);
     return $cal;
 }
 /**
  * Contructor
  * @param type $controller
  * @param type $name
  */
 function __construct($controller, $name)
 {
     //Administering calendars
     if (CalendarConfig::subpackage_enabled('calendars')) {
         //Configuration for calendar grid field
         $gridCalendarConfig = GridFieldConfig_RecordEditor::create();
         $gridCalendarConfig->removeComponentsByType('GridFieldDataColumns');
         $gridCalendarConfig->addComponent($dataColumns = new GridFieldDataColumns(), 'GridFieldEditButton');
         $c = singleton('Calendar');
         $summaryFields = $c->summaryFields();
         //$summaryFields = array(
         //	'Title' => 'Title',
         //	//'SubscriptionOptIn' => 'Opt In',
         //	//'Shaded' => 'Shaded'
         //);
         $s = CalendarConfig::subpackage_settings('calendars');
         //show shading info in the gridfield
         if ($s['shading']) {
             $summaryFields['Shaded'] = 'Shaded';
         }
         $dataColumns->setDisplayFields($summaryFields);
         //settings for the case that colors are enabled
         if ($s['colors']) {
             $dataColumns->setFieldFormatting(array("Title" => '<div style=\\"height:20px;width:20px;display:inline-block;vertical-align:middle;margin-right:6px;background:$Color\\"></div> $Title'));
         }
         $GridFieldCalendars = new GridField('Calendars', '', PublicCalendar::get(), $gridCalendarConfig);
         $fields = new FieldList($GridFieldCalendars);
         $actions = new FieldList();
         $this->addExtraClass('CalendarsForm');
         parent::__construct($controller, $name, $fields, $actions);
     }
 }
 /**
  * Getting a color palette
  * For now we only have a hsv palette, could be extended with more options
  *
  * Potential options:
  * Standard CKEditor color palette
  * http://stackoverflow.com/questions/13455922/display-only-few-desired-colors-in-a-ckeditor-palette
  * 000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF
  *
  * Consider adding color names like this:
  * http://stackoverflow.com/questions/2993970/function-that-converts-hex-color-values-to-an-approximate-color-name
  *
  * Color variation:
  * http://stackoverflow.com/questions/1177826/simple-color-variation
  *
  * @param int $numColors Number of colors - default: 30
  * @return null
  */
 public static function get_palette($numColors = 50, $type = 'hsv')
 {
     //overwriting with the palette from the calendar settings
     $s = CalendarConfig::subpackage_settings('colors');
     $arr = $s['basepalette'];
     return $arr;
     if ($type == 'hsv') {
         $s = 1;
         $v = 1;
         $arr = array();
         for ($i = 0; $i <= $numColors; $i++) {
             $c = new Color();
             $h = $i / $numColors;
             $hex = $c->fromHSV($h, $s, $v)->toHexString();
             $arr[$hex] = $hex;
         }
         return $arr;
     } elseif ($type == 'websafe') {
         //websafe colors
         $cs = array('00', '33', '66', '99', 'CC', 'FF');
         $arr = array();
         for ($i = 0; $i < 6; $i++) {
             for ($j = 0; $j < 6; $j++) {
                 for ($k = 0; $k < 6; $k++) {
                     $c = $cs[$i] . $cs[$j] . $cs[$k];
                     $arr["{$c}"] = "#{$c}";
                 }
             }
         }
         return $arr;
     }
 }
 /**
  * Config setter & getter
  * This serves as a settings setter and getter at the same time
  */
 public static function settings($settings = NULL)
 {
     if ($settings) {
         //set mode
         self::$settings = self::mergeSettings(self::$settings, $settings);
     } else {
         //get mode
     }
     //always return settings
     return self::$settings;
 }
 /**
  * Contructor
  * @param type $controller
  * @param type $name
  */
 public function __construct($controller, $name)
 {
     //Administering categories
     if (CalendarConfig::subpackage_enabled('categories')) {
         $gridCategoryConfig = GridFieldConfig_RecordEditor::create();
         $GridFieldCategories = new GridField('Categories', '', PublicEventCategory::get(), $gridCategoryConfig);
         $fields = new FieldList($GridFieldCategories);
         $actions = new FieldList();
         $this->addExtraClass('CategoriesForm');
         parent::__construct($controller, $name, $fields, $actions);
     }
 }
    private function build_view(HTTPRequestCustom $request)
    {
        $db_querier = PersistenceContext::get_querier();
        $date_lang = LangLoader::get('date-common');
        $events_list = $participants = array();
        $config = CalendarConfig::load();
        $year = $this->year ? $this->year : $request->get_int('calendar_ajax_year', date('Y'));
        $month = $this->month ? $this->month : $request->get_int('calendar_ajax_month', date('n'));
        $day = $this->day ? $this->day : $request->get_int('calendar_ajax_day', 1);
        $array_l_month = array($date_lang['january'], $date_lang['february'], $date_lang['march'], $date_lang['april'], $date_lang['may'], $date_lang['june'], $date_lang['july'], $date_lang['august'], $date_lang['september'], $date_lang['october'], $date_lang['november'], $date_lang['december']);
        $result = $db_querier->select("SELECT *\n\t\tFROM " . CalendarSetup::$calendar_events_table . " event\n\t\tLEFT JOIN " . CalendarSetup::$calendar_events_content_table . " event_content ON event_content.id = event.content_id\n\t\tLEFT JOIN " . DB_TABLE_MEMBER . " member ON member.user_id = event_content.author_id\n\t\tLEFT JOIN " . DB_TABLE_COMMENTS_TOPIC . " com ON com.id_in_module = event.id_event AND com.module_id = 'calendar'\n\t\tWHERE approved = 1\n\t\tAND ((start_date BETWEEN :first_day_hour AND :last_day_hour) OR (end_date BETWEEN :first_day_hour AND :last_day_hour) OR (:first_day_hour BETWEEN start_date AND end_date))\n\t\tORDER BY start_date ASC", array('first_day_hour' => mktime(0, 0, 0, $month, $day, $year), 'last_day_hour' => mktime(23, 59, 59, $month, $day, $year)));
        while ($row = $result->fetch()) {
            $event = new CalendarEvent();
            $event->set_properties($row);
            $events_list[$event->get_id()] = $event;
        }
        $result->dispose();
        $events_number = $result->get_rows_count();
        $this->view->put_all(array('C_COMMENTS_ENABLED' => $config->are_comments_enabled(), 'C_EVENTS' => $events_number > 0, 'DATE' => $day . ' ' . $array_l_month[$month - 1] . ' ' . $year, 'L_EVENTS_NUMBER' => $events_number > 1 ? StringVars::replace_vars($this->lang['calendar.labels.events_number'], array('events_number' => $events_number)) : $this->lang['calendar.labels.one_event']));
        if (!empty($events_list)) {
            $result = $db_querier->select('SELECT event_id, member.user_id, display_name, level, groups
			FROM ' . CalendarSetup::$calendar_users_relation_table . ' participants
			LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = participants.user_id
			WHERE event_id IN :events_list', array('events_list' => array_keys($events_list)));
            while ($row = $result->fetch()) {
                if (!empty($row['display_name'])) {
                    $participant = new CalendarEventParticipant();
                    $participant->set_properties($row);
                    $participants[$row['event_id']][$participant->get_user_id()] = $participant;
                }
            }
            $result->dispose();
            foreach ($events_list as $event) {
                if (isset($participants[$event->get_id()])) {
                    $event->set_participants($participants[$event->get_id()]);
                }
                $this->view->assign_block_vars('event', $event->get_array_tpl_vars());
                $participants_number = count($event->get_participants());
                $i = 0;
                foreach ($event->get_participants() as $participant) {
                    $i++;
                    $this->view->assign_block_vars('event.participant', array_merge($participant->get_array_tpl_vars(), array('C_LAST_PARTICIPANT' => $i == $participants_number)));
                }
            }
        }
    }
 private function build_view()
 {
     $event = $this->get_event();
     $category = $event->get_content()->get_category();
     $this->tpl->put_all(array_merge($event->get_array_tpl_vars(), array('NOT_VISIBLE_MESSAGE' => MessageHelper::display(LangLoader::get_message('element.not_visible', 'status-messages-common'), MessageHelper::WARNING))));
     $participants_number = count($event->get_participants());
     $i = 0;
     foreach ($event->get_participants() as $participant) {
         $i++;
         $this->tpl->assign_block_vars('participant', array_merge($participant->get_array_tpl_vars(), array('C_LAST_PARTICIPANT' => $i == $participants_number)));
     }
     if (CalendarConfig::load()->are_comments_enabled()) {
         $comments_topic = new CalendarCommentsTopic($event);
         $comments_topic->set_id_in_module($event->get_id());
         $comments_topic->set_url(CalendarUrlBuilder::display_event($category->get_id(), $category->get_rewrited_name(), $event->get_id(), $event->get_content()->get_rewrited_title()));
         $this->tpl->put_all(array('C_COMMENTS_ENABLED' => true, 'COMMENTS' => $comments_topic->display()));
     }
 }
 private function save()
 {
     $this->config->set_items_number_per_page($this->form->get_value('items_number_per_page'));
     if ($this->form->get_value('comments_enabled')) {
         $this->config->enable_comments();
     } else {
         $this->config->disable_comments();
     }
     $this->config->set_event_color($this->form->get_value('event_color'));
     if ($this->form->get_value('members_birthday_enabled')) {
         $this->config->enable_members_birthday();
         $this->config->set_birthday_color($this->form->get_value('birthday_color'));
     } else {
         $this->config->disable_members_birthday();
     }
     $this->config->set_authorizations($this->form->get_value('authorizations')->build_auth_array());
     CalendarConfig::save();
     CalendarService::get_categories_manager()->regenerate_cache();
     CalendarCurrentMonthEventsCache::invalidate();
 }
 public static function eventConfig()
 {
     $gridEventConfig = GridFieldConfig_RecordEditor::create();
     //Custom detail form
     $gridEventConfig->removeComponentsByType('GridFieldDetailForm');
     $gridEventConfig->addComponent(new CalendarEventGridFieldDetailForm());
     //Custom columns
     $gridEventConfig->removeComponentsByType('GridFieldDataColumns');
     $dataColumns = new GridFieldDataColumns();
     $summaryFields = Event::$summary_fields;
     //Show the page if the event is connected to an event page
     if (CalendarConfig::subpackage_setting('pagetypes', 'enable_eventpage')) {
         $summaryFields['getEventPageCalendarTitle'] = 'Page';
     }
     //event classname - we might not always want it here - but here it is - for now
     $summaryFields['i18n_singular_name'] = 'Type';
     $dataColumns->setDisplayFields($summaryFields);
     $gridEventConfig->addComponent($dataColumns, 'GridFieldEditButton');
     return $gridEventConfig;
 }
 /**
  * Handles returning the JSON events data for a time range.
  *
  * @param SS_HTTPRequest $request
  * @return SS_HTTPResponse
  */
 public function publicevents($request, $json = true, $calendars = null, $offset = 30)
 {
     $calendarsSupplied = false;
     if ($calendars) {
         $calendarsSupplied = true;
     }
     $events = PublicEvent::get()->filter(array('StartDateTime:GreaterThan' => $this->eventlistOffsetDate('start', $request->postVar('start'), $offset), 'EndDateTime:LessThan' => $this->eventlistOffsetDate('end', $request->postVar('end'), $offset)));
     //If shaded events are enabled we need to filter shaded calendars out
     //note that this only takes effect when no calendars have been supplied
     //if calendars are supplied, this needs to be taken care of from that method
     $sC = CalendarConfig::subpackage_settings('calendars');
     if ($sC['shading']) {
         if (!$calendars) {
             $calendars = PublicCalendar::get();
             $calendars = $calendars->filter(array('shaded' => false));
         }
     }
     if ($calendars) {
         $calIDList = $calendars->getIdList();
         //adding in 0 to allow for showing events without a calendar
         if (!$calendarsSupplied) {
             $calIDList[0] = 0;
         }
         //Debug::dump($calIDList);
         $events = $events->filter('CalendarID', $calIDList);
     }
     $result = array();
     if ($events) {
         foreach ($events as $event) {
             $calendar = $event->Calendar();
             $bgColor = '#999';
             //default
             $textColor = '#FFF';
             //default
             $borderColor = '#555';
             if ($calendar->exists()) {
                 $bgColor = $calendar->getColorWithHash();
                 $textColor = '#FFF';
                 $borderColor = $calendar->getColorWithHash();
             }
             $resultArr = self::format_event_for_fullcalendar($event);
             $resultArr = array_merge($resultArr, array('backgroundColor' => $bgColor, 'textColor' => '#FFF', 'borderColor' => $borderColor));
             $result[] = $resultArr;
         }
     }
     if ($json) {
         $response = new SS_HTTPResponse(Convert::array2json($result));
         $response->addHeader('Content-Type', 'application/json');
         return $response;
     } else {
         return $result;
     }
 }
 public function CalendarViewLink()
 {
     $s = CalendarConfig::subpackage_settings('pagetypes');
     $indexSetting = $s['calendarpage']['index'];
     $link = $this->Link();
     if ($indexSetting == 'eventlist') {
         return $link . 'calendarview/';
     } elseif ($indexSetting == 'calendarview') {
         return $link;
     }
 }
 public function get_root_category()
 {
     $root = new RootCategory();
     $root->set_authorizations(CalendarConfig::load()->get_authorizations());
     return $root;
 }
Exemplo n.º 13
0
 /**
  * Frontend fields
  * Simple list of the basic fields - how they're intended to be edited
  */
 function getFrontEndFields($params = null)
 {
     //parent::getFrontEndFields($params);
     $timeFrameHeaderText = 'Time Frame';
     if (!CalendarConfig::subpackage_setting('events', 'force_end')) {
         $timeFrameHeaderText = 'End Date / Time (optional)';
     }
     $fields = FieldList::create(TextField::create('Title')->setAttribute('placeholder', 'Enter a title'), CheckboxField::create('AllDay', 'All-day'), $startDateTime = DatetimeField::create('StartDateTime', 'Start'), CheckboxField::create('NoEnd', 'Open End'), HeaderField::create('TimeFrameHeader', $timeFrameHeaderText, 5), SelectionGroup::create('TimeFrameType', array("Duration//Duration" => TimeField::create('Duration', '')->setRightTitle('up to 24h')->setAttribute('placeholder', 'Enter duration'), "DateTime//Date/Time" => $endDateTime = DateTimeField::create('EndDateTime', ''))), LiteralField::create('Clear', '<div class="clear"></div>'));
     //Date field settings
     $timeExpl = 'Time, e.g. 11:15am or 15:30';
     //$startDateTime->setConfig('datavalueformat', 'YYYY-MM-dd HH:mm');
     //$endDateTime->setConfig('datavalueformat', 'YYYY-MM-dd HH:mm');
     $startDateTime->getDateField()->setConfig('showcalendar', 1)->setAttribute('placeholder', 'Enter date')->setAttribute('readonly', 'true');
     //we only want input through the datepicker
     $startDateTime->getTimeField()->setConfig('timeformat', 'HH:mm')->setAttribute('placeholder', 'Enter time');
     $endDateTime->getDateField()->setConfig('showcalendar', 1)->setAttribute('placeholder', 'Enter date')->setAttribute('readonly', 'true');
     //we only want input through the datepicker
     $endDateTime->getTimeField()->setConfig('timeformat', 'HH:mm')->setAttribute('placeholder', 'Enter time');
     //removing AllDay checkbox if allday events are disabled
     if (!CalendarConfig::subpackage_setting('events', 'enable_allday_events')) {
         $fields->removeByName('AllDay');
     }
     //removing NoEnd checkbox if end dates are enforced
     if (CalendarConfig::subpackage_setting('events', 'force_end')) {
         $fields->removeByName('NoEnd');
     } else {
         //we don't want the NoEnd checkbox when creating new events
         if (!$this->ID) {
             //$fields->removeByName('NoEnd');
         }
     }
     $this->extend('updateFrontEndFields', $fields);
     return $fields;
 }
    private function build_view(HTTPRequestCustom $request)
    {
        $config = CalendarConfig::load();
        $categories = CalendarService::get_categories_manager()->get_categories_cache()->get_categories();
        $year = $this->year ? $this->year : min($request->get_int('calendar_ajax_year', date('Y')), 2037);
        $month = $this->month ? $this->month : min($request->get_int('calendar_ajax_month', date('n')), 12);
        $bissextile = date("L", mktime(0, 0, 0, 1, 1, $year)) == 1 ? 29 : 28;
        $array_month = array(31, $bissextile, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        $array_l_month = array($this->lang['january'], $this->lang['february'], $this->lang['march'], $this->lang['april'], $this->lang['may'], $this->lang['june'], $this->lang['july'], $this->lang['august'], $this->lang['september'], $this->lang['october'], $this->lang['november'], $this->lang['december']);
        $month_days = $array_month[$month - 1];
        $previous_month = $month == 1 ? 12 : $month - 1;
        $previous_year = $month == 1 ? $year - 1 : $year;
        $next_month = $month == 12 ? 1 : $month + 1;
        $next_year = $month == 12 ? $year + 1 : $year;
        //Months
        for ($i = 1; $i <= 12; $i++) {
            $this->view->assign_block_vars('months', array('VALUE' => $i, 'NAME' => $array_l_month[$i - 1], 'SELECTED' => $month == $i));
        }
        //Years
        for ($i = 1970; $i <= 2037; $i++) {
            $this->view->assign_block_vars('years', array('VALUE' => $i, 'NAME' => $i, 'SELECTED' => $year == $i));
        }
        //Retrieve all the events of the selected month
        $events = $month == date('n') && $year == date('Y') ? CalendarCurrentMonthEventsCache::load()->get_events() : CalendarService::get_all_current_month_events($month, $year, $month_days);
        $events_legends_list = array();
        foreach ($events as $event) {
            $start_date = new Date($event['start_date'], Timezone::SERVER_TIMEZONE);
            $end_date = new Date($event['end_date'], Timezone::SERVER_TIMEZONE);
            if (($end_date->get_month() > $start_date->get_month() || $end_date->get_year() > $start_date->get_year()) && $month == $start_date->get_month()) {
                $first_event_day = $start_date->get_day();
                $last_event_day = $array_month[$month - 1];
            } else {
                if (($end_date->get_month() > $start_date->get_month() || $end_date->get_year() > $start_date->get_year()) && $month == $end_date->get_month()) {
                    $first_event_day = 1;
                    $last_event_day = $end_date->get_day();
                } else {
                    if (($end_date->get_month() > $start_date->get_month() || $end_date->get_year() > $start_date->get_year()) && $month > $start_date->get_month() && $month < $end_date->get_month()) {
                        $first_event_day = 1;
                        $last_event_day = $array_month[$month - 1];
                    } else {
                        $first_event_day = $start_date->get_day();
                        $last_event_day = $end_date->get_day();
                    }
                }
            }
            for ($j = $first_event_day; $j <= $last_event_day; $j++) {
                if ($event['type'] == 'EVENT' || $event['type'] == 'BIRTHDAY') {
                    $title = isset($array_events[$j]['title']) ? $array_events[$j]['title'] : '';
                    $array_events[$j] = array('title' => $title . (!empty($title) ? '
' : '') . ($event['type'] != 'BIRTHDAY' ? $j == $start_date->get_day() && $month == $start_date->get_month() && $year == $start_date->get_year() ? $start_date->get_hours() . 'h' . $start_date->get_minutes() . ' : ' : '' : LangLoader::get_message('calendar.labels.birthday_title', 'common', 'calendar') . ' ') . $event['title'], 'type' => $event['type'], 'color' => $event['type'] == 'BIRTHDAY' ? $config->get_birthday_color() : ($event['id_category'] != Category::ROOT_CATEGORY && $categories[$event['id_category']]->get_color() ? $categories[$event['id_category']]->get_color() : $config->get_event_color()), 'id_category' => $event['id_category']);
                    if ($event['type'] == 'BIRTHDAY') {
                        $events_legends_list[$j] = array('name' => LangLoader::get_message('calendar.labels.birthday', 'common', 'calendar'), 'color' => $config->get_birthday_color());
                    } else {
                        if ($event['type'] == 'EVENT' && $event['id_category'] == Category::ROOT_CATEGORY) {
                            $events_legends_list[$j] = array('name' => LangLoader::get_message('calendar.titles.event', 'common', 'calendar'), 'color' => $config->get_event_color());
                        } else {
                            if (!isset($events_legends_list[$event['id_category']])) {
                                $events_legends_list[$j] = array('name' => $categories[$event['id_category']]->get_name(), 'color' => $categories[$event['id_category']]->get_color());
                            }
                        }
                    }
                }
            }
        }
        $this->view->put_all(array('C_MINI_MODULE' => $this->is_mini_calendar(), 'C_DISPLAY_LEGEND' => !empty($events_legends_list) && !$this->is_mini_calendar(), 'DATE' => $array_l_month[$month - 1] . ' ' . $year, 'MINI_MODULE' => (int) $this->is_mini_calendar(), 'PREVIOUS_MONTH_TITLE' => $month == 1 ? $array_l_month[11] . ' ' . ($year - 1) : $array_l_month[$month - 2] . ' ' . $year, 'PREVIOUS_YEAR' => $previous_year, 'PREVIOUS_MONTH' => $previous_month, 'NEXT_MONTH_TITLE' => $month == 12 ? $array_l_month[0] . ' ' . ($year + 1) : $array_l_month[$month] . ' ' . $year, 'NEXT_YEAR' => $next_year, 'NEXT_MONTH' => $next_month, 'LEGEND' => self::build_legend($events_legends_list), 'U_AJAX_CALENDAR' => CalendarUrlBuilder::ajax_month_calendar()->rel(), 'U_AJAX_EVENTS' => CalendarUrlBuilder::ajax_month_events()->rel()));
        //First day of the month
        $first_day = date('w', @mktime(1, 0, 0, $month, 1, $year));
        if ($first_day == 0) {
            $first_day = 7;
        }
        //Calendar generation
        $day = 1;
        $last_day = $month_days + $first_day;
        for ($i = 1; $i <= 56; $i++) {
            $birthday_day = $color = false;
            if ($i % 8 == 1 && $i < $last_day) {
                $content = date('W', mktime(0, 0, 0, $month, $day, $year));
                $class = 'calendar-week';
                $last_day++;
            } else {
                if ($i >= $first_day + 1 && $i < $last_day) {
                    if ($day == date("j") && $month == date("m") && $year == date("Y")) {
                        $class = 'calendar-today';
                    } else {
                        if (!empty($array_events[$day])) {
                            $birthday_day = $array_events[$day]['type'] == 'BIRTHDAY';
                            $color = $array_events[$day]['color'];
                            $class = '';
                        } else {
                            if ($i % 8 == 7 || $i % 8 == 0) {
                                $class = 'calendar-weekend';
                            } else {
                                $class = 'calendar-other';
                            }
                        }
                    }
                    $content = $day;
                    $day++;
                } else {
                    if (($i % 8 == 7 || $i % 8 == 0) && $i > $first_day && $day <= $month_days) {
                        $class = 'calendar-weekend';
                    } else {
                        $class = 'calendar-none';
                    }
                }
            }
            if ($day > $month_days && $i % 8 == 0) {
                $i = 56;
            }
            $today = $day - 1;
            $this->view->assign_block_vars('day', array('C_MONTH_DAY' => $i % 8 != 1 && $class != 'calendar-none', 'C_COLOR' => $color || $birthday_day, 'C_WEEK_LABEL' => $i % 8 == 1, 'DAY' => $content, 'TITLE' => !empty($array_events[$today]) ? $array_events[$today]['title'] : '', 'COLOR' => $color, 'CLASS' => $class, 'CHANGE_LINE' => $i % 8 == 0 && $i != 56, 'U_DAY_EVENTS' => CalendarUrlBuilder::home($year, $month, $today, true)->rel()));
        }
    }
    private function get_pagination($condition, $parameters, $page)
    {
        $row = PersistenceContext::get_querier()->select_single_row_query('SELECT COUNT(*) AS events_number
		FROM ' . CalendarSetup::$calendar_events_table . ' event
		LEFT JOIN ' . CalendarSetup::$calendar_events_content_table . ' event_content ON event_content.id = event.content_id
		' . $condition, $parameters);
        $pagination = new ModulePagination($page, $row['events_number'], (int) CalendarConfig::load()->get_items_number_per_page());
        $pagination->set_url(CalendarUrlBuilder::display_pending_events('%d'));
        if ($pagination->current_page_is_empty() && $page > 1) {
            $error_controller = PHPBoostErrors::unexisting_page();
            DispatchManager::redirect($error_controller);
        }
        return $pagination;
    }
 public function CategoriesEnabled()
 {
     return CalendarConfig::subpackage_enabled('categories');
 }
Exemplo n.º 17
0
<?php

global $project;
$project = 'mysite';
global $database;
// find the database name from the environment file
if (defined('SS_DATABASE_NAME') && SS_DATABASE_NAME) {
    $database = SS_DATABASE_NAME;
} else {
    $database = 'SS_nzlarps';
}
require_once 'conf/ConfigureFromEnv.php';
// Set the site locale
i18n::set_locale('en_US');
CalendarConfig::init(array('categories' => array('enabled' => false)));
$standardsEditor = HtmlEditorConfig::get('standards');
$standardsEditor->setOptions(array('theme_advanced_buttons3' => 'pagebreak', 'pagebreak_separator' => '<span class="break"><!--break--></span>'));
$standardsEditor->enablePlugins('pagebreak');
$standardsEditor->insertButtonsAfter('separator', 'pagebreak');
Exemplo n.º 18
0
 /**
  * @desc Return all the events of the requested month.
  * @param int $month Month of the request
  * @param int $year Year of the request
  * @param int $month_days Number of days in the requested month
  */
 public static function get_all_current_month_events($month, $year, $month_days, $id_category = Category::ROOT_CATEGORY)
 {
     $authorized_categories = CalendarService::get_authorized_categories($id_category);
     return self::$db_querier->select((CalendarConfig::load()->is_members_birthday_enabled() ? "\r\n\t\t(SELECT member_extended_fields.user_born AS start_date, member_extended_fields.user_born AS end_date, display_name AS title, 'BIRTHDAY' AS type, 0 AS id_category, '" . CalendarEventContent::YEARLY . "' AS repeat_type, 100 AS repeat_number\r\n\t\tFROM " . DB_TABLE_MEMBER . " member\r\n\t\tLEFT JOIN " . DB_TABLE_MEMBER_EXTENDED_FIELDS . " member_extended_fields ON member_extended_fields.user_id = member.user_id\r\n\t\tWHERE member_extended_fields.user_born <> '' AND MONTH(FROM_UNIXTIME(member_extended_fields.user_born)) = :month AND :year > YEAR(FROM_UNIXTIME(member_extended_fields.user_born)))\r\n\t\tUNION\r\n\t\t" : "") . "(SELECT start_date, end_date, title, 'EVENT' AS type, id_category, repeat_type, repeat_number\r\n\t\tFROM " . CalendarSetup::$calendar_events_table . " event\r\n\t\tLEFT JOIN " . CalendarSetup::$calendar_events_content_table . " event_content ON event_content.id = event.content_id\r\n\t\tWHERE approved = 1\r\n\t\tAND ((start_date BETWEEN :first_month_day AND :last_month_day) OR (end_date BETWEEN :first_month_day AND :last_month_day) OR (:first_month_day BETWEEN start_date AND end_date)) \r\n\t\tAND id_category IN :authorized_categories)\r\n\t\tORDER BY start_date ASC", array('month' => $month, 'year' => $year, 'first_month_day' => mktime(0, 0, 0, $month, 1, $year), 'last_month_day' => mktime(23, 59, 59, $month, $month_days, $year), 'authorized_categories' => $authorized_categories));
 }