SocialTools нет скриптов в контексте EN

Судя по частоте ответов на мои вопросы, либо я всех порядком достал, либо вопросы глупые.

Вопрос собственно вот в чем:
Socialtools не подгружает скрипты на страницу в контексте en.

В контексте web, он вставляет на страницу следующее:
<script type="text/javascript">
	SocialToolsConfig = {
		 jsUrl: "/assets/components/socialtools/js/web/"
		,cssUrl: "/assets/components/socialtools/css/web/"
		,actionUrl: "/assets/components/socialtools/action.php"
		,notify:"alertify"

	};
	if(typeof jQuery == "undefined") {
		document.write("<script src=\""+SocialToolsConfig.jsUrl+"lib/jquery.min.js\" type=\"text/javascript\"><\/script>");
	}
			
	</script>
	
<link rel="stylesheet" href="/assets/components/socialtools/css/web/default.css" type="text/css">
<link rel="stylesheet" href="/assets/components/socialtools/css/web/lib/alertify.core.css" type="text/css">
<link rel="stylesheet" href="/assets/components/socialtools/css/web/lib/alertify.default.css" type="text/css">
Как он вставляет данные скрипты? Это может мне помочь в поиске решения. (Кстати, там рядышком и скрипты userprofile2 появились)
Почему в en-контексте он мог не вставить свои скрипты? — как следствие не работают ajax функции отправить, удалить, и т.п.
Дмитрий
26 июля 2015, 13:57
modx.pro
1 490
0

Комментарии: 4

Максим Кузнецов
26 июля 2015, 17:02
+1
Вставляет при помощи пхп в самом сниппете как-то так:
$modx->regClientStartupScript('<script type="text/javascript">здесь код</script>', true);

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

Причиной может служить как неправильная инициализация скрипта с вашей стороны (возможно, следует указать параметр &context), так и банальный недосмотр со стороны разработчика.

//ну и так, на всякий случай — когда работаете через разные контексты, всегда не лишним будет включить системную настройку allow_forward_across_contexts
    Саша Пекшев
    26 июля 2015, 18:28
    0
    core\components\socialtools\model\socialtools\socialtools.class.php
    да проблема в моем коде — самый простой костыль на строке 67 изменить 'web' на 'default' в switch
      Дмитрий
      26 июля 2015, 18:36
      0
      Спасибо за подсказку. Скопировал case, заменил на en и все работает. :)
      Леонид
      19 июня 2019, 21:03
      0
      Граждане ХЕЛП, не создаются таблицы БД:
      Could not create table `modx_soc_dialogReceive` SQL: CREATE TABLE `modx_soc_dialogReceive` (`id` INTEGER unsigned NOT NULL AUTO_INCREMENT, `subject` VARCHAR(255) NOT NULL DEFAULT '', `message` TEXT NOT NULL, `sender` INT(10) NOT NULL DEFAULT '0', `recipient` INT(10) NOT NULL DEFAULT '0', `private` TINYINT(4) NOT NULL DEFAULT '0', `date_sent` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', `is_read` TINYINT(1) NOT NULL DEFAULT '0', `type_d` VARCHAR(255) NOT NULL DEFAULT 'dialog', PRIMARY KEY (`id`)) ENGINE=MyISAM ERROR: Array ( [0] => 42000 [1] => 1067 [2] => Invalid default value for 'date_sent' ) 
      Could not create table `modx_soc_dialogSend` SQL: CREATE TABLE `modx_soc_dialogSend` (`id` INTEGER unsigned NOT NULL AUTO_INCREMENT, `subject` VARCHAR(255) NOT NULL DEFAULT '', `message` TEXT NOT NULL, `sender` INT(10) NOT NULL DEFAULT '0', `recipient` INT(10) NOT NULL DEFAULT '0', `private` TINYINT(4) NOT NULL DEFAULT '0', `date_sent` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', `is_read` TINYINT(1) NOT NULL DEFAULT '0', `type_d` VARCHAR(255) NOT NULL DEFAULT 'dialog', PRIMARY KEY (`id`)) ENGINE=MyISAM ERROR: Array ( [0] => 42000 [1] => 1067 [2] => Invalid default value for 'date_sent' )
      Пробовал изменить varchar на 128 — не помогло, пробовал тип таблиц изменить на InnoDB — не помогло
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4