Линки и дополнительные свойства элементов

#
Линки и дополнительные свойства элементов
Есть две информационных системы, абсолютно идентичные по доп. свойствам элементов.
Создаю линк элемента в одной из них, переношу в другую - доп. свойства не переносятся!
Я уже год бьюсь над тем, как реализовать на HostCMS одинаковые по контенту языковые версии, и куда ни ткнись - нет возможности...
Почему не переносятся доп. свойства? Потому что у них разные идентификаторы? Но это же бред... Неужели так сложно сделать, чтобы подхватывались свойства с одинаковыми наименованиями XML-тэгов при переносе ярлыка?
http://superweb.pro/ — сайты на HostCMS под ключ
#
Re: Линки и дополнительные свойства элементов
plasmamedia, что-то я не понял вашей формулировки

plasmamedia писал(а):
одинаковые по контенту языковые версии
это как? Насколько я понимаю, языковые версии это, допустим, сайт на русском, и сайт на английском, так? Контент это тексты инфоэлементов, которые на одном сайте должны быть русскими, а на другом - английскими.
А что же тогда значит приведенная мною цитата?

Вообще, расскажите свою задачу с самого начала, чего вы хотите сделать, и почему у вас это не получается, может быть придумаем вместе какое-то решение.
Заказов не беру. Консультирую редко.
#
Re: Линки и дополнительные свойства элементов
Это значит, что если есть фото в русской версии - обязательно есть это же фото и в английской, только название и описание на другом языке. Аналогично - с новостями и прочими элементами инфосистем. Это значит - невозможно развивать только русскую версию, "забив" на английскую и оставив ее "на потом". Такая архитектура очень дисциплинирует контент-мэйкеров, знаете ли.

Задача: русский контент находится на путях "от корня", абсолютно идентичный по структуре английский контент - в /eng от корня. Есть допустим новость /news/151 - она же отображается по пути /eng/news/151, только на английском языке.
http://superweb.pro/ — сайты на HostCMS под ключ
#
Re: Линки и дополнительные свойства элементов
дык... эта... ну первая мысль которая мне приходит в голову - это использовать один и тот же элемент одной и той же ИС на обоих сайтах.

Вот смотрите:
Определение текущей группы/элемента ИС происходит в настройках тдс исходя из текущего пути. Соответствено, если перед определением из пути выбросить часть /eng/ то определится нужная нам группа/элемент.

Наличие же части /eng/ следует также контролировать и в самой ТДС и передавать соотв. маркер в xml, через $external_propertys.

Основной контент сайта, скажем, русский, хранить в основых свойствах элемента, английский контент - в дополнительных.

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

Ну вот примерно такое направление.

Правда остается еще привязка ИС к разным узлам структуры, в /eng/ возможно придется делать отображение немного обходными путями, или еще что-нибудь подкрутить в настройках ТДС.

Как-то так.
Заказов не беру. Консультирую редко.
#
Re: Линки и дополнительные свойства элементов
Аха, и мне это видится точно так же.
Только вот предложенное решение - http://www.hostcms.ru/forums/22/3195/ - не сработало. Поэтому попыталась я подоткнуть эти костыли с линками - облом и тут.
Именно с привязкой одной ИС к разным путям и есть огромная засада.
http://superweb.pro/ — сайты на HostCMS под ключ
#
Re: Линки и дополнительные свойства элементов
plasmamedia писал(а):
Именно с привязкой одной ИС к разным путям и есть огромная засада.
Тю, это по-моему, лечится
Завтра гляну что там как.
Заказов не беру. Консультирую редко.
#
Re: Линки и дополнительные свойства элементов
Буду ОЧЕНЬ вам благодарна...
http://superweb.pro/ — сайты на HostCMS под ключ
#
Re: Линки и дополнительные свойства элементов
Ну вот вам демка:
Русский: http://test.pskelectro.ru/news/
Английский: http://test.pskelectro.ru/eng/news/
Сделано наспех, поэтому на английский там "переведены" только два элемента.

Делается очень просто.
Создаем у ТДС параметр "префикс английского раздела", называем его переменную english_version_url.
В структуре сайта в англоязычной части создаем раздел новости, все параметры настраиваем как обычно, параметр "префикс" указываем eng (если у вас английская часть по адресу /eng/)

В настройках ТДС вставляем следующий фрагмент:

//часть кода выше вставки
///////////////////////////////////////////
// Если указание на страницу - не прерываем определение
if (ereg ("^part-([0-9]*)$", end($GLOBALS['URL_ARRAY']), $regs) && to_int($regs[1]) > 0)
{
   /* Страница умножается на кол-во элементов, выводимых на страницу */
   $break_if_path_not_found = false;
   $GLOBALS['part_ii'] = $regs[1];
}
else
{
   $break_if_path_not_found = true;
   $GLOBALS['part_ii'] = 1;
}

/** ИЗМЕНЕННЫЙ КУСОК ДЛЯ МУЛЬТИРАЗДЕЛА */

/* проверим, не находимся ли мы в английской части сайта */
$english_version_url = to_str($GLOBALS['LA']['english_version_url']);
$url_array = $GLOBALS['URL_ARRAY'];

if ($url_array[0] == $english_version_url) {
   unset($url_array[0]);
   $new_url_array = array();
   $url_array = array_merge($url_array, $new_url_array);   
}

/* получаем для пути ассоциативный массив с id группы и id/url элемента для данной инфосистемы */
$GLOBALS['INFSYS_result'] = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id, $url_array, $break_if_path_not_found);

/** КОНЕЦ ИЗМЕНЕННОГО КУСКА ДЛЯ МУЛЬТИРАЗДЕЛА */


/* Если путь существует */
if ($GLOBALS['INFSYS_result'])
//ну и так далее
(я привел еще часть окружающего кода для ориентировки)

а в коде самой ТДС делаем такую вставку:


/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();


/** ИЗМЕНЕННЫЙ КУСОК ДЛЯ МУЛЬТИРАЗДЕЛА */

/* проверим, не находимся ли мы в английской части сайта
и передадим в xml соответсвующий маркер */
$english_version_url = to_str($GLOBALS['LA']['english_version_url']);
$url_array = $GLOBALS['URL_ARRAY'];
if ($url_array[0] == $english_version_url) {
    $external_propertys['english_version_enable'] = 1;
    $external_propertys['version_prefix'] = '/'.$english_version_url;
} else {
    $external_propertys['english_version_enable'] = 0;
    $external_propertys['version_prefix'] = '';
}

/** КОНЕЦ ИЗМЕНЕННОГО КУСКА ДЛЯ МУЛЬТИРАЗДЕЛА */


/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные


В xsl-шаблонах, во все урл вставляем часть {/document/version_prefix}, для вывода префикса. Когда сайт на русском сам префикс будет нулевой, для английской версии - /eng
Например:
<a href="{/document/version_prefix}{item_path}">


А вывод замещаемого контента реализуем через допсвойства.
Вот так выглядит вывод заголовка в списке элементов:
<!-- Название -->
         <p class="news_title">
            <a href="{/document/version_prefix}{item_path}">
               <xsl:choose>
                  <xsl:when test="/document/english_version_enable = 1 and item_propertys/item_property[@xml_name = 'english_name']/node() and item_propertys/item_property[@xml_name = 'english_name']/value != ''">
                     <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property[@xml_name = 'english_name']/value"/>
                  </xsl:when>
                  <xsl:otherwise>
                     <xsl:value-of disable-output-escaping="yes" select="item_name"/>
                  </xsl:otherwise>
               </xsl:choose>
            </a>
         </p>


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

plasmamedia писал(а):
Буду ОЧЕНЬ вам благодарна…
"Системный администратор цветы и конфеты не пьет" ©
Заказов не беру. Консультирую редко.
#
Re: Линки и дополнительные свойства элементов
Вообще это конечно все наспех, нехорошо, что префикс в структуре впечатывается руками. По-хорошему надо бы переделать чтобы он определялся из id раздела структуры. Сможете сами?
Заказов не беру. Консультирую редко.
#
Re: Линки и дополнительные свойства элементов
Не очень вообще поняла про префикс... это доп. свойство в структуре или что? Где его создавать?
http://superweb.pro/ — сайты на HostCMS под ключ
Авторизация