alexbabo

alexbabo

+308
Репутация
2913
Рейтинг
#1 Как сделать чтобы модули в sidebare отражались только в профиле пользователя а не на всех страницах users? 6 июня 2011 в 14:13
Как сделать чтобы модули в sidebare отражались только в профиле пользователя а не на всех страницах users?
#1 Просмотр картинок 5 июня 2011 в 10:38


К сожалению нет. Исходник весит не больше 100 Кб, так что лучше скачать и посмотреть (вирусы мне сюда выкладывать совершенно незачем)

Ильдар Карымов

Надо же знать что качаешь хоть скрин выложи
#2 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 10:45
Тема зактрыта
#3 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 10:39
Тема зактрыта, как же её закрыть? где кнопочка?
#4 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 10:37


файл usercore добавляем новую функцию

  1.  
  2. function usrImageHS($user_id, $usr_imageurl, $width='100px', $height='250px'){
  3. if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){
  4. return '';
  5. }
  6. }
  7.  
в файле вашего модуля заменяем блок
  1.  
  2. $usr['avatar'] = usrImageNOdb($usr['id'], 'medium', $usr['imageurl'], $usr['is_deleted']);
  3. $pattern = "//i";
  4. $replacement = '';
  5. $usr['avatar'] = preg_replace($pattern, $replacement, $usr['avatar']);
  6.  
на простой вызов новой функции:
  1.  
  2. $usr['avatar'] = usrImageHS($usr['id'], $usr['imageurl'], $width='100px', $height='250px');
  3.  

• Mike •

Всё прекрасно работает.Огромное спасибо за вашу помощь, вы хороший человек, я на форуме заметил вы очень активно отзываетесь на помощь и помогаете людям.Спасибоооо!
#5 3 июня 2011 в 04:30


А если применить таб закладки?
instantcms.ru/catalog/item54.html

uavip

Мне нужна кнопка в модуле при нажатии которого модуль обновлялся бы, например модуль случайный пользователь который при обновлении выводил бы другого случайного пользователя
#6 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 04:09


это не из за хайслайда(если он сконфигурирован) а из за реплейсов с паттернами

• Mike •

я не очень разбераюсь в этом)))Вы видели пример как я сделал тут?http://test.babayan.ca/users/alexbabo1972
вот не знаю как уменшить фото в модуле)))что делать? каков ваш совет?
#7 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 03:57


вам нужно просто переписать функцию usrImageNOdb с учетом добавки highslide обертки и не нужно так мучится с паттернами и реплейсами и не работает, потому что всё что добавляется в usercore реплейсится без учёта исправлений
какая версия highslide у вас, у меня просто последняя синтаксис немного другой встраивания?

• Mike •
Вот такая версия,
Version: 4.0.5 (August 30 2008)
(highslide-with-html.packed)
Вы думаете это все из за highslide? Надо на чистую версию без highslide попробовать мне))
#8 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 02:25


лучше код модуля сюда опубликуйте вашего с исправлениями я посмотрю в чём может быть проблема

• Mike •
я как посмотрел ипсравлений в модуле особых нету, я менял больше шаблон модуля.
мне кажется у мена что то с 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;

}
?>
#9 3 июня 2011 в 02:02
мне тоже интересно.кто знает научите
#10 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 3 июня 2011 в 01:20


нет прямое указание в теге приоритетнее остальных правил
у меня всё работает, даже так:

  1. $usr['avatar'] = usrImageNOdb($usr['id'], '', $usr['imageurl'], $usr['is_deleted'], '128px');
  2.  

• Mike •

Видимо я делаю что то не правильно, я пользуюсь версией 1.7.
Вы не могли бы мне послать или тут поставить ваши файлы? (usercore,mod_lastreg)
#11 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 2 июня 2011 в 23:46


нет, извиняюсь, саму функцию исправьте:

  1.  
  2. function usrImageNOdb($user_id, $small='small', $usr_imageurl, $usr_is_deleted, $width=''){
  3. if ($user_id == -1) { return ''; }
  4. if ($user_id == -2) { return ''; }
  5.  
  6. if ($usr_imageurl){
  7. if($usr_is_deleted){
  8. if ($small=='small'){
  9. return '';
  10. } else {
  11. return '';
  12. }
  13. } else {
  14. if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){
  15. if ($small=='small'){
  16. return '';
  17. } else {
  18. return '';
  19. }
  20. } else {
  21. if ($small=='small'){ return '';
  22. } else { return ''; }
  23. }
  24. }
  25. } else {
  26. if ($small=='small'){ return '';
  27. } else { return ''; }
  28. }
  29. }
  30.  

• Mike •

Не помогло.Может потому что размер прописан в css,class="usr_img"?
У меня в css,class="usr_img" для аватара стоит 200px.
#12 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 2 июня 2011 в 17:03


модуль какой?

• Mike •
Модуль Последние рагистрации, mod_lastreg.
я его переделал на случайного одного пользователя.
#13 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 2 июня 2011 в 16:32


  1.  
  2. function usrImageNOdb($user_id, $small='small', $usr_imageurl, $usr_is_deleted, $width=''){
  3. if ($user_id == -1) { return ''; }
  4. if ($user_id == -2) { return ''; }
  5.  
  6. if ($usr_imageurl){
  7. if($usr_is_deleted){
  8. if ($small=='small'){
  9. return '';
  10. } else {
  11. return '';
  12. }
  13. } else {
  14. if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){
  15. if ($small=='small'){
  16. return '';
  17. } else {
  18. return '';
  19. }
  20. } else {
  21. if ($small=='small'){ return '';
  22. } else { return ''; }
  23. }
  24. }
  25. } else {
  26. if ($small=='small'){ return '';
  27. } else { return ''; }
  28. }
  29. }
  30.  
предлагаю более универсальное решение (добавил параметр $width)
замените код функции на приведенный и в нужном месте при вызове используйте:
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');

• Mike •

Спасибо за ответ, делаю как вы сказали но размер остается такой же.Заменяю функцию в /components/users/includes/usercore и в модуле меняю на $usr['avatar'] = usrImageNOdb($usr['id'], '', $usr['imageurl'], $usr['is_deleted'], $width='128px');
Что не так делаю?
#14 [ЕСТЬ РЕШЕНИЕ] Как использовать в разных модулях {$usr.avatar} при этом назначив разные стили и размеры? 2 июня 2011 в 09:51


у функции usrImageNOdb нет такого параметра 'medium' есть 'small', тогда загружается маленький аватар, а если 'small' не указан то большой (оригинал), так что никаких 'medium' в параметрах функции нет.
Если хотите добавить редактируйте саму функцию:

  1.  
  2. function usrImageNOdb($user_id, $small='small', $usr_imageurl, $usr_is_deleted){
  3. if ($user_id == -1) { return ''; }
  4. if ($user_id == -2) { return ''; }
  5.  
  6. if ($usr_imageurl){
  7. if($usr_is_deleted){
  8. if ($small=='small'){
  9. return '';
  10. } else {
  11. return '';
  12. }
  13. } else {
  14. if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){
  15. if ($small=='small'){
  16. return '';
  17. } else {
  18. return '';
  19. }
  20. } else {
  21. if ($small=='small'){ return '';
  22. } else { return ''; }
  23. }
  24. }
  25. } else {
  26. if ($small=='small'){ return '';
  27. } else { return ''; }
  28. }
  29. }
  30.  
добавив параметр 'medium' и условия для него, размер можно задавать в теге

• Mike •

Спасибо большое за быстрыи ответ, но к сожалению я не програмист и не знаю как это проделать, несколько дней старался методом научного тыка, но не смог добавить параметр, подксажите пожайлуста как надо или где можно прочитать как добавить параметр.Спасибо
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.