А если к коду artatom 31.10.2016 01:53:44, то в этом случае на всех страницах идет смесь инфы из Узла структуры и названия ИС (причем, от названия ИС только первое слово):
<title>Здесь расположены новости для тестированияновости</title>
<meta name="description" content="Идет тестирование системыновости">
<meta name="keywords" content="тестированиеновости">
// Текстовая информация для указания номера страницы, например "страница"
$pageName = Core_Array::get(Core_Page::instance()->libParams, 'page')
? Core_Array::get(Core_Page::instance()->libParams, 'page')
: 'страница';
if (!is_null($oObject))
{
$oVote = $oObject->Votes->getBySiteuser_Id($oSiteuser->id);
$vote_value = $vote ? 1 : -1;
$deleteVote = 0;
// Пользователь не голосовал ранее
if (is_null($oVote))
{
$oVote = Core_Entity::factory('Vote');
$oVote->siteuser_id = $oSiteuser->id;
$oVote->value = $vote_value;
$oObject->add($oVote);
}
// Пользователь голосовал ранее, но поставил противоположную оценку
elseif ($oVote->value != $vote_value)
{
$oVote->value = $vote_value;
$oVote->save();
}
// Пользователь голосовал ранее и поставил такую же оценку как и ранее, обнуляем его голосование, как будто он вообще не голосовал
else
{
$deleteVote = 1;
$oVote->delete();
}
<title>Здесь расположены новости для тестированиястраница 2</title>
<meta name="description" content="Идет тестирование системыстраница 2">
<meta name="keywords" content="тестирование">
Я пробел добавил и стало все отлично. Хотя, конечно же, было бы совсем корректно вставить тот разделитель, который пользователь задает в Узле управления.
Это сложно?
================
Пользуясь случаем, хочу спросить вот о чем.
Вы ранее использовали выражение if (0 && count($aTitle) > 1), логику которого я так и не сумел понять. И тогда задал этот вопрос на форуме РНР программистов. Просмотрело больше сотни человек, и тоже никто не понял.
Никакого секрета, магии, волшебства и т.п.
Я вам приводил ссылки на материалы обязательные к внимательному, осмысленному прочтению и изучению - вы, видимо, за них еще не брались
Здесь все тривиально:
if (0 && count($aTitle) > 1)
Оператор if "требует" булевый результат, который указывает по какой ветке (if .. else.. ) пойдет выполнение кода
В скобках выражение, которое разбирается интерпретатором PHP с учетом приоритетов
Самая операция - вычисление функции
if (0 && count($aTitle) > 1)
Потом результат выполнения функции подается на оператор сравнения ( > имеет более высокий приоритет, чем && )
Результатом операции сравнения будет TRUE или FALSE
Получается, что в операции логического И ( && ) справа булевое значение (TRUE или FALSE), а слева целое, которое автоматически приводятся (преобразуется к..) к булевому типу.
Тут, однако, следует заметить, что в реальности все работает немного не так
С целью устранения непроизводительных вычислений функция вообще не будет вызываться!
Если слева в операторе && стоит FALSE (а 0 в нашем случае == FALSE), то что бы ни стояло справа результатом такой опрерации будет FALSE, поэтому в приведенном примере вычисление функции и сравнения ее результат с константой выполнятся не будет - результат то и так известен
Похоже работает и оператор логического ИЛИ (A || B):
TRUE || some-long-caculations - результатом всегда является TRUE, поэтому выражение справа от || не вычисляется
Офф.сайт имеет с которого 2 года назад я начал изучать PHP. Вам тоже советую почитать - хотя бы основы языка.
Мне тоже сразу показалось, что это условие лишено логического смысла, но я засомневался, поскольку оно в достаточно серьезном коде.
Я занимаюсь РНР с 2005 года, но это не основная моя работа (я юрист), поэтому не все получается. Тем более, в hostcms, где и профи с трудом справляются с задачей.