Андрей Копп

Андрей Копп

Был в сети 27 сентября 2018, 12:01
Заказы не принимаю
Вот сама функция из процессоров sites/update

public function beforeSet() {
		$id = (int)$this->getProperty('id');
		$domain = trim($this->getProperty('domain'));
		if (empty($id)) {
			return $this->modx->lexicon('seopanel_sites_err_ns');
		}
        $this->setProperty('yaca',  $this->getProperty('yaca') == 'true' ? 1 : 0);
        $this->setProperty('dmoz',  $this->getProperty('dmoz') == 'true' ? 1 : 0);

		if (empty($domain)) {
			$this->modx->error->addField('domain', $this->modx->lexicon('seopanel_sites_err_name'));
		}
		elseif ($this->modx->getCount($this->classKey, array('domain' => $domain, 'id:!=' => $id))) {
			$this->modx->error->addField('domain', $this->modx->lexicon('seopanel_sites_err_ae'));
		}

		return parent::beforeSet();
	}
[2015-08-07 20:17:23] (ERROR @ /seoPanel/assets/components/seopanel/connector.php) Array
(
    [action] => mgr/sites/update
    [id] => 4
    [domain] => rapcorp.net
    [tic] => 10
    [yaca] => 1
    [yaindex] => 0
    [gooindex] => 0
    [liveinternet] => 0
    [active] => 1
    [domainend] => 0
    [pr] => 3
    [dmoz] => 0
    [yaindex_up] => 0
    [gooindex_up] => 0
    [sorting_id] => 0
)

[2015-08-07 20:17:28] (ERROR @ /seoPanel/assets/components/seopanel/connector.php) Array
(
    [action] => mgr/sites/update
    [id] => 4
    [domain] => rapcorp.net
    [tic] => 10
    [yaca] => 0
    [yaindex] => 0
    [gooindex] => 0
    [liveinternet] => 0
    [active] => 1
    [domainend] => 0
    [pr] => 3
    [dmoz] => 1
    [yaindex_up] => 0
    [gooindex_up] => 0
    [sorting_id] => 0
)
Вот что в консоли ошибок появилось
Так вызов у меня вот такой:

[[!pdoPage?
    &class=`seoPanelSites`
    &tpl=`tpl.seoPanel.sites`
    &element=`getSEOPanel`
    &limit=`10`
    &showLog=`1`
]]
В сниппете getSEOPanel вот что:

<?php
$path = MODX_CORE_PATH. 'components/pdotools/model/pdotools/';
$pdoFetch = $modx->getService('pdofetch','pdoFetch', $path, $scriptProperties);
$pdoFetch->setConfig($scriptProperties);
return $pdoFetch->run();
В консоли делаю:
$sites = $modx->newObject('seoPanelSites');
$sites->save();
Запись в таблице создаётся. По поводу name, у меня в таблице нету такого поля, не знаю в какую сторону копать.
Совет на будущее, попробуйте перенести сайт на тестовый домен и базу для этого создайте, а там уже можно эксперементировать. Я например никогда на боевых сайтах не ставлю ничего не испробованого, но сайты обновил на одном дыхании. Ещё одна версия ваших событий версия PHP не выше 5.3
Немного модифицировал код для того случая, когда сайтов много и надо обновлять их все, но в каждом файлике в конечном итоге такой заморочь менять ссылки при выходе нового релиза, по этому я сделал следующее.

1. Скачал последнюю версию движка с офф. сайта.
2. Взял один из своих сайтов за основну и создал в корне папочку /modx/ куда и залил свеже скачанный архив.
3. В эту же директорию я залил файлик upload.php вот с таким простеньким кодом:

<?php
	$base_url = 'http://sikvel.pro/modx/';
	$file = "modx-2.3.4-pl-advanced.zip";
	$url = $base_url.$file;
	
	echo $json = '{"url": "'.$url.'"}';
4. После делаем так как написал Илья, но в файле install.php заменяем строчку:
$link = 'https://ilyaut.ru/modx/modx-2.3.4-pl-advanced.zip';
на:
$url = 'http://sikvel.pro/modx/upload.php';
$a = file_get_contents($url);
$a = json_decode($a);
$upload_url = $a->url;
$link = $upload_url;
P.S. Вместо sikvel.pro в двух файлах вставляете урл вашего сайта. И тем самым, мы меняем данные о релизе только в одном файле, находящимся у нас на главном сервере, вместе с архивом релиза MODX Revo. На оригинальность не претендую.