oll

oll

85 инкарнация-загрузка 100%
+1130
Репутация
18936
Рейтинг
#1 Вывод внешних шаблонов, в диалоговых окнах . 13 сентября 2014 в 10:48
Вопрос непростой., больше к разработчикам ICMS 2!
Уважаемый R2! Присутствует ошибка при использовании renderInternal или я неправильно делаю?
Подскажите пожалуйста, очень нуждаюсь в подсказке.

Как вывести шаблон контроллера в диалоговом окте API редактора tinymce ?
Вернее сказать, я вывожу без проблем, но немного неправильно, там есть чуток лишнего, ссылки- шапка — футер.
В редакторе tinymce, в файле плагина создаю с помощью API окно и обращаюсь к контроллеру icms, контроллер выводит шаблон (cmsTemplate::getInstance()->render)

Метод cmsTemplate::getInstance()->renderInternal() выводит всю страницу! Что очень печально.
Напоминает при AJAX выход по return() ане exit().
Я так понимаю что в системе есть метод cmsTemplate::getInstance()->renderInternal()
для вывода только шаблона контроллера или шаблона вызванного.отдача шаблона при ajax запросах.
Но проверить невозможно не работает..
  1. Вызов из контроллера
  2. cmsTemplate::getInstance()->renderInternal('rfm','dialog', array(
  3. 'data1' => $data1,
  4. 'data2' => $data2
  5. )) ;
  1. //Входные параметры $controller='rfm',$tpl_file='dialog',$data=array('data1'=>$data1,'data2'=>$data2)
  2.  
  3. public function renderInternal($controller, $tpl_file, $data=array()){
  4. //старт debug
  5. $this->setContext($controller);
  6. //стоп debug
  7. $result = $this->render($tpl_file, $data, new cmsRequest(array(), cmsRequest::CTX_INTERNAL));
  8. $this->restoreContext($result);
  9. return $result;
  10.  
  11. }
Сдесь при вызова $this->setContext($controller);
определили текущий контроллер $this->controller = 'rfm'
И все… далее проблема.
Следующий шаг приводит к ошибке системы в renderInternal
// вызов $result = $this->render($tpl_file, $data, new cmsRequest(array(), cmsRequest::CTX_INTERNAL));
//он вызывает функцию getStylesFileName где и теряется имя контроллера.

$this->controller=NULL
$this->controller->name=NULL

И ошибки отсутствия обьекта контроллера
  1.  
  2. Notice: Trying to get property of non-object in C:\usr\domains\instantcms.rfm.3\system\core\template.php on line 832
  3.  
  4. Notice: Trying to get property of non-object in C:\usr\domains\instantcms.rfm.3\system\core\template.php on line 906
Принудительно указав $this->controller='имя контроллера" первая ошибка проходит.
Кто подскажет, я правильно двигаюсь в этом направлении, вывести только нужный мне шаблон- через функцию renderInternal, или есть другие методы системы.

Кому интересно!
Собственно… файловый менеджер как контроллер icms 2 почти готов, и вызывается и работает, и через адресную строку и через редактор tinymce, только в этом и проблема, вывести только шаблон в окне без оболочки системы.Остается использовать функции сессий ядра, и распределение прав пользователей.И будет счастье.

PS//От горе мне, от больной головы. Прочитаю свой вопрос и волосы дыбом.!!!
#1 Система коментирования 9 сентября 2014 в 11:26
Вернее так лучше.Видимо у тебя $item из базы не выбрано
  1.  
  2. public function getCommentTarget($target, $target_id) {
  3. $result = array();
  4. switch($target){
  5. ################ включили отладку############
  6. ini_set ('xdebug.collect_assignments', 1);
  7. xdebug_start_trace('C:\links');
  8. #############################################
  9.  
  10. case 'spravochnik': $item = $this->inDB->get_fields('penza_spravochnik_firms', "id='{$target_id}'", 'name', "full_alas={$full_alas}");
  11.  
  12. ##########завершаем отладку до return ############
  13. xdebug_stop_trace();
  14. ################################################
  15.  
  16. if (!$item) { return false; }
  17.  
  18. $result['link'] = '/spravochnik/'.$full_alas.'.html';
  19.  
  20. $result['title'] = $item['name'];
  21.  
  22. break;
  23.  
  24. }
  25.  
  26. return ($result ? $result : false);
  27.  
  28. }
#2 Система коментирования 9 сентября 2014 в 10:45
Василёк! Невозможно разобраться в чем-либо методом тыка, А можно получить права водителя: методом тыка? А молодому хирургу тоже этим методом пользоваться.
Даже если ничего не понимаешь, можно включить отладчик и смотреть и анализировать исполняемый код, и сразу логика подскажет что неверно .
Кто начинал путь в далеком ассемблере тот знает что без отладки невозможно создать приложение, если ты не гений и помнишь все и всегда и везде.
На локальном сервере включив php 5.3 и указав в нужных местах исследуемого файла этот кусочек инициализации
  1.  
  2. ini_set ('xdebug.collect_assignments', 1);
  3. xdebug_start_trace('C:\links');
  4.  
и в конце исследуемого кода этот кусочек
  1.  
  2. xdebug_stop_trace();
И далее на диске C появится файл link.txt открой его в редакторе и читай, что выполнено.Включи мысль и логику.
Вот как будет выглядеть отлатка твоего кода
  1.  
  2. public function getCommentTarget($target, $target_id) {
  3.  
  4. ################ включили отладку############
  5. ini_set ('xdebug.collect_assignments', 1);
  6. xdebug_start_trace('C:\links');
  7. #############################################
  8. $result = array();
  9.  
  10.  
  11.  
  12. switch($target){
  13.  
  14.  
  15.  
  16. case 'spravochnik': $item = $this->inDB->get_fields('penza_spravochnik_firms', "id='{$target_id}'", 'name', "full_alas={$full_alas}");
  17.  
  18. if (!$item) { return false; }
  19.  
  20. $result['link'] = '/spravochnik/'.$full_alas.'.html';
  21.  
  22. $result['title'] = $item['name'];
  23.  
  24. break;
  25.  
  26.  
  27.  
  28. }
  29.  
  30.  
  31. ##########завершаем отладку до return ############
  32. # чтобы проще понять что будет возвращено создай любую переменную и призвой ей возвращаемые параметры, и их ты увидиш в отладке
  33. $ aaa=$result ? $result : false;
  34.  
  35. xdebug_stop_trace();
  36. ################################################
  37. return ($result ? $result : false);
  38.  
  39.  
  40. }
  41.  
#3 Кто знает, где найти калькулятор доходности 9 сентября 2014 в 10:25
#4 Проблема при регистрации с плантшета 5 сентября 2014 в 20:28

Я не зря указал в начале сообщения, что проблема эта у пользователя. Я конечно могу порекомендовать ему попробовать зайти с другого планшета, одна что-то мне подсказывает, что эта мысль его не обрадует. У самого у меня нет ни одного планшета. Специально приобретать для этих целей пока намерения нет.

А.Саган
Проблема у пользователей только одна, это планшет.
И при все уважении к разработчикам планшетов и их владельцев ошибка в 96 строке это ошибка DateTime::createFromFormat PHP класса, метода который cоздает и возвращает экземпляр класса DateTime, соответствующий заданному формату.
Мануал DateTime::createFromFormat
Прочитаете и поймете что планшетные разработчики софта, плетутся далеко в ЗАДУ!
#5 [ЕСТЬ РЕШЕНИЕ] Конструктор Landing Page для InstanyCMS v2 2 сентября 2014 в 19:12
Если посмотреть с технической стороны то Landing page – это ни что иное как простая страничка которая создана с применением CSS, HTML, текстового наполнения, изображений, видеоконтента и т.д.

Если посмотреть с точки зрения бизнес инструмента – это страница, основная задача которой, подтолкнуть пользователя на совершение нужного вам действия (купить товар или подписаться на новости и т.д.)

С точки зрения пользователя ресурса – то это просто страничка на которую он попал по
ссылке с закладок, видеосервисов, фейса, социалок, с поисковой выдача, баннерной рекламы и.пр, .

Если посмотреть с точки зрения вебмастера, он и делает это, все что описано выше.
Если посмотреть с точки зрения сеошника, он и делает это, все что описано выше.
Если посмотреть с точки зрения дорвейщика, он и делает это, все что описано выше.

В чем соль? Очередное изобретение завуалированных, так сказать классически описанных как: фундаментальная теория стоения и продвижения страниц в поисковых системах. Или подача под смачным иностранным "соусом ландинг" гарантирует что будет топ и калым?
#6 Редакторы в 2.1.1 31 августа 2014 в 13:52
#7 [ЕСТЬ РЕШЕНИЕ] Складчина - 2 редактор для Instantcms - Live Editor 27 августа 2014 в 21:10

P.S. Данный способ будет работать под Firefox и представлен здесь лишь в качестве примера. P.P.S. Проверял на версии 2.1.1, которую скачал пару-тройку часов назад.

stealthdebuger
В Iron и opera работает!
СПАСИБО SD! ПРОСТО КРАСИВО!

PS.++.Народ! В карму stealthdebuger -> не ленись и плюсанись!
#8 Instant CMS 2 - проблемы 22 августа 2014 в 21:41
В виджете так
  1.  
  2. cmsTemplate::getInstance()->insertJS("wysiwyg/live/scripts/language/".cmsConfig::get('language')."/editor_lang.js");
  3.  
  4. cmsTemplate::getInstance()->insertJS('wysiwyg/live/scripts/innovaeditor.js');
#9 Instant CMS 2 - проблемы 22 августа 2014 в 21:36

В тексте редактора как выполнено
#10 [ЕСТЬ РЕШЕНИЕ] Не работает авторизация 2.x.x 29 мая 2014 в 20:55
Поздравляю всех с новым релизом Shahin 2
#11 Загружать комментарии, используя ajax? 5 апреля 2014 в 22:21
#12 [ЕСТЬ РЕШЕНИЕ] Проблема со всеми компанентами 4 апреля 2014 в 21:49

Думаете поможет? Просто тоже думал об этом..

Mostmarkov
Больше уверенности Mostmarkov!
#13 Как редактировать категорию с фронта? 4 апреля 2014 в 21:18
  1. <a href="/admin/index.php?view=components&do=config&id=9&opt=edit_cat&item_id=%id%
Априори так не получится. Можно конечно написать и такой сложный разбор правила роутера для доступа к админке, но вот незадача, с фронта невыполнимо.
Задача решаемая методом создание правила в роутере, добавление аналогичного кода backend.php секция if ($opt == 'add_cat' || $opt == 'edit_cat'){ код где action формы ( вместо
  1. index.php?view=components&do=config&id=
надо отправить в компонент через правила роутера где обозначены передачи данных назначенных переменных ( типа add_cat и edit_cat)}
Пишите, помогу руководством к действию, сложного нет!
#14 [ЕСТЬ РЕШЕНИЕ] Проблема со всеми компанентами 4 апреля 2014 в 20:55

3. В папке "admin/components" — пусто!!! ( как можно исправит, понятия не имею..)


Для штатных компонентов сборки, залейте по FTP файлы компонентов admin/components/, из вашего релиза или копии сайта, если покупали компоненты или устанавливали бесплатные- внешние разработки то залейте на сервер части этих компонентов в директориях admin/components/
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.