Что нового

Скрипт получения текущей версии AutoIt

Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Garrett [?]
лучше воспользоваться планировщиком
Оказывается с форума так просто задание повесить нельзя(?). Но вот из скрипта установщика наверняка можно, моды ведь это делают как то.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Я на работе поковыряю движок форума, может и разберусь как сделать через планировщик

CreatoR
А ты не пробовал по инструкции становить оповещение?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR
Подскажи пожалуйста какой мод (кроме стандартных) добавляться в диспетчер задач.

Нашол мод который добавляеться в Диспечер Задач. Вродебы понял как он устанавливается.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Немного разобрался как создать Мод.

1. На данный момент Мод умеет создавать/удалять таблицу.
2. Добавлять функцию оповещения в файл.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR
Можно уточнить какой языковой пакет установлен на форуме?
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
какой языковой пакет установлен на форуме?
Русский надо полагать :smile: (Russian-utf8).
Но раз уже делать мод, то нужно кидать записи в обе версии, т.е чтобы если у пользователя форум выставлен на английском, то и все надписи были на нём.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Сделал Модификацию для форума.

Установка:
1. Создать на хостинге папку Packages/autoit_version_checker
2. Переписать все файлы из архива в созданную папку.
3. Дальше установка, как и у других Модификаций.

На всякий случай опишу шаги:
1.1. Перейти в Центр Администрирования
1.2. Перейти ГЛАВНЫЙ > Пакеты модификаций > Обзор пакетов
1.3. Модификация должна отобразиться в списке Пакеты модификаций
1.4. Нажать Установить ([ ])
1.5. В списке Установочные действия в столбце Описание должно отобразиться Успешно
1.6. Нажать кнопку Установить

Модификация установлена.

Настройка времени проверки обновления:
2.1. Перейти в Центр Администрирования
2.2. Перейти ОБСЛУЖИВАНИЕ > Диспетчер задач > Диспетчер задач
2.3. В самом низу списка должна появиться задача autoit_version_checker
2.4. Нажать на ссылку autoit_version_checker, откроется Изменение задачи. Если необходимо изменить Интервал и Время запуска. Нажать Сохранить изменения
2.5. Убедиться, что отмечен checkbox в столбце Разрешена
2.6. Отметить checkbox в столбце Запустить сейчас
2.7. Нажать кнопку Запустить сейчас
2.8. Должно появиться сообщение о доступности версии 3.3.6.1


При выполнении шагов 2.6 - 2.8 на хостинге создается файл update.dat который является копией update.dat с офф. сервере.

Обновления файла update.dat происходит через Диспетчер задач. В указанный интервал времени задача сравнивает filetime из файла update.dat с filetime из файла update.dat который находиться на офф. сервере. При несовпадении в файл update.dat который на хостинге записывается все информация из update.dat который на офф. сервере.

При входе пользователя на форум функция оповещения сравнивает версии из файла update.dat с версией в таблице smf_version_notuce. Если есть не совпадение пользователь получает оповещение, что доступна новая версия.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
Сделал Модификацию для форума.
Отлично!

Одно только настораживает:
This installer is intended for SMF 2 Beta 3 / 3.1. If this is not your current version this mod may not work.

Пробую установить локально...


Добавлено:
Сообщение автоматически объединено:

Ну вот, при попытке запуска задачи получаю вот что:
Fatal error: Call to undefined function curl_init() in Z:\home\smf2.ru\www\Sources\ScheduledTasks.php on line 1722


Добавлено:
Сообщение автоматически объединено:

В «Subscriptions-PayPal.php» это проверяется так:

PHP:
		// Can we use curl?
		if (function_exists('curl_init') && $curl = curl_init('http://www.', !empty($modSettings['paidsubs_test']) ? 'sandbox.' : '', 'paypal.com/cgi-bin/webscr'))
		{
			// Set the post data.
			curl_setopt($curl, CURLOPT_POST, true);
			curl_setopt($curl, CURLOPT_POSTFIELDSIZE, 0);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $requestString);

			// Fetch the data returned as a string.
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

			// Fetch the data.
			$this->return_data = curl_exec($curl);

			// Close the session.
			curl_close($curl);
		}
		// Otherwise good old HTTP.
		else
		{
			// Setup the headers.
			$header = 'POST /cgi-bin/webscr HTTP/1.0' . "\r\n";
			$header .= 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
			$header .= 'Content-Length: ' . strlen ($requestString) . "\r\n\r\n";

			// Open the connection.
			$fp = fsockopen('www.' . (!empty($modSettings['paidsubs_test']) ? 'sandbox.' : '') . 'paypal.com', 80, $errno, $errstr, 30);

			// Did it work?
			if (!$fp)
				generateSubscriptionError($txt['paypal_could_not_connect']);

			// Put the data to the port.
			fputs($fp, $header . $requestString);

			// Get the data back...
			while (!feof($fp))
			{
				$this->return_data = fgets($fp, 1024);
				if (strcmp($this->return_data, 'VERIFIED') == 0)
					break;
			}

			// Clean up.
			fclose($fp);
		}

т.ч и тут видимо придётся делать подобную проверку.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR [?]
Одно только настораживает:
Моя плохая :smile: Это я осталось от Модификации на основе которой я делал.

Ну вот, при попытке запуска задачи получаю вот что:
Будем разбираться.

Напиши плизз на какую строчку он ругаеться
Z:\home\smf2.ru\www\Sources\ScheduledTasks.php on line 1722

CreatoR [?]
видимо придётся делать подобную проверк
Странно почему ведь в прошлый раз все работало.

Ладно щас попробую поставить этот мод и будет тестировать. Трабл может быть в конфиликте curl_init.

Удали Модификацию. Шаги удаления как и установки 1.1 - 1.6
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
Удали Модификацию
Удалил, а что дальше? :whistle:

Могу попробовать поставить на форум, может это у меня локально curl не поддерживается?
Кстати если ставить на форум, наши предыдущие “колдования” нужно убрать, т.е все изменения на эту тему нужно откатить?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR [?]
наши предыдущие “колдования” нужно убрать
Да. Убрать надо только изменение в файле index.template.php, а таблица в базе данных подхватиться модификацией.

Попробуй поставить на форум вот эту версия Модификации. Я убрал от туда оповещение оставил только задачу для Диспетчера задач.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
Попробуй поставить на форум вот эту версия Модификации. Я убрал от туда оповещение оставил только задачу для Диспетчера задач.
Ок, задача запустилась, я удалил мод, и попытался поставить первую версию, вот что мне выдало по завершению установки:

Table 'sycraft_autoit.version_notice' doesn't exist
Файл: /var/www/sycraft/data/www/autoit-script.ru/Packages/temp/db_modify.php
Строка: 39

Примечание: Возможно Вашей базе данных требуется обновление. Версия файлов Вашего форума SMF 2.0 RC1.2, тогда как версия Вашей базы данных 2.0 RC1-1. Для устранения ошибки обновите, пожалуйста, форум.

я посмотрел как добавляются таблицы другими модами, там вот так примерно:

PHP:
$smcFunc['db_query']('', '
		INSERT INTO {db_prefix}scheduled_tasks (id_task, next_time, time_offset, time_regularity, time_unit, disabled, task)
		VALUES (NULL, 0, 0, 1, "d", 1, "birthdayPosts")'
	);

И кстати, поиск по строке «global ...» не самый лучший вариант, некоторые моды изменяют эту строку, и добавляют к ней разные переменные, т.ч лучше искать так:

PHP:
			<search position="after"><![CDATA[
	echo '
<div id="mainframe">]]></search>

и ещё, можно как то чтобы задача в диспетчере имела своё название и описание по русский (в зависимости от языка форума), как это сделано для других задач?
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR [?]
вот что мне выдало по завершению установки
В ошибке видно что скрипт не смог найти таблицу. А вы привели пример добавления записи в таблицу.

Сталкивался я с такой ошибкой. Она выпадает из-за отсутствия {db_prefix}. Странно у меня и без {db_prefix} создавалось. Может это из-за ОС на которой стоит сервер.

И кстати, поиск по строке «global ...» не самый лучший вариант

Поиск происходить не по «global ...» а по куску кода
PHP:
function template_body_above()
{
	global $context, $settings, $options, $scripturl, $txt, $modSettings;

и ещё, можно как то чтобы задача в диспетчере имела своё название и описание по русский (в зависимости от языка форума), как это сделано для других задач?

Конечно можно.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
В ошибке видно что скрипт не смог найти таблицу. А вы привели пример добавления записи в таблицу.
В ошибке указана 39-ая строка (там добавляется таблица), вот я и предположил что проблема с добавлением таблицы.

Поиск происходить не по «global ...» а по куску кода
Я знаю, троеточие это чтобы не писать весь кусок кода, мне с модами уже приходилось немного возиться ;)
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR
Перенес движок форума на котором проходят эксперименты на linux. Мод установился но задача из Диспечера задач отказалась запускаться. При проверке скриптом который ты привел выше выяснилось что отсутствует curl :blink:.

Проверь плиз создается ли файл update.dat после выполнения задачи из Диспетчера задач??
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
Проверь плиз создается ли файл update.dat после выполнения задачи из Диспетчера задач??
С версией только для диспетчера, да, создаётся.
Но проблема не тут, а именно в добавлении таблицы в БД.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR [?]
С версией только для диспетчера, да, создаётся.
Уже легче. Щас будем разбираться почему не хочет создавать таблицу.


Добавлено:
Сообщение автоматически объединено:

CreatoR
Добавил проверку перед создание\удалением таблицы

В этой версии затрагивается База данных для проверки создания\удаления таблицы и записи в Диспетчере задач и функция проверки обновления для проверки метода получения информации из файла update.dat.

После установки
[list type=decimal]
[*]Должна создаться таблица в БД (можно проверить через phpMyAdmin)
[*]Задача в диспетчере задач (можно проверить через диспетчер задач)
[*]Должен создаться файл update.dat (можно проверить через FTP)
[/list]

Хочется с начало проверить функционал, а красота (Название в диспетчере задач, описание и т.д.) потом добавиться :smile:
 

XpycT

Скриптер
Сообщения
380
Репутация
133
CreatoR
Есть новости с установкой autoit_version_checker_0.2_(DB)
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
XpycT [?]
Есть новости с установкой autoit_version_checker_0.2_(DB)
Я бы так и не увидел это до сих пор...

Вообщем установка вроде прошла нормально, но файла update нет.

Кстати в архиве почему то нет файла install.xml.
И ещё, архив должен быть в zip, не в rar.
 
Верх