среда, 25 ноября 2009 г.

Условные выражения Vbulletin Conditionals

Список полезных условных выражений для Vbulletin:


Рассмотрим некоторые условия, применяемые в шаблонах форумного движка vBulletin.


1. Как установить условие для показа некоторой информации только для одной группы пользователей.

2. Как установить условие для показа некоторой информации только для нескольких групп пользователей.


<if condition="is_member_of($bbuserinfo, X, Y, Z)">
</if>

3. Установка условия только для одного пользователя (по user id).


<if condition="$bbuserinfo[userid] == X">

</if>

4. То же самое для нескольких пользователей.


<if condition="in_array($bbuserinfo[userid], array(X,Y,Z))">
</if>

5. Скрыть инфу только от 1 группы.


<if condition="!is_member_of($bbuserinfo, X)">
</if>

6. От нескольких групп пользователей vBulletin информацию можно скрыть так:


<if condition="!is_member_of($bbuserinfo, X, Y, Z)">

</if>

7. Скрыть от одного пользователя форума.


<if condition="$bbuserinfo[userid] == X">
</if>

8. Скрыть от некоторых:


<if condition="!in_array($bbuserinfo[userid], array(X,Y,Z))">
</if>

9. Как показать текст только в каком-то разделе форума?


<if condition="$forumid == X">

</if>

10. В нескольких разделах форума информацию показывают так:


<if condition="in_array($forumid, array(X,Y,Z))">
</if>

11. Скрытие в 1 форуме


<if condition="$forumid != X">
</if>

12. Скрыть в нескольких разделах форума на vBulletin:


<if condition="!in_array($forumid, array(X,Y,Z))">

</if>


13. Условие $show['popups']

Некоторые браузеры не могут использовать систему vBMenu. Для этого имеется условие $show['popups']. С ним мы можем предотвратить попытку инициализации такого кода. Ошибки JavaScript теперь не будут иметь место, а показываться будет альтернативный HTML-код.


<if condition="$show['popups']">

<!-- Здесь контент для браузеров, которые могут использовать систему vBMenu -->

<else>

<!-- Здесь контент для браузеров, которые НЕ могут использовать сплывающие окна vBMenu -->

</else>
</if>


14. Показать что-то только для определённого стиля (шаблона) можно так:


<if condition="$bbuserinfo[styleid]==x">
<!-- Здесь содержимое для стиля с идентификатором 'x' -->
</if>


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

суббота, 31 октября 2009 г.

Закрытие ссылок с постов пользователей в vBulletin с помощью rel nofollow

Для закрытия ссылок на форуме с движком vBulletin я ещё год назад применил следующую методику:

Открываем файл _Директория vBulletin_/includes/class_bbcode.php, и находим там функцию обработки ссылок:


function handle_bbcode_url($text, $link)

В функцию в качестве параметров передаются:

$text - текст ссылки, указанной пользователем, и

$link - сама ссылка.

Эта функция занимается обработкой ссылок в посте пользователя. В конце концов, переменная $rightlink содержит ссылку, а $text - текст ссылки. После обработки, возвращает строку вида:

return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";

Для закрытия ссылок, а именно, закрытие ссылок параметром rel=nofollow, надо всего лишь добавить наш параметр в указанный выше код:



return "<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";

Однако, вдруг нам надо закрывать не все ссылки?
Более детальная настройка: Мы хотим, чтобы ссылки на наш форум не закрывались. И ещё, рассмотрим случай, когда наш форум установлен в папке сайта, то есть типа: http://www.example.com/forum/ - ведь тогда желательно не закрывать ссылки в vBulletin и для домена www.example.com. И ещё сайт example.ru является нашим доменом. Тогда перед return пишем:



$pos1 = strpos($rightlink, 'example.com');
$pos2 = strpos($rightlink, 'example.ru');

if ( ($pos1 === false) && ($pos2 === false) ) {
$relnofollow = "rel=\"nofollow\"";
}
else
$relnofollow = "";

А сам return изменяем в виде:

return "<a href=\"$rightlink\" ".$relnofollow." target=\"_blank\">$text</a>";

Стоит отметить, что таким же образом Вы можете закрыть ссылки и тегами noindex для Яндекса. Однако, стоит ли закрывать ссылки от Яши, раз она всё равно не учитывает их при расчёте тИЦ?

Таким же образом, можно сделать всё что угодно с нежелательными урлами.

пятница, 25 сентября 2009 г.

Использование в Delphi класса TMemIniFile

При разработке программного обеспечения иногда бывает необходимо работать с INI-файлами, размер которых больше положенных 64 килобайт. Использование TIniFile хоть и является допустимым, однако, при сохранении большого количества данных (числа строк), производительность этого решения оставляет желать лучшего.

Для обхода этого неудобства я использовал класс TMemIniFile. Он не имеет ограничения в 64 килобайта. Работа с ним точно такая же, как и у класса TIniFile. Однако, работает он намного быстрее. Суть в том, что операции с данными происходят в буфере памяти. Единственное отличие в работе TMemIniFile от TIniFile - при сохранении надо вызывать метод UpdateFile.



uses IniFiles;
...
var
ini: TMemIniFile;
begin
ini:=TMemIniFile.Create(ChangeFileExt( Application.Exename,'.ini'));
try
ini.WriteString('ini_section','parameter1','value');
ini.WriteInteger('ini_section','parameter2', 100);
finally
ini.UpdateFile;
ini.Free;
end;
end;

То есть необходимым оказалось всего несколько изменений кода - поменять класс и добавить строку при сохранении ini.UpdateFile.

воскресенье, 13 сентября 2009 г.

День программиста

Всех программистов поздравляю с Днём программиста, который отмечается каждый 256-й день в году. Эта дата приходится на 12-е сентября в високосный год, а в обычные на 13-е сентября.
Программист за своим компьютером
Стоит отметить, что День программиста, начиная с июля 2009-года, приобрёл государственный статус согласно указу Президента РФ Дмитрия Анатольевича Медведева. В июле этого года на рассмотрение Правительства Министерством связи и массовых коммуникаций Российской Федерации был подготовлен и внесён проект Указа Президента России «О Дне программиста».


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


Вы по прежнему можете заказать у меня программы на заказ, несмотря на то, что сегодня День программиста!


Видео с риан.ру про программистов: "Кто такой программист, или Отличительные особенности "вида":




P.S. У меня нет хвоста и бороды :-) То есть видео для юмора.

Также я писал про День программиста в прошлом году.

четверг, 10 сентября 2009 г.

О влиянии кризиса на рынок фриланса

Интересная публикация об удалённой разработке была опубликована на "Вебпланете" с названием: "Free-lance.ru: "Крупные заказчики созрели". В ней рассказывается о влиянии кризиса на рынок фриланса, интервью с Василием Воропаевым, основатель проекта free-lance.ru.

Оказывается, количество проектов, публикуемых на этом проекте, увеличилось дважды по сравнению с прошлым годом, а это значит, что всё больше фирм-заказчиков программного обеспечения переходят на аутсорсинговые решения, когда им не надо содержать в офисе разработчика. Причём, стоит отметить, что традиционно осенью проектов становится больше, когда люди возвращаются из отпусков и возвращаются к работе.

В связи с тем, что многие компании сократили свои штаты программистов, дизайнеров, и с тем, что кто-то всё равно должен выполнять эту работу, эти компании обращаются к исполнителям-фрилансерам. Приведу цитату того же Воропаева:
Кризис дал толчок развитию рынка фриланса в России, которого раньше, по сути, у нас не существовало.То есть выгодно обоим сторонам: и компаниям, которые получают тот же продукт по меньшей цене, и разработчикам, которые могут брать больше заказов, работая на себя.

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

Полный текст новости можете прочитать здесь http://webplanet.ru/interview/life/2009/09/09/freelance.html

четверг, 27 августа 2009 г.

Google Developer Day 2009 в России

Google Developer Day 2009Как сообщается на главной странице Google Code, Google Developer Day возвращается в Россию! Это конференция на 1 день для веб-разработчиков, и она в 2009-м году пройдёт в Москве 10 ноября.

В предыдущем, 2008-м году в GDD приняли участие свыше 400 разработчиков из более чем 50 городов Российской Федерации и ближнего зарубежья. Они смогли посетить полтора десятка семинаров и сессий по всем девелоперским продуктам Google. В этом году опять представится возможность живого общения с командами Google, работающими над API (Application Programing Interface, Интерфейс программирования приложений) и инструментами для веб-разработчиков и программистов. На конференции выступят инженера Google с подробными докладами. Много времени будет выделено для знакомства программистов друг с другом и обсуждения новейших веб-технологий.

Сайт GDD, как обещается, будет запущен в самое ближайшее время, на нём можно будет зарегистрироваться для участия в Google Developer Day.

Источник: http://code.google.com/intl/ru/

четверг, 20 августа 2009 г.

Microsoft поддержит российских разработчиков программного обеспечения

Корпорация Microsoft решила предоставить скидку в 80% разработчикам программного обеспечения, которые делают программы среде Microsoft Visual Studio.

Как говорится в пресс-релизе, в новой программе поддержки и развития бизнеса разработки программного обеспечения в России смогут участвовать индивидуальные разработчики и небольшие компании, у которых штат программистов не превышает лимита в 10 человек. В течение всего времени с начала акции 28-го июля по 31-е августа 2009-го года можно будет приобрести лицензии на студию с 80% скидкой.

На момент написания этого поста было свободно 2147 лицензий из общего количества предосталяемых 3500.

Пресс-релиз здесь: Инициатива по лицензированию разработчиков ПО