protected function placeholder($id) { $placeholder = new HTMLTag('span', false, false); $placeholder->createAttribute('id', 'hashover-placeholder-' . $id); $placeholder->appendAttribute('id', '-' . $this->fromVariable('permalink'), false); if (!empty($this->comment[$id])) { $placeholder->innerHTML($this->comment[$id]); } return $placeholder->asHTML(); }
protected function editCheck($permalink, $comment, $subscribed = true) { if (!empty($_GET['hashover_edit'])) { if ($_GET['hashover_edit'] === $permalink) { $file = substr($permalink, 1); $file = str_replace('r', '-', $file); $file = str_replace('_pop', '', $file); $body = $comment['body']; $body = preg_replace($this->linkRegex, '\\1', $body); $name = !empty($comment['name']) ? $comment['name'] : ''; $website = !empty($comment['website']) ? $comment['website'] : ''; $form = new HTMLTag('form', false, false); $form->createAttribute('id', 'hashover-edit-' . $permalink); $form->createAttribute('class', 'hashover-edit-form'); $form->createAttribute('method', 'post'); $form->createAttribute('action', $_SERVER['PHP_SELF']); $form->innerHTML($this->html->editForm($permalink, $file, $name, $website, $body, $subscribed)); return $form->asHTML(); } } }
public function editForm($permalink, $file, $name = '', $website = '', $body, $subscribed = true) { // "Edit Comment" locale string $edit_comment = $this->locales->locale('edit_comment', $this->addcslashes); // "Save Edit" locale string $save_edit = $this->locales->locale('save_edit', $this->addcslashes); // "Cancel" locale string $cancel_edit = $this->locales->locale('cancel', $this->addcslashes); // "Delete" locale string $delete_comment = $this->locales->locale('delete', $this->addcslashes); // Create wrapper element $edit_form = new HTMLTag('div'); // Create edit form title element $edit_form_title = new HTMLTag('div', false, false); $edit_form_title->createAttribute('class', 'hashover-title'); $edit_form_title->appendAttribute('class', 'hashover-dashed-title'); $edit_form_title->innerHTML($edit_comment); // Append edit form title to edit form wrapper $edit_form->appendChild($edit_form_title); // Append default login inputs $edit_form->appendChild($this->loginInputs(true, $name, $website)); // Create label element for comment textarea if ($this->setup->usesLabels) { $edit_comment_label = new HTMLTag('label', false, false); $edit_comment_label->createAttribute('for', 'hashover-edit-comment'); $edit_comment_label->createAttribute('class', 'hashover-comment-label'); $edit_comment_label->innerHTML($edit_comment); // Add comment label to form element $edit_form->appendChild($edit_comment_label); } // Create edit textarea $edit_textarea = new HTMLTag('textarea', false, false); $edit_textarea->createAttribute('id', 'hashover-edit-comment'); $edit_textarea->createAttribute('class', 'hashover-textarea'); $edit_textarea->appendAttribute('class', 'hashover-edit-textarea'); $edit_textarea->createAttribute('cols', '62'); $edit_textarea->createAttribute('name', 'comment'); $edit_textarea->createAttribute('rows', '10'); $edit_textarea->createAttribute('title', $this->locales->locale('form_tip', $this->addcslashes)); $edit_textarea->innerHTML($this->injectVar($body)); // Add edit textarea element to form element $edit_form->appendChild($edit_textarea); // Create hidden page title input element $edit_page_title_input = new HTMLTag('input', true); $edit_page_title_input->createAttribute('type', 'hidden'); $edit_page_title_input->createAttribute('name', 'title'); $edit_page_title_input->createAttribute('value', $this->pageTitle); // Add hidden page title input element to form element $edit_form->appendChild($edit_page_title_input); // Create hidden page URL input element $edit_page_url_input = new HTMLTag('input', true); $edit_page_url_input->createAttribute('type', 'hidden'); $edit_page_url_input->createAttribute('name', 'url'); $edit_page_url_input->createAttribute('value', $this->pageURL); // Add hidden page title input element to form element $edit_form->appendChild($edit_page_url_input); // Create hidden comment file input element $edit_file_input = new HTMLTag('input', true); $edit_file_input->createAttribute('type', 'hidden'); $edit_file_input->createAttribute('name', 'file'); $edit_file_input->createAttribute('value', $this->injectVar($file)); // Add hidden page title input element to form element $edit_form->appendChild($edit_file_input); // Create wrapper element for edit form buttons $edit_form_footer = new HTMLTag('div'); $edit_form_footer->createAttribute('class', 'hashover-form-footer'); // Add checkbox label element to edit form buttons wrapper element $edit_form_footer->appendChild($this->subscribeLabel($permalink, 'edit', $subscribed)); // Create wrapper for form buttons $edit_form_buttons_wrapper = new HTMLTag('span'); $edit_form_buttons_wrapper->createAttribute('class', 'hashover-form-buttons'); // Create "Cancel" link element if ($this->setup->usesCancelButtons) { $edit_cancel_button = new HTMLTag('a', false, false); $edit_cancel_button->createAttribute('href', $this->setup->parsedURL['path']); // Add URL queries to link reference if (!empty($this->setup->URLQueries)) { $edit_cancel_button->appendAttribute('href', '?' . $this->setup->URLQueries, false); } // Add ID attribute with JavaScript variable single quote break out if (!empty($permalink)) { $edit_cancel_button->createAttribute('id', 'hashover-edit-cancel-' . $this->injectVar($permalink)); } // Continue with other attibutes $edit_cancel_button->appendAttribute('href', '#' . $this->injectVar($permalink), false); $edit_cancel_button->createAttribute('class', 'hashover-submit'); $edit_cancel_button->appendAttribute('class', 'hashover-edit-cancel'); $edit_cancel_button->createAttribute('title', $cancel_edit); $edit_cancel_button->innerHTML($cancel_edit); // Add "Cancel" link element to edit form footer element $edit_form_buttons_wrapper->appendChild($edit_cancel_button); } // Create "Post Comment" button element $save_edit_button = new HTMLTag('input', true); // Add ID attribute with JavaScript variable single quote break out if (!empty($permalink)) { $save_edit_button->createAttribute('id', 'hashover-edit-post-' . $this->injectVar($permalink)); } // Continue with other attibutes $save_edit_button->createAttribute('class', 'hashover-submit'); $save_edit_button->appendAttribute('class', 'hashover-edit-post'); $save_edit_button->createAttribute('type', 'submit'); $save_edit_button->createAttribute('name', 'edit'); $save_edit_button->createAttribute('value', $save_edit); $save_edit_button->createAttribute('title', $save_edit); // Add "Save Edit" element to edit form footer element $edit_form_buttons_wrapper->appendChild($save_edit_button); // Create "Delete" button element $delete_button = new HTMLTag('input', true); // Add ID attribute with JavaScript variable single quote break out if (!empty($permalink)) { $delete_button->createAttribute('id', 'hashover-edit-delete-' . $this->injectVar($permalink)); } // Continue with other attibutes $delete_button->createAttribute('class', 'hashover-submit'); $delete_button->appendAttribute('class', 'hashover-edit-delete'); $delete_button->createAttribute('type', 'submit'); $delete_button->createAttribute('name', 'delete'); $delete_button->createAttribute('value', $delete_comment); $delete_button->createAttribute('title', $delete_comment); // Add "Delete" element to edit form footer element $edit_form_buttons_wrapper->appendChild($delete_button); // Add edit form buttons wrapper to edit form footer element $edit_form_footer->appendChild($edit_form_buttons_wrapper); // Add form buttons to edit form element $edit_form->appendChild($edit_form_footer); return $edit_form->innerHTML; }
public function editForm($permalink, $file, $name = '', $website = '', $body, $status = '', $subscribed = true) { // "Edit Comment" locale string $edit_comment = $this->locales->locale('edit-comment', $this->addcslashes); // "Save Edit" locale string $save_edit = $this->locales->locale('save-edit', $this->addcslashes); // "Cancel" locale string $cancel_edit = $this->locales->locale('cancel', $this->addcslashes); // "Delete" locale string $delete_comment = $this->locales->locale('delete', $this->addcslashes); // Create wrapper element $edit_form = new HTMLTag('div'); // Create edit form title element $edit_form_title = new HTMLTag('div', false, false); $edit_form_title->createAttribute('class', 'hashover-title'); $edit_form_title->appendAttribute('class', 'hashover-dashed-title'); $edit_form_title->innerHTML($edit_comment); if ($this->login->userIsAdmin === true) { // Create status dropdown wrapper element $edit_status_wrapper = new HTMLTag('span', false, false); $edit_status_wrapper->createAttribute('class', 'hashover-edit-status'); $edit_status_wrapper->innerHTML('Status'); // Create select wrapper element $edit_status_select_wrapper = new HTMLTag('span', false, false); $edit_status_select_wrapper->createAttribute('class', 'hashover-select-wrapper'); // Status dropdown menu options $status_options = array('approved' => $this->locales->locale('status-approved', $this->addcslashes), 'pending' => $this->locales->locale('status-pending', $this->addcslashes), 'deleted' => $this->locales->locale('status-deleted', $this->addcslashes)); // Create status dropdown menu element $edit_status_dropdown = new HTMLTag('select'); $edit_status_dropdown->createAttribute('id', 'hashover-edit-status-' . $this->injectVar($permalink)); $edit_status_dropdown->createAttribute('name', 'status'); $edit_status_dropdown->createAttribute('size', '1'); foreach ($status_options as $value => $inner_html) { // Create status dropdown menu option element $edit_status_option = new HTMLTag('option'); $edit_status_option->createAttribute('value', $value); $edit_status_option->innerHTML($inner_html); // Set option as selected if it matches the comment status given if ($value === $status) { $edit_status_option->createAttribute('selected', 'true'); } // Add option element to status dropdown menu $edit_status_dropdown->appendChild($edit_status_option); } // Add status dropdown menu to select wrapper element $edit_status_select_wrapper->appendChild($edit_status_dropdown); // Add select wrapper to status dropdown wrapper element $edit_status_wrapper->appendChild($edit_status_select_wrapper); // Add status dropdown wrapper to edit form title element $edit_form_title->appendChild($edit_status_wrapper); } // Append edit form title to edit form wrapper $edit_form->appendChild($edit_form_title); // Append default login inputs $edit_form->appendChild($this->loginInputs(true, $name, $website)); // Create label element for comment textarea if ($this->setup->usesLabels === true) { $edit_comment_label = new HTMLTag('label', false, false); $edit_comment_label->createAttribute('for', 'hashover-edit-comment'); $edit_comment_label->createAttribute('class', 'hashover-comment-label'); $edit_comment_label->innerHTML($edit_comment); // Add comment label to form element $edit_form->appendChild($edit_comment_label); } // Create edit textarea $edit_textarea = new HTMLTag('textarea', false, false); $edit_textarea->createAttribute('id', 'hashover-edit-comment'); $edit_textarea->createAttribute('class', 'hashover-textarea'); $edit_textarea->appendAttribute('class', 'hashover-edit-textarea'); $edit_textarea->createAttribute('cols', '62'); $edit_textarea->createAttribute('name', 'comment'); $edit_textarea->createAttribute('rows', '10'); $edit_textarea->createAttribute('title', $this->locales->locale('form-tip', $this->addcslashes)); $edit_textarea->innerHTML($this->injectVar($body)); // Add edit textarea element to form element $edit_form->appendChild($edit_textarea); // Create hidden page title input element $edit_page_title_input = new HTMLTag('input', true); $edit_page_title_input->createAttribute('type', 'hidden'); $edit_page_title_input->createAttribute('name', 'title'); $edit_page_title_input->createAttribute('value', $this->pageTitle); // Add hidden page title input element to form element $edit_form->appendChild($edit_page_title_input); // Create hidden page URL input element $edit_page_url_input = new HTMLTag('input', true); $edit_page_url_input->createAttribute('type', 'hidden'); $edit_page_url_input->createAttribute('name', 'url'); $edit_page_url_input->createAttribute('value', $this->pageURL); // Add hidden page title input element to form element $edit_form->appendChild($edit_page_url_input); // Create hidden comment file input element $edit_file_input = new HTMLTag('input', true); $edit_file_input->createAttribute('type', 'hidden'); $edit_file_input->createAttribute('name', 'file'); $edit_file_input->createAttribute('value', $this->injectVar($file)); // Add hidden page title input element to form element $edit_form->appendChild($edit_file_input); // Create element for various messages when needed $edit_message = new HTMLTag('div'); $edit_message->createAttribute('id', 'hashover-edit-message-' . $this->injectVar($permalink)); $edit_message->createAttribute('class', 'hashover-message'); // Add message element to edit form element $edit_form->appendChild($edit_message); // Create wrapper element for edit form buttons $edit_form_footer = new HTMLTag('div'); $edit_form_footer->createAttribute('class', 'hashover-form-footer'); // Add checkbox label element to edit form buttons wrapper element if ($this->setup->fieldOptions['email'] !== false) { $edit_form_footer->appendChild($this->subscribeLabel($permalink, 'edit', $subscribed)); } // Create wrapper for form buttons $edit_form_buttons_wrapper = new HTMLTag('span'); $edit_form_buttons_wrapper->createAttribute('class', 'hashover-form-buttons'); // Create "Cancel" link element if ($this->setup->usesCancelButtons === true) { $edit_cancel_button = new HTMLTag('a', false, false); $edit_cancel_button->createAttribute('href', $this->setup->filePath); // Add URL queries to link reference if (!empty($this->setup->URLQueries)) { $edit_cancel_button->appendAttribute('href', '?' . $this->setup->URLQueries, false); } // Add ID attribute with JavaScript variable single quote break out if (!empty($permalink)) { $edit_cancel_button->createAttribute('id', 'hashover-edit-cancel-' . $this->injectVar($permalink)); } // Continue with other attributes $edit_cancel_button->appendAttribute('href', '#' . $this->injectVar($permalink), false); $edit_cancel_button->createAttribute('class', 'hashover-submit'); $edit_cancel_button->appendAttribute('class', 'hashover-edit-cancel'); $edit_cancel_button->createAttribute('title', $cancel_edit); $edit_cancel_button->innerHTML($cancel_edit); // Add "Cancel" link element to edit form footer element $edit_form_buttons_wrapper->appendChild($edit_cancel_button); } // Create "Post Comment" button element $save_edit_button = new HTMLTag('input', true); // Add ID attribute with JavaScript variable single quote break out if (!empty($permalink)) { $save_edit_button->createAttribute('id', 'hashover-edit-post-' . $this->injectVar($permalink)); } // Continue with other attributes $save_edit_button->createAttribute('class', 'hashover-submit'); $save_edit_button->appendAttribute('class', 'hashover-edit-post'); $save_edit_button->createAttribute('type', 'submit'); $save_edit_button->createAttribute('name', 'edit'); $save_edit_button->createAttribute('value', $save_edit); $save_edit_button->createAttribute('title', $save_edit); // Add "Save Edit" element to edit form footer element $edit_form_buttons_wrapper->appendChild($save_edit_button); // Create "Delete" button element $delete_button = new HTMLTag('input', true); // Add ID attribute with JavaScript variable single quote break out if (!empty($permalink)) { $delete_button->createAttribute('id', 'hashover-edit-delete-' . $this->injectVar($permalink)); } // Continue with other attributes $delete_button->createAttribute('class', 'hashover-submit'); $delete_button->appendAttribute('class', 'hashover-edit-delete'); $delete_button->createAttribute('type', 'submit'); $delete_button->createAttribute('name', 'delete'); $delete_button->createAttribute('value', $delete_comment); $delete_button->createAttribute('title', $delete_comment); // Add "Delete" element to edit form footer element $edit_form_buttons_wrapper->appendChild($delete_button); // Add edit form buttons wrapper to edit form footer element $edit_form_footer->appendChild($edit_form_buttons_wrapper); // Add form buttons to edit form element $edit_form->appendChild($edit_form_footer); return $edit_form->innerHTML; }