Дефаултный аватар + adven. comments

Любая помощь по установке/настройке/модификации concrete5

Дефаултный аватар + adven. comments

Сообщение guyasyou » 07 сен 2012, 23:02 ,  »  Сообщение:#1

Установил плагин для комментариев, он ставит аватары, но если, поставить аватар по умолчанию define('AVATAR_NONE','files/avatars/avatar.jpg'); не работает.
Аватары установленные вручную показывает, а предустановленные никак. Остальной движок норм все видит.
Вот код, который за это отвечает, что не так?
Код: Выделить всё
<div class="commentAvatar">
      <?php  $controller->getUserAvatar($userid);?>
   </div>

Код: Выделить всё
function getUserAvatar($userid){
         $ui = UserInfo::getByID($userid);
         $ih = Loader::helper('image'); 
         $av = Loader::helper('concrete/avatar'); 

         if ($ui->hasAvatar()) {
             $avatarImgPath = $av->getImagePath( $ui, false );
     
     
               $mw = ($maxWidth) ? $maxWidth : '100';
               $mh = ($maxHeight) ? $maxHeight : '100';   
             if( substr($avatarImgPath,0,strlen(DIR_REL))==DIR_REL ) $avatarImgPath=substr($avatarImgPath,strlen(DIR_REL));
                   $thumb = $ih->getThumbnail( DIR_BASE.$avatarImgPath, $mw, $mh); 
                 if($thumb->src){ 
                     ob_start();
                    $ih->outputThumbnail(DIR_BASE.$avatarImgPath, $mw, $mh); 
                    $avatarHTML=ob_get_contents();
                        ob_end_clean();
                }else{ 
                     $avatarHTML = '<img src="'.$avatarImgPath.'" />'; 
                  }
     
     
                 echo $avatarHTML;
            }
         }
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 08 сен 2012, 09:52 ,  »  Сообщение:#2

Попробуйте код функции в контроллере поменять на такой:
Код: Выделить всё
function getUserAvatar($userid) {
   $ui = UserInfo::getByID($userid);
   $ih = Loader::helper('image'); 
   $av = Loader::helper('concrete/avatar'); 

   if ($ui->hasAvatar()) {
      $avatarImgPath = $av->getImagePath( $ui, false );

      $mw = ($maxWidth) ? $maxWidth : '100';
      $mh = ($maxHeight) ? $maxHeight : '100';   

      if (substr($avatarImgPath, 0, strlen(DIR_REL)) == DIR_REL) $avatarImgPath = substr($avatarImgPath, strlen(DIR_REL));
      
      $thumb = $ih->getThumbnail( DIR_BASE.$avatarImgPath, $mw, $mh);
      
      if($thumb->src) {
         ob_start();
         $ih->outputThumbnail(DIR_BASE.$avatarImgPath, $mw, $mh);
         $avatarHTML = ob_get_contents();
         ob_end_clean();
      } else {
         $avatarHTML = '<img src="'.$avatarImgPath.'" />';
      }
   } else {
      $avatarHTML = '<img src="'.AVATAR_NONE.'" />';
   }
   
   echo $avatarHTML;
}


Само собой при этом в конфиге оставьте define('AVATAR_NONE.......
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Дефаултный аватар + adven. comments

Сообщение guyasyou » 08 сен 2012, 09:58 ,  »  Сообщение:#3

Спасибо огромное, работает!
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 08 сен 2012, 10:00 ,  »  Сообщение:#4

Пожалуйста, обращайтесь =)
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Дефаултный аватар + adven. comments

Сообщение guyasyou » 08 сен 2012, 11:01 ,  »  Сообщение:#5

А, кстати, как сделать так, чтобы комменты были доступны всем, но зарегестрированным и авторизованным без капчи и прочей ереси?
А то он либо всем с капчой, либо только зарегистрированным.
Вот код отображение формы, с условием авторизованности:
Код: Выделить всё
if( $controller->authenticationRequired && !$u->isLoggedIn() ){ ?>
      <div><?php echo t('You must be logged in to leave a reply.')?> <a href="<?php echo View::url("/login","forward",$c->getCollectionID())?>"><?php echo t('Login')?> &raquo;</a></div>
   <?php  }else{ ?>   
      <a name="guestBookForm-<?php echo $controller->bID?>"></a>

      <div id="guestBook-formBlock-<?php echo $controller->bID?>" class="guestBook-formBlock">

         <h5 class="guestBook-formBlock-title"><?php  echo t('Leave a Reply')?></h5>
         <form method="post" action="<?php echo $this->action('form_save_entry', '#guestBookForm-'.$controller->bID)?>">
         <?php  if(isset($Entry->entryID)) { ?>
            <input type="hidden" name="entryID" value="<?php echo $Entry->entryID?>" />
         <?php  } ?>
         
         <?php  if(!$controller->authenticationRequired){ ?>
            <label for="name"><?php echo t('Name')?>:</label><?php echo (isset($errors['name'])?"<span class=\"error\">".$errors['name']."</span>":"")?><br />
            <input type="text" name="name" value="<?php echo $Entry->user_name ?>" /> <br />
            <label for="email"><?php echo t('Email')?>:</label><?php echo (isset($errors['email'])?"<span class=\"error\">".$errors['email']."</span>":"")?><br />
            <input type="email" name="email" value="<?php echo $Entry->user_email ?>" /> <span class="note">(<?php echo t('Your email will not be publicly displayed.')?>)</span> <br />
         <?php  } ?>
         
         <?php echo (isset($errors['commentText'])?"<br /><span class=\"error\">".$errors['commentText']."</span>":"")?>
         <textarea name="commentText"><?php echo $Entry->commentText ?></textarea><br />
         <?php
         if($controller->displayCaptcha) {
                     
            
            $captcha = Loader::helper('validation/captcha');            
               $captcha->label();
               $captcha->showInput();
            $captcha->display();

            echo isset($errors['captcha'])?'<span class="error">' . $errors['captcha'] . '</span>':'';
            
         }
         ?>
         <br/><br/>
         <input type="submit" name="Post Comment" value="<?php echo t('Post Comment')?>" class="button"/>
         </form>
      </div>
   <?php  } ?>


А вот контроллер, кусок определения зарегестрированности и вывода капчи:
Код: Выделить всё
$u = new User();
         $uID = intval( $u->getUserID() );
         if($this->authenticationRequired && !$u->isLoggedIn()){
               $errors['notLogged'] = '- '.t("Your session has expired.  Please log back in.");
         }elseif(!$this->authenticationRequired){      
            if(!$v->email($_POST['email'])) {
               $errors['email'] = '- '.t("Invalid Email Address");
            }
            if(!$v->notempty($_POST['name'])) {
               $errors['name'] = '- '.t("Name is required");
            }
         }
         
         // check captcha if activated
         if ($this->displayCaptcha) {
                $captcha = Loader::helper('validation/captcha');
            if (!$captcha->check()) {
               $errors['captcha'] = '- '.t("Incorrect captcha code");
            }
            }

Я пытался менять условия и там и там. Чет нифига :oops:
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 09 сен 2012, 08:45 ,  »  Сообщение:#6

Там все просто. Но я бухой. Протрезвею и скажу =)
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 11 сен 2012, 16:00 ,  »  Сообщение:#7

Включил эту возможность. Скоро отправлю вам код.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 12 сен 2012, 16:11 ,  »  Сообщение:#8

Обновление:

Чтобы у незарегистрированных пользователей тоже показывался дефолтный аватар:
В controller.php функцию getUserAvatar($userid) заменить на:
Код: Выделить всё
      function getUserAvatar($userid) {
         
         if ($userid > 0) {
            $ui = UserInfo::getByID($userid);
            $ih = Loader::helper('image'); 
            $av = Loader::helper('concrete/avatar'); 

            if (is_object($ui)) {
               if ($ui->hasAvatar()) {
                 $avatarImgPath = $av->getImagePath( $ui, false );

                 $mw = ($maxWidth) ? $maxWidth : '100';
                 $mh = ($maxHeight) ? $maxHeight : '100';   

                 if (substr($avatarImgPath, 0, strlen(DIR_REL)) == DIR_REL) $avatarImgPath = substr($avatarImgPath, strlen(DIR_REL));
                
                 $thumb = $ih->getThumbnail( DIR_BASE.$avatarImgPath, $mw, $mh);
                
                 if($thumb->src) {
                   ob_start();
                   $ih->outputThumbnail(DIR_BASE.$avatarImgPath, $mw, $mh);
                   $avatarHTML = ob_get_contents();
                   ob_end_clean();
                 } else {
                   $avatarHTML = '<img src="'.$avatarImgPath.'" />';
                 }
               } else {
                 $avatarHTML = '<img src="'.AVATAR_NONE.'" />';
               }
            }
         } else {
            $avatarHTML = '<img src="'.AVATAR_NONE.'" />';
         }
         
         echo $avatarHTML;
      }


В файле view.php код:
Код: Выделить всё
                  <?php
                  $userid = $p['uID'];
                  if ($userid > 0) { ?>
                  <div class="commentAvatar">
                     <?php  $controller->getUserAvatar($userid); ?>
                  </div>
                  <?php } ?>

заменить на:
Код: Выделить всё
                  <?php
                  $userid = $p['uID'];
                  ?>
                  <div class="commentAvatar">
                     <?php  $controller->getUserAvatar($userid); ?>
                  </div>
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 12 сен 2012, 22:09 ,  »  Сообщение:#9

Ну, я думаю, мы решили все вопросы, которые вас интересовали. Тему оставлю открытой для людей. Вдруг, кому еще чего захочется?...
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Дефаултный аватар + adven. comments

Сообщение guyasyou » 13 сен 2012, 11:32 ,  »  Сообщение:#10

в вебмани я писал же. он не отнимает счетчик сообщений при отнимании...
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Дефаултный аватар + adven. comments

Сообщение Count_Raven » 13 сен 2012, 17:07 ,  »  Сообщение:#11

guyasyou писал(а):в вебмани я писал же. он не отнимает счетчик сообщений при отнимании...

разберемся
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant


Вернуться в Помощь по concrete5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron