Пример работы сеттеров и геттеров в Ruby.
attr_reader - реализует только геттер для заданного поля
attr_accessor - реализует геттер и сеттер
В примере приведу только на чтение/ запись и чтение (на запись можно сделать по аналогии):
#Пример работы Геттеров и Сеттеров в Ruby
class Setter_and_getter
# Объявляю геттеры и сеттеры
attr_reader :var_readOnly #Доступ только для чтения
attr_accessor :var_readWrite #Доступ чтение/записи
def setData
@var_readOnly="set" # Устанавливаю значение
@var_readWrite="r/w";
puts self.var_readOnly, self.var_readWrite #Проверяю
end
end
testObj=Setter_and_getter.new
testObj.setData
puts "_________"
#testObj.var_readOnly="fff"; # Получаю ошибку при попытке записи
testObj.var_readWrite="read and write"
puts "I have: #{testObj.var_readOnly}, #{testObj.var_readWrite}" # "Считываю значение"
23 декабря 2010 г.
19 декабря 2010 г.
Добавляем свое меню в Microsoft Bing Maps Silverlight Control
Задача очень проста, создать меню которое будет отображаться на карте.
Меню добавляется в отдельный слой на карте, xaml код:
<m:Map NavigationVisibility="Visible">
<m:Map.CredentialsProvider>
<m:ApplicationIdCredentialsProvider ApplicationId="{StaticResource bmk}"/>
</m:Map.CredentialsProvider>
<m:Map.Children>
<m:MapLayer x:Name="ControlLayer"><!-- Собственно меню, вот оно -->
<Border CornerRadius="5" Width="100" HorizontalAlignment="Right" VerticalAlignment="Top" Background="Black" Opacity="0.8">
<StackPanel Orientation="Vertical" Margin="5" Height="95">
<RadioButton Content="Стандарт" GroupName="modeSelection" Foreground="White" IsChecked="True" Name="mode0" Checked="RadioButton_Checked"/>
<RadioButton Content="Метки" GroupName="modeSelection" Foreground="White" Checked="RadioButton_Checked" Name="mode1"/>
<RadioButton Content="Редактор" GroupName="modeSelection" Foreground="White" Checked="RadioButton_Checked" Name="mode2"/>
<RadioButton Content="Навигация" GroupName="modeSelection" Foreground="White" Checked="RadioButton_Checked" Name="mode3"/>
<StackPanel Orientation="Vertical" x:Name="AnotherControls" Visibility="Collapsed">
<Button Content="Color" x:Name="colorChange" Click="currentPoint_Click" />
<Button Content="Delete" x:Name="delComponent" Click="redoLineButton_Click"/>
</StackPanel>
<Button Content=">" x:Name="mapMenu"/><!-- Кнопка с помощью которой мы будем "раздвигать" меню -->
</StackPanel>
</Border>
</m:MapLayer>
</m:Map.Children>
</m:Map>
* This source code was highlighted with Source Code Highlighter.
Код на C#, который может пригодится:
//Обрабатываем расширения меню, которое расположенно в слое на карте
this.mapMenu.Click+=(sen,ev)=>{
Button currentButton = sen as Button;
//Если дополнительные пункты меню скрыты => открываем
if (this.AnotherControls.Visibility == Visibility.Collapsed)
{
(currentButton.Parent as Panel).Height += 40;
this.AnotherControls.Visibility = Visibility.Visible;
currentButton.Content = "<";
}
else//Иначе скрываем
{
this.AnotherControls.Visibility = Visibility.Collapsed;
(currentButton.Parent as Panel).Height -= 40;
currentButton.Content = ">";
}
};
* This source code was highlighted with Source Code Highlighter.
27 ноября 2010 г.
WebMatrix. Используем Яндекс в качестве поиска по сайту
Построим поиск по сайту при помощи WebMatrix и поисковика Яндекс. Данную задачу можно было реализовать и на любом языке, но я решил примерить синтаксис Razor к интересной задаче.Суть программки в том, что получив запрос пользователя и его пожелания относительно того что он хочет получить (документ или какой-нибудь материал с сайта), мы делаем запрос к поисковику Yandex. В запросе к серверу мы указываем необходимый сайт и пользовательский запрос. Пользователь получает страницу с поисковой выдачей.
@using System.Collections.Generic;
@{
// У нас есть данные введенные в поле ввода, на основание этого нам нужно сформировать запрос к яндексу
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="main.css"/>
</head>
<body>
@using System.Linq;@using System.Collections.Generic;
@{
// У нас есть данные введенные в поле ввода, на основание этого нам нужно сформировать запрос к яндексу
if(IsPost){
string text=Request["query"];
//Проверяем введеную строку, если она не пустая, продолжаем
if(!String.IsNullOrEmpty(text))
{
/*В веденной строке необходимо заменить все пробелы "+"ми.
Для этих целей используем LINQ */
IEnumerable<char> textAsChar = text.Select(x=>(x==' ')?'+':x);
text=new String(textAsChar.ToArray());
string searchType;метром
//Определяемся с предпочтениями пользователя, поиск по всему или только по документам
if (Request["searchtype"]=="all") {searchType="";}
else {searchType="&mime=pdf&mime=doc&mime=xls";}
//tetrapolis.ru - сайт на котором производим поиск
string query=String.Format("http://yandex.ru/yandsearch?date=&text={0}"+
"&site=tetrapolis.ru&rstr=&zone=all&wordforms=all&lang=ru&mime=all&numdoc=10&lr=2{1}",text,searchType);
//Делаем переход
Response.Redirect(query);
}
}
}
<form method="post" action="">
<input type="text" name="query" />
<label for="ContactName"></label>
<button type="submit">Search</button>
<br/>
<input type="radio" name="searchtype" value="all" checked/><label>Общий поиск</label>
<input type="radio" name="searchtype" value="doc" /><label>По документам</label>
</form>
</body>
</html>
main.css:
input[name="query"] {
padding:6px 6px 6px 25px;/* Делаем отступы, самый большой - слева */
font-size: 16px;
color: black;
border: 1px solid #b8b8b8;
/*Делаем круглую рамку (html5) */
-webkit-border-radius:10px;
-moz-border-radius:10px;
/*Добавляем лупу */
background: url('lypa2.jpg') no-repeat;
background-position: left center;
}
button[type="submit"]{
padding:6px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
background-color:#d53e07;
color:white;
font-weight:bold;
}
* This source code was highlighted with Source Code Highlighter.
26 ноября 2010 г.
- Относительно недавно познакомился с Silverlight компонентом Bing Map Silverlight Control. Контрол этот полезный и интересный. Поэтому я сразу же попытался сотворить с его участием такое приложенице, что то вроде блокнотика на картах, чтобы можно было делать свои пометки и сохранять их в локальном хранилище. Описывать основы работы с контролом не буду, а сразу перейду к реализации. Основная проблема с которойя столкнулся - навигация по карте осуществляется курсором мышки. Как эту опцию отключить, не переопределяя в наследуемом классе обработчик OnMouseLeftButtonDown, я не нашел.
- Привожу код нового класса унаследованного от Microsoft.Maps.MapControl.Map.
Рис. Пример работы
Код класса:public class NonDragableMap : Microsoft.Maps.MapControl.Map
{
private Color _strokeColor;//Цвет линии
//По умолчанию режим редактирования будет отключен и можно будет как
//и прежде перемещаться по карте курсором мыши
public bool allowMapMove
{
get;
set;
}
public Color strokeColor
{
set{
this._strokeColor = value;
}
}
private double _strokeThickness;
public double strokeThickness//Толщина линии
{
get{
return this._strokeThickness;
}
set{
this._strokeThickness = value;
}
}
public NonDragableMap()
{
strokeColor = Colors.White;//По умолчанию цвет белый
strokeThickness = 5;
allowMapMove = true;
}
//Объект линии которую рисуем
private MapPolyline _mapLine;
//В коллекции координат храним координаты текущей линии:
private LocationCollection coordinateCollection;
//Обрабатываем событие нажатие левой клавиши мыши
//1) Этим методом убирается перемещение карты курсором мыши
//2) Создаем объекты отвечающие за прорисовку линии
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (this.allowMapMove)
{
base.OnMouseLeftButtonDown(e);//Разрешаем работу стандартного обработчика
return;
}
this._mapLine = new MapPolyline();
this._mapLine.Stroke = new System.Windows.Media.SolidColorBrush(this._strokeColor);//Цвет
this._mapLine.StrokeThickness = this._strokeThickness;
this._mapLine.StrokeLineJoin = PenLineJoin.Round;//Скругливаем пересечения - устраняет проблему артефактов при пересечении линий
this.coordinateCollection = new LocationCollection();
//Записываем собранные курсором координаты в координаты линии
this._mapLine.Locations = this.coordinateCollection;
//Добавляем линию на карту
this.Children.Add(this._mapLine);
}
protected override void OnMouseMove(MouseEventArgs e)
{
if (this.allowMapMove) base.OnMouseMove(e);
if (this.coordinateCollection != null)
{
var d = e.StylusDevice.GetStylusPoints(this);
foreach (StylusPoint s in d)
{
this.coordinateCollection.Add(this.ViewportPointToLocation(new Point(s.X, s.Y)));
}
this.coordinateCollection.Distinct();
}
}
//Обрабатываем события отпускания левой кнопки заершаем рисование
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
//Завершаем рисование
this.coordinateCollection = null;
this._mapLine = null;
e.Handled=true;
}
}
* This source code was highlighted with Source Code Highlighter.
21 ноября 2010 г.
Псевдокласс :target и меню на CSS
Работая над редизайном раздела своего сайта, мне в голову пришла идея сделать меню и весь раздел на css. Сейчас поясню подробнее. Одним из нововведений css 3.0, является псевдокласс :target, который применяется к целевому элементу (к идентификатору, указанному в адресной строке браузера) (см. рис. 1).
Рис. 1 Целевой элемент #bk.
Следовательно, мы можем на страницы разместить якоря, которые будут ссылаться на определенные элементы страницы. Тем самым при переходе по этим ссылкам мы будем применять к ним псевдокласс :target.Теперь следует сказать, что псевдокласс :target поддерживается почти всеми ныне ходовыми браузерами (Chrome, Safari, FireFox, Opera), кроме Internet Explorerа младше 9.0. Поэтому метод реализации меню средствами css пока лучше заменять JQuery или верстать по старинке с переходом на отдельные страницы, пока не «отомрут» все браузеры не поддерживающие css 3.0.
Представляю Вам отверстанную страницу html:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
<link rel="stylesheet" type="text/css" href="corp.css"/>
</head>
<body>
<--С права меню, а слева контент --><div class="part_left">
<ul>
<li><a href="#bk">Бизнес кредиты</a></li>
<li><a href="#rko">Расчетно кассовое обслуживание</a></li>
<li><a href="#dbo">ДБО</a></li>
<li><a href="">Конверсионные операции</a></li>
<li><a href="">Корпоративные карты</a></li>
<li><a href="">Зарплатный проект</a></li>
<li><a href="">Депозиты</a></li>
<li><a href="">Векселя</a></li>
</ul>
</div>
<div class="part_right">
<ul>
<li id="default">это IE</li>
<li id="bk">Бизнес кредиты... </li>
<li id="rko">Расчетно кассовое обслуживание...</li>
<li id="dbo">Дистанционное банковское обслуживание...</li>
</ul>
</div>
</body>
<html>
* This source code was highlighted with Source Code Highlighter.
и сопутствующий corp.CSS файл:a{
font-family:Arial, Helvetica, sans-serif;
font-size:12pt;
color:black;
font-weight:bold;
}
a:link{text-decoration:none;}
a:hover{text-decoration:underline;}
a:active{color:#0000CC;}
ul{
margin:0;
-webkit-padding-start:0;
-moz-padding-start:0;
}
li {list-style:none;}
.part_left{
position:absolute;
left:0;
top:0;
width:300px;
}
.part_right{
position:absolute;
left:305px;
top:0;
width:auto;
}
/* Задаем параметры для фрагмента #bk, и остальных пунктов меню*/
/* Значения по умолчанию */
li#bk, li#rko, li#dbo{
display:none;
}
/* Когда ссылка активирована */
li#bk:target, li#rko:target, li#dbo:target{
display:block;
}
/*Возврат к визуализации по умолчанию */
li#bk:not(:target),li#rko:not(:target), li#dbo:not(:target){
display:none;
}
/* ------- */
/* Дефолтный случай для IE <9.0*/
li#default{
display:block;
}
/*li#default:target{
display:block;
}*/
li#default:not(:target){
display:none;
}
* This source code was highlighted with Source Code Highlighter.
15 сентября 2010 г.
Матричное произведение с помощью LINQ
Бороздя просторы рунета матраска наткнулся на примечательную статью «Поиск декартового произведения с помощью LINQ» на Хабре. А оно не единственное на этом глобусе! Надо вспомнить еще и матричное произведение. ( эта тема долго не отпускала автора) => Необходимо найти произведение строки на вектор. Практически это означает что надо перемножить элементы двух массивов|списков с одинаковыми порядковыми номерами.
Такая задача может понадобится для перемножения матриц. Поэтому ниже представлен пример LINQ запроса возвращающий список перемноженных элементов. Не буду изголятся воспользуюсь функцией join :
умножение строки на вектор, получаем скаляр |
double[] s1 = { 1, 2 };
double[] s2 = { 7, 8 };
var t1 = s1.Select((e, i) => new { element = e, index = i });
var t2 = s2.Select((e, i) => new { element = e, index = i });
var t3 = from o1 in t1 join o2 in t2 on o1.index equals o2.index select (double)o1.element*(double)o2.element;
foreach(double t in t3) Console.WriteLine("T: {0}", t);
* This source code was highlighted with Source Code Highlighter.
5 сентября 2010 г.
Грибы убийцы
Matraska много бродил в интернете, но токого еще не читал. Грипы манипуляторы|паразиты (Ophiocordyceps unilateralis). Опять грибы и опять сводят с ума, но нет не matraskу - муравьишек-древоточцев...
Споры грибы попадают в организм муравья. Прорастают в мозгу и мышцах. И полностью подчиняют себе насекомое. Муравей-зомби покидает родную колонию, начиная вести жизнь отшельника.
Манипулируя захваченным организмом, паразит буквально направляет ведомого в наиболее благоприятные для себя места. Ведь грибу не подходят ни кроны деревьев, ни лесная подстилка, ни почва. А нужно лишь пространство, расположенное примерно в 25 сантиметрах от земли, где существует оптимальное для паразита сочетание влажности и температуры. Вот туда муравьи-зомби и уходят. И там же гибнут по воле гриба.
Финальная сцена удивительна. Фантастика отдыхает. Гриб заставляет муравья забраться на нижнюю сторону листа, повелевает вцепиться в него челюстями и замереть. Затем убивает. А потом прорастает сквозь голову. Отращивает коробочку со спорами, высыпает их, заражая других муравьев.
Муравей, погибший за власть грибов. Гриб пророс сквозь голову насекомого. Утолщение - коробочка со спорами. Снимок сделан в Таиланде.
Matraska знает, муравьи не одиноки - в людях тоже растут грибы!
31 августа 2010 г.
Как подключить нетбук к мобильному интрнету при помощи одного мобильника
Острая потребность в мобильном интернете во время работы на нетбуке вынудила меня приспособить свой SonyEricsson w350 в качестве модема.
SonyEricsson W350 достался мне не только со скидкой и альбомом Дженифер Лопез, но и Usb кабельком и диском с програмным обеспечением. Вот это програмное обеспечение и кабилек и позволило Windows XP распазнать мобильник в системе в качестве модема (а без диска толька как внешний диск).
Теперь, Подключение нетбука к интернету через SonyEricsson w350 отделяет всего пара шагов.
Сразу скажу, в мобильнике симка ТЕЛЕ2, для других операторов надо будет поменять запрашиваемый телефонный номер.
Шаг 1. Переходим в "Сетевые подключения" и выбираем опцию создать новое подключение.
Шаг 2. В открывшемся модальном окне выбираем "Далее" и последовательно выбираем "Подключить к интернету", "установить подключение вручную", "через обычный модем".
Шаг 3. Вводим имя поставщика услуг, можно любое.
Шаг 4. Вводим номер телефона, для ТЕЛЕ2 в Санкт-Петербурге это будет *99***6#
Шаг 5. Имя пользователя и пароль можно не вводить, нажимаем "Готово" и радуемся интернету!
SonyEricsson W350 достался мне не только со скидкой и альбомом Дженифер Лопез, но и Usb кабельком и диском с програмным обеспечением. Вот это програмное обеспечение и кабилек и позволило Windows XP распазнать мобильник в системе в качестве модема (а без диска толька как внешний диск).
Теперь, Подключение нетбука к интернету через SonyEricsson w350 отделяет всего пара шагов.
Сразу скажу, в мобильнике симка ТЕЛЕ2, для других операторов надо будет поменять запрашиваемый телефонный номер.
Шаг 1. Переходим в "Сетевые подключения" и выбираем опцию создать новое подключение.
Шаг 2. В открывшемся модальном окне выбираем "Далее" и последовательно выбираем "Подключить к интернету", "установить подключение вручную", "через обычный модем".
Шаг 3. Вводим имя поставщика услуг, можно любое.
Шаг 4. Вводим номер телефона, для ТЕЛЕ2 в Санкт-Петербурге это будет *99***6#
Шаг 5. Имя пользователя и пароль можно не вводить, нажимаем "Готово" и радуемся интернету!
Очистка корзины в Ubuntu LXDE
Пародоксально, но факт после установки пакетов Lubuntu поверх Ubuntu 10.4 я не смог найти в среде LXDE корзину. В системе есть функция удалить в корзину, а возможности чтоб ее очистить нету...
Единственный метод, который я смог найти, чтобы поправить данный недуг это почистить корзину принудительно из консоли.
Чистим корзину в Ubuntu LXDE следующим образом:
#: sudo rm -rf ~/.Trash/*
или
#: sudo rm -R ~/.local/share/Trash/files/*
Единственный метод, который я смог найти, чтобы поправить данный недуг это почистить корзину принудительно из консоли.
Чистим корзину в Ubuntu LXDE следующим образом:
#: sudo rm -rf ~/.Trash/*
или
#: sudo rm -R ~/.local/share/Trash/files/*
6 августа 2010 г.
Как я делал ЧПУ в Битриксе
Сегодня по долгу работу мне понадобилось на сайте сделать ЧПУ для статей на сайте под CMS Bitrix. Причина - это предоставить "прямую" ссылку на статью поисковику, а не параметрическую , как по умолчанию в Битриксе.
Такая возможность появляется если для каждой статьи задавать свой уникальный символьный код (Рис. 1) .
Введение
На сайте отображение списка статей/новостей (любых других вариантов данных из инфоблоков) делается в виде группы сочетаний текст + картинка + ссылка "подробнее".
Картинка связана с содержанием. А ссылка ведет на другую страницу. Правильнее сказать, извлекается из базы и подается под "правильным" URL. В Битриксе хранение данных в БД и последующее извлечение с помощью компонентов организуется в Инфоблоках. Для реализации такой модели на сайте понадобятся:
Настройка Инфоблока
Первым делом необходимо настроить информационный блок который будет использоваться для статей: Панель управления=> настроки=> информационный блоки=> необходимый инфоблок (Рис. 2).
Во вкладке "Инфоблок в поле" в поле "URL страницы детального просмотра:"
указываем путь ЧПУ до страницы с инфоблоком детального описания:
#SITE_DIR#/kredit_v_banke/#ELEMENT_CODE#/
Т.е. адрес статьи будет выглядеть, как www.site.ru/kredit_v_banke/code_elementa/ где /kredit_v_banke/ - под каталог, будет описан при настройке ЧПУ
Настройка списка новостей
Вторым шагом будет настройка компонента "список новостей". После размещения на странице этого компонента Битрикса:
1) переходим в параметры компонента и указываем следующие настройки:
"Тип информационного блока" и "Код информационного блока" выбираем созданный на предыдущем шаге инфоблок.
2) в поле "URL страницы детального просмотра (по умолчанию - из настроек инфоблока):" дублируем значение:
/kredit_v_banke/#ELEMENT_CODE#/
Настройка страницы отображения
Третий шаг - настройка компонента "новость детально". На заранее созданной странице размещаем компонент Битрикса "новость детально". В параметрах компонента
"Тип информационного блока" => указываем тип созданного инфоблока
"Код новости" => вводим: ={$_REQUEST["code"]} где code - это параметр, который будет использоваться при настройки ЧПУ, а все значение выражения будет содержать символьный код элемента инфоблока.
Настройка ЧПУ в Админке
Четвертым шагом настраиваем ЧПУ. Переходим Панель управления=> настройки=>обработка адресов => новая запись (Рис. 3)
В поле "условие" указываем регулярное выражение для url:
#^/kredit_v_banke/([\w\d]+)(/)?#
где ([\w\d]+)(/)? означает что
\w - можно использовать символы A-Z, a-z, _
\d - числа,
[...]+ - всего знаков должно быть >=1
(/)? - в конце должен быть слэш, но не обязательно
Фрагмент заключенный в круглые скобки, потом предстанет в поле "Правило" под значением параметра $1.
В поле "Файл:" указываем путь до страницы с компонентом детального описания:
/content/article_detail_1.php
Поле "Компонент" оставляем пустым
В поле "Правило:" прописываем: code=$1 где:
code - GET параметр URL запроса ,
$1 - первый параметр из регулярного выражения url.
По умолчанию путь до статьи должен быть
/content/article_detail_1.php?code=element_code
где code это заданный в настройках параметр, а element_code символьный код эл-та в этой последовательности символьный код 1-й параметр по этому $1. Благодаря ЧПУ путь до статьи будет:
/kredit_v_banke/element_code/
Теперь "применяем" и сохраняем. теперь все должно работать.
Рис. 1 Диалог задания символьного кода |
Введение
На сайте отображение списка статей/новостей (любых других вариантов данных из инфоблоков) делается в виде группы сочетаний текст + картинка + ссылка "подробнее".
Картинка связана с содержанием. А ссылка ведет на другую страницу. Правильнее сказать, извлекается из базы и подается под "правильным" URL. В Битриксе хранение данных в БД и последующее извлечение с помощью компонентов организуется в Инфоблоках. Для реализации такой модели на сайте понадобятся:
- стандартные компоненты Битрикса "Новость детально" и "список новостей";
- данные в Инфоблоках.
Настройка Инфоблока
Первым делом необходимо настроить информационный блок который будет использоваться для статей: Панель управления=> настроки=> информационный блоки=> необходимый инфоблок (Рис. 2).
Во вкладке "Инфоблок в поле" в поле "URL страницы детального просмотра:"
указываем путь ЧПУ до страницы с инфоблоком детального описания:
#SITE_DIR#/kredit_v_banke/#ELEMENT_CODE#/
Т.е. адрес статьи будет выглядеть, как www.site.ru/kredit_v_banke/code_elementa/ где /kredit_v_banke/ - под каталог, будет описан при настройке ЧПУ
Рис. 2 |
Вторым шагом будет настройка компонента "список новостей". После размещения на странице этого компонента Битрикса:
1) переходим в параметры компонента и указываем следующие настройки:
"Тип информационного блока" и "Код информационного блока" выбираем созданный на предыдущем шаге инфоблок.
2) в поле "URL страницы детального просмотра (по умолчанию - из настроек инфоблока):" дублируем значение:
/kredit_v_banke/#ELEMENT_CODE#/
Настройка страницы отображения
Третий шаг - настройка компонента "новость детально". На заранее созданной странице размещаем компонент Битрикса "новость детально". В параметрах компонента
"Тип информационного блока" => указываем тип созданного инфоблока
"Код новости" => вводим: ={$_REQUEST["code"]} где code - это параметр, который будет использоваться при настройки ЧПУ, а все значение выражения будет содержать символьный код элемента инфоблока.
Настройка ЧПУ в Админке
Четвертым шагом настраиваем ЧПУ. Переходим Панель управления=> настройки=>обработка адресов => новая запись (Рис. 3)
Рис. 3 |
#^/kredit_v_banke/([\w\d]+)(/)?#
где ([\w\d]+)(/)? означает что
\w - можно использовать символы A-Z, a-z, _
\d - числа,
[...]+ - всего знаков должно быть >=1
(/)? - в конце должен быть слэш, но не обязательно
Фрагмент заключенный в круглые скобки, потом предстанет в поле "Правило" под значением параметра $1.
В поле "Файл:" указываем путь до страницы с компонентом детального описания:
/content/article_detail_1.php
Поле "Компонент" оставляем пустым
В поле "Правило:" прописываем: code=$1 где:
code - GET параметр URL запроса ,
$1 - первый параметр из регулярного выражения url.
По умолчанию путь до статьи должен быть
/content/article_detail_1.php?code=element_code
где code это заданный в настройках параметр, а element_code символьный код эл-та в этой последовательности символьный код 1-й параметр по этому $1. Благодаря ЧПУ путь до статьи будет:
/kredit_v_banke/element_code/
Теперь "применяем" и сохраняем. теперь все должно работать.
10 июля 2010 г.
Mail Agent для Linux
Не секрет, что компания mail.ru выпускает свой mail агент почти для всех мобильных платформ, но так и не выпустила mail agent для Linux.
И вот разные дельцы и умельцы с просторов нашей Родины предлагают юзерам различные пути решения этой напасти: от Яббера до эмуляции Windows.
И похоже самое пригодное решение это myagent-im (url не указываю, ибо всегда можно на Гуглить).
Установка обычно происходит в три этапа:
Шаг #1: sudo dpkg -i myagent-im_02.02_i386.deb
Итог: Выдаст ошибку так как не найдет необходимые пакеты для Mail агента
Шаг #2: sudo apt-get install -f
Итог: Докачаются необходимые пакеты
Шаг #3: Повторить Шаг #1
Итог: Mail agent установлен
И вот разные дельцы и умельцы с просторов нашей Родины предлагают юзерам различные пути решения этой напасти: от Яббера до эмуляции Windows.
И похоже самое пригодное решение это myagent-im (url не указываю, ибо всегда можно на Гуглить).
Установка обычно происходит в три этапа:
Шаг #1: sudo dpkg -i myagent-im_02.02_i386.deb
Итог: Выдаст ошибку так как не найдет необходимые пакеты для Mail агента
Шаг #2: sudo apt-get install -f
Итог: Докачаются необходимые пакеты
Шаг #3: Повторить Шаг #1
Итог: Mail agent установлен
7 июля 2010 г.
Национальный поисковик???
Создание национального поисковика - очередная бредовая идея!Чем он будет лучше остальных? Зачем он нужен?
Вроде бы и говорится что не будет Гос।финансирование, но и не исключается। Видимо все же кому-то хочится фильтровать трафик в рунете или подзаработать на распиле финансирования...
P.S.: А может он будет просто фильтровать выдачу Яндекса...
http://www.lenta.ru/news/2010/07/07/engine/
Вроде бы и говорится что не будет Гос।финансирование, но и не исключается। Видимо все же кому-то хочится фильтровать трафик в рунете или подзаработать на распиле финансирования...
P.S.: А может он будет просто фильтровать выдачу Яндекса...
http://www.lenta.ru/news/2010/07/07/engine/
2 июля 2010 г.
Что-то для первого сообщения
Eeny, meeny, miny, moe,
Catch a tiger by the toe.
If he hollers let him go,
Eeny, meeny, miny, moe.
Эники, бэники, ели вареники,
Эники, бэники, съели вареники,
Эники, бэники, хоп!
Вышел зелёный сироп.
Подписаться на:
Сообщения
(
Atom
)