コード例 #1
0
ファイル: PageMap.php プロジェクト: mbassan/backstage2
    function display()
    {
        global $CFG;
        $tab_id = $CFG->pm_editor ? $CFG->id : Control::getPageId($CFG->url, 1);
        if (!$tab_id > 0) {
            return false;
        }
        $current_tab = DB::getRecord('admin_tabs', $tab_id, 0, 1);
        $pages = self::getPages($tab_id);
        if ($pages) {
            $HTML = '
			<div class="page_map">';
            foreach ($pages as $page) {
                if ($CFG->pm_editor) {
                    $edit = '<a href="#" title="' . $CFG->edit_hover_caption . '" class="edit" class="method_edit_button" onclick="pmPageEdit(' . $page['id'] . ',event);return false;"></a>';
                }
                $order = $page['order'];
                $icon = $page['icon'] ? '<div class="lnk">' . Link::url($page['url'], '<img src="' . $page['icon'] . '" title="' . $page['name'] . '" />', false, false, false, 'content') . '</div>' : '';
                $pages_array[$order][] = '
				<div class="page_map_page o">
					<input type="hidden" id="id" value="' . $page['id'] . '" />
					' . $icon . '
					<div class="lnk">' . Link::url($page['url'], $page['name'], false, false, false, 'content') . '</div>
					' . $edit . '
					<div class="clear"></div>
				</div>';
            }
            $total = max(array_keys($pages_array));
            $total = $total + count($this->areas_s);
            $total = $total + count($this->areas_e);
            for ($i = 0; $i <= $total; $i++) {
                if ($this->areas_s[$i]) {
                    foreach ($this->areas_s[$i] as $area) {
                        $HTML .= $area;
                    }
                }
                if ($pages_array[$i]) {
                    foreach ($pages_array[$i] as $p) {
                        $HTML .= $p;
                    }
                }
                if ($this->areas_e[$i]) {
                    foreach ($this->areas_e[$i] as $area) {
                        $HTML .= $area;
                    }
                }
            }
            $HTML .= '</div>';
        } else {
            $HTML .= '<div class="no_pages">' . $CFG->pagemap_nothing . '</div>';
        }
        echo $HTML;
    }
コード例 #2
0
ファイル: String.php プロジェクト: mbassan/backstage2
 public static function showPath()
 {
     global $CFG;
     if ($_REQUEST['tab_bypass']) {
         return false;
     }
     if ($CFG->url) {
         $sql = "SELECT admin_tabs.name AS tab_name,admin_tabs.url AS tab_url" . (!$CFG->is_tab ? ",admin_pages.name AS page_name, admin_pages.url AS page_url" : '') . " FROM admin_tabs" . (!$CFG->is_tab ? ",admin_pages" : '') . " WHERE 1 " . (!$CFG->is_tab ? "AND admin_pages.url = '{$CFG->url}' AND admin_pages.f_id = admin_tabs.id" : " AND admin_tabs.url = '{$CFG->url}'");
         $result = db_query_array($sql);
     }
     echo '<div class="path">';
     echo '<a href="' . $CFG->self . '">' . $CFG->home_label . '</a>';
     if ($result) {
         echo $CFG->path_separator;
         echo !empty($result[0]['tab_url']) ? Link::url($result[0]['tab_url'], $result[0]['tab_name'], false, array('is_tab' => 1)) : $result[0]['tab_name'];
         if (!$CFG->is_tab) {
             echo $CFG->path_separator;
             echo !empty($result[0]['page_url']) ? Link::url($result[0]['page_url'], $result[0]['page_name']) : $result[0]['page_name'];
         }
         if ($CFG->action) {
             if ($CFG->action == 'form') {
                 $action = $CFG->path_edit;
             } elseif ($CFG->action == 'record') {
                 $action = $CFG->path_view;
             }
             echo $CFG->path_separator . $action;
         }
     } else {
         if (!$CFG->url) {
             echo $CFG->path_separator . $CFG->path_ctrl;
         } else {
             switch ($CFG->url) {
                 case 'edit_tabs':
                     echo $CFG->path_separator . $CFG->path_edit_tabs;
                     break;
                 case 'users':
                     echo $CFG->path_separator . $CFG->path_users;
                     break;
                 case 'settings':
                     echo $CFG->path_separator . $CFG->path_settings;
                     break;
             }
         }
     }
     echo '</div>';
 }
コード例 #3
0
ファイル: Form.php プロジェクト: mbassan/backstage2
 function filterFirstLetter($field_name, $subtable = false)
 {
     global $CFG;
     $properties = array('field_name' => $field_name, 'type' => 'first_letter', 'subtable' => $subtable);
     $range = range('A', 'Z');
     $HTML = '';
     foreach ($range as $l) {
         $HTML .= Link::url($this->go_to_url, $l, 'fl=' . $l . '&fl_field=' . $field_name . '&fl_subtable=' . $subtable . '&is_tab=' . $this->go_to_is_tab, false, false, 'content');
     }
     $CFG->o_method_id = $CFG->method_id;
     $CFG->o_method_name = 'filterFirstLetter';
     self::HTML($HTML);
     $CFG->o_method_suppress = true;
     self::HTML('<input type="hidden" name="filter_properties[' . $field_name . ']" value="' . urlencode(serialize($properties)) . '" />');
 }
コード例 #4
0
ファイル: index.php プロジェクト: mbassan/backstage2
                        $width_class = 'triple';
                    } elseif ($c > 5) {
                        $split = ceil($c / 2);
                        $width_class = 'double';
                    }
                    echo '
					<div class="menu_item">
						' . Link::url($tab['url'], $tab['name'] . ($pages ? '<div class="drop"></div>' : ''), false, array('is_tab' => 1));
                    if ($pages) {
                        $i = 0;
                        echo '
						<div class="options ' . $width_class . '">
							<div class="contain">
								<ul>';
                        foreach ($pages as $page) {
                            echo '<li>' . Link::url($page['url'], $page['name']) . '</li>';
                            $i++;
                            if ($split && $i % $split == 0) {
                                echo '<div class="clear"></div></ul><ul>';
                            }
                        }
                        echo '
							<div class="clear"></div>
								</ul>
								<div class="t_shadow"></div>
								<div class="r_shadow"></div>
								<div class="b_shadow"></div>
								<div class="l_shadow"></div>
								<div class="tl1_shadow"></div>
								<div class="tl2_shadow"></div>
								<div class="tr1_shadow"></div>
コード例 #5
0
ファイル: Record.php プロジェクト: mbassan/backstage2
 function link($url = false, $caption = false, $variables = false, $target_elem_id = false, $class = false, $disable_if_no_record_id = false, $disable_if_cant_edit = false)
 {
     global $CFG;
     $reserved_keywords = array('current_url', 'action', 'bypass', 'is_tab');
     if (is_array($variables)) {
         foreach ($variables as $k => $v) {
             $v1 = str_replace('[', '', str_replace(']', '', $v));
             if (in_array($k, $reserved_keywords)) {
                 $variables1[$k] = $v;
             } elseif ($k == 'id') {
                 $variables1[$k] = $this->record_id;
             } elseif ($v1 == 'id') {
                 $variables1["{$url}[{$k}]"] = $this->record_id;
             } else {
                 $variables1["{$url}[{$k}]"] = $this->row[$v1];
             }
         }
     }
     $variables1['bypass_save'] = 1;
     $permission_level = $variables1['action'] == 'form' ? 2 : 1;
     $disabled = User::permission(0, 0, $url, false, $variables1['is_tab']) < $permission_level;
     $disabled = !($this->record_id > 0) && $disable_if_no_record_id ? true : $disabled;
     $target_elem_id = !$target_elem_id ? 'content' : $target_elem_id;
     $class = $class ? $class : 'nav_link';
     if ($CFG->pm_editor) {
         $method_name = Form::peLabel($CFG->method_id, 'link');
     }
     $this->HTML[] = Link::url($url, '<div class="add_new"></div> ' . $caption, false, $variables1, false, $target_elem_id, $class, false, false, false, $disabled) . $method_name;
 }
コード例 #6
0
ファイル: Comments.php プロジェクト: mbassan/backstage2
    private function show($comments)
    {
        global $CFG;
        if ($comments) {
            echo '<ul>';
            foreach ($comments as $comment) {
                $elapsed = time() + Settings::mysqlTimeDiff() * 3600 - strtotime($comment['date']);
                if ($elapsed < 60) {
                    $time_ago = $CFG->comments_less_than_minute;
                } elseif ($elapsed > 60 && $elapsed < 60 * 60) {
                    $minutes = floor($elapsed / 60);
                    $time_ago = str_ireplace('[field]', $minutes, $CFG->comments_minutes_ago);
                } elseif ($elapsed > 60 * 60 && $elapsed < 60 * 60 * 24) {
                    $hours = floor($elapsed / 60 / 60);
                    $time_ago = str_ireplace('[field]', $hours, $CFG->comments_hours_ago);
                } elseif ($elapsed > 60 * 60 * 24 && $elapsed < 60 * 60 * 24 * 30.4) {
                    $days = floor($elapsed / 60 / 60 / 24);
                    $time_ago = str_ireplace('[field]', $days, $CFG->comments_days_ago);
                } else {
                    $months = floor($elapsed / 60 / 60 / 24 / 30.4);
                    $time_ago = str_ireplace('[field]', $months, $CFG->comments_months_ago);
                }
                if ($comment['user_id'] > 0) {
                    $user = DB::getRecord($this->user_table, $comment['user_id'], false, true);
                    $name = !empty($comment['website']) ? Link::url($comment['website'], $user['user']) : $user['user'];
                } else {
                    $name = !empty($comment['website']) ? Link::url($comment['website'], $comment['name']) : $comment['name'];
                }
                $short = $this->short_version ? '_short' : '';
                $icon = $comment['type'] ? eval('return $CFG->comment_type_' . $comment['type'] . ';') : $CFG->comment_type_1;
                $action = $comment['type'] ? eval('return $CFG->comments_action_' . $comment['type'] . $short . ';') : $CFG->comments_wrote_label;
                $action = String::doFormulaReplacements($action, unserialize($comment['f_table_row']), 1, 1);
                echo '
				<li id="comment_' . $comment['id'] . '" class="level_' . $comment['type'] . '">
					<div class="c_head">';
                if ($this->fields) {
                    foreach ($this->fields as $f_name => $field) {
                        $CFG->o_method_id = $field['method_id'];
                        $CFG->o_method_name = 'field';
                        $record = new Record($field['table'], $comment['record_id']);
                        echo '<div class="added_field">' . $record->field($field['name'], $field['caption'], $field['subtable'], $field['subtable_fields'], $field['link_url'], $field['concat_char'], true, $field['f_id_field'], $field['order_by'], $field['order_asc'], $comment['record_id'], $field['link_is_tab'], $field['limit_is_curdate'], false, $field['link_id_field']) . '</div>';
                    }
                }
                echo '
						' . $icon . ' ' . $name . ' (' . $time_ago . ') ' . $action . '
					</div>';
                if (!$this->short_version) {
                    echo '
						<div class="c_comment">
							' . (strlen($comment['comments']) != strlen(strip_tags($comment['comments'])) ? $comment['comments'] : nl2br($comment['comments'])) . '
						</div>';
                }
                echo '
					' . ($comment['type'] <= 1 && !$this->short_version ? '<div class="c_reply"><a href="#" onclick="showReplyBox(' . $comment['id'] . ',' . $this->i . ');return false;">' . $CFG->comments_reply_label . '</a></div>' : '') . '
					<div class="c_form"></div>
				</li>';
                if (is_array($comment['children'])) {
                    Comments::show($comment['children']);
                }
            }
            echo '<div style="clear:both;height:0;"></div></ul>';
        }
    }
コード例 #7
0
ファイル: Grid.php プロジェクト: mbassan/backstage2
 function pagination($page, $total_rows, $rows_per_page = 0, $max_pages = 0, $pagination_label = false, $target_elem = false)
 {
     global $CFG;
     $page = $page > 0 ? $page : 1;
     $target_elem = $target_elem ? $target_elem : 'content';
     if (is_object($this)) {
         if ($this->max_pages == 1) {
             return false;
         }
         $rows_per_page = $this->rows_per_page;
         $max_pages = $this->max_pages ? $this->max_pages : 10;
         $pagination_label = $this->pagination_label;
         $link_url = $CFG->url;
         $mode = $this->mode;
         $inset_id = $this->inset_id;
         $inset_id_field = $this->inset_id_field;
         $inset_i = $this->inset_i;
         $target_elem = $this->inset_i > 0 ? 'inset_area_' . $this->inset_i : $target_elem;
         $grid_i = $this->i;
         $filter_results = $_REQUEST['form_filters' . $this->i];
     } else {
         $link_url = $CFG->url;
     }
     if (!($rows_per_page > 0)) {
         return false;
     }
     if ($total_rows > $rows_per_page) {
         $num_pages = ceil($total_rows / $rows_per_page);
         $page_array = range(1, $num_pages);
         if ($max_pages > 0) {
             $p_deviation = ($max_pages - 1) / 2;
             $alpha = $page - 1;
             $alpha = $alpha < $p_deviation ? $alpha : $p_deviation;
             $beta = $num_pages - $page;
             $beta = $beta < $p_deviation ? $beta : $p_deviation;
             if ($alpha < $p_deviation) {
                 $beta = $beta + ($p_deviation - $alpha);
             }
             if ($beta < $p_deviation) {
                 $alpha = $alpha + ($p_deviation - $beta);
             }
         }
         if ($page != 1) {
             $first_page = Link::url($link_url, $CFG->first_page_text, false, array('page' . $grid_i => 1, 'p_bypass' . $grid_i => 1, 'mode' . $grid_i => $mode, 'inset_id' => $inset_id, 'inset_id_field' => $inset_id_field, 'inset_i' => $inset_i, 'form_filters' . $grid_i => $filter_results, 'search_fields' . $grid_i => $_REQUEST['search_fields' . $grid_i]), true, $target_elem, 'first');
         }
         if ($page != $num_pages) {
             $last_page = Link::url($link_url, $CFG->last_page_text, false, array('page' . $grid_i => $num_pages, 'p_bypass' . $grid_i => 1, 'mode' . $grid_i => $mode, 'inset_id' => $inset_id, 'inset_id_field' => $inset_id_field, 'inset_i' => $inset_i, 'form_filters' . $grid_i => $filter_results, 'search_fields' . $grid_i => $_REQUEST['search_fields' . $grid_i]), true, $target_elem, 'last');
         }
         $pagination = '<div class="pagination"><div style="float:left;">' . $first_page;
         foreach ($page_array as $p) {
             if ($p >= $page - $alpha && $p <= $page + $beta || $max_pages == 0) {
                 if ($p == $page) {
                     $pagination .= ' <span>' . $p . '</span> ';
                 } else {
                     $pagination .= Link::url($link_url, $p, false, array('page' . $grid_i => $p, 'p_bypass' . $grid_i => 1, 'mode' . $grid_i => $mode, 'inset_id' => $inset_id, 'inset_id_field' => $inset_id_field, 'inset_i' => $inset_i, 'form_filters' . $grid_i => $filter_results, 'search_fields' . $grid_i => $_REQUEST['search_fields' . $grid_i]), true, $target_elem);
                 }
             }
         }
         $pagination .= '</div>';
         if ($pagination_label) {
             $label = str_ireplace('[results]', '<b>' . $total_rows . '</b>', $CFG->pagination_label);
             $label = str_ireplace('[num_pages]', '<b>' . $num_pages . '</b>', $label);
             $pagination .= '<div style="float:right" class="pagination_label">' . $label . '</div>';
         }
         $pagination .= $last_page . '<div style="clear:both;height:0;">&nbsp;</div></div>';
         return $pagination;
     }
 }
コード例 #8
0
ファイル: FileManager.php プロジェクト: mbassan/backstage2
 function show_filters()
 {
     global $CFG;
     if ($this->inset_id > 0) {
         return false;
     }
     if (is_array($this->filters)) {
         $form_filters = new Form('form_filters', false, 'GET', 'form_filters', false);
         $form_filters->show_errors();
         $form_filters->info = $form_filters->info ? $form_filters->info : $this->filter_results;
         foreach ($this->filters as $filter) {
             $name = $filter['field_name'];
             $caption = !empty($filter['caption']) ? $caption : $name;
             if ($filter['type'] != 'radio' && $filter['type'] != 'start_date' && $filter['type'] != 'end_date' && $group) {
                 $form_filters->endGroup();
                 $group = false;
             }
             switch ($filter['type']) {
                 case 'per_page':
                     $options_array = is_array($filter['options_array']) ? $filter['options_array'] : array(10 => 10, 30 => 30, 50 => 50);
                     $caption = !empty($filter['caption']) ? $filter['caption'] : $CFG->results_per_page_text;
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterPerPage';
                     $form_filters->selectInput('per_page', $caption, false, $this->rows_per_page, $options_array, false, false, false, false, $filter['class']);
                     break;
                 case 'search':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterSearch';
                     $form_filters->textInput('search', $filter['caption'], false, false, false, false, $filter['class']);
                     foreach ($filter['subtable_fields'] as $s_field => $s_subtable) {
                         $s_subtable = $s_subtable && $s_subtable != $s_field ? $s_subtable : $this->table;
                         $CFG->o_method_suppress = true;
                         $form_filters->HTML('<input type="hidden" name="search_fields[' . $s_field . ']" value="' . $s_subtable . '" />');
                     }
                     break;
                 case 'autocomplete':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterAutocomplete';
                     $form_filters->autoComplete($name, $filter['caption'], false, $filter['value'], false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class']);
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable]" value="' . $filter['subtable'] . '" />');
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable_fields]" value="' . implode('|', $filter['subtable_fields']) . '" />');
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][f_id_field]" value="' . $filter['f_id_field'] . '" />');
                     break;
                 case 'tokenizer':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterTokenizer';
                     $form_filters->autoComplete($name, $filter['caption'], false, $filter['value'], false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class'], false, false, false, false, false, false, false, false, false, false, false, 1);
                     break;
                 case 'cats':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterCats';
                     $form_filters->catSelect($filter['subtable'], $filter['caption'], 0, $filter['class'], false, false, false, $filter['subtable_fields'], $filter['concat_char']);
                     break;
                 case 'first_letter':
                     $range = range('A', 'Z');
                     $HTML = '';
                     foreach ($range as $l) {
                         $HTML .= Link::url($this->link_url, $l, 'fl=' . $l . '&fl_field=' . $name . '&fl_subtable=' . $filter['subtable'] . '&is_tab=' . $this->is_tab, false, false, 'content');
                     }
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterFirstLetter';
                     $form_filters->HTML($HTML);
                     break;
                 case 'select':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterSelect';
                     $form_filters->selectInput($name, $filter['caption'], false, false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class'], false, false, $filter['f_id_field'], false, $filter['depends_on']);
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable]" value="' . $filter['subtable'] . '" />');
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable_fields]" value="' . implode('|', $filter['subtable_fields']) . '" />');
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][f_id_field]" value="' . $filter['f_id_field'] . '" />');
                     break;
                 case 'checkbox':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterCheckbox';
                     $form_filters->checkBox($name, $filter['caption'], false, false, $filter['class'], false, false, $filter['checked']);
                     break;
                 case 'radio':
                     if (!$group) {
                         $CFG->o_method_suppress = true;
                         $form_filters->startGroup();
                     }
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterRadio';
                     $form_filters->radioInput($name, $filter['caption'], false, $filter['value'], false, $filter['class'], false, false, $filter['checked']);
                     if (!$group) {
                         $group = true;
                     } else {
                         $CFG->o_method_suppress = true;
                         $form_filters->endGroup();
                         $group = false;
                     }
                     break;
                 case 'start_date':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterDateStart';
                     $form_filters->dateWidget($name, $filter['caption'], false, $filter['time'], $filter['ampm'], $filter['req_start'], $filter['req_end'], $filter['value'], false, false, $filter['class'], $filter['format']);
                     break;
                 case 'end_date':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterDateEnd';
                     $form_filters->dateWidget($name, $filter['caption'], false, $filter['time'], $filter['ampm'], $filter['req_start'], $filter['req_end'], $filter['value'], $filter['link_to'], false, $filter['class'], $filter['format'], false, false, true);
                     break;
                 case 'month':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterMonth';
                     $form_filters->selectInput($name . '_month', $filter['caption'], false, false, String::getMonthNames($filter['language']));
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="month_fields[]" value="' . $name . '_month" />');
                     break;
                 case 'year':
                     $CFG->o_method_id = $filter['method_id'];
                     $CFG->o_method_name = 'filterYear';
                     $back_to = $filter['back_to'] ? $filter['back_to'] : 1975;
                     $years = range(date('Y'), $back_to);
                     $years = array_combine($years, $years);
                     $form_filters->selectInput($name . '_year', $filter['caption'], false, false, $years);
                     $CFG->o_method_suppress = true;
                     $form_filters->HTML('<input type="hidden" name="year_fields[]" value="' . $name . '_year" />');
                     break;
             }
         }
         if ($group) {
             $form_filters->endGroup();
         }
         $CFG->o_method_suppress = true;
         $form_filters->HTML('<input type="hidden" name="mode" value="' . $this->mode . '" />');
         $CFG->o_method_suppress = true;
         $form_filters->submitButton('submit', $CFG->filter_submit_text, false, 'not_method');
         $CFG->o_method_suppress = true;
         $form_filters->resetButton('Reset', false, 'not_method');
         $form_filters->display();
     }
 }
コード例 #9
0
ファイル: FlowChart.php プロジェクト: mbassan/backstage2
    function display()
    {
        global $CFG;
        self::getSteps();
        $HTML = '
		<div class="flow_chart">
			<table>
				<tr>
					<td class="bar">
						<a class="add_step" title="' . $CFG->add_step . '" onclick="flow_chart.addStep()"></a>
						<a class="save_order" title="' . $CFG->save_order . '" onclick="flow_chart.saveOrder()"></a>
					</td>
				</tr>
				<tr>
					<td class="navigator" id="navigator">
						<input type="hidden" id="table" value="' . $this->table . '" />
						<input type="hidden" id="current_url" value="' . $CFG->url . '" />
						<input type="hidden" id="is_tab" value="' . $CFG->is_tab . '" />';
        if ($this->steps) {
            foreach ($this->steps as $i => $step) {
                $HTML .= '
				<div class="step_container">
					<div class="ops">';
                if (User::permission(0, 0, $this->table, false, $this->url_is_tab) > 0) {
                    $HTML .= Link::url($this->table, false, 'id=' . $step['id'] . '&action=record&is_tab=' . $this->url_is_tab, false, false, 'edit_box', 'view', false, false, false, false, $CFG->view_hover_caption) . ' ';
                }
                if (User::permission(0, 0, $this->table, false, $this->url_is_tab) > 1) {
                    $HTML .= Link::url($this->table, false, 'id=' . $step['id'] . '&action=form&is_tab=' . $this->url_is_tab, false, false, 'edit_box', 'edit', false, false, false, false, $CFG->edit_hover_caption) . ' ';
                }
                if (User::permission(0, 0, $this->table, false, $this->url_is_tab) > 1) {
                    $HTML .= '<a href="#" title="' . $CFG->delete_hover_caption . '" onclick="flow_chart.deleteThis(' . $step['id'] . ',\'' . $this->table . '\',this)" class="delete"></a>';
                }
                $HTML .= '
					</div>
					<div class="step" onclick="flow_chart.select(this,event);" ondblclick="flow_chart.open(' . $step['id'] . ')"></div>
					<div class="desc" onclick="flow_chart.select(this,event);" ondblclick="flow_chart.open(' . $step['id'] . ')">' . $step['name'] . '</div>
					<input type="hidden" id="id" value="' . $step['id'] . '" />
				</div>';
                if ($this->steps[$i + 1]) {
                    $HTML .= '<div class="step_link"></div>';
                }
            }
        }
        if (!$CFG->pm_editor) {
            $HTML .= '
			<script language="text/javascript">
				$("#navigator").click(function() {
					flow_chart.unselect();
				});
				flow_chart.startSortable();
			</script>
			';
        }
        $HTML .= '
						<div class="clear"></div>
					</td>
				</tr>
			</table>
		</div>
		';
        echo $HTML;
    }
コード例 #10
0
ファイル: UrlGeneratorTest.php プロジェクト: ignaszak/router
 /**
  * @expectedException \Ignaszak\Router\RouterException
  */
 public function testInvalidRouteName()
 {
     $this->urlGenerator = new UrlGenerator($this->mockRoute());
     $this->urlGenerator->url('name', []);
 }
コード例 #11
0
ファイル: Calendar.php プロジェクト: mbassan/backstage2
    function display()
    {
        global $CFG;
        if (!is_array($this->tables) || !is_array($this->fields)) {
            return false;
        }
        if ($CFG->pm_editor) {
            echo '</ul>';
        }
        $mode = $this->mode;
        $date = $this->date;
        $y = $this->y;
        $m = $this->m;
        $d = $this->d;
        $this->days_in_month = cal_days_in_month(0, $m, $y);
        if (!$mode || $mode == 'month') {
            $first_day = mktime(0, 0, 0, $m, 1, $y);
            $title = date('F', $first_day) . ' ' . $y;
            $day_of_week = date('w', $first_day);
            $days_array = range(1, $this->days_in_month);
            $start = $first_day;
            $end = mktime(23, 59, 59, $m, $this->days_in_month, $y);
            $next = strtotime('+1 month', $first_day);
            $next_5 = strtotime('+5 month', $first_day);
            $prev = strtotime('-1 month', $first_day);
            $prev_5 = strtotime('-5 month', $first_day);
        } elseif ($mode == 'week') {
            $day_of_week = date('w', $date);
            $first_day = date('j', strtotime('-' . $day_of_week . ' day', $date));
            $start = strtotime('-' . $day_of_week, $date);
            $end = strtotime('+' . (6 - $day_of_week), $date);
            $title = $CFG->cal_week_from . ' ' . date($CFG->default_date_format, strtotime('-' . $day_of_week . ' day', $date)) . ' ' . $CFG->cal_week_until . ' ' . date($CFG->default_date_format, strtotime('+' . (6 - $day_of_week) . ' day', $date));
            $next = strtotime('+1 week', $first_day);
            $next_5 = strtotime('+5 week', $first_day);
            $prev = strtotime('-1 week', $first_day);
            $prev_5 = strtotime('-5 week', $first_day);
            for ($i = 0; $i <= 6; $i++) {
                $days_array[] = date('j', strtotime("+{$i} day", $start));
            }
        } elseif ($mode == 'day') {
            $refer_mode = $_REQUEST['cal_' . $this->i . '_refer_mode'];
            $s_hour = $this->start_time ? $this->start_time : 0;
            $e_hour = $this->end_time ? $this->end_time : 23;
            $start = mktime(0, 0, 0, $m, $d, $y);
            $end = mktime(23, 59, 59, $m, $d, $y);
            $title = date('D F j, Y', $start);
            $next = strtotime('+1 day', $start);
            $next_5 = strtotime('+5 day', $start);
            $prev = strtotime('-1 day', $start);
            $prev_5 = strtotime('-5 day', $start);
            $days_array[] = $this->date;
        }
        $this->data = self::get($start, $end);
        if (!$this->print) {
            $day_class = $mode == 'day' ? 'calendar_day' : '';
            $HTML = "\n\t\t\t<div class=\"area full_box calendar {$class} {$day_class}\" id=\"cal_{$this->i}\">\n\t\t\t\t<h2>{$title}</h2>\n\t\t\t\t<div class=\"box_bar\"></div>\n\t\t\t\t<div class=\"box_tl\"></div>\n\t\t\t\t<div class=\"box_tr\"></div>\n\t\t\t\t<div class=\"box_bl\"></div>\n\t\t\t\t<div class=\"box_br\"></div>\n\t\t\t\t<div class=\"t_shadow\"></div>\n\t\t\t\t<div class=\"r_shadow\"></div>\n\t\t\t\t<div class=\"b_shadow\"></div>\n\t\t\t\t<div class=\"l_shadow\"></div>\n\t\t\t\t<div class=\"box_b\"></div>\n\t\t\t\t<div class=\"grid_buttons\"><div class=\"button before\"></div>";
            if (is_array($this->add_buttons)) {
                foreach ($this->add_buttons as $button) {
                    $string = $button['table'];
                    if (substr($string, -1) == 's') {
                        $string = substr($string, 0, -1);
                    }
                    $HTML .= Link::url($button['table'], '<div class="add_new"></div>' . $CFG->add_new_caption . ' ' . ucfirst($string), '&action=form&is_tab=' . $button['is_tab'], false, false, $button['target_elem_id'], 'button');
                }
            }
            $HTML .= (User::permission(0, 0, $CFG->url) > 1 ? "<a href=\"#\" onclick=\"saveCalOrder()\" class=\"button\"><div class=\"save\"></div> {$CFG->save_caption}</a>" : '') . '<a href="#" onclick="printCal(' . $this->i . ')" class="button"><div class="print"></div>' . $CFG->print_caption . '</a>';
            if ($this->mode_switching && ($mode == 'day' || $mode == 'week')) {
                $HTML .= Link::url($CFG->url, '<div class="cal_icon"></div>' . $CFG->cal_view_month, false, array('cal_' . $this->i . '_y' => date('Y', $start), 'cal_' . $this->i . '_m' => date('n', $start), 'cal_bypass' => 1, 'bypass' => 1, 'cal_' . $this->i . '_mode' => 'month'), true, 'cal_' . $this->i, 'button');
            }
            $HTML .= '
				<div class="button after"></div></div><div class="contain">' . Link::url($CFG->url, 'hidden', false, array('cal_' . $this->i . '_y' => $this->y, 'cal_' . $this->i . '_m' => $this->m, 'cal_' . $this->i . '_d' => $this->d, 'cal_bypass' => 1, 'bypass' => 1, 'mode' => $mode, 'print' => 1), true, false, 'cal_print_link', false, '_blank') . "\n\t\t\t\t<table cellspacing=\"0\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan=\"" . (!$mode || $mode == 'month' ? 7 : ($mode == 'week' ? 8 : 2)) . "\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div onclick=\"synchCalDates(" . date('Y', $prev_5) . "," . date('n', $prev_5) . "," . date('j', $prev_5) . ")\" class=\"n1 n\">" . Link::url($CFG->url, '<<', false, array('cal_' . $this->i . '_y' => date('Y', $prev_5), 'cal_' . $this->i . '_m' => date('n', $prev_5), 'cal_' . $this->i . '_d' => date('j', $prev_5), 'cal_bypass' => 1, 'bypass' => 1, 'mode' => $mode), true, 'cal_' . $this->i) . "</div>\n\t\t\t\t\t\t\t<div onclick=\"synchCalDates(" . date('Y', $prev) . "," . date('n', $prev) . "," . date('j', $prev) . ")\" class=\"n2 n\">" . Link::url($CFG->url, '<', false, array('cal_' . $this->i . '_y' => date('Y', $prev), 'cal_' . $this->i . '_m' => date('n', $prev), 'cal_' . $this->i . '_d' => date('j', $prev), 'cal_bypass' => 1, 'bypass' => 1, 'mode' => $mode), true, 'cal_' . $this->i) . "</div>\n\t\t\t\t\t\t\t<div onclick=\"synchCalDates(" . date('Y', time()) . "," . date('n', time()) . "," . date('j', time()) . ")\" class=\"n_today n\">" . Link::url($CFG->url, $CFG->cal_today, false, array('cal_' . $this->i . '_y' => date('Y', time()), 'cal_' . $this->i . '_m' => date('n', time()), 'cal_' . $this->i . '_d' => date('j', time()), 'cal_bypass' => 1, 'bypass' => 1, 'mode' => $mode), true, 'cal_' . $this->i) . "</div>\n\t\t\t\t\t\t\t<div onclick=\"synchCalDates(" . date('Y', $next) . "," . date('n', $next) . "," . date('j', $next) . ")\" class=\"n3 n\">" . Link::url($CFG->url, '>', false, array('cal_' . $this->i . '_y' => date('Y', $next), 'cal_' . $this->i . '_m' => date('n', $next), 'cal_' . $this->i . '_d' => date('j', $next), 'cal_bypass' => 1, 'bypass' => 1, 'mode' => $mode), true, 'cal_' . $this->i) . "</div>\n\t\t\t\t\t\t\t<div onclick=\"synchCalDates(" . date('Y', $next_5) . "," . date('n', $next_5) . "," . date('j', $next_5) . ")\" class=\"n4 n\">" . Link::url($CFG->url, '>>', false, array('cal_' . $this->i . '_y' => date('Y', $next_5), 'cal_' . $this->i . '_m' => date('n', $next_5), 'cal_' . $this->i . '_d' => date('j', $next_5), 'cal_bypass' => 1, 'bypass' => 1, 'mode' => $mode), true, 'cal_' . $this->i) . "</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t";
            if ($this->tokenizers && $this->mode == 'day') {
                foreach ($this->tokenizers as $t_name => $t_values) {
                    if (is_array($t_values)) {
                        $HTML .= '<tr><td class="datasets" colspan="' . (!$mode || $mode == 'month' ? 7 : ($mode == 'week' ? 8 : 2)) . '">';
                        foreach ($t_values as $t_value) {
                            $HTML .= '<div>' . $t_value . '</div>';
                        }
                        $HTML .= "</td></tr>";
                    }
                }
            }
            if (!$mode || $mode == 'month') {
                $alt = $alt ? '' : 'class="alt"';
                $HTML .= "\n\t\t\t\t\t<tr {$alt}>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_sun}</td>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_mon}</td>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_tue}</td>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_wed}</td>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_thur}</td>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_fri}</td>\n\t\t\t\t\t\t<td class=\"c_day\">{$CFG->cal_sat}</td>\n\t\t\t\t\t</tr>";
                $day_count = 1;
                $HTML .= "<tr>";
                $i = $day_of_week;
                while ($i > 0) {
                    $HTML .= '<td class="inactive"></td>';
                    $i--;
                    $day_count++;
                }
                foreach ($days_array as $day_num) {
                    $events = self::getEvents(false, false, $day_num);
                    $current = $day_num == date('j') && $m == date('n') && $y == date('Y') ? 'current' : '';
                    $HTML .= "\n\t\t\t\t\t<td class=\"{$current}\" onmouseover=\"calCellHover(this)\" onmouseout=\"calCellOut(this)\" onclick=\"calZoomDay({$this->i},'{$CFG->url}',{$CFG->is_tab},{$y},{$m},{$day_num})\">\n\t\t\t\t\t\t<div class=\"wrap\">\n\t\t\t\t\t\t\t<div class=\"day_num\">{$day_num}</div>";
                    if (is_array($events)) {
                        foreach ($events as $k => $dataset) {
                            @reset($this->tokenizers);
                            $tk = @key($this->tokenizers);
                            if (count($this->tokenizers[$tk]) > 1) {
                                $HTML .= '<div class="token_label">' . $this->tokenizers[$tk][$k] . '</div>';
                            }
                            $HTML .= self::showEvents($dataset, false, false, false, $day_num, false, $k);
                        }
                    }
                    $HTML .= "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t </td>";
                    $day_count++;
                    if ($day_count > 7) {
                        $HTML .= "</tr><tr>";
                        $day_count = 1;
                    }
                }
                while ($day_count > 1 && $day_count <= 7) {
                    $HTML .= '<td class="inactive"></td>';
                    $day_count++;
                }
                $HTML .= '</tr>';
            } elseif ($mode == 'week') {
                $alt = $alt ? '' : 'class="alt"';
                $HTML .= "\n\t\t\t\t<tr {$alt}>\n\t\t\t\t\t<td class=\"c_day\"></td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_sun}.'</td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_mon}.'</td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_tue}.'</td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_web}.'</td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_thur}.'</td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_fri}.'</td>\n\t\t\t\t\t<td class=\"c_day\">'.{$CFG->cal_sat}.'</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>";
                foreach ($days_array as $day_num) {
                    $events = self::getEvents(false, false, $day_num);
                    reset($events);
                    $first_key = key($events);
                    $current = $day_num == date('j') && $m == date('n') && $y == date('Y') ? 'current' : '';
                    $HTML .= "\n\t\t\t\t\t<td class=\"{$current}\" onmouseover=\"calCellHover(this)\" onmouseout=\"calCellOut(this)\" onclick=\"calZoomDay({$this->i},'{$CFG->url}',{$CFG->is_tab},{$y},{$m},{$day_num})\">\n\t\t\t\t\t\t<div class=\"wrap\">\n\t\t\t\t\t\t\t<div class=\"day_num\">{$day_num}</div> \n\t\t\t\t\t\t\t" . self::showEvents($events[$first_key], false, false, false, $day_num) . "\n\t\t\t\t\t\t</div>\n\t\t\t\t\t </td>";
                }
                $HTML .= '</tr>';
            } elseif ($mode == 'day') {
                $hour = 0;
                while ($hour <= 23) {
                    $alt = $alt ? '' : 'class="alt"';
                    $HTML .= '
					<tr ' . $alt . '>
						<td class="time" rowspan="2">
							' . date($CFG->default_time_format, strtotime("{$y}-{$m}-{$d} {$hour}:00:00")) . '
						</td>';
                    $HTML .= '<td class="row"></td></tr><tr ' . $alt . '><td class="row"></td></tr>';
                    $hour++;
                }
            }
            $HTML .= "</table>";
        }
        if ($mode == 'day') {
            $events = self::getEvents(false, false, $d);
            if (is_array($events)) {
                if (!$this->print) {
                    $container_width = count($events) * $this->click_width + 2;
                    $HTML .= '<div class="all_floats ' . (!$this->tokenizers ? 'one_float' : '') . '" style="width:' . $container_width . 'px">';
                    $j = 0;
                    foreach ($events as $k => $dataset) {
                        $margin_left = $j * $this->click_width;
                        $HTML .= '
						<div class="float_contain ' . ($this->tokenizers ? 'float_topspace' : '') . '" id="float_contain_' . $k . '" style="margin-left:' . $margin_left . 'px">
							<input type="hidden" id="record_id" value="' . $k . '"/>
							' . self::showEvents($dataset, 1, false, false, $d, 1, $k) . '
						</div>';
                        $j++;
                    }
                    $HTML .= '
					<script type="text/javascript">
						initializeCalFloats();
					</script>';
                    $HTML .= '</div>';
                } else {
                    $i = 0;
                    if ($this->tokenizers) {
                        $tokenizers = $this->tokenizers;
                        $first_key = key($tokenizers);
                        $labels = $tokenizers[$first_key];
                    }
                    foreach ($events as $k => $dataset) {
                        if (is_array($dataset)) {
                            if ($labels) {
                                $HTML .= '<div class="print_caption">' . current($labels) . '</div>';
                            }
                        }
                        $HTML .= $this->printEvents($dataset, false, false, $d, $k);
                        $HTML .= '<div class="page-break"></div>';
                        @next($labels);
                        $i++;
                    }
                    unset($labels);
                }
            }
        }
        $HTML .= '<div class="clear"></div></div></div>';
        if (!$_REQUEST['cal_bypass']) {
            self::show_filters();
            /*
            if ($this->mode == 'day' && !$this->print) {
            	echo '
            	<div class="grid_operations">
            		<span class="button" onclick="saveCalOrder()">'.$CFG->save_icon.' '.$CFG->save_button.'</span>
            		<span class="button" onclick="printCal('.$this->i.')">'.$CFG->print_icon.' '.$CFG->print_button.'</span>
            		<div class="clear"></div>
            	</div>';
            }
            */
        }
        self::show_errors();
        echo $HTML;
    }
コード例 #12
0
ファイル: MultiList.php プロジェクト: mbassan/backstage2
 private function displayItems($tables, $rows = false, $f_id = 0, $level = 1, $p_id = 0)
 {
     global $CFG;
     $pm_method = $CFG->pm_editor ? ' class="pm_method"' : '';
     if ($tables) {
         $parent_id = $rows ? $p_id : $f_id;
         $this->levels[$level][$parent_id] = $parent_id;
         $HTML = '';
         foreach ($tables as $name => $properties) {
             $HTML .= "<ul id=\"mlist_{$this->i}_level_{$level}_{$parent_id}\" class=\"mlist_{$this->i}_level_{$level}\">";
             $properties['url'] = empty($properties['url']) ? $CFG->url : $properties['url'];
             $properties['url_is_tab'] = empty($properties['url_is_tab']) ? $CFG->is_tab : $properties['url_is_tab'];
             if (!empty($properties['parent']) && $f_id == 0) {
                 continue;
             }
             $HTML .= "<input id=\"table\" type=\"hidden\" name=\"table\" value=\"{$name}\" />";
             $HTML .= "<input id=\"enabled\" type=\"hidden\" name=\"enabled\" value=\"{$this->dragdrop}\" />";
             $HTML .= "<input id=\"p_id\" type=\"hidden\" name=\"p_id\" value=\"{$p_id}\" />";
             $HTML .= "<input id=\"f_id\" type=\"hidden\" name=\"f_id\" value=\"{$f_id}\" />";
             if ($CFG->pm_editor) {
                 $HTML .= Form::peLabel($properties['method_id'], 'addTable');
             }
             $table = $rows ? $rows : DB::getCats($name, $f_id);
             if ($table) {
                 foreach ($table as $id => $row) {
                     $hidden = $row['row']['hidden'] == 'Y' ? 'hidden' : '';
                     $HTML .= "<li id=\"{$row['row']['id']}\" class=\"li_{$level} ml_li {$hidden}\">";
                     $HTML .= !empty($row['children']) ? '<div onclick="ml_expand(this)" class="more"></div><div onclick="ml_collapse(this)" class="less"></div>' : '';
                     $HTML .= "<div class=\"ml_item\">";
                     if ($CFG->url == 'edit_tabs' && !empty($row['row']['url'])) {
                         $is_tab = $name == 'admin_tabs' ? '1' : '0';
                         if (User::permission(0, 0, $properties['url'], false, $properties['url_is_tab']) > 1) {
                             $HTML .= '<a class="edit_page" href="index.php?current_url=edit_page&table=' . $name . '&id=' . $row['row']['id'] . '&is_tab=' . $is_tab . '"></a>';
                         }
                     }
                     if (is_array($properties['table_fields'])) {
                         foreach ($properties['table_fields'] as $field) {
                             $value = Grid::detectData($field, $row['row'][$field], $this->fields[$name]);
                             $HTML .= !empty($properties['url']) ? Link::url($properties['url'], $row['row'][$field], "table={$name}&id={$row['row']['id']}&f_id={$row['row']['f_id']}&p_id={$row['row']['p_id']}&action=record&is_tab=" . $properties['url_is_tab'], false, false, $properties['target_elem_id']) : $value;
                         }
                         $del_function = $CFG->url == 'edit_tabs' ? 'deletePage(this)' : 'ml_delete(this)';
                         if (User::permission(0, 0, $properties['url'], false, $properties['url_is_tab']) > 1) {
                             $HTML .= Link::url($properties['url'], false, "table={$name}&id={$row['row']['id']}&f_id={$row['row']['f_id']}&p_id={$row['row']['p_id']}&action=record&is_tab=" . $properties['url_is_tab'], false, false, $properties['target_elem_id'], 'view', false, false, false, false, $CFG->view_hover_caption) . Link::url($properties['url'], false, "table={$name}&id={$row['row']['id']}&f_id={$row['row']['f_id']}&p_id={$row['row']['p_id']}&action=form&is_tab=" . $properties['url_is_tab'], false, false, $properties['target_elem_id'], 'edit', false, false, false, false, $CFG->edit_hover_caption) . "<a href=\"#\" class=\"delete\" title=\"{$CFG->delete_hover_caption}\" onclick=\"{$del_function}\" class=\"button\"></a>";
                         }
                     } else {
                         foreach ($row['row'] as $field) {
                             $HTML .= '<span>' . $field . '</span>';
                         }
                     }
                     $HTML .= $this->row_end_button ? $this->row_end_button : '';
                     if (User::permission(0, 0, $properties['url'], false, $properties['url_is_tab']) > 1 && $accepts_children) {
                         $HTML .= $properties['accept_children'] ? Link::url($properties['url'], '<div class="add_new"></div>' . $CFG->add_new_caption, "table={$name}&f_id={$f_id}&p_id={$p_id}&action=form&is_tab=" . $properties['url_is_tab'], false, false, $properties['target_elem_id']) : '';
                     }
                     $HTML .= '</div>';
                     if (!empty($row['children'])) {
                         $HTML .= MultiList::displayItems(array($name => $properties), $row['children'], false, $level + 1, $id);
                     }
                     foreach ($this->tables as $name1 => $properties1) {
                         if ($properties1['parent'] == $name) {
                             $HTML .= MultiList::displayItems(array($name1 => $properties1), false, $id, $level + 1);
                         }
                     }
                     $HTML .= '</li>';
                 }
             }
             $HTML .= '</ul>';
             $HTML .= "<div class=\"add_elem\">" . Link::url($properties['url'], '<div class="add_new"></div>' . $CFG->add_new_caption, "table={$name}&f_id={$f_id}&p_id={$p_id}&action=form&is_tab=" . $CFG->is_tab, false, false, $properties['target_elem_id']) . "</div>";
         }
         return $HTML;
     }
 }