Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 3440 Просмотров
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Пытаюсь интегрировать один компонент с JS - необходимо просто поставить аватар автора и ссылка на его страничку по клику!

Вот тут написано как это сделать. Но получается не совсем так..

Аватар появляется, но берет он из моего профиля..  то есть статья одного автора, а аватар будет отображать Ваш.. у каждого пользователя получается свой.. а нужен аватар автора =\

вот код
Код
$jspath = JPATH_ROOT.DS.'components'.DS.'com_community';
include_once($jspath.DS.'libraries'.DS.'core.php');
 
// Get CUser object
$user =& CFactory::getUser($userid);
$avatarUrl = $user->getThumbAvatar();
 
echo '<img src="'. $avatarUrl .'"/>';

Думаю что нужно заменить getUser($userid);.. но т.к. код не знаю, у меня ничего не выходит..

Подскажите пожалуйста :)
« Последнее редактирование: 02.08.2010, 14:36:36 от Darknemo »
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Выдернуть Аватар из JS
« Ответ #1 : 17.07.2010, 03:08:40 »
Тогда всё зависит от компонента. обычно userid содержиться в строке таблицы компонента... Остаётся получить id строки. Часто, id записи пишется в строке адреса браузера, оттуда просто получить через API Joomla.
Всё что не анархия, то фашизм...
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #2 : 17.07.2010, 10:27:32 »
я говорю код не знаю ) а Вы меня API Joomla пугаете :) скажите как это реализовать?
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #3 : 29.07.2010, 02:25:05 »
Мне нужно вставить в шаблон Mosets Tree, в шаблон самого объявления, аватар автора с прямым линком на профайл.. с Компонентом К2 я это реализовал, по одной статье.. аналогично с мосетс не получается..

Подскажите куда копать?
*

cygun

  • Захожу иногда
  • 116
  • 3 / 0
Re: Выдернуть Аватар из JS
« Ответ #4 : 29.07.2010, 10:30:38 »
Есть чудо код который связывал CB c мосетсом:
Но я связал и с JomSocial
Значит так:

распаковываем фаил из архива в components\com_mtree\Savant2 и добавлем в шаблон Mosets Tree следующий код

Код
<?php $this->plugin( 'cbprofilelink', $this->link, '********')?>

Где вместо ******** необходимо подставить требуемый параметр

  icon - маленькая иконка, - иконку берет из CB (c JomSocial не разобрался)
  avatar - аватар, - берет из CB (c JomSocial не разобрался)
  avatarusername - логин + аватар
  name - имя пользователя - Все чики пуки
  username - логин - Все чики пуки

[вложение удалено Администратором]
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #5 : 29.07.2010, 15:17:27 »
Спасибо, но мне как раз нужно для JomSocial а не
Цитировать
Но я связал и с JomSocial
как ты это сделал?
*

cygun

  • Захожу иногда
  • 116
  • 3 / 0
Re: Выдернуть Аватар из JS
« Ответ #6 : 29.07.2010, 17:24:28 »
фаил что я приложил он для JomSocial
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Выдернуть Аватар из JS
« Ответ #7 : 29.07.2010, 17:34:33 »
Строчка $user =& CFactory::getUser($userid); получает объект пользователя, а $avatarUrl = $user->getThumbAvatar(); его аватар. Вам нужно всего лишь передать нужный $userid (id автора). К примеру у Вас id автора - это $row->created_by, тогда объект пользователя необходимо получать вот так: $user =& CFactory::getUser($row->created_by);
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #8 : 29.07.2010, 18:40:48 »
Спасибо! Сейчас попробую..

Вот поставил следующий код:
Код
   $jspath = JPATH_ROOT.DS.'components'.DS.'com_community';
    include_once($jspath.DS.'libraries'.DS.'core.php');

    // Get CUser object
    $user =& CFactory::getUser($row->created_by);
    $name  = $user->getDisplayName();
    $avatarUrl = $user->getThumbAvatar();
    $status = $user->getStatus();
    $link = CRoute::_('index.php?option=com_community&view=profile&userid='.$userid);
    $isOnline = $user->isOnline();

    echo '<a href="'. $link .'"><img src="'. $avatarUrl .'"/></a>';
И все ровно аватар отображает мой, а не автора..
Где косяк?
« Последнее редактирование: 29.07.2010, 18:52:39 от Darknemo »
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #9 : 29.07.2010, 18:59:07 »
фаил что я приложил он для JomSocial

Распаковал, код поставил..
Вот что получается:
Код
Warning: require_once(/components/com_mtree/Savant2/Plugin.php) [function.require-once]: failed to open stream: No such file or directory in /home/neptun/public_html/vchebah/components/com_mtree/Savant2/Savant2_Plugin_cbprofilelink.php on line 20

Fatal error: require_once() [function.require]: Failed opening required '/components/com_mtree/Savant2/Plugin.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/neptun/public_html/vchebah/components/com_mtree/Savant2/Savant2_Plugin_cbprofilelink.php on line 20
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #10 : 29.07.2010, 19:01:46 »
Распаковал, код поставил..
Вот что получается:
Код
Warning: require_once(/components/com_mtree/Savant2/Plugin.php) [function.require-once]: failed to open stream: No such file or directory in /home/neptun/public_html/vchebah/components/com_mtree/Savant2/Savant2_Plugin_cbprofilelink.php on line 20

Fatal error: require_once() [function.require]: Failed opening required '/components/com_mtree/Savant2/Plugin.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/neptun/public_html/vchebah/components/com_mtree/Savant2/Savant2_Plugin_cbprofilelink.php on line 20

Да, забыл версия JS 1.8.3
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Выдернуть Аватар из JS
« Ответ #11 : 30.07.2010, 12:57:10 »
Спасибо! Сейчас попробую..

Вот поставил следующий код:
Код
   $jspath = JPATH_ROOT.DS.'components'.DS.'com_community';
    include_once($jspath.DS.'libraries'.DS.'core.php');

    // Get CUser object
    $user =& CFactory::getUser($row->created_by);
    $name  = $user->getDisplayName();
    $avatarUrl = $user->getThumbAvatar();
    $status = $user->getStatus();
    $link = CRoute::_('index.php?option=com_community&view=profile&userid='.$userid);
    $isOnline = $user->isOnline();

    echo '<a href="'. $link .'"><img src="'. $avatarUrl .'"/></a>';
И все ровно аватар отображает мой, а не автора..
Где косяк?
А Вы уверены, что у Вас ID автора передается через $row->created_by? Я это привел как пример.
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #12 : 30.07.2010, 17:19:35 »
я не уверен.. ) php я не знаю.. как мне посмотреть как передается ID автора в Mosets?
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #13 : 01.08.2010, 10:29:28 »
подскажите кто нибудь (((
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Выдернуть Аватар из JS
« Ответ #14 : 01.08.2010, 12:14:32 »
Приложи сюда php файл в котором вносятся изменения, глянем.
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #15 : 01.08.2010, 12:39:12 »
Это php файл шаблона sub_listingDetails.tpl.php
Код
<?php
/*
$cust_1 = $this->fields->getFieldByCaption('Custom Text'); // getFieldByCaption() allow you to get the field by the Caption. This is not the best way to get a field since changing the caption in the back-end will break the reference.
echo '<br />Field ID: ' . $cust_1->getId();

$cust_2 = $this->fields->getFieldById(29);  // getFieldById() is the ideal way of getting a field. The ID can be found at 'Custom Fields' section in Mosets Tree's back-end.
echo '<br />Name: ' . $cust_2->getName();
echo '<br />Has Caption? ' . (($cust_2->hasCaption())? 'Yes' : 'No');
echo '<br />Caption: ' . $cust_1->getCaption();
echo '<br />Value: ' . $cust_2->getValue();
echo '<br />Output: ' . $cust_2->getOutput(1);
echo '<hr />';
$this->fields->resetPointer();
while( $this->fields->hasNext() ) {
$field = $this->fields->getField();
echo '<br /><strong>' . $field->getCaption(). '</strong>';
echo ': ';
echo $field->getOutput(1); // getOutput() returns the formatted value of the field. ie: For a youtube video, the youtube player will be loaded
// echo $field->getValue(); // getValue() returns the raw value without additional formatting. ie: When getting value from a Online Video field type, it will return the URL.
$this->fields->next();
}
*/

?>

<div id="listing">

<h2><?php
$link_name = $this->fields->getFieldById(1);
$this->plugin( 'ahreflisting', $this->link, $link_name->getOutput(1), '', array("delete"=>true,"link"=>false) )
?></h2>

<?php
if ( !empty($this->mambotAfterDisplayTitle) ) {
echo trim( implode( "\n", $this->mambotAfterDisplayTitle ) );
}

if ( !empty($this->mambotBeforeDisplayContent) && $this->mambotBeforeDisplayContent[0] <> '' ) {
echo trim( implode( "\n", $this->mambotBeforeDisplayContent ) );
}
echo '<div class="column first">';

echo '<div class="listing-desc">';
$images = $this->images;
if ($this->config->getTemParam('skipFirstImage','0') == 1) {
array_shift($images);
}

if(!is_null($this->fields->getFieldById(2))) {
$link_desc = $this->fields->getFieldById(2);
echo $link_desc->getOutput(1);
}
echo '</div>';
if ( !empty($this->mambotAfterDisplayContent) ) { echo trim( implode( "\n", $this->mambotAfterDisplayContent ) ); }

echo '<div class="rating-fav">';
if($this->config->get('show_rating')) {
echo '<div class="rating">';
$this->plugin( 'ratableRating', $this->link, $this->link->link_rating, $this->link->link_votes);
echo '<div id="total-votes">';
if( $this->link->link_votes <= 1 ) {
echo $this->link->link_votes . " " . strtolower(JText::_( 'Vote' ));
} elseif ($this->link->link_votes > 1 ) {
echo $this->link->link_votes . " " . strtolower(JText::_( 'Votes' ));
}
echo '</div>';
echo '</div>';
}

if($this->config->get('show_favourite')) {
?>
<div class="favourite">
<span class="fav-caption"><?php echo JText::_( 'Favoured' )?>:</span>
<div id="fav-count"><?php echo number_format($this->total_favourites,0,'.',',')?></div><?php
if($this->my->id > 0){
if($this->is_user_favourite) {
?><div id="fav-msg"><a href="javascript:fav(<?php echo $this->link->link_id ?>,-1);"><?php echo JText::_( 'Remove favourite' )?></a></div><?php
} else {
?><div id="fav-msg"><a href="javascript:fav(<?php echo $this->link->link_id ?>,1);"><?php echo JText::_( 'Add as favourite' )?></a></div><?php
}
} ?>
</div><?php
}
echo '</div>';

echo '</div>';

echo '<div class="column second">';

if (!empty($this->images)) include $this->loadTemplate( 'sub_images.tpl.php' );

echo '<h3>';
echo JText::_('Информация');
echo '</h3>';
// Address
$address = '';
if( $this->config->getTemParam('displayAddressInOneRow','1') ) {
$this->fields->resetPointer();
$address_parts = array();
$address_displayed = false;
while( $this->fields->hasNext() ) {
$field = $this->fields->getField();
$output = $field->getOutput(1);
if(in_array($field->getId(),array(4,5,6,7,8)) && !empty($output)) {
$address_parts[] = $output;
}
$this->fields->next();
}
if( count($address_parts) > 0 ) { $address = implode(', ',$address_parts); }
}

// Other custom fields
echo '<div class="fields">';
$number_of_columns = $this->config->getTemParam('numOfColumnsInDetailsView','1');
$field_count = 0;
$need_div_closure = false;
$this->fields->resetPointer();
while( $this->fields->hasNext() ) {
$field = $this->fields->getField();
$value = $field->getValue();
if(
(
(!$field->hasInputField() && !$field->isCore() && empty($value)) || (!empty($value) || $value == '0')
&&
// This condition ensure that fields listed in array() are skipped
!in_array($field->getName(),array('link_name','link_desc'))
&&
(
(
$this->config->getTemParam('displayAddressInOneRow','1') == 1
&&
!in_array($field->getId(),array(5,6,7,8))
)
||
$this->config->getTemParam('displayAddressInOneRow','1') == 0
)
)
||
// Fields in array() are always displayed regardless of its value.
in_array($field->getName(),array('link_featured'))
) {
if( $field_count % $number_of_columns == 0 ) {
echo '<div class="row0">';
$need_div_closure = true;
}

echo '<div class="fieldRow'.(($field_count % $number_of_columns == ($number_of_columns -1))?' lastFieldRow':'').'" style="width:'.floor(98/intval($number_of_columns)).'%">';

if($this->config->getTemParam('displayAddressInOneRow','1') && in_array($field->getId(),array(4,5,6,7,8)) && $address_field = $this->fields->getFieldById(4)) {
if( $address_displayed == false ) {
echo '<div class="caption">';
if($address_field->hasCaption()) {
echo $address_field->getCaption();
}
echo '</div>';
echo '<div class="output">';
echo $address_field->getDisplayPrefixText();
echo $address;
echo $address_field->getDisplaySuffixText();
echo '</div>';
$address_displayed = true;
}
} else {
echo '<div class="caption">';
// echo $field->getId();
if($field->hasCaption()) {
echo $field->getCaption();
}
echo '</div>';
echo '<div class="output">';
switch($field->getFieldType()) {
case 'mfile':
echo $field->getDisplayPrefixText();
echo '<p class="mbutton">';
echo $field->getOutput(1);
echo '<p>';
echo $field->getDisplaySuffixText();
break;

default:
echo $field->getDisplayPrefixText();
echo $field->getOutput(1);
echo $field->getDisplaySuffixText();
}
echo '</div>';
}
echo '</div>';

if( ($field_count % $number_of_columns) == ($number_of_columns-1) ) {
echo '</div>';
$need_div_closure = false;
}
$field_count++;
}
$this->fields->next();
}
if( $need_div_closure ) {
echo '</div>';
$need_div_closure = false;
}
echo '</div>';

echo '</div>';

if( $this->show_actions_rating_fav ) {
?>
<div class="actions-rating-fav">
<?php if( $this->show_actions ) { ?>
<div class="actions">
<?php
$this->plugin( 'ahrefreview', $this->link, array("rel"=>"nofollow") );
$this->plugin( 'ahrefrecommend', $this->link, array("rel"=>"nofollow") );
$this->plugin( 'ahrefprint', $this->link );
$this->plugin( 'ahrefcontact', $this->link, array("rel"=>"nofollow") );
$this->plugin( 'ahrefvisit', $this->link );
$this->plugin( 'ahrefreport', $this->link, array("rel"=>"nofollow") );
$this->plugin( 'ahrefclaim', $this->link, array("rel"=>"nofollow") );
$this->plugin( 'ahrefownerlisting', $this->link );
$this->plugin( 'ahrefmap', $this->link );
?></div><?php
}
?></div><?php
}
?>
</div>
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Выдернуть Аватар из JS
« Ответ #16 : 02.08.2010, 08:25:22 »
В этом коде не выводится автор. Видимо его спецом надо "вытаскивать".
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Выдернуть Аватар из JS
« Ответ #17 : 02.08.2010, 14:36:02 »
Автор там выводиться специальным полем.. короче запарился я копать..

Вопрос решил так - поставил DAvatar content plugin от Darkick.. думал он только для com_content, а он и в Мосетс тоже отображает аватар..

Всем спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] проблема с eventlist

Автор deners

Ответов: 16
Просмотров: 3592
Последний ответ 15.01.2012, 09:11:31
от kharol
[Решено] Автоматическая нотификация о новых сообщениях

Автор tnex

Ответов: 8
Просмотров: 4261
Последний ответ 04.12.2011, 23:08:33
от Trampypys
Вывод подарка на аватар.

Автор rts7721

Ответов: 3
Просмотров: 2153
Последний ответ 29.11.2011, 02:44:06
от rts7721
help! (Почти решено) JSPT Обработчик события onclick как на полигоне

Автор zevs_1993

Ответов: 4
Просмотров: 2391
Последний ответ 15.07.2011, 00:20:32
от zevs_1993
Content-плагин, добавляющий аватар автора материала из JomSocial 1.8.11

Автор slepoy

Ответов: 0
Просмотров: 1580
Последний ответ 11.06.2011, 14:15:06
от slepoy