Алексей

Алексей

С нами с 17 декабря 2012; Место в рейтинге пользователей: #570
Алексей
12 мая 2013, 10:00
0
Спасибо за замечания, на коленке писал, торопясь, надо у себя поправить.

А насчет проверки — мне она не была нужна, поэтому даж чето и не думал об этом.
Алексей
12 мая 2013, 09:12
1
0
О, я такое делал, все просто.

В чанке создания/редактирования тикета заменяем select на другой:
<select name="parent" >[[!getSectionsList]]</select>
И создаем сниппет getSectionsList с примерно такм кодом (только на 16 строке необходимо поменять условие, там задан родитель «0» и в моем случае template):
<?php
$tpl = '<option value="[[+id]]" [[+selected]]>[[+title]]</option>';
$current = 0;
if(isset($_REQUEST['parent'])){
    $current = intval($_REQUEST['parent']);
}
else if(isset($_REQUEST['tid'])){
    $post = $modx->getObject('modResource', intval($_REQUEST['tid']));
    if($post != null){
        $current = $post->get('parent');
    }
}

$q = $modx->newQuery('modResource');
$q->where(array('parent' => 0, 'template' => 16, 'published' => 1, 'deleted' => 0));
$q->sortby('menuindex', 'ASC');
$parents = $modx->getCollection('modResource', $q);
$parentsIds = array();
foreach($parents as $parent){
    $parentsIds[] = $parent->get('id');
}

$q = $modx->newQuery('modResource');
$q->where(array('parent:IN' => $parentsIds, 'template' => 14, 'published' => 1, 'deleted' => 0));
$q->sortby('menuindex', 'ASC');
$blogs = $modx->getCollection('modResource', $q);

$output = array();
foreach($parents as $parent){
    $output[] = '<optgroup label="'.$parent->get('pagetitle').'">';
    $pid = $parent->get('id');
    foreach($blogs as $blog){
        if($blog->get('parent') == $pid){
            $selected = $current == $blog->get('id') ? 'selected="selected"' : '';
            $option = str_replace('[[+title]]', $blog->get('pagetitle'), $tpl);
            $option = str_replace('[[+id]]', $blog->get('id'), $option);
            $option = str_replace('[[+selected]]', $selected, $option);
            $output[] = $option;
        }
    }
    $output[] = '</optgroup>';
}
return implode("\n", $output);
Алексей
26 апреля 2013, 22:20
0
rtfm.modx.com/display/ADDON/getResourceField
Но каждый его вызов — это запрос в БД, поэтому подумайте, прежде чем делать таким способом меню.
Алексей
17 апреля 2013, 16:44
0
Если я правильно понял, то речь идет про комментарии :)

Вообще для такой цели надо использовать параметр thread, задав его в первом случае reviews-[[*id]], во втором questions-[[*id]], где [[*id]] — соответственно id ресурса.



Ну а вкладки организовать просто на javascript.
Алексей
11 апреля 2013, 16:54
0
Осталось разобраться с ExtJs.

В принципе у меня custom tv, и в html код я могу написать любой скрипт.

Перезагрузить страницу я могу так:
MODx.loadPage('index.php?bla-bla-bla);
И это действие должно висеть на событии, возникающем после сохранения ресурса. Это мне сейчас не под силу =) Не писал на extjs ничего.
Алексей
09 апреля 2013, 16:07
0
Пускай живет с неработающим сайтом. Не надо брать на себя проблемы других. У MODx есть требования к хостингу, хочешь рабочий сайт — найди рабочий хостинг. И кодировка только UTF-8! Проблем с ней нет.
Алексей
08 апреля 2013, 17:13
0
Спасибо, я ниже только что написал, как справился. Небольшая проблема еще и с этим плагином была.
Алексей
08 апреля 2013, 17:12
0
Совладал вроде:
1. Выпилил из тикетс функционал назначения шаблона (поиск в пакете по слову «default_template»).
2. Плагин ChangeTemplate — в начале идет получение переменной из $_REQUEST['id'] — меняем на $_REQUEST['parent']. Т.к. при создании ресурса в GET строку добавляются переменные и id и parent, а при создании тикета — только parent
Алексей
08 апреля 2013, 16:54
0
1. Угу, чет я попутал.

2. Ну собственно ChangeTemplate — это и есть нужный плагин, срабатывает на OnDocFormRender, выставляя нужный шаблон (кстати, еще ДО сохранения ресурса, что удобно администраторам, т.к. они сразу видят все нужные TV поля). Да вот тикетс видно сбрасывает этот выставленный шаблон.
Алексей
04 апреля 2013, 10:38
0
Только что проверил:
1. Создал товар, написал название
2. Нажал сохранить — плагин переопредилил alias сделав его числом, в админке это отразилось, код плагина:
if ($modx->event->name == 'OnDocFormSave') {
  $template = $resource->get('template');
  if ($template == 3) {
    $resource->set('alias', $id);
    $resource->save();
  }
}
3. Жму в админке «Просмотр» — открывается товар, а в url стоит старый alias (тот, который сгенерировался из названия товара)
4. Сохраняю еще раз, жму просмотр, уже новый alias.
Алексей
04 апреля 2013, 10:26
0
Да, туплю =(
И, кстати, про плагины.
У меня стоит плагин на изменение alias, висит на OnDocFormSave.
Работает с товарами через раз. Я сейчас как товар добавляю: Создал, написал название товара, сохранил, добавил картинку. Открываю на сайте — а alias не поменялся. А вот если перед добавлением картинки еще нажать сохранить — то меняется :) В общем еще не до конца сам разобрался, почему глючит.
Алексей
04 апреля 2013, 10:07
0
А можно ли отключить визуальный редактор в miniShop, но оставить его на обычных страницах?
Алексей
04 апреля 2013, 09:44
0
Думаю что скорее всего заработает =)
Но без ajaxManager очень уж тяжко! Ты сам не используешь их в связке? Некоторое время назад ты писал, что эти 2 дополнения будут совместимы.
Алексей
03 апреля 2013, 09:25
0
Попробуй пойти по другому пути. Почитай community.modx-cms.ru/blog/tips_and_tricks/8733.html и создавай альбомы в дереве ресурсов, а не в компоненте Gallery. Соответственно проблем с навигацией по альбомам не будет, будешь просто производить навигацию по ресурсам.
Алексей
28 февраля 2013, 16:32
0
Как то не совсем.
[[+content]] в чанке tpl.Tickets.list.row присутсвует и подставляется, но судя по всему Jevix по нему еще не прошелся.

По крайней мере тег video не обработанным выводится!
Алексей
28 февраля 2013, 16:01
0
Прочитал, спасибо за ссылку.

На моем сайте складывается ситуация, что большинство тикетов будет короткими, без использования cut, он там просто не нужен, обрезать нечего по сути. В итоге в списке тикетов только заголовки, а когда открываешь тикет — видишь всего то 1-2 предложения.
Алексей
27 февраля 2013, 10:16
0
Блок «Пожалуйста, привяжите эти сервисы к своей учетной записи при помощи HybridAuth.» это просто еще один вызов сниппета HybridAuth
Алексей
01 февраля 2013, 09:47
0
Вчера перевел один сайт на HybridAuth, все получилось, здорово, проблем особо не было.
Конечно замучается регистрироваться во всех соц сетях, что бы получить ключи)))

Спасибо Василию!
Алексей
30 января 2013, 14:32
0
ok
ok
ok
ok
=)
я проверил, да наверное не в том месте :) При предпросмотре комментария пола вроде не было =)