0.00
Рейтинг
0.00
Сила

"правильный" RegisterEvent часть2

Здравствуйте, подскажите как сделать такие RegisterEvent:
site.ru/music/1/
site.ru/music/1/tracks/
site.ru/music/1/tracks/view/123/
site.ru/music/1/tracks/edit/123/
site.ru/music/1/tracks/delete/123/

где /music/1/ — описание альбома с id=1,
/music/1/tracks/ — список треков в альбоме с id=1

/music/1/tracks/view/123/ — смотрим трек номер 123 в альбоме 1

/edit/123/, /delete/123/ редактируем и удаляем треки соответственно

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

в общем прошу помощи!

func_check

Нашел прекрасную функцию))
скажите что за параметры такие $iMin=1,$iMax=100?

function func_check($sValue,$sParam,$iMin=1,$iMax=100) {
	switch($sParam)
	{
		case 'id': if (preg_match("/^\d{".$iMin.','.$iMax."}$/",$sValue)){ return true; } break;				
		case 'float': if (preg_match("/^[\-]?\d+[\.]?\d*$/",$sValue)){ return true; } break;	
		case 'mail': if (preg_match("/^[\da-z\_\-\.]+@[\da-z_\-\.]+\.[a-z]{2,5}$/i",$sValue)){ return true; } break;
		case 'login': if (preg_match("/^[\da-z\_\-]{".$iMin.','.$iMax."}$/i",$sValue)){ return true; } break;
		case 'md5': if (preg_match("/^[\da-z]{32}$/i",$sValue)){ return true; } break;
		case 'password': if (mb_strlen($sValue,'UTF-8')>=$iMin){ return true; } break;
		case 'text': if (mb_strlen($sValue,'UTF-8')>=$iMin and mb_strlen($sValue,'UTF-8')<=$iMax){ return true; } break;
		default: 
			return false;
	}
	return false;
}

создание selecta из хэша

Здравствуйте, руководствуясь топиком Кнопка «вставить пользователя» в стандартном редакторе, я попытался создать свой список объектов, вот код:

var req = new JsHttpRequest();
$('markerlist').set('html','');                   
req.onreadystatechange = function() {
        if (req.readyState == 4) {
        req.responseJS.mList.each(
	function(item,index){
	$('markerlist').set('html','<option value="'+item['id']+'">'+item['name']+'</option>');
         });
        }
}


markerlist — это объект типа select, mList — хеш вида mList[0...][id,name].

результатом выполнения функции становится select с одним значением, я так понимаю что $('markerlist').set каждый раз перезаписывает содержимое списка, а не добавляет.

Подскажите как сделать, чтобы добавляла. И еще где мне узнать как работает each и что такое html вот тут .set('html',''), что такое set )) где мне найти маны по этим функциям и по правильной работе с ними. Заранее спасибо!

Вам нужны почтовые уведомления?

Здравствуйте, а вам бы хотелось чтобы все почтовые уведомления с этого сайта, а также ваших сайтов сделанных на livestreet, приходили не на какую-то там почту, а в ваши личные сообщения? мне бы да. Например чтобы узнать кто что ответил в моей теме или оставил комментарий на тему за которой я слежу, мне надо запускать почтовый клиент. а я бы хотел просто перейдя по ссылке livestreet.ru/talk/, читать те же сообщения (скажем от пользователя site), никуда не уходя с сайта. как вам идея?

Создание собственного меню

Здравствуйте, как я понял файл меню представляет собой шаблон с именем menu.ИМЯ_МЕНЮ.tpl, потом я его могу уже в шаблоне странице {include file='ШАБЛОН.tpl' menu='ИМЯ_МЕНЮ'}.
Однако когда я так делаю — меню не появляется)) что я делаю не так?))

Механизм кэширования

вот например функция, получающая количество коментариев пользователя
public function GetCountCommentsByUserId($sId) {
		if (false === ($data = $this->Cache_Get("comment_count_user_{$sId}"))) {			
			$data = $this->oMapperTopicComment->GetCountCommentsByUserId($sId);
			$this->Cache_Set($data, "comment_count_user_{$sId}", array("comment_new_user_{$sId}",'topic_update'), 60*5);
		}
		return $data;		
	}


никак немогу понять вот этот кусок, где происходит запись переменной в кеш

$this->Cache_Set($data, "comment_count_user_{$sId}", array("comment_new_user_{$sId}",'topic_update'), 60*5);


объясните кто-нибудь что означают эти параметры ))