ModExtra - создание своего компонента - проблемы
Здравствуйте!
Василий, спасибо за статью и видео по «клонированию» шаблона ModExtra
Я попробовал все сделать как у вас написано.
В итоге: после установки пакета (из локального хранилища) пункт меню «Компоненты»->«AsupQuery» (это имя компонента) появился, все вроде замечательно. Но по щелчку на этот пункт меню появляется страница с ошибкой:
Иду в этот файл, смотрю… (Извиняюсь, что листинг со всеми комментариями, это чтоб номера строк совпадали)
И дальше не знаю, что делать.
Очень надеюсь на ваш совет.
Спасибо.
Василий, спасибо за статью и видео по «клонированию» шаблона ModExtra
Я попробовал все сделать как у вас написано.
В итоге: после установки пакета (из локального хранилища) пункт меню «Компоненты»->«AsupQuery» (это имя компонента) появился, все вроде замечательно. Но по щелчку на этот пункт меню появляется страница с ошибкой:
Fatal error: Class 'AsupQueryBaseManagerController' not found in Z:\home\www\core\components\AsupQuery\index.class.php on line 26
Иду в этот файл, смотрю… (Извиняюсь, что листинг со всеми комментариями, это чтоб номера строк совпадали)
<?php
/**
* AsupQuery
*
* Copyright 2010 by Shaun McCormick <shaun+asupquery@modx.com>
*
* AsupQuery 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.
*
* AsupQuery 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
* AsupQuery; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA
*
* @package asupquery
*/
require_once dirname(__FILE__) . '/model/asupquery/asupquery.class.php';
/**
* @package asupquery
*/
class IndexManagerController extends AsupQueryBaseManagerController {
public static function getDefaultController() { return 'home'; }
}
abstract class AsupQueryBaseManagerController extends AsupQueryManagerController {
/** @var AsupQuery $asupquery */
public $asupquery;
public function initialize() {
$this->asupquery = new AsupQuery($this->modx);
$this->addCss($this->asupquery->config['cssUrl'].'mgr.css');
$this->addJavascript($this->asupquery->config['jsUrl'].'mgr/asupquery.js');
$this->addHtml('<script type="text/javascript">
Ext.onReady(function() {
AsupQuery.config = '.$this->modx->toJSON($this->asupquery->config).';
AsupQuery.config.connector_url = "'.$this->asupquery->config['connectorUrl'].'";
});
</script>');
return parent::initialize();
}
public function getLanguageTopics() {
return array('asupquery:default');
}
public function checkPermissions() { return true;}
}
И дальше не знаю, что делать.
Очень надеюсь на ваш совет.
Спасибо.
Комментарии: 11
Z:\home\www\core\components\
Извините, я в разработке на windows не разбираюсь. Попробуйте образ для VirtualBox bezumkin.ru/blog/2012/09/24/ubuntu_vbox/
У меня проблем нет, смотрите видео — bezumkin.ru/blog/2012/10/03/new_modextra/
Извините, я в разработке на windows не разбираюсь. Попробуйте образ для VirtualBox bezumkin.ru/blog/2012/09/24/ubuntu_vbox/
У меня проблем нет, смотрите видео — bezumkin.ru/blog/2012/10/03/new_modextra/
Василий, я не думаю, что дело в Windows. Подскажите пожалуйста, где (в каком файле) вообще в этом компоненте должен описываться класс modExtraManagerController
(После переименования в моем случае класс AsupQueryManagerController
Я вижу, что классы, указанные в index.class.php расширяются от него, а где он сам я никак не найду… :-(
(После переименования в моем случае класс AsupQueryManagerController
Я вижу, что классы, указанные в index.class.php расширяются от него, а где он сам я никак не найду… :-(
abstract class AsupQueryBaseManagerController extends AsupQueryManagerController {
Должно быть extends modExtraManagerController, если у вас где-то еще AsupQueryManagerController не объявлен. Это первое, что бросилось в глаза.
Должно быть extends modExtraManagerController, если у вас где-то еще AsupQueryManagerController не объявлен. Это первое, что бросилось в глаза.
В моем скрипте это учтено.
А чем переименовывал челок на windows — я не знаю. Вряд ли этим башовым скриптом, с перловыми вызовами.
Вот и переименовал, похоже, совсем все.
А чем переименовывал челок на windows — я не знаю. Вряд ли этим башовым скриптом, с перловыми вызовами.
Вот и переименовал, похоже, совсем все.
2Василий: Хм. Переименовывал как раз rename_it.sh; кинул его на виртуалку с линуксом и запустил скрипт. Вроде как вполне логично скрипт нашел название modExtraManagerController и поскольку ему сказано искать modExtra и modextra и переименовывать в AsupQuery и asupquery вот он и переименовал.
Я уже понял, что удобнее с линуксом работать, из-под винды ухожу.
2Евгений: класс больше нигде не объявлен, потому см. вопрос выше: а где объявляется класс modExtraManagerController? Я так понял, что от modExtra ничего остаться не должно и все классы создаются для нового названия компонента. Может, я ошибаюсь?
Таким образом, пока не победил проблему.
Я уже понял, что удобнее с линуксом работать, из-под винды ухожу.
2Евгений: класс больше нигде не объявлен, потому см. вопрос выше: а где объявляется класс modExtraManagerController? Я так понял, что от modExtra ничего остаться не должно и все классы создаются для нового названия компонента. Может, я ошибаюсь?
Таким образом, пока не победил проблему.
На 28й строке для этого специальная проверка — https://github.com/bezumkin/modExtra/blob/master/rename_it.sh#L28
Короче, разбирайтесь, у меня, как видно — все работает.
Короче, разбирайтесь, у меня, как видно — все работает.
Я кажется все понял, кроме одного.
Зачем скрипты rename_it.sh различаются в двух местах…
https://github.com/splittingred/modExtra/blob/develop/rename_it.sh
и здесь:
https://github.com/bezumkin/modExtra/blob/master/rename_it.sh
В вашем скрипте есть проверка, у splittingred нет.
В-общем, я брал modExtra в репозитории у Splittingred от этого и проблемы.
Сейчас возьму из вашего и попробую еще раз.
PS Может, вам лучше с тем автором скоординировать усилия, а то чайники, вроде меня, тупят на пустом месте, не зная, что предпочесть — оф. документацию или удачные «доработки».
В любом случае, спасибо за наводку, буду копать.
Зачем скрипты rename_it.sh различаются в двух местах…
https://github.com/splittingred/modExtra/blob/develop/rename_it.sh
и здесь:
https://github.com/bezumkin/modExtra/blob/master/rename_it.sh
В вашем скрипте есть проверка, у splittingred нет.
В-общем, я брал modExtra в репозитории у Splittingred от этого и проблемы.
Сейчас возьму из вашего и попробую еще раз.
PS Может, вам лучше с тем автором скоординировать усилия, а то чайники, вроде меня, тупят на пустом месте, не зная, что предпочесть — оф. документацию или удачные «доработки».
В любом случае, спасибо за наводку, буду копать.
Вы понимаете, что такое форк?
Автору я отправил изменения, он их пока не принял. https://github.com/splittingred/modExtra/pull/3
Будьте внимательнее, на будущее.
Автору я отправил изменения, он их пока не принял. https://github.com/splittingred/modExtra/pull/3
Будьте внимательнее, на будущее.
Василий, спасибо за отличное пособие для установки на виртуальный сервер. Поставил на комп, хожу на него через роутер. все ок!
Но пытаюсь ставить modExtra как у тебя по видео, в общем выпил 4 банки пива и не смог.
Вот такое вот пишет:
clip2net.com/s/65FaHw
Уже все пути и так и этак. Никак не получается. Подскажи, может сталкивался.
Но пытаюсь ставить modExtra как у тебя по видео, в общем выпил 4 банки пива и не смог.
Вот такое вот пишет:
clip2net.com/s/65FaHw
Уже все пути и так и этак. Никак не получается. Подскажи, может сталкивался.
Тебе говорят, что нужного файла по указанному пути не найдено.
Проверяй, почему так.
Проверяй, почему так.
Приветствую!
Использовал github.com/bezumkin/modExtra
Переименовывал через скрипт по инструкции.
Подскажите пожалуйста, контроллер выдает ошибку, в логе:
Использовал github.com/bezumkin/modExtra
Переименовывал через скрипт по инструкции.
Подскажите пожалуйста, контроллер выдает ошибку, в логе:
PHP Fatal error: Class 'modExtraManagerController' not found in /public_html/core/components/component/controllers/lan.class.php on line 8
Ругается на эту строчку:class ComponentPageManagerController extends modExtraManagerController
{
/****/
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.