Добрый день, клиент подкинул сайт на Joomla! 1.0 там есть меню, пункты которого создаются в админ-панеле, все вроде бы логично, но название идентификатора берется от названия раздела! причем не транслитерируется! PHP: if ($level == 0) { $txt = '<a href="' . $mitem->link . '" id="mtm_' . str_replace(" ", "_", strtolower($mitem->name)) . '">' . $mitem->name . '</a>'; } else { $txt = '"' . $mitem->name . '", "' . $mitem->link . '"'; } return $txt; HTML: <a href="http://teztour74.ru/component/option,com_frontpage/Itemid,179/" id="mtm_Главная">Главная</a></span> получается что-то типа id="mtm_Главная"... может кто сталкивался с такой ситуацией
вопрос в том как HTML: id="mtm_Главная" ... к примеру заменить на HTML: id="mtm_glavnaya или другое значение т.к. такой идентификатор не работает нигде кроме как в IE т.к. символы национальной кодировки запрещено использовать
В UTF-8, Win-1251 работает в FF, IE, Chrome HTML: <div id="Заголовок" class="TopMenu"></div> <script type="text/javascript"> var el = document.getElementById('Заголовок'); alert( el.tagName.toUpperCase() ); </script> В чем проблема?
в Opera не работает, да и валидатор говорит что имена в этой кодировке давать не правильно. суть то в том, что HTML: id="mtm_Главная" выводится код страницы php скриптом, а хотелось бы чтобы заместо HTML: <a href="#" id="mtm_Главная">Главная</a></span> выводилось транслитерированный идентификатор: HTML: <a href="#" id="mtm_glavnya">Главная</a></span> либо иное транслитерированное значение случайно сгенерированное. т.е. на JavaScript это сделать не выйдет т.к. тут серверный скрипт нужно редактировать. а именно в этом коде: PHP: if ($level == 0) { $txt = '<a href="' . $mitem->link . '" id="mtm_' . str_replace(" ", "_", strtolower($mitem->name)) . '">' . $mitem->name . '</a>'; } else { $txt = '"' . $mitem->name . '", "' . $mitem->link . '"'; } return $txt; просто php знаю нет так сильно как к примеру JavaScript или С++, поэтому не могу написать эту функцию
Точно так же. Таблица что менять и таблица на что менять и вперед $string = str_replace($fromArray, $toArray, $string) Правда смысла в этом не вижу, поскольку все работает в 4х браузерах.
А на товарища валидатора правильным решением будет положить в данном случае. Поскольку все работает и ошибок не выдает. Более того, раз уж начали двигаться в сторону национальных доменов, то и идентификаторам рано или поздно это разрешат.