Компонент K2

Появилась такая задача - надо в модуле другого производителя, показать иконку атачмента статьи К2. Какие нибудь идеи?
 
Нужно покопаться в коде, найти функцию обрезания и добавить поддержку utf-8 Для просмотра ссылки Войди или Зарегистрируйся
обрезается кусок
<p>{description}</p>
через тотал в модуле k2avatarwall нашла 2 файла (default_parse.php и func_parserow.php) где в каждом на 25-26 строке код
Код:
$description = $item->description;
$description = $maxlength > 0 ? substr($description,0,$maxlength) : $description;
Количество символов (недосмотрела), задается в самих настройках модуля.
Задаю большее количество, вылазят ромбики с вопросами.
В .htaccess все добавлено.

Не разберусь куда добавлять поддержку utf-8 .Так понимаю нужно внедрить в код mod_jxtc_k2avatarwall.php .
Код:
<?php
/*
    JoomlaXTC K2 Avatar Wall

    version 1.13.1

    Copyright (C) 2008,2009,2010,2011,2013 Monev Software LLC.    All Rights Reserved.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    THIS LICENSE IS NOT EXTENSIVE TO ACCOMPANYING FILES UNLESS NOTED.

    See COPYRIGHT.txt for more information.
    See LICENSE.txt for more information.

    Monev Software LLC
    www.joomlaxtc.com
*/

defined( '_JEXEC' ) or die;

jimport( 'joomla.html.parameter' );


$live_site = JURI::base();
$doc = JFactory::getDocument();
$contentconfig = JComponentHelper::getParams( 'com_content' );
$moduleDir = 'mod_jxtc_k2avatarwall';
$db = JFactory::getDBO();

require_once JPATH_SITE.'/components/com_k2/helpers/route.php';

$groupid = $params->get('groupid');
$sortorder = $params->get( 'sortorder', 0 );
$sortfield = $params->get( 'sortfield', 0 );
$updated = $params->get( 'updated_avatar_only', 0 );

$avatarw = $params->get('avatarw',30); if ($avatarw) {$avatarw = 'width="'.$avatarw.'"'; }
$avatarh = $params->get('avatarh',30); if ($avatarh) {$avatarh = 'height="'.$avatarh.'"'; }

$columns = $params->get('columns',1);
$rows    = $params->get('rows', 1);
$pages = $params->get('pages', 1);

    $moreclone = $params->get('moreclone', 0);
    $moreqty = $params->get('moreqty', 0);
    $morecols    = trim( $params->get('morecols',1));
    $morelegend    = trim($params->get('moretext', ''));
    $morelegendcolor    = $params->get('morergb','cccccc');
    $moretemplate    = $params->get('moretemplate', '');

$template    = $params->get('template','');
$moduletemplate    = trim( $params->get('moduletemplate','{mainarea}'));
$itemtemplate    = trim( $params->get('itemtemplate','{title}'));
if ($template && $template != -1) {
    $moduletemplate=file_get_contents(JPATH_ROOT.'/modules/'.$moduleDir.'/templates/'.$template.'/module.html');
    $itemtemplate=file_get_contents(JPATH_ROOT.'/modules/'.$moduleDir.'/templates/'.$template.'/element.html');
    $moretemplate=file_get_contents(JPATH_ROOT.'/modules/'.$moduleDir.'/templates/'.$template.'/more.html');
    if (file_exists(JPATH_ROOT.'/modules/'.$moduleDir.'/templates/'.$template.'/template.css')) {
        $doc->addStyleSheet($live_site.'modules/'.$moduleDir.'/templates/'.$template.'/template.css','text/css');
    }
}

$maxlength    = $params->get('maxlength', 0);
$dateformat    = trim( $params->get('dateformat','Y-m-d' ));

$limit = $columns*$rows*$pages;
$limit += $moreqty;

require_once 'helper.php';

$items = mod_jxtc_k2avatarwallHelper::getData( $groupid, $sortfield, $sortorder, $limit, $updated );

if (count($items) == 0) {
    echo JText::_('No users found.');
    return;
}
require JModuleHelper::getLayoutPath($module->module, $params->get('layout', 'default'));

$items = $params->get('moreclone', 0)
    ? array_slice($items,0,$moreqty)
    : array_slice($items,($columns * $rows * $pages),$moreqty);

require JModuleHelper::getLayoutPath($module->module, $params->get('layout', 'default').'_more');

JPluginHelper::importPlugin('content');
$contentconfig = JComponentHelper::getParams('com_content');
$dispatcher = JDispatcher::getInstance();
$item = new stdClass();
$item->text = $modulehtml;
$results = $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, &$contentconfig, 0 ));
$modulehtml = $item->text;
echo '<div id="'.$jxtc.'">'.$modulehtml.'</div>';

Хелп!!! Помогите правильно сделать...

так понимаю надо вставить
header('Content-type: text/html; charset=utf-8');
на каком уровне?
или это проблема на опенсервере?
 
Последнее редактирование:
$description = $maxlength > 0 ? substr($description,0,$maxlength) : $description;
Попробуйте так:
PHP:
$description = $maxlength > 0 ? substr($description,0,$maxlength,'UTF-8') : $description;
или так:
PHP:
$description = $maxlength > 0 ? mb_substr($description,0,$maxlength,'UTF-8') : $description;

в хедер не нужно ничего вставлять, это используют когда нужно указать кодировку браузеру.
 
:sun:Помогло
Код:
$description = $maxlength > 0 ? mb_substr($description,0,$maxlength,'UTF-8') : $description;

Может быть подскажите как сделать этот модуль k2avatarwall многостаничным?
Т.е , к примеру, нужно выводить экскурсоводов зарегистрировавшихся подобным списком как в модуле k2avatarwall (или еще лучше как К2 выводит списки материалов по категории с рейтингом.)
Это нужно сделать еще один шаблон для вывода категорий К2 ?
Помогите найти решение
 
Хорошая новость в том, что разработчики подтолкнули перейти на более адекватные разработки, где есть поддержка, а не обещания предоставить новую версию. А они доработают k2 c ориентированием на php7? Или поддержка заявлена в следующей версии?
 
перейти на более адекватные разработки, где есть поддержка
Например, какие?
А они доработают k2 c ориентированием на php7?
Говорят, что к выходу J4, k2 будет совсем другим продуктом, менее привязанным к Joomla Framework. Хотя обещаний мы видели уже много.
 
Какие конкретно проблемы возникают у компонента при работе на php7?
 
Какие конкретно проблемы возникают у компонента при работе на php7?
Никаких проблем у K2 не замечено. Но желательно использовать последний DEV релиз.
Быстродействие на php7 сильно вырастает.
 
Никаких проблем у K2 не замечено. Но желательно использовать последний DEV релиз.
Быстродействие на php7 сильно вырастает.
Где можно скачать DEV релиз?
И можно ли его сейчас ставить на рабочий сайт или всё же не желательно?
И будут ли различные модули и плагины для K2 сторонних разработчиков работать на DEV релизе?
 
Где можно скачать DEV релиз?
И можно ли его сейчас ставить на рабочий сайт или всё же не желательно?
И будут ли различные модули и плагины для K2 сторонних разработчиков работать на DEV релизе?
1. Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
2. Можно ставить на рабочий, у нас проблем нет, разработчики обычно сами это советуют.
3. Мы проблем не замечали, напротив, в DEV версии разработчики исправляют разные несовместимости, например, которые были с Joomla 3.7.
 
Назад
Сверху