
alexbabo
К сожалению нет. Исходник весит не больше 100 Кб, так что лучше скачать и посмотреть (вирусы мне сюда выкладывать совершенно незачем)
Надо же знать что качаешь хоть скрин выложи
файл usercore добавляем новую функцию
в файле вашего модуля заменяем блок
function usrImageHS($user_id, $usr_imageurl, $width='100px', $height='250px'){ if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){ return ''; } }
на простой вызов новой функции:
$usr['avatar'] = usrImageNOdb($usr['id'], 'medium', $usr['imageurl'], $usr['is_deleted']); $pattern = "//i"; $replacement = '';
$usr['avatar'] = usrImageHS($usr['id'], $usr['imageurl'], $width='100px', $height='250px');
Всё прекрасно работает.Огромное спасибо за вашу помощь, вы хороший человек, я на форуме заметил вы очень активно отзываетесь на помощь и помогаете людям.Спасибоооо!
А если применить таб закладки?
instantcms.ru/catalog/item54.html
Мне нужна кнопка в модуле при нажатии которого модуль обновлялся бы, например модуль случайный пользователь который при обновлении выводил бы другого случайного пользователя
это не из за хайслайда(если он сконфигурирован) а из за реплейсов с паттернами
я не очень разбераюсь в этом)))Вы видели пример как я сделал тут?http://test.babayan.ca/users/alexbabo1972
вот не знаю как уменшить фото в модуле)))что делать? каков ваш совет?
Вот такая версия,
вам нужно просто переписать функцию usrImageNOdb с учетом добавки highslide обертки и не нужно так мучится с паттернами и реплейсами и не работает, потому что всё что добавляется в usercore реплейсится без учёта исправлений
какая версия highslide у вас, у меня просто последняя синтаксис немного другой встраивания?
Version: 4.0.5 (August 30 2008)
(highslide-with-html.packed)
Вы думаете это все из за highslide? Надо на чистую версию без highslide попробовать мне))
я как посмотрел ипсравлений в модуле особых нету, я менял больше шаблон модуля.
лучше код модуля сюда опубликуйте вашего с исправлениями я посмотрю в чём может быть проблема
мне кажется у мена что то с usercore.
я только добавил в модуле:
$pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement = '<a href=$2$3.$4$5 class="highslide-image" onclick="return hs.expand(this);"><img$1src=$2$3.$4$5 $6></a>';
$usr['avatar'] = preg_replace($pattern, $replacement, $usr['avatar']);
чтоб highslide использовать для увелечения аватаров уже уменьшенные с помощью css,usr_img.то есть без 'small' загружается большая фотка и потом уменьшаю в css, а потом при клике она увеличивается))Пробовал и на дефолтовском модуле ваш вариант, тоже у меня не работает .
<?php
/*********************************************************************************************/
// //
// InstantCMS v1.7 © 2010 FREEWARE //
// instantcms.ru/, info@instantcms.ru //
// //
// written by Vladimir E. Obukhov, 2007-2010 //
// //
/*********************************************************************************************/
function mod_lastreg2($module_id){
$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();
global $_LANG;
$cfg = $inCore->loadModuleConfig($module_id);
$sql = "SELECT u.*, p.imageurl
FROM cms_users u
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE u.is_deleted = 0 AND u.is_locked=0 AND p.imageurl <> ''
ORDER BY RAND()
LIMIT ".$cfg['newscount']."
";
$result = $inDB->query($sql) ;
$is_last_reg = false;
if ($inDB->num_rows($result)){
$is_last_reg = true;
$usrs = array();
if ($cfg['view_type']=='table' || $cfg['view_type']=='hr_table'){
if (!function_exists('usrImageNOdb')){ //if not included earlier
include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
}
while($usr = $inDB->fetch_assoc($result)){
$usr['avatar'] = usrImageNOdb($usr['id'], 'medium', $usr['imageurl'], $usr['is_deleted']);
$pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement = '<a href=$2$3.$4$5 class="highslide-image" onclick="return hs.expand(this);"><img$1src=$2$3.$4$5 $6></a>';
$usr['avatar'] = preg_replace($pattern, $replacement, $usr['avatar']);
$usrs[] = $usr;
}
}
if ($cfg['view_type']=='list'){
$total = $inDB->num_rows($result);
while($usr = $inDB->fetch_assoc($result)){
$usrs[] = $usr;
}
$total_all = dbRowsCount('cms_users', 'is_deleted=0 AND is_locked=0');
}
}
$smarty = $inCore->initSmarty('modules', 'mod_lastreg2.tpl');
$smarty->assign('usrs', $usrs);
$smarty->assign('cfg', $cfg);
if ($cfg['view_type']=='list'){
$smarty->assign('total', $total);
$smarty->assign('total_all', $total_all);
}
$smarty->assign('is_last_reg', $is_last_reg);
$smarty->display('mod_lastreg2.tpl');
return true;
}
?>
нет прямое указание в теге приоритетнее остальных правил
у меня всё работает, даже так:
$usr['avatar'] = usrImageNOdb($usr['id'], '', $usr['imageurl'], $usr['is_deleted'], '128px');
Видимо я делаю что то не правильно, я пользуюсь версией 1.7.
Вы не могли бы мне послать или тут поставить ваши файлы? (usercore,mod_lastreg)
нет, извиняюсь, саму функцию исправьте:
function usrImageNOdb($user_id, $small='small', $usr_imageurl, $usr_is_deleted, $width=''){ if ($user_id == -1) { return ''; } if ($user_id == -2) { return ''; } if ($usr_imageurl){ if($usr_is_deleted){ if ($small=='small'){ return ''; } else { return ''; } } else { if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){ if ($small=='small'){ return ''; } else { return ''; } } else { if ($small=='small'){ return ''; } else { return ''; } } } } else { if ($small=='small'){ return ''; } else { return ''; } } }
Не помогло.Может потому что размер прописан в css,class="usr_img"?
У меня в css,class="usr_img" для аватара стоит 200px.
Модуль Последние рагистрации, mod_lastreg.
модуль какой?
я его переделал на случайного одного пользователя.
предлагаю более универсальное решение (добавил параметр $width)
function usrImageNOdb($user_id, $small='small', $usr_imageurl, $usr_is_deleted, $width=''){ if ($user_id == -1) { return ''; } if ($user_id == -2) { return ''; } if ($usr_imageurl){ if($usr_is_deleted){ if ($small=='small'){ return ''; } else { return ''; } } else { if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){ if ($small=='small'){ return ''; } else { return ''; } } else { if ($small=='small'){ return ''; } else { return ''; } } } } else { if ($small=='small'){ return ''; } else { return ''; } } }
замените код функции на приведенный и в нужном месте при вызове используйте:
usrImageNOdb($user_id, $small='', $usr_imageurl, $usr_is_deleted, $width='128px')
то есть параметр $small пустой а ширину $width задаёте в пикселах нужную вам
или тот пример что в начальном посте:
$usr['avatar'] = usrImageNOdb($usr['id'], '', $usr['imageurl'], $usr['is_deleted'], $width='128px');
Спасибо за ответ, делаю как вы сказали но размер остается такой же.Заменяю функцию в /components/users/includes/usercore и в модуле меняю на $usr['avatar'] = usrImageNOdb($usr['id'], '', $usr['imageurl'], $usr['is_deleted'], $width='128px');
Что не так делаю?
у функции usrImageNOdb нет такого параметра 'medium' есть 'small', тогда загружается маленький аватар, а если 'small' не указан то большой (оригинал), так что никаких 'medium' в параметрах функции нет.
Если хотите добавить редактируйте саму функцию:
добавив параметр 'medium' и условия для него, размер можно задавать в теге
function usrImageNOdb($user_id, $small='small', $usr_imageurl, $usr_is_deleted){ if ($user_id == -1) { return ''; } if ($user_id == -2) { return ''; } if ($usr_imageurl){ if($usr_is_deleted){ if ($small=='small'){ return ''; } else { return ''; } } else { if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){ if ($small=='small'){ return ''; } else { return ''; } } else { if ($small=='small'){ return ''; } else { return ''; } } } } else { if ($small=='small'){ return ''; } else { return ''; } } }
Спасибо большое за быстрыи ответ, но к сожалению я не програмист и не знаю как это проделать, несколько дней старался методом научного тыка, но не смог добавить параметр, подксажите пожайлуста как надо или где можно прочитать как добавить параметр.Спасибо