+28.89
462 читателя, 107 топиков

Ошибка скрипта при вставке из Твиттера

Уважаемые коллеги,

В файле engine/lib/internal/template/js/main.js происходит переопределение метода .bind():
	Function.prototype.bind = function(context) {
		var fn = this;
		if(jQuery.type(fn) != 'function'){
			throw new TypeError('Function.prototype.bind: call on non-function');
		};
		if(jQuery.type(context) == 'null'){
			throw new TypeError('Function.prototype.bind: cant be bound to null');
		};
		return function() {
			return fn.apply(context, arguments);
		};
	};


Вроде бы невинная проверка, но она падает, если в заметку вставлен эмбед Твиттера, поскольку в подключаемом widgets.js идёт прямой вызов .bind() с нуллом:
e.exports = {tweet: o(r.bind(null, "tweet")),timeline: i,video: o(r.bind(null, "video")),tweetRefresh: r.bind(null, "tweet")}


Это приводит к выбрасыванию исключения «Function.prototype.bind: cant be bound to null» (как есть, без апострофа).

Я эту ситуацию смог воспроизвести: jsfiddle.net/NPC42/z89o15em/ (см. консоль), но только если поставить запуск JQuery на onDomready, иначе всё работает без проблем (каким-то образом).

Вопрос мой состоит из двух частей — во-первых, может я что-то не так понял? :) Проблема происходит при определённых обстоятельствах, и я не до конца понимаю, при каких именно. С полгода назад вставка Twitter работала, а теперь мы видим, что начала падать на этом месте — хотя теоретически должна была падать всегда.

Во-вторых, будет ли безопасно поменять определение в main.js следующим образом?
if (!Function.prototype.bind) {
	Function.prototype.bind = function(context) {
		var fn = this;
		if(jQuery.type(fn) != 'function'){
			throw new TypeError('Function.prototype.bind: call on non-function');
		};
		if(jQuery.type(context) == 'null'){
			throw new TypeError('Function.prototype.bind: cant be bound to null');
		};
		return function() {
			return fn.apply(context, arguments);
		};
	};
}


Проблему вставки Твиттера это решает, но я тревожусь, не поломает ли это что-то ещё, ведь по какой-то причине LS решил определить собственный метод .bind() (для поддержки IE8, возможно?).

Буду благодарен за любые объяснения и подсказки.

Переезд со сменой IP. Cron и др. - решение проблемы

Некоторое время назад я задавал вопрос, связанный с переездом. При переносе сайта на другой сервер, с другим IP, перестала работать отложенная отправка почты. При это переезд был осуществлен один-в-один: все конфиги, настройки, файлы и т.д. были перенесены с одного сервера на другой.
Решение оказалось до банальности простым. Дело в том, что в папке /include/cron находится файл .htaccess, содержащий директиву запрета обращения к notify.php для всех, кроме IP адреса сервера. Соответственно после переезда, необходимо там (вероятно и в других каталогах) указать новый IP. В примере ниже вместо «x.xx.xxx.xxx» нужно установить свой новый IP. Вероятно можно как-то иначе обозначить текущий IP, но я не очень в курсе.
Order Deny,Allow
Allow from x.xx.xxx.xxx
Deny from all

Может будет кому полезным.

После смены хостинга появились проблемы со шрифтами и разметкой

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

кривые шрифты

И наконец, частично полезла разметка в шапке. Полезла не только так, но и в IE топ пользователей вообще сместился.

шапка до переезда

шапка после переезда

Может ли кто-то подсказать, как это пофиксить или хотя бы где копать?

Версия PHP: 5.3.26
Версия Smarty: Smarty-3.1.8
Версия LiveStreet: 1.0.3
Шаблон: fortune

Пробовал перезалить на сервер всё из собственного бэкапа, который на другом хостинге корректно рабоатет, но ничего не изменилось. Так же был отключен и акселератор на сервере, да бы проверить эту версию. Разумеется, что после каждого действия для чистоты эксперимента производилась очистка:
-Очистка кеша Smarty
-Очистка кеша данных
-Очистка кеша js- и css-файлов

Как заставить работать ссылки авторизации через социальные сети встроенные в шаблон?

Как заставить работать («оживить») ссылки авторизации через социальные сети, которые были вставлены в шаблон его автором, но не активные т.к. никуда не ведут и сделаны в декоративных целях (демо дизайна) на примере плагина AutoOpenId?

Читать дальше →

Передать параметр by reference между методами разных классов

Добрый день!

Есть ли причины, чтобы передача параметров функции по референсу не работала между классами?

У меня примерно такой код:
class One {
    function foo($a, &$var, $c)
    {
        $var++;
    }
}

class Two {
    function bar() {
        $b=5;
        $oOne = new One();
        $oOne->foo(1, $b, 3);
        echo $b;
    }
}

$oTwo = new Two();
$oTwo->bar();

В www.tehplayground.com/#ja9CHhWZ5 он работает (выводит 6), а в моём плагине в рамках LS, когда разношу по классам, унаследованным от Module, почему-то возвращается 5.

(естественно, мне это надо не для того, чтобы 5 на 1 увеличивать :), но если даже 5 не получается, то и мой код не сработает — буду вынужден заворачивать возврат из функции в объект и т.п.)

Давайте обсудим эффективные решения по блокировке ботов (автоматическая регистрация и публикация топиков)

ботМне в очередной раз написал пользователь с вопросом «что делать с ботами?» и тут я понял что пора бы уже обобщить всю доступную информацию о защите от ботов и получить итоговое решение по защите от двух видов «неприятностей»:

  1. Автоматическая регистрация
  2. Публикация топиков если у бота уже есть аккаунт (зарегистрирован автоматически или «вручную»)

Читать дальше →

Как можно проверить активирован ли плагин прямо в шаблоне?

Задавали как-то вопрос, решил продублировать ответ, может кому-то будет интересно.

Для этого можно использовать проверку на наличие кода плагина в массиве активированных плагинов $aPluginActive, который заполняется при инициализации модуля Viewer:

Читать дальше →

Sphinx не работает, после переноса на другой сервер [РЕШЕНО]

Здравствуйте, столкнулся вчера с проблемой после переноса с сервера на сервер, стало выдавать ошибку при наборе в поле поиска любого слова

Notice: Constant SEARCHD_OK already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 33 Notice: Constant SEARCHD_ERROR already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 34 Notice: Constant SEARCHD_RETRY already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 35 Notice: Constant SEARCHD_WARNING already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 36 Notice: Constant SPH_MATCH_ALL already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 39 Notice: Constant SPH_MATCH_ANY already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 40 Notice: Constant SPH_MATCH_PHRASE already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 41 Notice: Constant SPH_MATCH_BOOLEAN already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 42 Notice: Constant SPH_MATCH_EXTENDED already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 43 Notice: Constant SPH_MATCH_FULLSCAN already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 44 Notice: Constant SPH_MATCH_EXTENDED2 already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 45 Notice: Constant SPH_RANK_PROXIMITY_BM25 already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 48 Notice: Constant SPH_RANK_BM25 already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 49 Notice: Constant SPH_RANK_NONE already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 50 Notice: Constant SPH_RANK_WORDCOUNT already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 51 Notice: Constant SPH_SORT_RELEVANCE already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 54 Notice: Constant SPH_SORT_ATTR_DESC already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 55 Notice: Constant SPH_SORT_ATTR_ASC already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 56 Notice: Constant SPH_SORT_TIME_SEGMENTS already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 57 Notice: Constant SPH_SORT_EXTENDED already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 58 Notice: Constant SPH_SORT_EXPR already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 59 Notice: Constant SPH_FILTER_VALUES already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 62 Notice: Constant SPH_FILTER_RANGE already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 63 Notice: Constant SPH_FILTER_FLOATRANGE already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 64 Notice: Constant SPH_ATTR_INTEGER already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 67 Notice: Constant SPH_ATTR_TIMESTAMP already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 68 Notice: Constant SPH_ATTR_ORDINAL already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 69 Notice: Constant SPH_ATTR_BOOL already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 70 Notice: Constant SPH_ATTR_FLOAT already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 71 Notice: Constant SPH_ATTR_MULTI already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 72 Notice: Constant SPH_GROUPBY_DAY already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 75 Notice: Constant SPH_GROUPBY_WEEK already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 76 Notice: Constant SPH_GROUPBY_MONTH already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 77 Notice: Constant SPH_GROUPBY_YEAR already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 78 Notice: Constant SPH_GROUPBY_ATTR already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 79 Notice: Constant SPH_GROUPBY_ATTRPAIR already defined in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 80 Fatal error: Cannot redeclare class SphinxClient in /var/www/vomitting/data/www/site.ru/engine/lib/external/Sphinx/sphinxapi.php on line 158

Кстати сначала думал что виноват установленный Sphinx на сервере, но отключив его получал все те же ошибки.
В чем дело понять не удается, ошибок слишком много, на предыдущем сервере все работало, а на этом не заводится и все тут.

Пока сайт без поиска.

Логи сфинкса пустые.

Прошу предложить хотя бы мысли где копать и что копать. Буду очень благодарен.

Решено: Как посоветовал ort действительно отключение модуля Sphinx api на сервере помогло! PHP .so расширение, после этого все заработало как часики. Спасибо вам ort премногоблагодарен!

Дублирование первой новости. Помогите решить

У меня ЛС 1.03
Установлен плагин camment up.
Сам сайт тут: www.zonatex.ru
Проблема:
Иногда и не постоянно, дублируется первая/верхняя новость на сайте. Обычно при первом заходе на сайт в день. Иногда при авторизации или выхода из профиля. Просто иногда при обновлении…
Проблема появилась при переезде с одного хост провайдера на другой. До этого проблемы не было. Не могу понять в чем дело и где искать корень проблемы…
Помогите, никак не могу решить эту проблему. Даже не пойму где искать истоки проблемы…

Установка дополнительных параметров для фильтра при вызове связи сущности ORM

Как известно в ORM LiveStreet CMS есть возможность указывать связи для сущности:

/*
 * Связи сущности
 */
protected $aRelations = array(
  /*
   * tip: сущности записывать в полном формате
   */
  'link_name' => array(EntityORM::RELATION_TYPE_HAS_MANY, 'ModuleTest_EntityTest', 'rel_row_id'),
);


Читать дальше →