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.