Убрать 3 поля из компонента K2

  • 11 Ответов
  • 849 Просмотров

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

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Здравствуйте. Подскажите, как убрать три поля в компоненте K2:

1. Поле  с названием категории и в скобках кол-во материалов в этой категории. Вот пример, открыта категория "Постановления" http://site11.worldofsites.ru/index.php/dokumenty/postanovleniya

2. В самом низу категории, есть поле с выводом статей из следующей страницы, выведены одни заголовки. В моем случае там написано "Подробнее" и 4 заголовка.

3. Если открыть любой материал категории, там в самом низу есть поле: "Другие материалы в этой категории:", вот его также необходимо отключить.

Пробовал отключать поля с похожими названиями, в категории, в настройках компонента. Отключается все в других местах, а эти поля остаются. Может кто знает как именно называются эти поля в настройках, чтобы их отключить. Буду рад любой помощи по любому из полей.

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Re: Убрать 3 поля из компонента K2
« Ответ #1 : 23.06.2015, 21:37:07 »
Что нашел убрал через админку, остальное правкой файлов K2. Теперь продолжение:

Как ко вложению из K2 добавить картинку и размер файла.

К примеру сейчас у меня в низу материала выводится строка: Скачать вложения: файл.docx (4 Скачиваний)

А нужно: Скачать вложения: (картинка доковского файлика) файл.docx (140КБ)

*

motokraft

  • Живу я здесь
  • ******
  • 1338
  • 59
Re: Убрать 3 поля из компонента K2
« Ответ #2 : 23.06.2015, 21:44:34 »
А нужно: Скачать вложения: (картинка доковского файлика) файл.docx (140КБ)

Это уже надо дописывать самому.... в базе храниться имя файла(с расширением).

1. Поле  с названием категории и в скобках кол-во материалов в этой категории. Вот пример, открыта категория "Постановления" http://site11.worldofsites.ru/index.php/dokumenty/postanovleniya
2. В самом низу категории, есть поле с выводом статей из следующей страницы, выведены одни заголовки. В моем случае там написано "Подробнее" и 4 заголовка.
3. Если открыть любой материал категории, там в самом низу есть поле: "Другие материалы в этой категории:", вот его также необходимо отключить.

Ответы на все 3 вопроса найдешь в папке templates компонента К2
...

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Re: Убрать 3 поля из компонента K2
« Ответ #3 : 02.10.2015, 12:17:23 »
Немного были другие дела. Сейчас вернулся опять к этому же вопросу с выводом размера вложений К2. Вот чего удалось достигнуть благодаря участникам этого форума:

Отыскал папку шаблон/html/com_k2/templates/default/ - в ней хранятся файлы отвечающие за вывод категории, материала и т.д.

Создал там файл function.php - в нем будет код проверки на существования файла вложения и вычисления его размера:
Спойлер
[свернуть]

Далее переходим к файлу вывода категории, файл: category_item.php

На верху файла после: "defined('_JEXEC') or die('Restricted access');" я подключил мой function.php
И объявил переменную $size, которая возвращается функцией get_filesize.
Код
<?php
include_once "function.php";

$size = get_filesize ($_SERVER['DOCUMENT_ROOT'].'/index.php/sved/item/download/135_1df191053474b87343882d0a0e767b18');
?>

В этом же файле category_item.php, ниже где идет цикл с вложениями я добавил строку:
Код
echo "( <strong>".$size."</strong> )";
Плучается типа: файл.doc ( 100 КБ )

Все работает отлично если указать конкретный путь к какому-либо файлу на сервере в get_filesize
Но у вложений К2, путь к файлам немного странный: /index.php/sved/item/download/135_1df191053474b87343882d0a0e767b18
На конце ссылки нет расширения и по этому функция, на первом этапе проверки файла на сущствование возвращает: Файл не найден

Можете подсказать как правильно нужно составить эту строку с путем к вложению:
Код
$size = get_filesize ($_SERVER['DOCUMENT_ROOT'].'/index.php/sved/item/download/135_1df191053474b87343882d0a0e767b18');

В цикле этого же файла ссылка выводится так:
Код
<li> <a title="<?php echo K2HelperUtilities::cleanHtml($attachment->titleAttribute); ?>" href="<?php echo $attachment->link; ?>"> <?php echo $attachment->title ; ?> </a>
<?php if($this->item->params->get('catItemAttachmentsCounter')): ?>
<span>(<?php echo $attachment->hits; ?> <?php echo ($attachment->hits==1)? JText::_('K2_DOWNLOAD') : JText::_('K2_DOWNLOADS'); ?>)</span>
<?php endif; ?>
</li>

Подозреваю, что нужно как-то использовать: $attachment->link
« Последнее редактирование: 02.10.2015, 12:29:52 от Леон »

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Re: Убрать 3 поля из компонента K2
« Ответ #4 : 02.10.2015, 14:33:30 »
Вывел размеры файлов вложений. Думаю конечно я неправильно сделал, что вывел путь к вложениям, но работает:

Код
$size = get_filesize ($_SERVER['DOCUMENT_ROOT'].'/media/k2/attachments/'.$attachment->titleAttribute);

Да и пришлось эту строку перенести также в цикл, где перебираются вложения, чтобы на все применилось.

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Re: Убрать 3 поля из компонента K2
« Ответ #5 : 02.10.2015, 15:23:47 »
Вывел размеры файлов вложений. Думаю конечно я неправильно сделал, что вывел путь к вложениям, но работает:
Да и пришлось эту строку перенести также в цикл, где перебираются вложения, чтобы на все применилось.

Даже страшно представить что у тебя там получилось.
Не давно сам нашел интересное решение. Мне тоже надо было выводит размер файла.
Попробуй сделать так как предлагает автор.
Ссылка на решение: Вывод размера вложенного файла на странице материала компонента К2 v2.6.8
« Последнее редактирование: 08.10.2015, 13:41:28 от NewUsers »

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Re: Убрать 3 поля из компонента K2
« Ответ #6 : 02.10.2015, 15:44:07 »
NewUsers, гдеж ты раньше был с инструкцией)
На сайте выводится нормально, просто думаю нужно было более правильно составить ссылку на файл. А так вот демо: ddt.bkobr.ru/index.php/svedeniya-o-ddt/dokumenty

Теперь буду думать, как прикрутить перед вложением картинку с раширением как у компонента Attachments
« Последнее редактирование: 02.10.2015, 15:51:01 от Леон »

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Re: Убрать 3 поля из компонента K2
« Ответ #7 : 02.10.2015, 16:00:14 »
NewUsers, гдеж ты раньше был с инструкцией).

Я ее сам недавно нашел...

Теперь буду думать, как прикрутить перед вложением картинку с раширением как у компонента Attachments

Ну это просто. Получаешь размер файла. потом вставляешь его в путь к картинке.
Какое расширение такое и название файла определяющее имя расширения...

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Re: Убрать 3 поля из компонента K2
« Ответ #8 : 02.10.2015, 16:16:50 »
NewUsers, можно чуть подробнее с логикой, не дошло.

Картинки уже залиты.

Получаю путь к файлу - это есть, дальше не совсем понял что нужно.

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Re: Убрать 3 поля из компонента K2
« Ответ #9 : 02.10.2015, 17:08:20 »
NewUsers, можно чуть подробнее с логикой, не дошло.
Картинки уже залиты.
Получаю путь к файлу - это есть, дальше не совсем понял что нужно.

Посмотри еще раз. Вывод размера вложенного файла на странице материала компонента К2 v2.6.8
Желательно что бы имена картинок были такими же как и расширение...
« Последнее редактирование: 08.10.2015, 13:41:09 от NewUsers »

*

Леон

  • Давно я тут
  • ****
  • 277
  • 4
Re: Убрать 3 поля из компонента K2
« Ответ #10 : 02.10.2015, 18:48:52 »
Я в php не понимаю, в общем собрал такой велосипед)
Код
<?php	
$size = get_filesize ($_SERVER['DOCUMENT_ROOT'].'/media/k2/attachments/'.$attachment->titleAttribute);
$filename = getExtension ($_SERVER['DOCUMENT_ROOT'].'/media/k2/attachments/'.$attachment->titleAttribute);

if ($filename == 'pdf')
echo '<img src="/media/com_attachments/images/file_icons/pdf.gif">';
if ($filename == 'doc')
echo '<img src="/media/com_attachments/images/file_icons/word.gif">';
if ($filename == 'docx')
echo '<img src="/media/com_attachments/images/file_icons/wordx.gif">';
if ($filename == 'xls')
echo '<img src="/media/com_attachments/images/file_icons/excel.gif">';
if ($filename == 'xlsx')
echo '<img src="/media/com_attachments/images/file_icons/excelx.gif">';
  if ($filename == 'jpg')
echo '<img src="/media/com_attachments/images/file_icons/JPEG.gif">';
  if ($filename == 'rar')
echo '<img src="/media/com_attachments/images/file_icons/archive.gif">';
  if ($filename == 'ppt')
echo '<img src="/media/com_attachments/images/file_icons/ppt.gif">';
  if ($filename == 'pptx')
echo '<img src="/media/com_attachments/images/file_icons/pptx.gif">';
  if ($filename == 'zip')
echo '<img src="/media/com_attachments/images/file_icons/zip.gif">';
  if ($filename == 'rtf')
echo '<img src="/media/com_attachments/images/file_icons/rtf.gif">';
?>

Может когда-то наберусь опыта и сделаю лучше. Картинки от аттача использовал) чтобы по второму разу не заливать))

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Re: Убрать 3 поля из компонента K2
« Ответ #11 : 02.10.2015, 18:56:51 »


Немного не так... в функцию getExtension надо указать имя файла с расширением, путь к самому файлу там не надо...
Код
$filename = FileExtension($attachment->filename)
Этот код надо вставить в тег foreach
Код
foreach ($this->item->attachments as $attachment):

Ну а так лучше сделай что бы имена файлов были такими же, какое расширение они отображают...
Просто так ты избавишься от множественных условий, и строчка выводящее картинку расширения будет одна...
Код
<?php	
$size = K2HelperPermissions::HumanBytes ($this->item->params->get('attachmentsFolder'), $attachment->filename);
$filename = K2HelperPermissions::FileExtension ($attachment->filename);

echo '<img src="/media/com_attachments/images/file_icons/'.$filename.'.gif">';
?>