Блог студии RGB  http://blog.rgb.kiev.ua Разумные пределы и пределы разумного. Путеводные заметки Tue, 06 Sep 2011 13:27:50 +0000 ru hourly 1 http://wordpress.org/?v=3.2.1 Русский поиск в Tienda – проблемы с кириллицей – участвуем в развитии интернет-магазина http://blog.rgb.kiev.ua/2011/08/tienda-search-russian/ http://blog.rgb.kiev.ua/2011/08/tienda-search-russian/#comments Sat, 20 Aug 2011 10:52:09 +0000 admin http://blog.rgb.kiev.ua/?p=345 Рассматриваемая проблема – некорректная работа поиска по магазину, если в поисковом запросе встречаются русские буквы – поиск не находит товаров, возвращая пустой результат. Путём перехвата запросов, выясняем что имеет место быть искажение кириллических символов на этапе формирования SQL-выборки. Происходит это в следствии использования функции strtolower() там где нужно использовать её multi-byte аналог mb_strtolower(). Задача отлова бага несколько затрудняется сложностью локализации кода. Но, сложности подобные возникают только при первом использовании, потому следуем инструкциям и экономим время учась на чужом опыте:

  1. Открываем файл administrator/components/com_tienda/models/products.php
  2. Правим строки 50 и 67 (номера могут изменяться в зависимости от версии, потому ориентируемся на исходный код):



Было:

50  $key = $this->_db->Quote('%'.$this->_db->getEscaped(trim(strtolower($filter))).'%');

67  $key = $this->_db->Quote('%'.$this->_db->getEscaped(trim(strtolower( $filter_namedescription))).'%');

Стало:

50  $key = $this->_db->Quote('%'.$this->_db->getEscaped(trim(mb_strtolower($filter, 'UTF-8'))).'%');

67  $key = $this->_db->Quote('%'.$this->_db->getEscaped(trim(mb_strtolower( $filter_namedescription, 'UTF-8'))).'%');


Лирическое отступление:

Вероятно, многие разработчики уже успели ознакомиться с новым и весьма перспективным компонентном интернет-магазина Tienda от Dioscouri Design для Joomla.

Уже сейчас, на этапе активной разработки, Tienda представляет собой программный продукт вполне способный заменить тот же многострадальный VirtueMart. Как не погляди, во всём Tienda способен продемонстрировать качества превосходящие старичка-ветерана с полей электронной коммерции, созданного в незапамятные времена ещё для Mambo и с изрядным скрипом портированного под первые версии Joomla (а после, с ещё большими проблемами, подтянутого под Joomla 1.5) – и производительность у новичка несоизмеримо выше, и административный интерфейс более удобный, и MVC-архитектура, в купе с «правильным» кодом, разработку упрощает.

Минусы нового интернет-магазина Tienda вполне закономерны, и, я бы сказал, неизбежный для любого нового продукта – отсутствие готовых специфических функций реализованных сторонними разработчиками в виде плагинова, да мелкие баги/недоработки в существующем коде.  Но, что касается первого, то это: а) вопросе времени б) для серьёзной разработки минусом не является, так как, (и это важно!), презумпцией здравого смысла прямо противопоказано пытаться реализовывать сколь-нибудь крупный нетиповой при помощи готовых стандартных решений – максимум CMF-функции, не более.

Ну, а что касается второго минуса, то не столь уж он и велик – спасибо разработчикам из Dioscouri Design – и значимость его мы, пусть немного, но всё же уменьшим прямо здесь и сейчас.

PS: Простым и естественным образом, статейка с парой строк кода увеличилась до размеров нескольких тысяч символов =) Тем лучше – будем считать её заодно и кратким обзором компонента интернет-магазина Tienda для Joomla.

]]>
http://blog.rgb.kiev.ua/2011/08/tienda-search-russian/feed/ 2
Правильный html-редирект http://blog.rgb.kiev.ua/2011/05/html-redirect/ http://blog.rgb.kiev.ua/2011/05/html-redirect/#comments Tue, 31 May 2011 17:22:00 +0000 admin http://blog.rgb.kiev.ua/?p=338 При создании нового сайта нередко возникает необходимость автоматически перенаправлять на него пользователей со ссылок на старый ресурс.
Пользователь переходит по устаревшей ссылке поисковика и видит ошибку 404 «Страница не найдена»? Не беда – если хостинг предоставляет возможность управления собственными страницами ошибок, элементарнейший html-редирект поможет избежать потери потенциальных клиентов, не мешая наращивать посещаемость ресурса как до и после обновления поисковых баз.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
	<meta http-equiv="refresh" content="0; url=http://rgb.kiev.ua">
	<script type="text/javascript">location.replace("http://rgb.kiev.ua");</script>
</head>
<body>
	<div>&nbsp;</div>
</body>
</html>

Не забываем изменить сайт http://rgb.kiev.ua на свой собственный.
]]>
http://blog.rgb.kiev.ua/2011/05/html-redirect/feed/ 0
Алгоритм оптимизации и продвижения сайта для начинающих seo-оптимизаторов http://blog.rgb.kiev.ua/2011/04/algoritm_seo/ http://blog.rgb.kiev.ua/2011/04/algoritm_seo/#comments Sat, 30 Apr 2011 17:11:56 +0000 night http://blog.rgb.kiev.ua/?p=319 Данный алгоритм не является оптимальным, а некоторые из его этапов и вовсе могут отсутствовать у некоторых оптимизаторов, в зависимости от предпочтений и верований отдельно взятого индивида. Но я и не преследовал цель написать панацею для всех начинающих seo-шников, но хотел показать направление, в котором надо изучать предмет для эффективной раскрути сайта. Кроме этого в посте упущены инструментарий и практически все сервисы, необходимы для раскрутки ресурса. Это сделано по двум причинам, во-первых, каждый оптимизатор сам выбирает себе инструменты для работы и, во-вторых, описание инструментария увеличило бы размеры этой статьи в разы. О некоторых сервисах я напишу в следующий раз. Ну а теперь за дело.

Предположим, что у нас есть сайт, который мы хотим крутить. Теперь приступим к алгоритму поисковой оптимизации сайта.

Анализируем сайт и подбираем семантическое ядро

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

Под анализом сайта подразумевается сбор всевозможных ключевых слов, которые в дальнейшем могут войти в семантическое ядро. Как пример, категории интернет-магазина являются отличным источником ключевых слов (категория «ноутбуки» любезно предлагает нам слово «ноутбуки» как ключевое). На данном этапе не помешает заглянуть и на сайты конкурентов, чтоб посмотреть какие у них ключевые слова используются на странице. Не помешает посмотреть исходный код страницы, а именно мета-тег «keywords», в котором уже прописаны готовые ключевые слова. Собрав определенный список слов приступаем к сбору реальных ключевых запросов. В этом нам поможет Инструмент подсказки ключевых слов от Google Adwords. Желательно настроить выдачу релевантных запросов, выбрав нужную страну и язык. И начинаем собирать ключевые слова, вводя по одному слова из нашего первичного списка. При каждом запросе, желательно, вводить не более 3 слов. После этого нам необходимо будет еще обработать полученные списки ключевых слов на предмет наличия большого процента «мусорных» запросов (не подходящих для сайта). Если вы являетесь владельцем сайта, который оптимизируете, то вам не составит труда удалить ненужные запросы. Если же вы пробуете раскрутить чей-то сайт, то стоит показать человеку получившиеся списки слов, для более корректного удаления ненужных запросов. Важно не удалять усредненные цифры ежемесячных запросов по целевому региону для каждого ключевого слова, так как это поможет нам ориентироваться к какому, из трех типов, данный конкретный запрос относится (низкочастотный, среднечастотный или высокочастотный).

Формируем ряд необходимых доработок сайта для полноценной раскрутки

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

Приступаем к внутренней оптимизации сайта…

Распределяем слова по страницам (в соответствии с содержанием страниц)

Если ресурс еще не наполнен, то желательно все равно разбить распределить слова по страницам (ожидаемым страницам). Распределять ключевые слова так же надо не наугад, а придерживаясь определенного правила.

Приоритетней высокочастотные ключевые слова (количество запросов в месяц по целевому региону определяет тип ключевого слова) добавлять на страницы с меньшей вложенностью, самый высокочастотный запрос (желательно выбирать один самый высокочастотный запрос), соответственно, закрепляем за главной. Не всегда ключевое слово с наибольшим количеством запросов в месяц является самым высокочастотным словом для вашего сайта. Для объяснения почему и в каких случаях это так необходимо написать отдельный пост, так что я упущу эти объяснения. Просто поищите дополнительную информацию по этому поводу, чтоб не попасть впросак. Кроме этого, если самый высокочастотный запрос не охватывает всей тематики сайта, то необходимо добавлять для главной страницы дополнительное, обобщающее ключевое слово.

Когда распределили запросы по страницам, переходим к следующему этапу – оптимизации тега <title>.

Оптимизируем тег <title>

Данный тег является самым важным тегом сайта, с точки зрения раскрутки. Для того, чтоб поисковик посчитал страницу сайта релевантной запросу необходимо в первую очередь оптимизировать именно тег <title>.

Если ключевых слов значительно больше, чем страниц сайта, либо если слов определенной тематики значительно больше, чем страниц этой же тематики, то необходимо оптимизировать <title> так, чтоб внедрить в него побольше ключевых слов по тематике.

Ранжирование слов в <title> следующее – самый высокочастотный запрос страницы или обобщающее ключевое слово идет самым первым, вторым следующий по частотности и т.д. Причина, по которой первым идет обобщающий запрос, очень проста. При выдаче поисковик показывает тайтлы сайтов как ссылки на них самих. И при этом для экономии места поисковик показывает в среднем первые 72 символа тайтла. Так вот представьте ситуацию когда ваш тайтл оптимизирован под 3 ключевых слова: купить грузовой автомобиль в Киеве, купить экскаватор в Одессе, купить самосвал Украина. Если вы просто включите каждое ключевое слово по порядку, то может возникнуть ситуация, когда человек, набирая какой-то из запросов, может просто не увидеть в выдаче поисковика никаких упоминаний о нем в первых 72 символах ссылки на ваш сайт и просто не нажмет на нее. А не нажмет на нее потому, что посчитает, что ваш сайт не подходит под его запрос и поисковик выдал вашу ссылку «по случайности», хотя при этом вы можете быть одним из первых в выдаче. Вот в таком случае может подойти обобщающее ключевое слово, например, «продажа спецтехники». Да, это ключевое слово, возможно, не самое высокочастотное, но зато оно позволяет не терять посетителей по тем ключевым словам, которые не поместились в первые 72 символа тайтла страницы.

Если раскручивается магазин либо сайт, который продает услуги, то приоритетными для таких сайтов являются запросы со словом «купить», «заказать» либо названием услуг, например «стрижка в Киеве», «услуги адвоката».

Когда тег <title> оптимизирован, переходим к следующему этапу:

Оптимизируем другие теги и текст страницы

На этом этапе необходимо почитать текст, который присутствует на данной странице (для тех, кто еще не наполнял страницы сайта, это значит, что необходимо его писать по следующим правилам…), и насытить его ключевыми словами, под которые оптимизирован тайтл страницы. Кроме этого, желательно, где это возможно, выделять их тегом <strong>, та же рекомендуется оптимизировать под запросы теги <h1> – <h5>, атрибут alt для картинок (тег <img>) . На данном этапе главное не переборщить с количеством ключевых слов на странице и не писать бесполезного текста, ведь информация на сайте должна быть, в конечном итоге, полезна для человека, который попал на него. Отдельная история с интернет магазинами, так как, из практики, описание на страницах категории и на главной странице сайта уже давно никто не читает. Так что появляется некая «свобода слова». Нужно только учитывать, что текст, состоящий из одних только запросов, или текст с ошибками занижает рейтинг страницы. Кроме этого полезно делать перелинковку страниц по соответствующим ключевым словам.

Оптимизация тайтла, других тегов и текста делается для каждой страницы сайта, участвующей в продвижении ресурса.

Когда внутренняя оптимизация закончена, можно смело приступать к наращиванию ссылочной массы.

Прогон по каталогам и регистрация в соцзакладках

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

Наращивание основной ссылочной массы

Тут уже полная свобода действий. Можно пользоваться биржами ссылок, статей, добавлять статьи в каталоги статей вручную, обмениваться ссылками и т.д. Главное запомните, что наращивать ссылочную массу нужно постепенно и желательно на качественных и тематических ресурсах. Ну, и, конечно же, в текстах ссылок на страницы вашего сайта желательно использовать те ключевые сова, под которые эти страницы оптимизированы.

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

]]>
http://blog.rgb.kiev.ua/2011/04/algoritm_seo/feed/ 2
Принудительный режим совместимости для Internet Explorer http://blog.rgb.kiev.ua/2011/03/ie_compatibility_mode/ http://blog.rgb.kiev.ua/2011/03/ie_compatibility_mode/#comments Tue, 15 Mar 2011 11:58:34 +0000 admin http://blog.rgb.kiev.ua/?p=300 Ликуйте земляне – наконец-то вышел многожданный Internet Explorer 9, сходу получив высочайшие оценки от Acid-ов. Собственно, именно это нам и обещали разработчики из Microsoft, именно над этим они так долго трудились, именно к этому так долго готовились. Стоит ли чрезмерно распространятся о том что реальные сайты проходящие верификацию на соответствие XHTML 1.0 Strict по сути своей существенно отличаются от синтетических тестов? Пожалуй нет смысла.
Короче говоря, приноравливаясь к новым багамфичам IE9 и подгоняя под них вёрстку, делаем сайт удобоваримым для новой версии експлорера:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Рекомендуется использовать исключительно как временную меру.

]]>
http://blog.rgb.kiev.ua/2011/03/ie_compatibility_mode/feed/ 0
Валидный тег <a> с функциями атрибута target (_blank, _top, _self, someframe) http://blog.rgb.kiev.ua/2011/03/a-target/ http://blog.rgb.kiev.ua/2011/03/a-target/#comments Sun, 13 Mar 2011 12:26:00 +0000 admin http://blog.rgb.kiev.ua/?p=287 Валидный код с использованием javascript-аналогов.

target="_blank"

<a href="http://rgb.kiev.ua" target="_blank">Создание сайта</a>
<a href="http://rgb.kiev.ua" onclick="return !window.open(this.href)">Создание сайта</a>

target="_top"

<a href="http://rgb.kiev.ua" target="_top">Создание сайта</a>
<a href="http://rgb.kiev.ua" onclick="top.location.href = this.href;">Создание сайта</a>

target="_self"

<a href="http://rgb.kiev.ua" target="_self">Создание сайта</a>
<a href="http://rgb.kiev.ua" onclick="self.location.href = this.href;">Создание сайта</a>

target="_parent"

<a href="http://rgb.kiev.ua" target="_parent">Создание сайта</a>
<a href="http://rgb.kiev.ua" onclick="parent.location.href = this.href;">Создание сайта</a>

target="_parent"

<a href="http://rgb.kiev.ua" target="someframe">Создание сайта</a>
<a href="http://rgb.kiev.ua" onclick="top.frames['someframe'].location.href = this.href;">Создание сайта</a>
]]>
http://blog.rgb.kiev.ua/2011/03/a-target/feed/ 0
Как запретить Skype добавлять рамку для номера телефона http://blog.rgb.kiev.ua/2011/02/html_phone_no_skype/ http://blog.rgb.kiev.ua/2011/02/html_phone_no_skype/#comments Thu, 10 Feb 2011 23:17:51 +0000 admin http://blog.rgb.kiev.ua/?p=244 Вместе с мессенджером Skype дополнительно устанавливаются аддоны к популярным браузерам позволяющие пользователю совершать звонок в один клик, прямо с веб-страницы на которой указан телефонный номер. Однако, кроме добавления этой несомненно полезной функции, skype-аддон также изменяет оформление текста телефонного номера, тем самым нарушая дизайнерский замысел создателя сайта.


Существует несколько способов решения проблемы, но, одни из них откровенно глупы, иные не всегда работают должным образом, либо не проходят strict-валидацию. Оставим за бортом ворох лишнего хлама и рассмотрим два наиболее простых и изящных метода:


Вариант первый – сделать невозможным парсинг номера:

+38 063 <span style="display: none;"></span>336-36-06

Вариант второй – сброс стилевых правил добавляемых аддоном:

span.skype_pnh_print_container{display:inline !important;}
span.skype_pnh_container{display:none !important;}


Лирическое отступление: логика подсказывает – раз пользователь, находясь в здравом уме и твёрдой памяти, установил это злосчастное дополнение, значит, он сознательно предпочитает пожертвовать визуальным стилем ради добавления новых востребованных функций. То есть, принудительный запрет функций аддона будет прямым игнорированием желаний потребителя. С другой стороны 95% пользователей понятия не имеют почему появилась и зачем нужна эта некрасивая рамка вокруг номера возможно у разработчика имеются некие веские причины максимально строго придерживаться норм дизайна. Иными словами, стоит задуматься так ли уж необходимо блокировать работу skype-дополнения.

]]>
http://blog.rgb.kiev.ua/2011/02/html_phone_no_skype/feed/ 0
Добавить новое поле в материал Joomla 1.5 http://blog.rgb.kiev.ua/2010/11/joomla-add-new-field/ http://blog.rgb.kiev.ua/2010/11/joomla-add-new-field/#comments Sun, 31 Oct 2010 23:19:02 +0000 admin http://blog.rgb.kiev.ua/?p=217 Нередко возникает необходимость расширить функциональность стандартного компонента публикации материалов Joomla, будь то добавление в панель администрирования контента дополнительного текстового поля, select-списка, информационного блока и т.д. В подобном случае, использование громоздких сторонних CCK является нерациональным, хотя бы по причине их значительной избыточности. Ищущим простых изящных решений предназначена эта статья.
Задача не из сложных, и требует не столько понимания принципов работы CMS Joomla, сколько эмпирического знания – где что нужно дописать/изменить. Далее следует пример создания «эталонного» дополнительно поля <input type="text" /> в админке материала.


Примеры тестировались на:

  • PHP – 5.3.2
  • Joomla – 1.5.21

1. Добавление в шаблон интерфейса back-end

Открываем файл administrator/components/com_content/admin.content.html.php – здесь содержится шаблон страницы добавляемого/редактируемого материала. Находим строку номер 833* где видим закрывающий тег. Непосредственно после него добавляем свою таблицу:

<table class="adminform">
	<tbody>
		<tr>
			<td>Новое поле:</td>
			<td><input id="new_field" class="inputbox" maxlength="255" name="new_field" size="40" type="text" value="<php echo $row->new_field; ?>" /></td>
			<td></td>
			<td></td>
		</tr>
	</tbody>
</table>

1.1. (опционально) Добавление в шаблон интерфейса front-end

Для возможности работы с новым полем непосредственно со страниц сайта, аналогично работаем с файлом components/com_content/views/article/tmpl/form.php:

<table class="adminform">
	<tbody>
		<tr>
			<td>Новое поле:</td>
			<td><input id="new_field" class="inputbox" maxlength="255" name="new_field" size="40" type="text" value="<php echo $this->article->new_field; ?>" /></td>
			<td></td>
			<td></td>
		</tr>
	</tbody>
</table>

2. Модификация базы данных

При помощи любого менеджера баз данных (например phpMyAdmin) редактируем структуру таблицы #__content (по умолчанию jos_content), добавляя поле new_field с текстовым типом данных. Например, таким запросом:

ALTER TABLE jos_content ADD new_field VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

3. Модификация библиотеки работы с базой данных

Открываем файл libraries/joomla/database/table/content.php , находим строку class JTableContent extends JTable и добавляем свойство var $new_field = null;

class JTableContent extends JTable {
	/** @var string This is our new field */
	var $new_field 		= null;
	/** @var int Primary key */
	var $id 			= null;
	/** @var string */
	var $title 			= null;

4. Модификация модели компонента

В папке components/com_content/models расположены несколько файлов, функциональное назначение которых отражено в их названии. Например, category.php содержит код MVC-модели части компонента отвечающего за вывод данных в формате списка/блога. В случае использования данных из нового поля вне пределов страницы материала/статьи, за которую отвечает файл article.php который не требует модификаций, необходимо будет внести изменения в запрос для выборки из таблицы . Проще всего это сделать найдя в нужном файле текст a.title_alias и добавив в перечень обрабатываемых столбцов a.new_field . К примеру, для модели категории это изменение будет выглядеть следующим образом:
В строке 361 файла category.php найти текст:

$query = 'SELECT cc.title AS category, a.id, a.title, a.alias, a.title_alias, a.introtext, ...

И модифицировать выборку:

$query = 'SELECT cc.title AS category, a.id, a.title, a.alias, a.title_alias, a.new_field, a.introtext, ...

5. Использование

К этому моменту мы уже имеем полнофункциональную систему, осталось лишь продемонстрировать пример использования добавленного функционала, что мы и сделаем, добавив данные из нового поля как постскриптум материала/статьи. Один из вариантов реализации – модификация стандартных шаблонов. Для этого необходимо открыть файл components/com_content/views/article/tmpl/default.php и, добавив необходимый html-блок, вывести данные из переменной $this->article->new_field . Находим html-код и добавляем перед ним наш код:

</table>
<div><?php echo $this->article->new_field; ?></div>
<span class="article_separator">&nbsp;</span>

* Здесь и далее приведены номера строк которые могут незначительно отличаться в последующих и предыдущих релизах CMS Joomla

]]>
http://blog.rgb.kiev.ua/2010/11/joomla-add-new-field/feed/ 13
CMS (Система управления контентом) http://blog.rgb.kiev.ua/2010/10/cms/ http://blog.rgb.kiev.ua/2010/10/cms/#comments Tue, 19 Oct 2010 22:33:33 +0000 night http://blog.rgb.kiev.ua/?p=211 CMS (агл. Content Managment System) – система управления контентом. В простонароде CMS называют «движком». Набор сценариев (в основном большинство сценариев пишется на языке программирования PHP), которые предоставляют инструментарий для рядового пользователя по управлению содержимым сайта. Все сайты, написанные на какой-то CMS, имеют административную панель, которая и есть реализацией инструментария по управлению контентом. Примеры популярных CMS – Joomla, Drupal, Bitrix, WordPress.

]]>
http://blog.rgb.kiev.ua/2010/10/cms/feed/ 3
Тайтл(тег title) http://blog.rgb.kiev.ua/2010/10/title/ http://blog.rgb.kiev.ua/2010/10/title/#comments Tue, 19 Oct 2010 20:00:28 +0000 night http://blog.rgb.kiev.ua/?p=179 Тег <title>(тайтл) - один тегов HTML, который выводит в верхней части окна браузера название загружаемой страницы. Данный тег очень важен с точки зрения поискового продвижения сайта. Именно даный тег показывается в поисковой выдаче популярных у нас поисковиков, а именно Яндекс и Google. Так что при создании страницы сайта не пренебрегайте данным тегом.

Некоторые рекомендации по оформлению тега <title>:

  • Используйте ключевые слова в данном теге, релевантные данной странице.
  • Если ключевых слов более одного используйте вертикальную черту для разделения ключевых слов. Например (Создание сайта | Продвижение | Разработка дизайна).
  • Используйте кавычки для привлечения внимания (&laquo; и &raquo;). Например: Создание сайтов — «Блог студии RGB ».
  • Испольуйте длинное тире (&#151;) вместо короткого или минуса. Пример смотрите из предыдущего пункта.

Эти рекомендации относятся не только и не столько к рекомендация по Seo-оптимизации сайта, а больше для привлечения людей красивыми и грамотными заголовками в выдаче поисковиков.

]]>
http://blog.rgb.kiev.ua/2010/10/title/feed/ 0
Joomla – Как узнать какой язык выбрал пользователь сайта http://blog.rgb.kiev.ua/2010/10/joomla-language/ http://blog.rgb.kiev.ua/2010/10/joomla-language/#comments Tue, 19 Oct 2010 05:24:08 +0000 admin http://blog.rgb.kiev.ua/?p=189 Определить активный язык страницы призвана переменная language объекта типа JDocument, ссылку на который API позволяет получить посредством JFactory::getDocument(). Обращение к $object->language вернёт строку в нижнем регистре – текущее значение локали (en-gb, ru-ru и тд).


Пример использования:

<?php
$jmlThisDocument = & JFactory::getDocument();
switch ($jmlThisDocument->language) {
	case 'en-gb':
		echo 'Used language: en-gb';
	break;
case 'ru-ru':
		echo 'Used language: ru-ru';
	break;
	default:
		echo 'Used language: other';
}
?>

Примечание:

При переходе на Joomla 1.6 изменений данного метода не предвидится.

В версии Joomla 1.0.* данную функцию выполняла глобальная переменная $mosConfig_lang, с той разницей что строковое обозначение локали имело иной формат (russian, english и тд).


Примеры тестировались на:

  • PHP – 5.3.2
  • Joomla – 1.5.21
]]>
http://blog.rgb.kiev.ua/2010/10/joomla-language/feed/ 0