регистрирует вызов функции var_dump 3. Создать класс хука в каталоге /classes/hooks/ с именем файла HookTest.class.php с содержанием
<?
class HookTest extends Hook {
public function RegisterHook() {
$this->AddHook('topic_show','testHookFunct',__CLASS__,-3);
}
public function testHookFunct($aVars) {
var_dump("Hook it!");
}
}
?>
Здравствуйте, разбираюсь с этим движком и захотел реализовать разный стиль вывода имени автора в комментариях, зависящий от его рейтинга (рейтинг <0 — красный, рейтинг >0 зеленый).
Реализовать оказалось очень просто! Если понадобится, я объясню!
Уже есть готовый модуль (вывести пол пользователя в комментарий и в профиль) от randomtoy.
Когда пользователь жмет кнопку Написать, то в выборе блога автоматически ему предлагается Персональный блог. А как было бы здорово, если бы автоматически выбирался именно тот самый блог в котором была нажата кнопка Написать.
Возможно проблема уже поднималась, но LiveStreet не работает, если он установлен не в корне, а в какой либо директории сайта. Проблема в том, что Router.class.php считывает лишние данные (директорию движка) в качестве URL-запроса. По крайней мере у меня было так.
Мне кажется, надо заменить 78 строку в файле /classes/engine/Router.class.php на этот код:
Как понадобилось изменять размер картинок столкнулся с тем, что стандартная функция func_img_resize изменяла размер только когда указана $iWidthDest и то как-то «косячно» на мой взгляд… в общем решил я функцию переделать… сделал независимый расайз по высоте и ширине теперь если надо картинку вписать в прямоугольник то просто задаёшь $iWidthDest и $iHeightDest… а ели просто надо подогнать по высоте или ширине задаёшь только то, что надо! всё просто и работает!!! =)
может кому пригодиться…
/**
* Рейсайзинг картинок
*
* @param unknown_type $sFileSrc
* @param unknown_type $sDirDest
* @param unknown_type $sFileDest
* @param unknown_type $iWidthMax
* @param unknown_type $iHeightMax
* @param unknown_type $iWidthDest
* @param unknown_type $iHeightDest
* @param unknown_type $bForcedMinSize
* @return unknown
*/
function func_img_resize($sFileSrc,$sDirDest,$sFileDest,$iWidthMax,$iHeightMax,$iWidthDest=null,$iHeightDest=null,$bForcedMinSize=true) {
if (!($aSize=getimagesize($sFileSrc))) {
return false;
}
$img_src=false;
switch ($aSize['mime']) {
case 'image/png':
$img_src=imagecreatefrompng($sFileSrc);
$sFileDest.='.png';
break;
case 'image/gif':
$img_src=imagecreatefromgif($sFileSrc);
$sFileDest.='.gif';
break;
case 'image/jpeg':
$img_src=imagecreatefromjpeg($sFileSrc);
$sFileDest.='.jpg';
break;
default:
return false;
break;
}
if (!$img_src) {
return false;
}
$iWidthNew=$aSize[0];
$iHeightNew=$aSize[1];
if (($iWidthNew>$iWidthMax) or ($iHeightNew>$iHeightMax)) {
return false;
}
if ($iWidthDest) {
if (!$bForcedMinSize and ($iWidthDest>$iWidthNew)) {
$iWidthDest=$iWidthNew;
}
$iSizeRelation=$iWidthDest/$iWidthNew;
$iWidthNew=$iWidthDest;
$iHeightNew=round($iSizeRelation*$iHeightNew);
}
if ($iHeightDest) {
if (!$bForcedMinSize and ($iHeightDest>$iHeightNew)) {
$iHeightDest=$iHeightNew;
}
$iSizeRelation=$iHeightDest/$iHeightNew;
$iHeightNew=$iHeightDest;
$iWidthNew=round($iSizeRelation*$iWidthNew);
}
$sFileFullPath=DIR_SERVER_ROOT.'/'.$sDirDest.'/'.$sFileDest;
@func_mkdir(DIR_SERVER_ROOT,$sDirDest);
if (($iWidthDest and $iWidthDest!=$aSize[0])or($iHeightDest and $iHeightDest!=$aSize[1])) {
$img_dest=imagecreatetruecolor($iWidthNew,$iHeightNew);
imagesavealpha($img_dest,true);
imagealphablending($img_dest,false);
if (imagecopyresampled($img_dest,$img_src,0,0,0,0,$iWidthNew,$iHeightNew,$aSize[0],$aSize[1])) {
imagedestroy($img_src);
switch ($aSize['mime']) {
case 'image/png':
if (imagepng($img_dest,$sFileFullPath)) {
chmod($sFileFullPath,0666);
return $sFileDest;
}
break;
case 'image/gif':
if (imagegif($img_dest,$sFileFullPath)) {
chmod($sFileFullPath,0666);
return $sFileDest;
}
break;
case 'image/jpeg':
if (imagejpeg($img_dest,$sFileFullPath)) {
chmod($sFileFullPath,0666);
return $sFileDest;
}
break;
}
}
} else {
if (copy($sFileSrc,$sFileFullPath)) {
return $sFileDest;
}
}
return false;
}
У многих возникает необходимость использовать поддомены для своих проектов на базе LiveStreet, например вынести на поддомены блоги.
Сделать это можно разными путями, например через реврайты в .htaccess, либо через роутер движка.
Я покажу как это можно сделать на примере последнего варианта, т.е. через роутер.