За последние 24 часа нас посетили 38000 программистов и 1811 роботов. Сейчас ищут 889 программистов ...

Транслитерация

Тема в разделе "Прочие вопросы по PHP", создана пользователем dscoma, 15 фев 2010.

  1. dscoma

    dscoma Активный пользователь

    С нами с:
    15 фев 2010
    Сообщения:
    14
    Симпатии:
    0
    Добрый день,
    клиент подкинул сайт на Joomla! 1.0 там есть меню, пункты которого создаются в админ-панеле, все вроде бы логично, но название идентификатора берется от названия раздела! причем не транслитерируется!

    PHP:
    1.         if ($level == 0) {
    2.                 $txt = '<a href="' . $mitem->link . '" id="mtm_' . str_replace(" ", "_", strtolower($mitem->name)) . '">' . $mitem->name . '</a>';
    3.         } else {
    4.                 $txt = '"' . $mitem->name . '", "' . $mitem->link . '"';
    5.         }
    6.  
    7.         return $txt;
    8.  

    HTML:
    1. <a href="http://teztour74.ru/component/option,com_frontpage/Itemid,179/" id="mtm_Главная">Главная</a></span>

    получается что-то типа id="mtm_Главная"...
    может кто сталкивался с такой ситуацией
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Это чему-то мешает?
     
  3. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    В чем проблема?
    И в чем вопрос?
     
  4. dscoma

    dscoma Активный пользователь

    С нами с:
    15 фев 2010
    Сообщения:
    14
    Симпатии:
    0
    вопрос в том как
    HTML:
    1. id="mtm_Главная"
    ... к примеру заменить на
    HTML:
    1. id="mtm_glavnaya
    или другое значение т.к. такой идентификатор не работает нигде кроме как в IE т.к. символы национальной кодировки запрещено использовать
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    В UTF-8, Win-1251 работает в FF, IE, Chrome
    HTML:
    1. <div id="Заголовок" class="TopMenu"></div>
    2.  
    3. <script type="text/javascript">
    4. var el = document.getElementById('Заголовок');
    5. alert( el.tagName.toUpperCase() );
    В чем проблема?
     
  6. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    К предыдущему ответу:
    + Opera
     
  7. dscoma

    dscoma Активный пользователь

    С нами с:
    15 фев 2010
    Сообщения:
    14
    Симпатии:
    0
    в Opera не работает, да и валидатор говорит что имена в этой кодировке давать не правильно.

    суть то в том, что
    HTML:
    1. id="mtm_Главная"
    выводится код страницы php скриптом, а хотелось бы чтобы заместо
    HTML:
    1.  <a href="#" id="mtm_Главная">Главная</a></span>
    выводилось транслитерированный идентификатор:
    HTML:
    1.  <a href="#" id="mtm_glavnya">Главная</a></span>
    либо иное транслитерированное значение случайно сгенерированное.

    т.е. на JavaScript это сделать не выйдет т.к. тут серверный скрипт нужно редактировать.

    а именно в этом коде:
    PHP:
    1.  if ($level == 0) {
    2.                  $txt = '<a href="' . $mitem->link . '" id="mtm_' . str_replace(" ", "_", strtolower($mitem->name)) . '">' . $mitem->name . '</a>';
    3.          } else {
    4.                  $txt = '"' . $mitem->name . '", "' . $mitem->link . '"';
    5.          }
    6.  
    7.          return $txt;
    просто php знаю нет так сильно как к примеру JavaScript или С++, поэтому не могу написать эту функцию
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Точно так же.

    Таблица что менять и таблица на что менять и вперед
    $string = str_replace($fromArray, $toArray, $string)

    Правда смысла в этом не вижу, поскольку все работает в 4х браузерах.
     
  9. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А на товарища валидатора правильным решением будет положить в данном случае. Поскольку все работает и ошибок не выдает.
    Более того, раз уж начали двигаться в сторону национальных доменов, то и идентификаторам рано или поздно это разрешат.
     
  10. Graph

    Graph Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    22
    Симпатии:
    0
  11. dscoma

    dscoma Активный пользователь

    С нами с:
    15 фев 2010
    Сообщения:
    14
    Симпатии:
    0
    спасибо всем, исправил!