Page 2 of 3

Re: Проблема с Alias

Posted: Fri Jul 04, 2008 8:26 pm
by ZYV
Я недавно думал о таком варианте, его БОЛЬШОЙ плюс в том, что везде работает (т.е. и в новостях, и в других местах).

Минус в том, что надо патчить misc.functions.php. Если честно, намучился уже кошмарным образом с обновлением сайтов на CMSMS, где кустарщики правили ядро. Нет бы за 5 секунд всё сделать и получить деньги... Надо скачивать дистрибутив и модули нужной версии, делать diff, потом пробежать глазами пачсет, применить его к новому дистрибутиву, потом проверять, что всё так же работает... бее...

Чем тебе тот класс понравился не знаю, те же яйца, только в профиль. Мне PixelApes больше понравился, т.к. там вроде бы по стандарту, то ли Дворак, то ли ГОСТ, а то самопальщиков этих боюсь я. Но на самом деле разницы никакой :)

P.S. Я тут подумал, вариант Сони-то можно ведь целиком в тег запихнуть. Так что я бы всё-таки пошел этим путем, наверное. Особливо если новости, например, не нужны, визитка, скажем, обычная квазистатическая.

Re: Проблема с Alias

Posted: Sat Jul 05, 2008 2:56 pm
by Il_Burbero
Чем тебе тот класс понравился не знаю, те же яйца, только в профиль
Исключительно размером :). Как то читал книжку (давно) про хакеров и вот с тех пор в голове накрепко засела тамошняя мысль "программа должна быть маленькой и быстрой" и с тех пор у меня фобия больших скриптов :)
И еще представленный мной класс (забыл сказать) поддерживает украинские кракозяблики, глядишь кому то и надо...

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

Re: Проблема с Alias

Posted: Wed Jul 09, 2008 9:06 pm
by koljan
ZYV wrote: Хорошее сегодня настроение - http://zaytsev.net/misc/translit/ - хотя мог бы сам найти.
скачал translit-1-2.zip, но архив не распаковывается, кто поможет?

Re: Проблема с Alias

Posted: Thu Jul 10, 2008 5:52 am
by ZYV
Перевыложил. Попробуй ещё раз.

Re: Проблема с Alias

Posted: Thu Jul 10, 2008 6:39 am
by koljan
Я тут подумал, вариант Сони-то можно ведь целиком в тег запихнуть. Так что я бы всё-таки пошел этим путем, наверное. Особливо если новости, например, не нужны
а если нужны?  у меня проблема с новостями, если заголовок в кирилице, то не могу показать новость полностью при нажатии на заголовок в резюме, т.к. нет названия новости. Если вставляю цифры или латиницу в заголовок всё работает.

Re: Проблема с Alias

Posted: Thu Jul 10, 2008 8:55 am
by Il_Burbero
koljan wrote: а если нужны?  у меня проблема с новостями, если заголовок в кирилице, то не могу показать новость полностью при нажатии на заголовок в резюме, т.к. нет названия новости. Если вставляю цифры или латиницу в заголовок всё работает.
А если нужны то используй мой метод
Il_Burbero wrote:
Только апострофы из класса убери, а то получится из "предьявил" "pred-yavil". У меня работает этот метод с новостями очень хорошо.

Re: Проблема с Alias

Posted: Thu Jul 10, 2008 9:04 am
by koljan
нет, наверное не буду этот метод пименять, боюсь...  :P

если что-то потом не будет работать, ищи крайнего...

Re: Проблема с Alias

Posted: Sat Jul 12, 2008 4:42 pm
by ZYV
Для новостей, я пропатчил файлы модуля News:

380:News.module.php
90:action.rss.php
343:action.default.php

примерно так...
// ZYV         
//            $prettyurl = 'news/' . $articleid.'/'.$returnid."/$aliased_title";
              $prettyurl = 'news/' . $articleid.'/'.$returnid."/text";
Ищи $aliased_title и заменяй в таком духе.

Re: Проблема с Alias

Posted: Wed Jul 16, 2008 6:55 am
by koljan
ZYV wrote: Для новостей, я пропатчил файлы модуля News:

380:News.module.php
90:action.rss.php
343:action.default.php

примерно так...
// ZYV         
//            $prettyurl = 'news/' . $articleid.'/'.$returnid."/$aliased_title";
              $prettyurl = 'news/' . $articleid.'/'.$returnid."/text";
Ищи $aliased_title и заменяй в таком духе.
помогло, спасибо! После следующего update надо эту процедуру повторить?

Re: Проблема с Alias

Posted: Wed Jul 16, 2008 7:04 pm
by ZYV
Да, я обычно делаю diff всех моих изменений против текущей версии, а потом пытаюсь его автоматически накатать на новую. Если возникает конфликт, правлю ручками.

Надо бы как-то с разработчиками интерфейс этой mungle-функции обсудить, чтобы не надо было в ядро лазать, да всё времени нет :(

Re: Проблема с Alias

Posted: Sun Sep 07, 2008 8:54 pm
by jjoss
Объясните, пожалуйста, как именно надо сделать, что делаю не так? У меня при добавлении страницы, если Title написан русскими буквами и Alias не заполнен руками, выдается Alias must be all letters and numbers.

1. Скачал translit.php в папку /lib
2. В админке Extensions > User Defined Tags > Add User Defined Tag
3. Name: Alias, Code: из последнего поста многоуважаемой Сони
4. Extensions > Events > ContentEditPre
5. Выбрал Alias, нажал Add, он появился в списке

При добавлении страницы алиас сам не заполняется. Но потом в строке адреса отображаются слова переведенные в транслит, а не те, что я писал в поле алиаса, когда добавлял материал. Может быть надо какой-то другой event использовать?

Re: Проблема с Alias

Posted: Mon Sep 08, 2008 8:00 am
by Sonya
jjoss wrote: Объясните, пожалуйста, как именно надо сделать, что делаю не так? У меня при добавлении страницы, если Title написан русскими буквами и Alias не заполнен руками, выдается Alias must be all letters and numbers.

1. Скачал translit.php в папку /lib
2. В админке Extensions > User Defined Tags > Add User Defined Tag
3. Name: Alias, Code: из последнего поста многоуважаемой Сони
4. Extensions > Events > ContentEditPre
5. Выбрал Alias, нажал Add, он появился в списке

При добавлении страницы алиас сам не заполняется. Но потом в строке адреса отображаются слова переведенные в транслит, а не те, что я писал в поле алиаса, когда добавлял материал. Может быть надо какой-то другой event использовать?
Я поправила код немного, скопируйте из моего поста http://forum.cmsmadesimple.org/index.ph ... #msg109141 .
Код делает транслит автоматически при создании новых страниц, если страница уже существует и нужно поменять alias на транслит тайтла, то в поле alias нужно задать translit. Если Вы задаете в поле alias значение вручную, то именно оно сохраняется.

Re: Проблема с Alias

Posted: Mon Sep 08, 2008 11:23 am
by jjoss
Хочется совсем не переключаться на страницу Options даже при заведении новой страницы.

Попробовал сделать

Code: Select all

if (empty($params['content']->mOldAlias) # new page
	|| empty($params['content']->mAlias))
То есть, если хочешь задать руками - задай. Не хочешь - оставь пустым.

Странное дело, срабатывает только если menu text содержит цифры! С цифрами нормально конвертит "проверка1" в "proverka1". А вот на "проверка" ругается, что нету алиаса.

Re: Проблема с Alias

Posted: Mon Sep 08, 2008 11:27 am
by Sonya
jjoss wrote: Хочется совсем не переключаться на страницу Options даже при заведении новой страницы.
И не надо, я использую этот тег и при создании новой страницы транслит делается автоматически из меню текста.
jjoss wrote: Попробовал сделать

Code: Select all

if (empty($params['content']->mOldAlias) # new page
	|| empty($params['content']->mAlias))
То есть, если хочешь задать руками - задай. Не хочешь - оставь пустым.
Это не работает, потому что $params['content']->mAlias проверяется еще до отправки события и если он пустой, то системой автоматически подставляется $params['content']->mOldAlias, поэтому я подставляю проверку на "translit" в этом поле.
jjoss wrote: Странное дело, срабатывает только если menu text содержит цифры! С цифрами нормально конвертит "проверка1" в "proverka1". А вот на "проверка" ругается, что нету алиаса.
Вообще необъяснимо для меня  ;D

Re: Проблема с Alias

Posted: Mon Sep 08, 2008 11:57 am
by jjoss
Sonya wrote: И не надо, я использую этот тег и при создании новой страницы транслит делается автоматически из меню текста.
jjoss wrote: Попробовал сделать

Code: Select all

if (empty($params['content']->mOldAlias) # new page
	|| empty($params['content']->mAlias))
То есть, если хочешь задать руками - задай. Не хочешь - оставь пустым.
Это не работает, потому что $params['content']->mAlias проверяется еще до отправки события и если он пустой, то системой автоматически подставляется $params['content']->mOldAlias, поэтому я подставляю проверку на "translit" в этом поле.
Стоп. Я чего-то не понимаю? mAlias проверяется еще до отправки события. То есть, если поле Alias пустое, если я не заполню его вручную хоть чем-нибудь, ругаться будет по-любому. Значит при создании новой страницы в любом случае придется переходить руками на закладку Options?