Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Web Ирбис и Z-Ирбис :  ИРБИС Irbis
 
Заказ журналов с спецсимволом в заглавии
Пользователь: dnabb (IP-адрес скрыт)
Дата: 10, May, 2019 13:49

После поиска журнала " A+C: Art+Construction", при попытке перейти по ссылке к конкретному номеру чтобы его заказать, вылазит ошибка:

По Вашему запросу: " (<.>I=А С/2012/3/4<.>) " (на естественном языке: ) ничего не найдено

Проблема понятна: "+" зарезервирован как спецсимвол, и при попытке перейти к конкретному номеру съедается. Ранее эта проблема стояла с поиском в принципе, но покопавшись на форуме мы сделали так, чтобы запрос в поисковой строке перед отправкой трансформировался в URI, но на эти гиперсылки подобные изменения никак не влияют. Поискали, нашли, что гиперсылки формируются в файле numbers_ref.pft, а конкретнее - в этом куске кода:

(if p(g909^q) then

if (&uf('+1R500')<>g909^q and &uf('+1R500')<>'') then
'<div style="display:none" id="'f(mfn,0,0),&uf('+1R500')'" >',#
'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',

'<a href="javascript: st(',
&uf('+9F39')'I=',&uf('Av903#1'),'/'&uf('+1R500')'/$',&uf('+9F39'),')" title="~~Переход к описаниям всех номеров за год~~">',
&uf('+1R500'),
'</a>: ',#

&uf('+1R600'),
'</div>',

&uf('+1W600#')
fi,


&uf('+1W600#' &uf('+1R600'),
'<a href="javascript: st(',
&uf('+9F39')'I=',&uf('Av903#1'),'/'g909^q, |/|g909^f,|/|g909^h,&uf('+9F39'),')">',
if p(g909^f) then if (not g909^f:'ч') then '~~Том~~ ' fi, g909^f ', №' fi,' 'g909^h,
'</a> ',#
),

Где подставляется название журнала в гиперсылку понятно. Но как заставить это воспринимать по нормальному заглавия с спецсимволами?

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 05:17

обращаться к шифру в ссылке нужно предварительно обрамив его &unifor('+3E')

т.е. &unifor('+3E'&uf('Av903#1'))

&unifor('+3E')
Кодирование данных для представления в URL. для правильного представления русских и спец. символов

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 2 раз. Последний раз 14.05.2019 08:57 пользователем GLUKa.

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: dnabb (IP-адрес скрыт)
Дата: 14, May, 2019 09:31

Спасибо за подсказку, но теперь еще интереснее: внесли правку, перезагрузили апач, ошибка повторяется. При этом, если не переходить по ссылке на номер, а нажать через правую кнопку "копировать адрес ссылки", то копируется этот кусок кода:

javascript: st('I=%D0%90%2B%D0%A1/2012/3/4')

Ранее там вместо %2B отображался "+". То-есть, правка делает то, что должна делать, и сейчас вся строка в URL. Но он продолжает глотать "+" и выдавать ошибку:

По Вашему запросу: " (<.>I=А С/2012/3/4<.>) " (на естественном языке: ) ничего не найдено

У меня даже не осталось идей, в чем еще может быть причина.

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 09:34

dnabb написал(а):
-------------------------------------------------------
> Спасибо за подсказку, но теперь еще интереснее:
> внесли правку, перезагрузили апач, ошибка
> повторяется. При этом, если не переходить по
> ссылке на номер, а нажать через правую кнопку
> "копировать адрес ссылки", то копируется этот
> кусок кода:
>
> javascript: st('I=%D0%90%2B%D0%A1/2012/3/4')
>
> Ранее там вместо %2B отображался "+". То-есть,
> правка делает то, что должна делать, и сейчас вся
> строка в URL. Но он продолжает глотать "+" и
> выдавать ошибку:
>
> По Вашему запросу: " (<.>I=А С/2012/3/4<.>) " (на
> естественном языке: ) ничего не найдено
>
> У меня даже не осталось идей, в чем еще может быть
> причина.
попробуйте весь шифр а не часть
&unifor('+3E'&uf('Av903#1'),'/'g909^q, |/|g909^f,|/|g909^h )

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 09:38

> Ранее там вместо %2B отображался "+". То-есть,
> правка делает то, что должна делать, и сейчас вся
> строка в URL. Но он продолжает глотать "+" и
> выдавать ошибку:
>
на пробел заменяется плюс.

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 2 раз. Последний раз 14.05.2019 10:31 пользователем GLUKa.

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: dnabb (IP-адрес скрыт)
Дата: 14, May, 2019 09:43

Код в ссылке: javascript: st('I=%D0%90%2B%D0%A1%2F2012%2F3%2F4')

Ошибка повторяется: "... (<.>I=А С/2012/3/4<.>) ..."

Объективно все должно работать. Но он не хочет.

GLUKa написал(а):
-------------------------------------------------------
> > Ранее там вместо %2B отображался "+". То-есть,
> > правка делает то, что должна делать, и сейчас
> вся
> > строка в URL. Но он продолжает глотать "+" и
> > выдавать ошибку:
> >
> на пробел заменяется плюс. а "+" это или языке
> запросов

Этот момент немного не поняла.



Редактировано 1 раз. Последний раз 14.05.2019 09:45 пользователем dnabb.

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 09:45

дайте адрес сайта и название журнала

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: dnabb (IP-адрес скрыт)
Дата: 14, May, 2019 09:47

[catalog.dnabb.org]


A+C: ART+CONSTRUCTION

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 10:32

вышлите пожалуйста ваш формат на email arnosi@kraslib.ru

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 10:40

попробуйте тогда &uf('+3+'&uf('Av903#1'),'/'g909^q, |/|g909^f,|/|g909^h )
&uf('+3+')
Перевод знака + в %2B

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 1 раз. Последний раз 14.05.2019 10:45 пользователем GLUKa.

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 14, May, 2019 18:37

GLUKa написал(а):
-------------------------------------------------------
> попробуйте тогда
> &uf('+3+'&uf('Av903#1'),'/'g909^q,
> |/|g909^f,|/|g909^h )
> &uf('+3+')
> Перевод знака + в %2B

в итоге решили попробовать так

так же можно попробовать изменить функцию отправки st. она находится в
script.js в директории \htdocs\irbis64r\irbis64r_xx\js
и использовать в ней
encodeURIComponent


function st(exp) {
document.SEARCH_FORM.S21STN.value='1';
document.SEARCH_FORM.SAME_SEARCH.value='';
document.SEARCH_FORM.FT_REQUEST.value='';

document.SEARCH_FORM.S21ALL.value="(<.>"+encodeURIComponent(exp)+"<.>)";
document.SEARCH_FORM.submit();
}

а в формате убрать преобразования и оставить изначальный вариант

&uf('Av903#1'),'/'g909^q, |/|g909^f,|/|g909^h

попробовали. вроде все получилось

Государственная универсальная научная библиотека Красноярского края, Ассоциация ЭБНИТ



Редактировано 2 раз. Последний раз 15.05.2019 09:57 пользователем GLUKa.

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: dnabb (IP-адрес скрыт)
Дата: 15, May, 2019 09:29

Огромное спасибо! Все наконец-то заработало.

(Есть подозрение, что надо было перезагружать каждый раз не только апач, но и ирбис. Но в итоге с утра после внесения изменений в script.js по всем ссылкам переходит так как надо).

Re: Заказ журналов с спецсимволом в заглавии
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 17, May, 2019 13:53

dnabb написал(а):
-------------------------------------------------------
> По Вашему запросу: " (<.>I=А С/2012/3/4<.>) " (на
> естественном языке: ) ничего не найдено
>
> Проблема понятна: "+" зарезервирован как
> спецсимвол, и при попытке перейти к конкретному
> номеру съедается.


Проблема при поиске по строкам со спецсимволами действительно существует в ИРБИС. Но в данном случае она является результатом нарушения принципов технологии формирования шифра. Шифр сводного описания должен формироваться и формируется по умолчанию из первой буквы заглавия журнала (которая никак не может быть "+") и случайного числа. ШИфр не должен включать заглавие! Он имеет сугубо техническое назначение!

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

Для учёта обновлений в скриптах (файлах *.JS) требуется обновлять браузерный кэш страницы. Обычно это позволяет сделать сочетание CTRL+F5, в некоторых браузерах это возможно только через настройки браузреа.

Ни Apache (без использования специальных кэширующих модулей), ни ИРБИС кэширование скриптов не выполняют.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.