Пример #1
0
 function s_fill_out_menu($s_menu_items, $sa_menus)
 {
     // make a list of menu items, and recurse through child items too
     $s_return = "";
     if ($s_menu_items !== "") {
         $sa_menu_items = explode(",", $s_menu_items);
         $s_return .= "<ul>";
         foreach ($sa_menu_items as $key => $s_menu_item) {
             $o_looked_up_item = $this->datastore->get_item_data($s_menu_item);
             if ($o_looked_up_item) {
                 $o_Item = new Item($o_looked_up_item);
                 $oUrlStuff = new UrlStuff();
                 if (isset($o_Item) && isset($o_Item->o_loaded_item_object->url)) {
                     $s_url = $oUrlStuff->s_format_url_from_item_url($o_Item->o_loaded_item_object->url);
                     $s_return .= '<li><a href="' . $s_url . '">' . $o_Item->o_loaded_item_object->title . '</a>';
                     $s_return .= $this->s_fill_out_menu($this->s_take_out_menu_items($s_menu_item, $sa_menus), $sa_menus);
                     $s_return .= "</li>";
                 }
             }
         }
         $s_return .= "</ul>";
     }
     return $s_return;
 }
Пример #2
0
    function html_edit_form()
    {
        /*
        get the item id and oncology
        build the ui form based on oncology and retrieved item data
        */
        $html_form = "";
        // get default item properties
        $s_id = urldecode($this->o_loaded_item_object->id);
        $s_title = urldecode($this->o_loaded_item_object->title);
        $s_keywords = urldecode($this->o_loaded_item_object->keywords);
        $s_description = urldecode($this->o_loaded_item_object->description);
        $s_parent = urldecode($this->o_loaded_item_object->parent);
        $s_url = urldecode($this->o_loaded_item_object->url);
        $b_published = urldecode($this->o_loaded_item_object->published);
        $s_checked = urldecode($this->o_loaded_item_object->url_auto);
        $s_template = urldecode($this->o_loaded_item_object->template);
        $s_published_class = "";
        $s_unpublished_class = "";
        $s_url_input_disabled = "";
        if ($b_published === "true") {
            $s_published_class = "disabled ";
        } else {
            $s_unpublished_class = "disabled ";
        }
        if ($s_checked === "true") {
            $s_checked = " checked";
            $s_url_input_disabled = " disabled";
        }
        # start button group
        $html_form .= '<div class="btn-group edit_item_general_toolbar">';
        // preview
        $html_form .= '<a class="btn btn-default btn-sm" href="#" id="preview_edits"><i class="glyphicon glyphicon-expand"></i><span class="small-hidden"> preview</span></a>';
        /*
        $html_form .= '<a disabled class="btn btn-default btn-sm" href="#"><i class="glyphicon glyphicon-fire"></i><span class="small-hidden"> purge from cache</span></a>';
        */
        // view (open in new tab)
        $oUrlStuff = new UrlStuff();
        $s_view_url = $oUrlStuff->s_format_url_from_item_url($s_url);
        $html_form .= '<a target="_blank" ' . $s_unpublished_class . 'class="btn btn-default btn-sm" href="' . $s_view_url . '"><i class="glyphicon glyphicon-eye-open"></i><span class="small-hidden"> view</span></a>';
        # end button group
        $html_form .= '</div>';
        # published toggle
        $html_form .= '<div class="btn-group edit_item_general_toolbar">';
        $html_form .= '<a class="btn btn-success btn-sm" ' . $s_published_class . 'href="javascript:publish(\'published\');"><i class="glyphicon glyphicon-cloud-upload"></i> save &amp; publish</a>';
        $html_form .= '<a class="btn btn-warning btn-sm" ' . $s_unpublished_class . 'href="javascript:publish(\'unpublished\');"><i class="glyphicon glyphicon-cloud-download"></i> unpublish</a>';
        $html_form .= '</div>';
        // delete button group
        $html_form .= '<div class="btn-group">';
        // delete
        $html_form .= '<a class="btn btn-danger btn-sm" href="/flot_flot/admin/index.php?section=items&oncology=page&item=' . $s_id . '&action=delete"><i class="glyphicon glyphicon-trash"></i><span class="small-hidden"> delete</span></a>';
        $html_form .= '</div>';
        $html_form .= '<div id="publish_output"></div><hr/>';
        $html_form .= '<div class="alert alert-info">Edit the fields on this page and save for them to be visible on your site. There are settings for SEO on the Extra tab. You can copy paste the embed codes from the Embed tab, into your template, if you haven\'t already</div>';
        $html_form .= '<form id="item_edit_form" role="form" method="post" action="index.php">';
        #
        # make tabs
        #
        # tab menu
        $html_form .= '<ul class="nav nav-tabs">';
        $html_form .= '<li class="active"><a href="#edit" data-toggle="tab">Edit</a></li>';
        $html_form .= '<li><a href="#extra" data-toggle="tab">Extra</a></li>';
        $html_form .= '<li><a href="#codes" data-toggle="tab">Embed codes</a></li>';
        $html_form .= '</ul>';
        # tabs
        $html_form .= '<div class="tab-content">';
        #
        # edit tab
        #
        $html_form .= '<div class="tab-pane active" id="edit">';
        # title
        $html_form .= '<div class="form-group input-group-sm">';
        $html_form .= '<label for="item_keywords">Title</label><input type="text" class="form-control" name="title" placeholder="page title" value="' . $s_title . '" id="item_edit_title">';
        $html_form .= '</div>';
        # url
        $html_form .= '<div id="url_input" class="input-group input-group-sm">';
        $html_form .= '<span class="input-group-addon">';
        $html_form .= '<input id="item_edit_auto_url" name="url_auto" ' . $s_checked . ' value="true" type="checkbox"> set url for me';
        $html_form .= '</span>';
        $html_form .= '<input type="text" id="item_edit_url" class="form-control item_edit_url" placeholder="relative url" value="' . $s_url . '"' . $s_url_input_disabled . '>';
        //$html_form .= '<span class="input-group-btn"><button class="btn btn-default" type="button"></button></span>';
        $s_make_home_page_disabled = '';
        if ($s_url === "index.html") {
            $s_make_home_page_disabled = ' disabled';
        }
        $html_form .= '<span class="input-group-btn"><a class="btn btn-default btn-sm' . $s_make_home_page_disabled . '" href="javascript:_make_home_page();"><i class="glyphicon glyphicon-home"></i><span class="small-hidden">&nbsp;make homepage</span></a></span>';
        $html_form .= '</div><!-- /input-group -->';
        $html_form .= '<hr/>';
        //
        // oncology specific elements
        //
        foreach ($this->o_oncology->full_elements as $element) {
            $html_form .= '<label class="form-group">' . $element->name . '</label><br/>';
            $s_value = '';
            if (isset($this->o_full_item_object[$element->name])) {
                $s_value = urldecode($this->o_full_item_object[$element->name]);
            }
            $s_disabled_status = "";
            if ($element->editable === "false") {
                $s_disabled_status = " disabled ";
            }
            switch ($element->type) {
                case 'html':
                    $html_form .= '<textarea id="' . $element->type . $element->name . '" class="ckeditor" name="' . $element->name . '"' . $s_disabled_status . '>' . $s_value . '</textarea><br/>';
                    break;
                case 'text':
                    $html_form .= '<input type="text" class="form-control" name="' . $element->name . '" value="' . $s_value . '" placeholder="' . $element->name . '"' . $s_disabled_status . '/>';
                    break;
                case 'text_multiline':
                    $html_form .= '<textarea rows="6" id="' . $element->type . $element->name . '" class="form-control" name="' . $element->name . '"' . $s_disabled_status . '>' . $s_value . '</textarea><br/>';
                    break;
                default:
                    $html_form .= "flot doesn't support this type :(<br/>";
                    break;
            }
        }
        # end edit tab
        $html_form .= '</div>';
        #
        # 'extra' tab
        #
        $html_form .= '<div class="tab-pane" id="extra">';
        # keywords
        $html_form .= '<div class="form-group input-group-sm">';
        $html_form .= '<label for="item_keywords">Keywords (comma seperated)</label><input id="item_keywords" type="text" class="form-control" name="keywords" placeholder="keywords" value="' . $s_keywords . '">';
        $html_form .= '</div>';
        # description
        $html_form .= '<div class="form-group input-group-sm">';
        $html_form .= '<label for="item_description">Description</label><input type="text" class="form-control" name="description" id="item_description" placeholder="description" value="' . $s_description . '">';
        $html_form .= '</div>';
        # template
        $html_form .= '<div class="form-group input-group-sm">';
        $html_form .= '<label for="item_template">Template</label>';
        $html_form .= '<select name="template" class="form-control" id="item_template">';
        $sa_files = $this->datastore->sa_templates_available();
        foreach ($sa_files as $s_template_file) {
            $s_selected = '';
            if ($s_template_file === $s_template) {
                $s_selected = 'selected ';
            }
            $html_form .= '<option ' . $s_selected . 'value="' . $s_template_file . '" >' . $s_template_file . '</option>';
        }
        $html_form .= '</select>';
        $html_form .= '</div>';
        # parent
        $html_form .= '<div class="form-group input-group-sm">';
        $html_form .= '<label for="item_parent">Parent</label>';
        $html_form .= '<select name="parent" class="form-control" id="item_parent">';
        $html_form .= '<option value=""></option>';
        $oa_partial_items = $this->datastore->sa_get_pages_except($s_id);
        foreach ($oa_partial_items as $item_id => $item_value) {
            $s_selected = '';
            if ($item_id === $s_parent) {
                $s_selected = 'selected ';
            }
            $html_form .= '<option ' . $s_selected . 'value="' . $item_id . '" >' . $item_value . '</option>';
        }
        $html_form .= '</select>';
        $html_form .= '</div>';
        # end extra tab
        $html_form .= '</div>';
        #
        # 'codes' tab
        #
        $html_form .= '<div class="tab-pane" id="codes">';
        // info
        $html_form .= '<div class="alert alert-info"><strong>Embed codes</strong> can be placed in your websites theme, they will be replaced with the pages actual content, which can be set by editing a page.</div>';
        // default types
        $html_form .= '<h4>Title</h4>';
        $html_form .= '<kbd>{{item:title}}</kbd>';
        $html_form .= '<h4>Description</h4>';
        $html_form .= '<kbd>{{item:description}}</kbd>';
        $html_form .= '<h4>Keywords</h4>';
        $html_form .= '<kbd>{{item:keywords}}</kbd>';
        $html_form .= '<hr/>';
        // custom types
        if (count($this->o_oncology->full_elements) > 0) {
            foreach ($this->o_oncology->full_elements as $element) {
                $html_form .= '<h4>' . ucfirst($element->name) . ' (' . $element->type . ')</h4>';
                $html_form .= '<kbd>{{item:' . $element->name . '}}</kbd>';
            }
        } else {
            $html_form .= '<p>this page type has no custom elements.</p>';
        }
        $html_form .= '<hr/>';
        # end extra tab
        $html_form .= '</div>';
        # end tabs
        $html_form .= '</div>';
        # hidden elements
        $html_form .= '<input id="published" type="hidden" name="published" value="' . $b_published . '">';
        $html_form .= '<input type="hidden" name="section" value="items">';
        $html_form .= '<input type="hidden" class="item_edit_url" name="url" value="' . $s_url . '">';
        $html_form .= '<input type="hidden" name="item_id" value="' . $s_id . '">';
        # save
        $html_form .= '<div class="form-group">';
        $html_form .= '<button type="submit" class="form-control btn btn-success"><i class="glyphicon glyphicon-floppy-disk"></i> save</button>';
        $html_form .= '</div>';
        $html_form .= '</form>';
        $html_form .= '<div id="file_browser_modal" class="modal fade">
			  <div class="container">
			    <div class="modal-content">			    	
			      <div class="modal-header">
			        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
			        <h4 class="modal-title">Select a picture to insert</h4>
			      </div>
			      <div class="modal-body">
			      	Click a file to select it, you can upload new files too. Once files are selected you can click "insert pictures" or choose a different picture size from the drop up menu on the same button.<hr/>';
        $o_FileBrowser = new FileBrowser("select");
        $html_form .= $o_FileBrowser->html_make_browser();
        $html_form .= '</div>
			      <div class="modal-footer">
			      <div id="file_browser_selected"></div><hr/>
			        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
			        
			        <div class="btn-group dropup">
				        <button id="file_browser_insert_selected" onclick="insert_selected_pictures(\'' . $this->datastore->settings->upload_dir . '\', \'medium\')" type="button" class="disabled btn btn-success">Insert picture(s)</button>
				        <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown">
				          <span class="caret"></span>
				          <span class="sr-only">Toggle Dropdown</span>
				        </button>
				        <ul class="dropdown-menu" role="menu">
				        ';
        foreach ($this->datastore->settings->thumb_sizes as $size) {
            $html_form .= '<li><a href="javascript:insert_selected_pictures(\'' . $this->datastore->settings->upload_dir . '\', \'' . $size->name . '\');">' . $size->name . '</a></li>';
        }
        $html_form .= '<li><a href="javascript:insert_selected_pictures(\'' . $this->datastore->settings->upload_dir . '\', \'\');">original</a></li>
				        </ul>
				      </div>
			      </div>
			    </div><!-- /.modal-content -->
			  </div><!-- /.modal-dialog -->
			</div><!-- /.modal -->';
        $jsiJSI = new JSInjector();
        $jsiJSI->_set_datastore($this->datastore);
        $html_form .= $jsiJSI->s_start_script();
        $html_form .= $jsiJSI->s_page_urls();
        $html_form .= $jsiJSI->s_end_script();
        return $html_form;
    }
Пример #3
0
 $s_id = urldecode($o_page->id);
 $s_title = urldecode($o_page->title);
 $s_oncology = urldecode($o_page->oncology);
 $s_url = urldecode($o_page->url);
 $s_author = urldecode($o_page->author);
 $s_date_modified = urldecode($o_page->date_modified);
 $s_published = urldecode($o_page->published) === "true" ? '<i class="green glyphicon glyphicon-ok"></i>' : '<i class="red glyphicon glyphicon-remove"></i>';
 //
 // sanitise data if necessary
 //
 if ($s_date_modified !== "") {
     $s_date_modified = explode('-', $s_date_modified);
     $s_date_modified = date("D jS M Y", mktime(0, 0, 0, $s_date_modified[1], $s_date_modified[0], $s_date_modified[2]));
 }
 $s_url_text = $s_url;
 $oUrlStuff = new UrlStuff();
 $s_url = $oUrlStuff->s_format_url_from_item_url($s_url);
 if ($s_url === "/") {
     // homepage
     $s_url_text = ' <i class="glyphicon glyphicon-home"></i> Homepage';
 }
 $s_link_class = '';
 if (urldecode($o_page->published) !== "true") {
     $s_link_class = ' style="display:none;"';
 }
 # code...
 $hmtl_pages_ui .= '<tr><td><a class="btn btn-view btn-xs" href="' . S_BASE_EXTENSION . 'flot-admin/admin/index.php?section=items&item=' . $s_id . '&action=edit">';
 $hmtl_pages_ui .= $s_title;
 $s_url_link = '<a target="_blank" href="' . $s_url . '" ' . $s_link_class . ' class="view_link">' . $s_url_text . '</a>';
 if (urldecode($o_page->published) === "false") {
     $s_url_link = '<span class="gray"><i class="glyphicon glyphicon-eye-close"></i> unpublished</span>';