Перейти к контенту
  • 0

auto_run для 1.3


Вопрос

Собственно интересует, как можно сделать, что бы файлы начинались с auto_run() а не с имени класса, как это обычно бывает.

В каких файлах надо ковырятся. Просто скажите.

 

Если для достижения цели, надо будет перелопатить весь движок - я согласен. Уже не в первые. Вообще, подозреваю, что придется классы выносить в отдельные файлы, как в 2.х

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Хм, лучше тогда подскажите, как вот вызвать функцию... Короче по примеру будет проще.

 

1.php

	function xml_get_unread_pms()
{
	global $ibforums;

	//-----------------------------------------
	// Check...
	//-----------------------------------------

	if ( ! $ibforums->member['g_use_pm'] )
	{
		return;
	}

	//-----------------------------------------
	// Get XML class
	//-----------------------------------------

	require_once( ROOT_PATH.'sources/action_public/xmlout.php' );
	$xmlout		   = new xmlout();

	$this->output = $xmlout->get_new_messages( 1 );
}

А вот сам xmlout.php (как видите ниже, класс и функция одного названия и из за этого (я так понимаю), не удается вызвать нужную функцию) переменную)

 

$idx = new xmlout;

class xmlout
{

function xmlout()
{
	global $ibforums, $std;
	switch($ibforums->input['do'])
{
		case 'get-new-msgs':
			$this->get_new_messages();
			break;

	default:
			$this->return_string('no switch code');
			break;
	}
}
}

Пробовал добалять $ibforums->input['do'] = "get-new-msgs"; но результату не дало.

Подскажите дурачку, как реализовать? Можно конечно через js обработку сделать (т.к. это аякс), но много внешнего кода получается.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Можно.

 

class xmlout
{

function auto_run()
{
	global $ibforums, $std;
	switch($ibforums->input['do'])
{
		case 'get-new-msgs':
			$this->get_new_messages();
			break;

	default:
			$this->return_string('no switch code');
			break;
	}
}
}

 

require_once( ROOT_PATH.'sources/action_public/xmlout.php' );
$xmlout = new xmlout();
$xmlout->auto_run();

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да, но движок форума вообще не будет читать эту функцию. :D Не сомневаюсь, это решение помогло бы, но для всех функций.

Как же я тогда из джавы буду вызывать функции. ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да, но движок форума вообще не будет читать эту функцию.

не понял.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ну вот в 2.х, функция auto_run считается основной (файл читается через нее) и ничего дополнительного писать для этого не надо. А вот в 1.х, либо именуешь основную функцию как и класс, либо в файле не будет switch code. Т.е. его можно будет указать напрямую из функции которую вызываешь, но из адресной строки (или джаваскрипта) такую функцию вызвать невозможно.

 

Впрочем, уже практически не важно. Просто перенес из xmlout.php основные функции в class_ajax.php и забиндил в index.php как $class_ajax.

Теперь ajax-приложения, можно вызывать из любова файла.

 

Но если есть все же способ переименовать первую функцию, то будет очень приятно ее наконец-таки узнать. :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
в 1.х, либо именуешь основную функцию как и класс, либо в файле не будет switch code. Т.е. его можно будет указать напрямую из функции которую вызываешь, но из адресной строки (или джаваскрипта) такую функцию вызвать невозможно.

 

Ну а кто ж тебе мешает сделать так например:

$ibforums->input['do'] = "get-new-msgs";
require_once( ROOT_PATH.'sources/action_public/xmlout.php' );
$xmlout = new xmlout();
$xmlout->auto_run();

 

Но если есть все же способ переименовать первую функцию, то будет очень приятно ее наконец-таки узнать.

Я же тебе её переименовал ещё в 5-ом посте :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Нет. Я же сделал уже, правда немного по другому. Я вообще хочу во всех файлах провести операцию описаную выше (по этому, данным способ и не подходит). Так будет удобнее. ИМХО.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.