警告:DOMDocument::loadXML(): CData 部分未完成 public function add() { $this->load->language(' in Entity, line: 584 in /home/s/syperdgq/syperdgq.beget.tech/public_html /admin/controller/marketplace/modification.php 第 467 行警告:DOMDocument::loadXML():標簽中的資料過早結束在物體中添加第 371 行,行:/home/s/syperdgq/syperdgq.beget.tech/ 中的第 584 行public_html/admin/controller/marketplace/modification.php on line 467Warning: DOMDocument::loadXML(): Premature end of data in tag operation line 367 in Entity, line: 584 in /home/s/syperdgq/syperdgq.beget.tech /public_html/admin/controller/marketplace/modification.php 第 467 行警告:DOMDocument::loadXML():Entity 中標記檔案第 44 行中的資料過早結束,/home/s/syperdgq/syperdgq.beget 中的第 584 行。 tech/public_html/admin/controller/marketplace/modification。php on line 467Warning: DOMDocument::loadXML(): Premature end of data in tag modify line 2 in Entity, line: 584 in /home/s/syperdgq/syperdgq.beget.tech/public_html/admin/controller/marketplace/modification第 467 行的 .php 注意:嘗試在第 470 行的 /home/s/syperdgq/syperdgq.beget.tech/public_html/admin/controller/marketplace/modification.php 中獲取非物件的屬性“textContent”
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Modification Manager</name>
<code>modification_manager</code>
<version>3.0.4</version>
<author>Opencart-templates</author>
<link>http://www.opencart-templates.co.uk/modification-manager</link>
<file path="admin/language/en-gb/marketplace/modification.php">
<operation>
<search index="0"><![CDATA[<?php]]></search>
<add position="after"><![CDATA[
$_['tab_error'] = 'Error';
$_['tab_files'] = 'Files';
$_['text_add'] = 'Add Modification';
$_['text_edit'] = 'Edit Modification: %s';
$_['text_enabled'] = 'Enabled';
$_['text_disabled'] = 'Disabled';
$_['entry_author'] = 'Author';
$_['entry_name'] = 'Name';
$_['entry_xml'] = 'XML';
$_['button_filter'] = 'Filter';
$_['button_reset'] = 'Reset';
$_['button_download'] = 'Download';
$_['column_date_modified'] = 'Last Modified';
$_['error_warning'] = 'There has been an error. Please check your data and try again';
$_['error_required'] = 'This field is required';
$_['error_name'] = 'Missing name tag';
$_['error_code'] = 'Missing code tag';
$_['error_exists'] = 'Modification \'%s\' is already using the same code: %s!';]]></add>
</operation>
</file>
<file path="admin/controller/marketplace/modification.php">
<operation>
<search index="0"><![CDATA[public function index() {]]></search>
<add position="after"><![CDATA[ $this->load->model('extension/module/modification_manager');
$this->model_extension_module_modification_manager->install();
]]></add>
</operation>
<operation>
<search><![CDATA[$this->model_setting_modification]]></search>
<add position="before"><![CDATA[$this->load->model('extension/module/modification_manager');
]]></add>
</operation>
<operation>
<search><![CDATA[$this->model_setting_modification->]]></search>
<add position="replace"><![CDATA[$this->model_extension_module_modification_manager->]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$sort = 'name';]]></search>
<add position="replace"><![CDATA[$sort = 'date_modified';]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$order = 'ASC';]]></search>
<add position="replace"><![CDATA[$order = 'DESC';]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$handle = fopen(DIR_LOGS . 'ocmod.log', 'w ');]]></search>
<add position="before"><![CDATA[ fclose($handle);
$handle = fopen(DIR_LOGS . 'ocmod_error.log', 'w ');]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$maintenance = $this->config->get('config_maintenance');]]></search>
<add position="after"><![CDATA[
// Clear logs on refresh
$handle = fopen(DIR_LOGS . 'ocmod.log', 'w ');
fclose($handle);
$handle = fopen(DIR_LOGS . 'ocmod_error.log', 'w ');
fclose($handle);
]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$data['breadcrumbs'] = array();]]></search>
<add position="before"><![CDATA[ $this->load->model('extension/module/modification_manager');
if (isset($this->request->get['filter_name'])) {
$filter_name = $this->request->get['filter_name'];
} else {
$filter_name = null;
}
if (isset($this->request->get['filter_xml'])) {
$filter_xml = $this->request->get['filter_xml'];
} else {
$filter_xml = null;
}
if (isset($this->request->get['filter_author'])) {
$filter_author = $this->request->get['filter_author'];
} else {
$filter_author = null;
}
$url = $this->getListUrlParams();
$data['add'] = $this->url->link('marketplace/modification/add', 'user_token=' . $this->session->data['user_token'] . $url, true);
$data['clear_log'] = $this->url->link('marketplace/modification/clearlog', 'user_token=' . $this->session->data['user_token'] . $url, true);
$data['filter_action'] = $this->url->link('marketplace/modification', 'user_token=' . $this->session->data['user_token'], true);
$data['reset_url'] = $this->url->link('marketplace/modification', 'user_token=' . $this->session->data['user_token'], true);
$data['tab_files'] = $this->language->get('tab_files');
$data['tab_error'] = $this->language->get('tab_error');]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$data['sort_name'] =]]></search>
<add position="before"><![CDATA[ if (isset($this->request->get['filter_name'])) {
$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['filter_author'])) {
$url .= '&filter_author=' . urlencode(html_entity_decode($this->request->get['filter_author'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['filter_xml'])) {
$url .= '&filter_xml=' . urlencode(html_entity_decode($this->request->get['filter_xml'], ENT_QUOTES, 'UTF-8'));
}
$data['sort_date_modified'] = $this->url->link('marketplace/modification', 'user_token=' . $this->session->data['user_token'] . '&sort=date_modified' . $url, true);]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$filter_data = array(]]></search>
<add position="after"><![CDATA[ 'filter_name' => $filter_name,
'filter_author' => $filter_author,
'filter_xml' => $filter_xml,]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$data['modifications'][] = array(]]></search>
<add position="after"><![CDATA[ 'date_modified' => $result['date_modified'] && $result['date_modified'] != '0000-00-00 00:00:00' ? date(date('Ymd') == date('Ymd', strtotime($result['date_modified'])) ? 'G:i' : $this->language->get('date_format_short'), strtotime($result['date_modified'])) : null,
'edit' => $this->url->link('marketplace/modification/edit', 'user_token=' . $this->session->data['user_token'] . '&modification_id=' . $result['modification_id'] . $url, true),
'download' => $this->url->link('marketplace/modification/download', 'user_token=' . $this->session->data['user_token'] . '&modification_id=' . $result['modification_id'] , true),]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$pagination = new Pagination();]]></search>
<add position="before"><![CDATA[ if (isset($this->request->get['filter_name'])) {
$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['filter_author'])) {
$url .= '&filter_author=' . urlencode(html_entity_decode($this->request->get['filter_author'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['filter_xml'])) {
$url .= '&filter_xml=' . urlencode(html_entity_decode($this->request->get['filter_xml'], ENT_QUOTES, 'UTF-8'));
}]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$data['clear_log'] =]]></search>
<add position="before"><![CDATA[ $data['filter_name'] = $filter_name;
$data['filter_author'] = $filter_author;
$data['filter_xml'] = $filter_xml;
$data['modified_files'] = array();
$modified_files = self::modifiedFiles(DIR_MODIFICATION);
$modification_files = $this->getModificationXmlFiles();
foreach($modified_files as $modified_file) {
if(isset($modification_files[$modified_file])){
$modifications = $modification_files[$modified_file];
} else {
$modifications = array();
}
$data['modified_files'][] = array(
'file' => $modified_file,
'modifications' => $modifications
);
}
// Error log
$error_file = DIR_LOGS . 'ocmod_error.log';
if (file_exists($error_file)) {
$data['error_log'] = htmlentities(file_get_contents($error_file, FILE_USE_INCLUDE_PATH, null));
} else {
$data['error_log'] = '';
}
]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$this->load->view('marketplace/modification']]></search>
<add position="replace"><![CDATA[$this->load->view('extension/module/modification_manager/list']]></add>
</operation>
<operation>
<search index="0"><![CDATA[$this->response->redirect($this->url->link(!empty($data['redirect']) ? $data['redirect'] : 'marketplace/modification', 'user_token=' . $this->session->data['user_token'] . $url, true));]]></search>
<ignoreif position="replace"><![CDATA[if (!empty($data['redirect'])) {]]></ignoreif>
<add position="replace"><![CDATA[$url = $this->getListUrlParams();
if (!empty($data['redirect'])) {
$redirect = $data['redirect'];
} elseif (!empty($this->request->get['redirect'])) {
$redirect = $this->request->get['redirect'];
} else {
$redirect = 'marketplace/modification';
}
$this->response->redirect($this->url->link($redirect, 'user_token=' . $this->session->data['user_token'] . $url, true));]]></add>
</operation>
<operation>
<search index="0"><![CDATA[if ($this->validate()) {]]></search>
<add position="after"><![CDATA[ $error_log = array();
// Clear vqmod cache
$vqmod_path = substr(DIR_SYSTEM, 0, -7) . 'vqmod/';
if (file_exists($vqmod_path)) {
$vqmod_cache = glob($vqmod_path.'vqcache/vq*');
if ($vqmod_cache) {
foreach ($vqmod_cache as $file) {
if (file_exists($file)) {
@unlink($file);
}
}
}
if (file_exists($vqmod_path.'mods.cache')) {
@unlink($vqmod_path.'mods.cache');
}
if (file_exists($vqmod_path.'checked.cache')) {
@unlink($vqmod_path.'checked.cache');
}
}
]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$log[] = 'MOD:]]></search>
<add position="after"><![CDATA[ $error_log_mod = 'MOD: ' . $dom->getElementsByTagName('name')->item(0)->textContent;
]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$operations = $file->getElementsByTagName('operation');]]></search>
<add position="after"><![CDATA[
$file_error = $file->getAttribute('error');]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$files = glob($path, GLOB_BRACE);]]></search>
<add position="after"><![CDATA[ if (!$files) {
if ($file_error != 'skip') {
$error_log[] = '----------------------------------------------------------------';
$error_log[] = $error_log_mod;
$error_log[] = 'MISSING FILE!';
$error_log[] = $path;
}
}]]></add>
</operation>
<operation>
<search index="0"><![CDATA[if (!$status) {]]></search>
<add position="after"><![CDATA[ if ($error != 'skip') {
$error_log[] = "\n";
$error_log[] = $error_log_mod;
$error_log[] = 'NOT FOUND!';
$error_log[] = 'CODE: ' . $search;
$error_log[] = 'FILE: ' . $key;
}]]></add>
</operation>
<operation>
<search index="0"><![CDATA[$ocmod->write(implode("\n", $log));]]></search>
<add position="after"><![CDATA[
if ($error_log) {
$ocmod = new Log('ocmod_error.log');
$ocmod->write(implode("\n", $error_log));
}]]></add>
</operation>
<operation>
<search index="0"><![CDATA[protected function validate(]]></search>
<add position="before"><![CDATA[
public function add() {
$this->load->language('marketplace/modification');
$this->load->model('extension/module/modification_manager');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$xml = html_entity_decode($this->request->post['xml'], ENT_QUOTES, 'UTF-8');
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->preserveWhiteSpace = false;
$dom->loadXml($xml);
$data = array(
'version' => '',
'author' => '',
'link' => '',
'status' => 1
);
$data['xml'] = $xml;
$data['name'] = $dom->getElementsByTagName('name')->item(0)->textContent;
$data['code'] = $dom->getElementsByTagName('code')->item(0)->textContent;
if ($dom->getElementsByTagName('version')->length) {
$data['version'] = $dom->getElementsByTagName('version')->item(0)->textContent;
}
if ($dom->getElementsByTagName('author')->length) {
$data['author'] = $dom->getElementsByTagName('author')->item(0)->textContent;
}
$this->model_extension_module_modification_manager->addModification($data);
$modification_id = $this->db->getLastId();
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('marketplace/modification/edit', 'user_token=' . $this->session->data['user_token'] . $this->getListUrlParams(array('modification_id' => $modification_id)), true));
}
$this->getForm();
}
public function edit() {
$this->load->language('marketplace/modification');
$this->load->model('extension/module/modification_manager');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && !empty($this->request->get['modification_id']) && $this->validateForm()) {
$modification_id = $this->request->get['modification_id'];
$xml = html_entity_decode($this->request->post['xml'], ENT_QUOTES, 'UTF-8');
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->preserveWhiteSpace = false;
$dom->loadXml($xml);
$data = array();
$data['xml'] = $xml;
$data['name'] = $dom->getElementsByTagName('name')->item(0)->textContent;
$data['code'] = $dom->getElementsByTagName('code')->item(0)->textContent;
if ($dom->getElementsByTagName('version')->length) {
$data['version'] = $dom->getElementsByTagName('version')->item(0)->textContent;
} else {
$data['version'] = '';
}
if ($dom->getElementsByTagName('author')->length) {
$data['author'] = $dom->getElementsByTagName('author')->item(0)->textContent;
} else {
$data['author'] = '';
}
if ($dom->getElementsByTagName('link')->length) {
$data['link'] = $dom->getElementsByTagName('link')->item(0)->textContent;
} else {
$data['link'] = '';
}
$this->model_extension_module_modification_manager->editModification($modification_id, $data);
$url = $this->getListUrlParams(array('modification_id' => $modification_id));
if (isset($this->request->get['refresh'])) {
$this->response->redirect($this->url->link('marketplace/modification/refresh', 'user_token=' . $this->session->data['user_token'] . $url, true));
}
if ($this->db->countAffected()) {
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('marketplace/modification/edit', 'user_token=' . $this->session->data['user_token'] . $url, true));
}
}
$this->getForm();
}
public function download() {
if (!$this->user->hasPermission('modify', 'marketplace/modification')) {
$this->response->redirect($this->url->link('marketplace/modification', 'user_token=' . $this->session->data['user_token'], true));
}
if (isset($this->request->get['modification_id'])) {
$modification_id = $this->request->get['modification_id'];
} else {
$modification_id = 0;
}
$this->load->model('extension/module/modification_manager');
$modification = $this->model_extension_module_modification_manager->getModification($modification_id);
if ($modification) {
$filename = $modification['code'] . '.ocmod.xml';
$file = $modification['xml'];
ob_start();
echo $file;
$download = ob_get_contents();
$size = ob_get_length();
ob_end_clean();
if (!headers_sent()) {
if (!empty($modification['xml'])) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
if (ob_get_level()) {
ob_end_clean();
}
echo $download;
exit();
} else {
exit($this->language->get('error_file'));
}
} else {
exit($this->language->get('error_headers'));
}
} else {
$this->response->redirect($this->url->link('marketplace/modification', 'user_token=' . $this->session->data['user_token'] . $url, true));
}
}
public function getForm() {
$data['heading_title'] = $this->language->get('heading_title');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['button_save'] = $this->language->get('button_save');
$data['button_download'] = $this->language->get('button_download');
$data['button_refresh'] = $this->language->get('button_refresh');
$data['button_cancel'] = $this->language->get('button_cancel');
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} elseif (!empty($this->error)) {
$data['error_warning'] = $this->language->get('error_warning');
} else {
$data['error_warning'] = '';
}
if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
} else {
$data['success'] = false;
}
if (isset($this->error['xml'])) {
$data['error_xml'] = $this->error['xml'];
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('marketplace/modification', 'user_token=' . $this->session->data['user_token'] . $this->getListUrlParams(), true)
);
if (isset($this->request->get['modification_id'])) {
$this->load->model('extension/module/modification_manager');
$modification_info = $this->model_extension_module_modification_manager->getModification($this->request->get['modification_id']);
if (!$modification_info) exit;
$data['text_form'] = sprintf($this->language->get('text_edit'), $modification_info['name']);
$data['action'] = $this->url->link('marketplace/modification/edit', '&modification_id=' . $modification_info['modification_id'] . '&user_token=' . $this->session->data['user_token'], true);
$data['refresh'] = $this->url->link('marketplace/modification/edit', '&modification_id=' . $modification_info['modification_id'] . '&refresh=1&user_token=' . $this->session->data['user_token'], true);
$this->document->setTitle($modification_info['name'] . '
uj5u.com熱心網友回復:
將ocmod擴展一一禁用,然后重繪 查找問題。
您可以清除存盤檔案夾中的快取并禁用它們,或者登錄到您的 MySQL 并手動將它們全部關閉。
似乎一個擴展程式給您帶來了問題。
uj5u.com熱心網友回復:
我沒有檢查整個代碼,但你不能替換部分字串......
<operation>
<search index="0"><![CDATA[$this->load->view('marketplace/modification']]></search>
<add position="replace"><![CDATA[$this->load->view('extension/module/modification_manager/list']]></add>
</operation>
要檢查代碼是否正確添加或替換為 xml,請查找修改后的檔案并檢查您的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/533239.html
標籤:xml
上一篇:多個電話號碼的XSD驗證