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

kaksdelat

  • Новичок
  • 8
  • 0 / 0
Здравствуйте каким образом можно убрать лишнию вложенность в компоненте например:
на сайте компонент видео галереи при открытии категории с видео ссылка выглядит так
http://prikolnyekartinki.com/s-effektami.html
При нажатии на видео ссылка выглядит так:
http://prikolnyekartinki.com/s-effektami/video/podborka-dtp-dekabr-2012-chast-1.html
По выше написанному мы видим что добавляется категория самого компонента video и вот вопрос как её убрать. Подскажите в каком месте рыть какая функция отвечает за вывод ссылки.
Вот сам компонент http://1000videourokov.ru/downloads/com_allvideoshare_1.2.4.zip
« Последнее редактирование: 29.01.2013, 10:12:02 от kaksdelat »
*

prometheus

  • Захожу иногда
  • 84
  • 7 / 0
За пути на сайте отвечает router.php
*

kaksdelat

  • Новичок
  • 8
  • 0 / 0
За пути на сайте отвечает router.php
Там нет такого:
Код

/*
 * @version $Id: router.php 1.2.4 2012-10-30 $
 * @package Joomla
 * @copyright   Copyright (C) 2012-2013 MrVinoth
 * @license     GNU/GPL http://www.gnu.org/licenses/gpl-2.0.html
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

function AllVideoShareBuildRoute( &$query ) {
$segments = array();
  
    if(isset($query['view'])) {
     $segments[] = $query['view'];
        unset( $query['view'] );
    }

if(isset($query['orderby'])) {
if($query['orderby'] != 'default') {
$segments[] = $query['orderby'];
}
     unset( $query['orderby'] );
}

    if(isset($query['slg'])) {
     $segments[] = $query['slg'];
        unset( $query['slg'] );
    }

    return $segments;
}

function AllVideoShareParseRoute( $segments ) {
$vars  = array();
$order = array('default', 'latest', 'popular', 'random', 'featured');
$count = count( $segments );

if( $count >= 1 && $segments[0] ) {
     $vars['view'] = $segments[0];
    }

if( $count == 2 ) {
if( in_array($segments[1], $order) ) {
$vars['orderby'] = $segments[1];
} else {
$vars['slg'] = $segments[1];
}
} else if($count == 3) {
$vars['orderby'] = $segments[1];
$vars['slg'] = $segments[2];    
}

    return $vars;
}

?>
Это файл router.php из компонента!
« Последнее редактирование: 30.01.2013, 06:19:48 от kaksdelat »
*

prometheus

  • Захожу иногда
  • 84
  • 7 / 0
Ну вот этот блок скорее всего и добавляет это

Код
    if(isset($query['view'])) {
     $segments[] = $query['view'];
        unset( $query['view'] );
    }
*

kaksdelat

  • Новичок
  • 8
  • 0 / 0
Ну вот этот блок скорее всего и добавляет это

Код
    if(isset($query['view'])) {
    $segments[] = $query['view'];
        unset( $query['view'] );
    }
И какое по вашему правило нужно изменить?
*

prometheus

  • Захожу иногда
  • 84
  • 7 / 0
Есть куча вариантов например в коде закоментировать строчку
Код
    if(isset($query['view'])) {
    //$segments[] = $query['view'];
        unset( $query['view'] );
    }
тогда твои ссылки будут выглядеть так
http://prikolnyekartinki.com/s-effektami/podborka-dtp-dekabr-2012-chast-1.html?view=video
Причем функцию тоже надо будет подправить.

Основная проблема что компонент не понимает что от него хотят категорию или конкретное видео поэтому добавляет этот эллемент. По умолчанию если он не указан то он считает что это категория. Это я вроде выяснил из файла allvideosshare.php
Код
// Require the base controller
if(JRequest::getCmd('view') == '') {
JRequest::setVar('view', 'categories');
} else if(JRequest::getCmd('view') == 'category' && !JRequest::getCmd('slg')){
JRequest::setVar('view', 'categories');
} else if(JRequest::getCmd('view') == 'video' && !JRequest::getCmd('slg')){
JRequest::setVar('view', 'videos');
}

Научи его понимать когда идет категория когда видео и все.
Как вариант префикс к сегменту например

http://prikolnyekartinki.com/s-effektami/vid-podborka-dtp-dekabr-2012-chast-1.html
http://prikolnyekartinki.com/s-effektami/cat-podborka-dtp-dekabr-2012-chast-1.html
*

guloc55

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Есть куча вариантов например в коде закоментировать строчку
Код
    if(isset($query['view'])) {
    //$segments[] = $query['view'];
        unset( $query['view'] );
    }
тогда твои ссылки будут выглядеть так
http://prikolnyekartinki.com/s-effektami/podborka-dtp-dekabr-2012-chast-1.html?view=video
Причем функцию тоже надо будет подправить.

Основная проблема что компонент не понимает что от него хотят категорию или конкретное видео поэтому добавляет этот эллемент. По умолчанию если он не указан то он считает что это категория. Это я вроде выяснил из файла allvideosshare.php
Код
// Require the base controller
if(JRequest::getCmd('view') == '') {
JRequest::setVar('view', 'categories');
} else if(JRequest::getCmd('view') == 'category' && !JRequest::getCmd('slg')){
JRequest::setVar('view', 'categories');
} else if(JRequest::getCmd('view') == 'video' && !JRequest::getCmd('slg')){
JRequest::setVar('view', 'videos');
}

Научи его понимать когда идет категория когда видео и все.
Как вариант префикс к сегменту например

http://prikolnyekartinki.com/s-effektami/vid-podborka-dtp-dekabr-2012-chast-1.html
http://prikolnyekartinki.com/s-effektami/cat-podborka-dtp-dekabr-2012-chast-1.html

Да всё правильно ссылка video исчезает но вылазит что в файле allvideosshare.php ошибка на 29 строке вот срока
Код
require_once JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
Или я что то не так делаю помогите пожалуйста!
*

prometheus

  • Захожу иногда
  • 84
  • 7 / 0
В router.php исправить функцию парсера
Вместо
Код
	if( $count >= 1 && $segments[0] ) {
    $vars['view'] = $segments[0];
    }

Писать
Код
	if( $count >= 1 && $segments[0] ) {
    $vars['view'] = 'video';
    }
*

guloc55

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
В router.php исправить функцию парсера
Вместо
Код
	if( $count >= 1 && $segments[0] ) {
    $vars['view'] = $segments[0];
    }

Писать
Код
	if( $count >= 1 && $segments[0] ) {
    $vars['view'] = 'video';
    }
Не помогает! Ошибка исчезла ссылка video тоже но само видео не включается страница просто перезагружается и всё.
*

prometheus

  • Захожу иногда
  • 84
  • 7 / 0
Самое главное ты смысл понял нужно исправить функцию function AllVideoShareBuildRoute( &$query )
но также обязательно подправить и функцию function AllVideoShareParseRoute( $segments )
и все получится.
*

guloc55

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Самое главное ты смысл понял нужно исправить функцию function AllVideoShareBuildRoute( &$query )
но также обязательно подправить и функцию function AllVideoShareParseRoute( $segments )
и все получится.
Всё перепробовал видео всё не работает добился только вот такой ссылки
http://prikolnyekartinki.com/s-effektami.html?view=video&slg=uralskie-pelmeni-shou-kvn-shagom-farsh&orderby=default
заменив
Код
function AllVideoShareBuildRoute( &$query )
на
Код
function AllVideoShareBuildRoute( &$video )
Неужели больше ни чего не сделать?
*

z3l

  • Захожу иногда
  • 84
  • 5 / 0
Здравствуйте, решение так никто и не придумал?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Не сохраняются HTML тэги в самописном компоненте

Автор evgen777

Ответов: 5
Просмотров: 1025
Последний ответ 04.03.2014, 15:40:47
от evgen777
Invlid token на разрабатываемом компоненте

Автор designcenter

Ответов: 1
Просмотров: 1117
Последний ответ 06.01.2014, 02:07:26
от Aleks.Denezh
[Решено] Удаление ID из материалов в своём компоненте

Автор n_drey

Ответов: 9
Просмотров: 1200
Последний ответ 25.12.2013, 16:46:54
от n_drey
Кнопка "Я ИДУ" в компоненте EventList

Автор kichik

Ответов: 5
Просмотров: 2272
Последний ответ 30.05.2013, 12:53:24
от dagolovach
Дерево категорий в компоненте

Автор slav

Ответов: 7
Просмотров: 2421
Последний ответ 15.05.2013, 23:20:59
от slav